From 56f5d623e530f1befd87a779a9808c457f02dc48 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 12:10:25 +0100 Subject: [PATCH 01/22] Move maplibre-gl to optional peerDependencies maplibre-gl is already externalised by rollup for ESM builds, making it functionally a peer dependency. This aligns package.json with the build behaviour and the existing docs guidance, consistent with how @arcgis/core and ol are declared. Also removes a try/catch in the ESRI provider that was swallowing the native module-not-found error with a less informative message. --- package.json | 6 +++++- providers/beta/esri/src/index.js | 13 ++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 3c5a611f..bbba9d0e 100755 --- a/package.json +++ b/package.json @@ -121,6 +121,7 @@ }, "peerDependencies": { "@arcgis/core": "^5.0.9", + "maplibre-gl": "^5.23.0", "ol": "^10.9.0", "proj4": "^2.20.8" }, @@ -128,6 +129,9 @@ "@arcgis/core": { "optional": true }, + "maplibre-gl": { + "optional": true + }, "ol": { "optional": true }, @@ -175,6 +179,7 @@ "jest-expect-message": "^1.1.3", "likec4": "^1.50.0", "mapbox-gl-snap": "^1.1.9", + "maplibre-gl": "^5.23.0", "mini-css-extract-plugin": "^2.9.2", "node-fetch": "^3.3.2", "npm-run-all": "^4.1.5", @@ -235,7 +240,6 @@ "@turf/polygon-to-line": "^7.3.3", "accessible-autocomplete": "^3.0.1", "govuk-frontend": "^5.13.0", - "maplibre-gl": "^5.23.0", "polygon-splitter": "^0.0.11", "preact": "^10.27.2", "tslib": "^2.8.1" diff --git a/providers/beta/esri/src/index.js b/providers/beta/esri/src/index.js index 1720dbe3..0ef17b50 100644 --- a/providers/beta/esri/src/index.js +++ b/providers/beta/esri/src/index.js @@ -27,16 +27,11 @@ export default function createEsriProvider (config = {}) { crs: 'EPSG:27700' } - try { - const MapProvider = (await import(/* webpackChunkName: "im-esri-provider" */ './esriProvider.js')).default + const MapProvider = (await import(/* webpackChunkName: "im-esri-provider" */ './esriProvider.js')).default - return { - MapProvider, - mapProviderConfig - } - } catch (error) { - console.error('Failed to load map provider', error) - throw error + return { + MapProvider, + mapProviderConfig } } } From c59682cb6f017f9dd5d654fee8f378b5cc0e7eda Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 15:39:48 +0100 Subject: [PATCH 02/22] refactor: flatten beta/ provider and plugin directories Move beta providers (esri, openlayers, open-names) and beta plugins (scale-bar, datasets, draw-ml, draw-es, draw-ol, frame, map-styles, use-location) to their canonical locations at the root of providers/ and plugins/ directories. This aligns with the new npm workspaces monorepo structure where publishConfig.tag will indicate beta status rather than directory convention. --- plugins/{beta => }/datasets/src/adapters/loadLayerAdapter.js | 0 .../{beta => }/datasets/src/adapters/maplibre/layerBuilders.js | 0 .../datasets/src/adapters/maplibre/maplibreLayerAdapter.js | 0 .../datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js | 0 .../datasets/src/adapters/maplibre/registry/mapLibreDataset.js | 0 .../src/adapters/maplibre/registry/mapLibreDataset.test.js | 0 plugins/{beta => }/datasets/src/api/addDataset.js | 0 plugins/{beta => }/datasets/src/api/addDataset.test.js | 0 plugins/{beta => }/datasets/src/api/getOpacity.js | 0 plugins/{beta => }/datasets/src/api/getOpacity.test.js | 0 plugins/{beta => }/datasets/src/api/getStyle.js | 0 plugins/{beta => }/datasets/src/api/getStyle.test.js | 0 plugins/{beta => }/datasets/src/api/removeDataset.js | 0 plugins/{beta => }/datasets/src/api/removeDataset.test.js | 0 plugins/{beta => }/datasets/src/api/setData.js | 0 plugins/{beta => }/datasets/src/api/setData.test.js | 0 plugins/{beta => }/datasets/src/api/setDatasetVisibility.js | 0 plugins/{beta => }/datasets/src/api/setDatasetVisibility.test.js | 0 plugins/{beta => }/datasets/src/api/setFeatureVisibility.js | 0 plugins/{beta => }/datasets/src/api/setFeatureVisibility.test.js | 0 plugins/{beta => }/datasets/src/api/setGlobals.js | 0 plugins/{beta => }/datasets/src/api/setGlobals.test.js | 0 plugins/{beta => }/datasets/src/api/setOpacity.js | 0 plugins/{beta => }/datasets/src/api/setOpacity.test.js | 0 plugins/{beta => }/datasets/src/api/setStyle.js | 0 plugins/{beta => }/datasets/src/api/setStyle.test.js | 0 plugins/{beta => }/datasets/src/components/Key/EmptyKey.jsx | 0 plugins/{beta => }/datasets/src/components/Key/EmptyKey.test.jsx | 0 plugins/{beta => }/datasets/src/components/Key/Key.jsx | 0 plugins/{beta => }/datasets/src/components/Key/Key.module.scss | 0 plugins/{beta => }/datasets/src/components/Key/KeyGroupItem.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeyItem.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeySvg.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeySvg.test.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeySvgLine.jsx | 0 .../{beta => }/datasets/src/components/Key/KeySvgLine.test.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeySvgPattern.jsx | 0 .../{beta => }/datasets/src/components/Key/KeySvgPattern.test.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeySvgRect.jsx | 0 .../{beta => }/datasets/src/components/Key/KeySvgRect.test.jsx | 0 plugins/{beta => }/datasets/src/components/Key/KeySvgSymbol.jsx | 0 .../{beta => }/datasets/src/components/Key/KeySvgSymbol.test.jsx | 0 plugins/{beta => }/datasets/src/components/Key/svgProperties.js | 0 .../{beta => }/datasets/src/components/Key/svgProperties.test.js | 0 .../datasets/src/components/LayersMenu/Layers.module.scss | 0 .../{beta => }/datasets/src/components/LayersMenu/LayersMenu.jsx | 0 .../datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx | 0 .../datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx | 0 plugins/{beta => }/datasets/src/datasets.scss | 0 plugins/{beta => }/datasets/src/fetch/createDynamicSource.js | 0 plugins/{beta => }/datasets/src/fetch/fetchGeoJSON.js | 0 plugins/{beta => }/datasets/src/index.js | 0 plugins/{beta => }/datasets/src/initialise/DatasetsInit.jsx | 0 plugins/{beta => }/datasets/src/initialise/defaults.js | 0 plugins/{beta => }/datasets/src/initialise/defaults.test.js | 0 plugins/{beta => }/datasets/src/initialise/initialiseDatasets.js | 0 .../{beta => }/datasets/src/initialise/initialiseDatasets.test.js | 0 plugins/{beta => }/datasets/src/manifest.js | 0 plugins/{beta => }/datasets/src/reducers/__data__/demoDatasets.js | 0 plugins/{beta => }/datasets/src/reducers/datasetsToMenu.js | 0 plugins/{beta => }/datasets/src/reducers/datasetsToMenu.test.js | 0 plugins/{beta => }/datasets/src/reducers/mappedDatasetsReducer.js | 0 .../datasets/src/reducers/mappedDatasetsReducer.test.js | 0 plugins/{beta => }/datasets/src/reducers/pluginState.js | 0 plugins/{beta => }/datasets/src/reducers/pluginState.test.js | 0 .../{beta => }/datasets/src/registry/__mocks__/datasetRegistry.js | 0 plugins/{beta => }/datasets/src/registry/createDataset.js | 0 plugins/{beta => }/datasets/src/registry/dataset.js | 0 plugins/{beta => }/datasets/src/registry/dataset.test.js | 0 .../{beta => }/datasets/src/registry/datasetDefinitionCache.js | 0 plugins/{beta => }/datasets/src/registry/datasetRegistry.js | 0 plugins/{beta => }/datasets/src/registry/datasetRegistry.test.js | 0 plugins/{beta => }/datasets/src/registry/dynamicGeoJson.js | 0 plugins/{beta => }/datasets/src/registry/globalDataset.js | 0 plugins/{beta => }/datasets/src/utils/bbox.js | 0 plugins/{beta => }/datasets/src/utils/debounce.js | 0 plugins/{beta => }/draw-es/src/DrawInit.jsx | 0 plugins/{beta => }/draw-es/src/api/addFeature.js | 0 plugins/{beta => }/draw-es/src/api/deleteFeature.js | 0 plugins/{beta => }/draw-es/src/api/editFeature.js | 0 plugins/{beta => }/draw-es/src/api/newPolygon.js | 0 plugins/{beta => }/draw-es/src/events.js | 0 plugins/{beta => }/draw-es/src/events.test.js | 0 plugins/{beta => }/draw-es/src/graphic.js | 0 plugins/{beta => }/draw-es/src/index.js | 0 plugins/{beta => }/draw-es/src/manifest.js | 0 plugins/{beta => }/draw-es/src/reducer.js | 0 plugins/{beta => }/draw-es/src/sketchViewModel.js | 0 plugins/{beta => }/draw-ml/src/DrawInit.jsx | 0 plugins/{beta => }/draw-ml/src/api/addFeature.js | 0 plugins/{beta => }/draw-ml/src/api/deleteFeature.js | 0 plugins/{beta => }/draw-ml/src/api/editFeature.js | 0 plugins/{beta => }/draw-ml/src/api/merge.js | 0 plugins/{beta => }/draw-ml/src/api/newLine.js | 0 plugins/{beta => }/draw-ml/src/api/newPolygon.js | 0 plugins/{beta => }/draw-ml/src/api/split.js | 0 plugins/{beta => }/draw-ml/src/defaults.js | 0 plugins/{beta => }/draw-ml/src/draw.scss | 0 plugins/{beta => }/draw-ml/src/events.js | 0 plugins/{beta => }/draw-ml/src/index.js | 0 plugins/{beta => }/draw-ml/src/manifest.js | 0 plugins/{beta => }/draw-ml/src/mapboxDraw.js | 0 plugins/{beta => }/draw-ml/src/mapboxSnap.js | 0 plugins/{beta => }/draw-ml/src/modes/createDrawMode.js | 0 plugins/{beta => }/draw-ml/src/modes/disabledMode.js | 0 plugins/{beta => }/draw-ml/src/modes/drawLineMode.js | 0 plugins/{beta => }/draw-ml/src/modes/drawPolygonMode.js | 0 .../{beta => }/draw-ml/src/modes/editVertex/geometryHelpers.js | 0 plugins/{beta => }/draw-ml/src/modes/editVertex/helpers.js | 0 plugins/{beta => }/draw-ml/src/modes/editVertex/touchHandlers.js | 0 plugins/{beta => }/draw-ml/src/modes/editVertex/undoHandlers.js | 0 .../{beta => }/draw-ml/src/modes/editVertex/vertexOperations.js | 0 plugins/{beta => }/draw-ml/src/modes/editVertex/vertexQueries.js | 0 plugins/{beta => }/draw-ml/src/modes/editVertexMode.js | 0 plugins/{beta => }/draw-ml/src/reducer.js | 0 plugins/{beta => }/draw-ml/src/styles.js | 0 plugins/{beta => }/draw-ml/src/undoStack.js | 0 plugins/{beta => }/draw-ml/src/utils/debounce.js | 0 plugins/{beta => }/draw-ml/src/utils/flattenStyleProperties.js | 0 plugins/{beta => }/draw-ml/src/utils/snapHelpers.js | 0 plugins/{beta => }/draw-ml/src/utils/spatial.js | 0 plugins/{beta => }/draw-ol/src/DrawInit.jsx | 0 plugins/{beta => }/draw-ol/src/api/addFeature.js | 0 plugins/{beta => }/draw-ol/src/api/deleteFeature.js | 0 plugins/{beta => }/draw-ol/src/api/editFeature.js | 0 plugins/{beta => }/draw-ol/src/api/newLine.js | 0 plugins/{beta => }/draw-ol/src/api/newPolygon.js | 0 plugins/{beta => }/draw-ol/src/core/OLDrawManager.js | 0 plugins/{beta => }/draw-ol/src/core/featureStore.js | 0 plugins/{beta => }/draw-ol/src/core/styles.js | 0 plugins/{beta => }/draw-ol/src/core/undoStack.js | 0 plugins/{beta => }/draw-ol/src/defaults.js | 0 plugins/{beta => }/draw-ol/src/draw.scss | 0 plugins/{beta => }/draw-ol/src/draw/DrawMode.js | 0 plugins/{beta => }/draw-ol/src/draw/drawInput.js | 0 plugins/{beta => }/draw-ol/src/edit/EditMode.js | 0 plugins/{beta => }/draw-ol/src/edit/keyboardHandler.js | 0 plugins/{beta => }/draw-ol/src/edit/midpointLayer.js | 0 plugins/{beta => }/draw-ol/src/edit/touchHandler.js | 0 plugins/{beta => }/draw-ol/src/edit/undoOps.js | 0 plugins/{beta => }/draw-ol/src/edit/vertexHitTest.js | 0 plugins/{beta => }/draw-ol/src/edit/vertexLayer.js | 0 plugins/{beta => }/draw-ol/src/edit/vertexOps.js | 0 plugins/{beta => }/draw-ol/src/events.js | 0 plugins/{beta => }/draw-ol/src/index.js | 0 plugins/{beta => }/draw-ol/src/manifest.js | 0 plugins/{beta => }/draw-ol/src/olDraw.js | 0 plugins/{beta => }/draw-ol/src/reducer.js | 0 plugins/{beta => }/draw-ol/src/snap/snapEngine.js | 0 plugins/{beta => }/draw-ol/src/snap/snapGeometry.js | 0 plugins/{beta => }/draw-ol/src/snap/snapIndicator.js | 0 plugins/{beta => }/draw-ol/src/snap/snapInteraction.js | 0 plugins/{beta => }/draw-ol/src/snap/snapManager.js | 0 plugins/{beta => }/draw-ol/src/utils/flattenStyleProperties.js | 0 plugins/{beta => }/draw-ol/src/utils/geometryHelpers.js | 0 plugins/{beta => }/draw-ol/src/utils/olCoords.js | 0 plugins/{beta => }/draw-ol/src/utils/resolveColors.js | 0 plugins/{beta => }/draw-ol/src/utils/spatial.js | 0 plugins/{beta => }/draw-ol/src/utils/touchTarget.js | 0 plugins/{beta => }/frame/package.json | 0 plugins/{beta => }/frame/src/Frame.jsx | 0 plugins/{beta => }/frame/src/FrameInit.jsx | 0 plugins/{beta => }/frame/src/api/addFrame.js | 0 plugins/{beta => }/frame/src/api/editFeature.js | 0 plugins/{beta => }/frame/src/config.js | 0 plugins/{beta => }/frame/src/frame.scss | 0 plugins/{beta => }/frame/src/index.js | 0 plugins/{beta => }/frame/src/manifest.js | 0 plugins/{beta => }/frame/src/reducer.js | 0 plugins/{beta => }/frame/src/utils.js | 0 plugins/{beta => }/map-styles/src/MapStyles.jsx | 0 plugins/{beta => }/map-styles/src/MapStylesInit.jsx | 0 plugins/{beta => }/map-styles/src/config.js | 0 plugins/{beta => }/map-styles/src/index.js | 0 plugins/{beta => }/map-styles/src/manifest.js | 0 plugins/{beta => }/map-styles/src/mapStyles.scss | 0 plugins/{beta => }/scale-bar/package.json | 0 plugins/{beta => }/scale-bar/src/ScaleBar.jsx | 0 plugins/{beta => }/scale-bar/src/ScaleBar.test.jsx | 0 plugins/{beta => }/scale-bar/src/index.js | 0 plugins/{beta => }/scale-bar/src/index.test.js | 0 plugins/{beta => }/scale-bar/src/manifest.js | 0 plugins/{beta => }/scale-bar/src/scaleBar.scss | 0 plugins/{beta => }/scale-bar/src/utils.js | 0 plugins/{beta => }/scale-bar/src/utils.test.js | 0 plugins/{beta => }/use-location/src/UseLocation.jsx | 0 plugins/{beta => }/use-location/src/UseLocationInit.jsx | 0 plugins/{beta => }/use-location/src/defaults.js | 0 plugins/{beta => }/use-location/src/events.js | 0 plugins/{beta => }/use-location/src/index.js | 0 plugins/{beta => }/use-location/src/manifest.js | 0 plugins/{beta => }/use-location/src/reducer.js | 0 providers/{beta => }/esri/src/appEvents.js | 0 providers/{beta => }/esri/src/defaults.js | 0 providers/{beta => }/esri/src/esriProvider.js | 0 providers/{beta => }/esri/src/esriProvider.scss | 0 providers/{beta => }/esri/src/index.js | 0 providers/{beta => }/esri/src/mapEvents.js | 0 providers/{beta => }/esri/src/utils/coords.js | 0 providers/{beta => }/esri/src/utils/coords.test.js | 0 providers/{beta => }/esri/src/utils/detectWebGL.js | 0 providers/{beta => }/esri/src/utils/esriFixes.js | 0 providers/{beta => }/esri/src/utils/query.js | 0 providers/{beta => }/esri/src/utils/spatial.js | 0 providers/{beta => }/esri/src/utils/spatial.test.js | 0 providers/{beta => }/open-names/src/index.js | 0 providers/{beta => }/open-names/src/reverseGeocode.js | 0 providers/{beta => }/open-names/src/utils/mapToLocationModel.js | 0 .../{beta => }/open-names/src/utils/mapToLocationModel.test.js | 0 providers/{beta => }/openlayers/src/appEvents.js | 0 providers/{beta => }/openlayers/src/appEvents.test.js | 0 providers/{beta => }/openlayers/src/defaults.js | 0 providers/{beta => }/openlayers/src/index.js | 0 providers/{beta => }/openlayers/src/mapEvents.js | 0 providers/{beta => }/openlayers/src/mapEvents.test.js | 0 providers/{beta => }/openlayers/src/openlayersProvider.js | 0 providers/{beta => }/openlayers/src/openlayersProvider.test.js | 0 providers/{beta => }/openlayers/src/utils/highlightFeatures.js | 0 providers/{beta => }/openlayers/src/utils/hoverCursor.js | 0 providers/{beta => }/openlayers/src/utils/hoverCursor.test.js | 0 providers/{beta => }/openlayers/src/utils/openLayersFixes.js | 0 providers/{beta => }/openlayers/src/utils/openLayersFixes.test.js | 0 providers/{beta => }/openlayers/src/utils/queryFeatures.js | 0 providers/{beta => }/openlayers/src/utils/queryFeatures.test.js | 0 providers/{beta => }/openlayers/src/utils/spatial.js | 0 providers/{beta => }/openlayers/src/utils/spatial.test.js | 0 providers/{beta => }/openlayers/src/utils/tileLayers.js | 0 providers/{beta => }/openlayers/src/utils/tileLayers.test.js | 0 providers/{beta => }/openlayers/src/utils/vtTileFragments.js | 0 providers/{beta => }/openlayers/src/utils/zoom.js | 0 providers/{beta => }/openlayers/src/utils/zoom.test.js | 0 231 files changed, 0 insertions(+), 0 deletions(-) rename plugins/{beta => }/datasets/src/adapters/loadLayerAdapter.js (100%) rename plugins/{beta => }/datasets/src/adapters/maplibre/layerBuilders.js (100%) rename plugins/{beta => }/datasets/src/adapters/maplibre/maplibreLayerAdapter.js (100%) rename plugins/{beta => }/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js (100%) rename plugins/{beta => }/datasets/src/adapters/maplibre/registry/mapLibreDataset.js (100%) rename plugins/{beta => }/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js (100%) rename plugins/{beta => }/datasets/src/api/addDataset.js (100%) rename plugins/{beta => }/datasets/src/api/addDataset.test.js (100%) rename plugins/{beta => }/datasets/src/api/getOpacity.js (100%) rename plugins/{beta => }/datasets/src/api/getOpacity.test.js (100%) rename plugins/{beta => }/datasets/src/api/getStyle.js (100%) rename plugins/{beta => }/datasets/src/api/getStyle.test.js (100%) rename plugins/{beta => }/datasets/src/api/removeDataset.js (100%) rename plugins/{beta => }/datasets/src/api/removeDataset.test.js (100%) rename plugins/{beta => }/datasets/src/api/setData.js (100%) rename plugins/{beta => }/datasets/src/api/setData.test.js (100%) rename plugins/{beta => }/datasets/src/api/setDatasetVisibility.js (100%) rename plugins/{beta => }/datasets/src/api/setDatasetVisibility.test.js (100%) rename plugins/{beta => }/datasets/src/api/setFeatureVisibility.js (100%) rename plugins/{beta => }/datasets/src/api/setFeatureVisibility.test.js (100%) rename plugins/{beta => }/datasets/src/api/setGlobals.js (100%) rename plugins/{beta => }/datasets/src/api/setGlobals.test.js (100%) rename plugins/{beta => }/datasets/src/api/setOpacity.js (100%) rename plugins/{beta => }/datasets/src/api/setOpacity.test.js (100%) rename plugins/{beta => }/datasets/src/api/setStyle.js (100%) rename plugins/{beta => }/datasets/src/api/setStyle.test.js (100%) rename plugins/{beta => }/datasets/src/components/Key/EmptyKey.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/EmptyKey.test.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/Key.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/Key.module.scss (100%) rename plugins/{beta => }/datasets/src/components/Key/KeyGroupItem.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeyItem.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvg.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvg.test.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgLine.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgLine.test.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgPattern.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgPattern.test.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgRect.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgRect.test.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgSymbol.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/KeySvgSymbol.test.jsx (100%) rename plugins/{beta => }/datasets/src/components/Key/svgProperties.js (100%) rename plugins/{beta => }/datasets/src/components/Key/svgProperties.test.js (100%) rename plugins/{beta => }/datasets/src/components/LayersMenu/Layers.module.scss (100%) rename plugins/{beta => }/datasets/src/components/LayersMenu/LayersMenu.jsx (100%) rename plugins/{beta => }/datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx (100%) rename plugins/{beta => }/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx (100%) rename plugins/{beta => }/datasets/src/datasets.scss (100%) rename plugins/{beta => }/datasets/src/fetch/createDynamicSource.js (100%) rename plugins/{beta => }/datasets/src/fetch/fetchGeoJSON.js (100%) rename plugins/{beta => }/datasets/src/index.js (100%) rename plugins/{beta => }/datasets/src/initialise/DatasetsInit.jsx (100%) rename plugins/{beta => }/datasets/src/initialise/defaults.js (100%) rename plugins/{beta => }/datasets/src/initialise/defaults.test.js (100%) rename plugins/{beta => }/datasets/src/initialise/initialiseDatasets.js (100%) rename plugins/{beta => }/datasets/src/initialise/initialiseDatasets.test.js (100%) rename plugins/{beta => }/datasets/src/manifest.js (100%) rename plugins/{beta => }/datasets/src/reducers/__data__/demoDatasets.js (100%) rename plugins/{beta => }/datasets/src/reducers/datasetsToMenu.js (100%) rename plugins/{beta => }/datasets/src/reducers/datasetsToMenu.test.js (100%) rename plugins/{beta => }/datasets/src/reducers/mappedDatasetsReducer.js (100%) rename plugins/{beta => }/datasets/src/reducers/mappedDatasetsReducer.test.js (100%) rename plugins/{beta => }/datasets/src/reducers/pluginState.js (100%) rename plugins/{beta => }/datasets/src/reducers/pluginState.test.js (100%) rename plugins/{beta => }/datasets/src/registry/__mocks__/datasetRegistry.js (100%) rename plugins/{beta => }/datasets/src/registry/createDataset.js (100%) rename plugins/{beta => }/datasets/src/registry/dataset.js (100%) rename plugins/{beta => }/datasets/src/registry/dataset.test.js (100%) rename plugins/{beta => }/datasets/src/registry/datasetDefinitionCache.js (100%) rename plugins/{beta => }/datasets/src/registry/datasetRegistry.js (100%) rename plugins/{beta => }/datasets/src/registry/datasetRegistry.test.js (100%) rename plugins/{beta => }/datasets/src/registry/dynamicGeoJson.js (100%) rename plugins/{beta => }/datasets/src/registry/globalDataset.js (100%) rename plugins/{beta => }/datasets/src/utils/bbox.js (100%) rename plugins/{beta => }/datasets/src/utils/debounce.js (100%) rename plugins/{beta => }/draw-es/src/DrawInit.jsx (100%) rename plugins/{beta => }/draw-es/src/api/addFeature.js (100%) rename plugins/{beta => }/draw-es/src/api/deleteFeature.js (100%) rename plugins/{beta => }/draw-es/src/api/editFeature.js (100%) rename plugins/{beta => }/draw-es/src/api/newPolygon.js (100%) rename plugins/{beta => }/draw-es/src/events.js (100%) rename plugins/{beta => }/draw-es/src/events.test.js (100%) rename plugins/{beta => }/draw-es/src/graphic.js (100%) rename plugins/{beta => }/draw-es/src/index.js (100%) rename plugins/{beta => }/draw-es/src/manifest.js (100%) rename plugins/{beta => }/draw-es/src/reducer.js (100%) rename plugins/{beta => }/draw-es/src/sketchViewModel.js (100%) rename plugins/{beta => }/draw-ml/src/DrawInit.jsx (100%) rename plugins/{beta => }/draw-ml/src/api/addFeature.js (100%) rename plugins/{beta => }/draw-ml/src/api/deleteFeature.js (100%) rename plugins/{beta => }/draw-ml/src/api/editFeature.js (100%) rename plugins/{beta => }/draw-ml/src/api/merge.js (100%) rename plugins/{beta => }/draw-ml/src/api/newLine.js (100%) rename plugins/{beta => }/draw-ml/src/api/newPolygon.js (100%) rename plugins/{beta => }/draw-ml/src/api/split.js (100%) rename plugins/{beta => }/draw-ml/src/defaults.js (100%) rename plugins/{beta => }/draw-ml/src/draw.scss (100%) rename plugins/{beta => }/draw-ml/src/events.js (100%) rename plugins/{beta => }/draw-ml/src/index.js (100%) rename plugins/{beta => }/draw-ml/src/manifest.js (100%) rename plugins/{beta => }/draw-ml/src/mapboxDraw.js (100%) rename plugins/{beta => }/draw-ml/src/mapboxSnap.js (100%) rename plugins/{beta => }/draw-ml/src/modes/createDrawMode.js (100%) rename plugins/{beta => }/draw-ml/src/modes/disabledMode.js (100%) rename plugins/{beta => }/draw-ml/src/modes/drawLineMode.js (100%) rename plugins/{beta => }/draw-ml/src/modes/drawPolygonMode.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertex/geometryHelpers.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertex/helpers.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertex/touchHandlers.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertex/undoHandlers.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertex/vertexOperations.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertex/vertexQueries.js (100%) rename plugins/{beta => }/draw-ml/src/modes/editVertexMode.js (100%) rename plugins/{beta => }/draw-ml/src/reducer.js (100%) rename plugins/{beta => }/draw-ml/src/styles.js (100%) rename plugins/{beta => }/draw-ml/src/undoStack.js (100%) rename plugins/{beta => }/draw-ml/src/utils/debounce.js (100%) rename plugins/{beta => }/draw-ml/src/utils/flattenStyleProperties.js (100%) rename plugins/{beta => }/draw-ml/src/utils/snapHelpers.js (100%) rename plugins/{beta => }/draw-ml/src/utils/spatial.js (100%) rename plugins/{beta => }/draw-ol/src/DrawInit.jsx (100%) rename plugins/{beta => }/draw-ol/src/api/addFeature.js (100%) rename plugins/{beta => }/draw-ol/src/api/deleteFeature.js (100%) rename plugins/{beta => }/draw-ol/src/api/editFeature.js (100%) rename plugins/{beta => }/draw-ol/src/api/newLine.js (100%) rename plugins/{beta => }/draw-ol/src/api/newPolygon.js (100%) rename plugins/{beta => }/draw-ol/src/core/OLDrawManager.js (100%) rename plugins/{beta => }/draw-ol/src/core/featureStore.js (100%) rename plugins/{beta => }/draw-ol/src/core/styles.js (100%) rename plugins/{beta => }/draw-ol/src/core/undoStack.js (100%) rename plugins/{beta => }/draw-ol/src/defaults.js (100%) rename plugins/{beta => }/draw-ol/src/draw.scss (100%) rename plugins/{beta => }/draw-ol/src/draw/DrawMode.js (100%) rename plugins/{beta => }/draw-ol/src/draw/drawInput.js (100%) rename plugins/{beta => }/draw-ol/src/edit/EditMode.js (100%) rename plugins/{beta => }/draw-ol/src/edit/keyboardHandler.js (100%) rename plugins/{beta => }/draw-ol/src/edit/midpointLayer.js (100%) rename plugins/{beta => }/draw-ol/src/edit/touchHandler.js (100%) rename plugins/{beta => }/draw-ol/src/edit/undoOps.js (100%) rename plugins/{beta => }/draw-ol/src/edit/vertexHitTest.js (100%) rename plugins/{beta => }/draw-ol/src/edit/vertexLayer.js (100%) rename plugins/{beta => }/draw-ol/src/edit/vertexOps.js (100%) rename plugins/{beta => }/draw-ol/src/events.js (100%) rename plugins/{beta => }/draw-ol/src/index.js (100%) rename plugins/{beta => }/draw-ol/src/manifest.js (100%) rename plugins/{beta => }/draw-ol/src/olDraw.js (100%) rename plugins/{beta => }/draw-ol/src/reducer.js (100%) rename plugins/{beta => }/draw-ol/src/snap/snapEngine.js (100%) rename plugins/{beta => }/draw-ol/src/snap/snapGeometry.js (100%) rename plugins/{beta => }/draw-ol/src/snap/snapIndicator.js (100%) rename plugins/{beta => }/draw-ol/src/snap/snapInteraction.js (100%) rename plugins/{beta => }/draw-ol/src/snap/snapManager.js (100%) rename plugins/{beta => }/draw-ol/src/utils/flattenStyleProperties.js (100%) rename plugins/{beta => }/draw-ol/src/utils/geometryHelpers.js (100%) rename plugins/{beta => }/draw-ol/src/utils/olCoords.js (100%) rename plugins/{beta => }/draw-ol/src/utils/resolveColors.js (100%) rename plugins/{beta => }/draw-ol/src/utils/spatial.js (100%) rename plugins/{beta => }/draw-ol/src/utils/touchTarget.js (100%) rename plugins/{beta => }/frame/package.json (100%) rename plugins/{beta => }/frame/src/Frame.jsx (100%) rename plugins/{beta => }/frame/src/FrameInit.jsx (100%) rename plugins/{beta => }/frame/src/api/addFrame.js (100%) rename plugins/{beta => }/frame/src/api/editFeature.js (100%) rename plugins/{beta => }/frame/src/config.js (100%) rename plugins/{beta => }/frame/src/frame.scss (100%) rename plugins/{beta => }/frame/src/index.js (100%) rename plugins/{beta => }/frame/src/manifest.js (100%) rename plugins/{beta => }/frame/src/reducer.js (100%) rename plugins/{beta => }/frame/src/utils.js (100%) rename plugins/{beta => }/map-styles/src/MapStyles.jsx (100%) rename plugins/{beta => }/map-styles/src/MapStylesInit.jsx (100%) rename plugins/{beta => }/map-styles/src/config.js (100%) rename plugins/{beta => }/map-styles/src/index.js (100%) rename plugins/{beta => }/map-styles/src/manifest.js (100%) rename plugins/{beta => }/map-styles/src/mapStyles.scss (100%) rename plugins/{beta => }/scale-bar/package.json (100%) rename plugins/{beta => }/scale-bar/src/ScaleBar.jsx (100%) rename plugins/{beta => }/scale-bar/src/ScaleBar.test.jsx (100%) rename plugins/{beta => }/scale-bar/src/index.js (100%) rename plugins/{beta => }/scale-bar/src/index.test.js (100%) rename plugins/{beta => }/scale-bar/src/manifest.js (100%) rename plugins/{beta => }/scale-bar/src/scaleBar.scss (100%) rename plugins/{beta => }/scale-bar/src/utils.js (100%) rename plugins/{beta => }/scale-bar/src/utils.test.js (100%) rename plugins/{beta => }/use-location/src/UseLocation.jsx (100%) rename plugins/{beta => }/use-location/src/UseLocationInit.jsx (100%) rename plugins/{beta => }/use-location/src/defaults.js (100%) rename plugins/{beta => }/use-location/src/events.js (100%) rename plugins/{beta => }/use-location/src/index.js (100%) rename plugins/{beta => }/use-location/src/manifest.js (100%) rename plugins/{beta => }/use-location/src/reducer.js (100%) rename providers/{beta => }/esri/src/appEvents.js (100%) rename providers/{beta => }/esri/src/defaults.js (100%) rename providers/{beta => }/esri/src/esriProvider.js (100%) rename providers/{beta => }/esri/src/esriProvider.scss (100%) rename providers/{beta => }/esri/src/index.js (100%) rename providers/{beta => }/esri/src/mapEvents.js (100%) rename providers/{beta => }/esri/src/utils/coords.js (100%) rename providers/{beta => }/esri/src/utils/coords.test.js (100%) rename providers/{beta => }/esri/src/utils/detectWebGL.js (100%) rename providers/{beta => }/esri/src/utils/esriFixes.js (100%) rename providers/{beta => }/esri/src/utils/query.js (100%) rename providers/{beta => }/esri/src/utils/spatial.js (100%) rename providers/{beta => }/esri/src/utils/spatial.test.js (100%) rename providers/{beta => }/open-names/src/index.js (100%) rename providers/{beta => }/open-names/src/reverseGeocode.js (100%) rename providers/{beta => }/open-names/src/utils/mapToLocationModel.js (100%) rename providers/{beta => }/open-names/src/utils/mapToLocationModel.test.js (100%) rename providers/{beta => }/openlayers/src/appEvents.js (100%) rename providers/{beta => }/openlayers/src/appEvents.test.js (100%) rename providers/{beta => }/openlayers/src/defaults.js (100%) rename providers/{beta => }/openlayers/src/index.js (100%) rename providers/{beta => }/openlayers/src/mapEvents.js (100%) rename providers/{beta => }/openlayers/src/mapEvents.test.js (100%) rename providers/{beta => }/openlayers/src/openlayersProvider.js (100%) rename providers/{beta => }/openlayers/src/openlayersProvider.test.js (100%) rename providers/{beta => }/openlayers/src/utils/highlightFeatures.js (100%) rename providers/{beta => }/openlayers/src/utils/hoverCursor.js (100%) rename providers/{beta => }/openlayers/src/utils/hoverCursor.test.js (100%) rename providers/{beta => }/openlayers/src/utils/openLayersFixes.js (100%) rename providers/{beta => }/openlayers/src/utils/openLayersFixes.test.js (100%) rename providers/{beta => }/openlayers/src/utils/queryFeatures.js (100%) rename providers/{beta => }/openlayers/src/utils/queryFeatures.test.js (100%) rename providers/{beta => }/openlayers/src/utils/spatial.js (100%) rename providers/{beta => }/openlayers/src/utils/spatial.test.js (100%) rename providers/{beta => }/openlayers/src/utils/tileLayers.js (100%) rename providers/{beta => }/openlayers/src/utils/tileLayers.test.js (100%) rename providers/{beta => }/openlayers/src/utils/vtTileFragments.js (100%) rename providers/{beta => }/openlayers/src/utils/zoom.js (100%) rename providers/{beta => }/openlayers/src/utils/zoom.test.js (100%) diff --git a/plugins/beta/datasets/src/adapters/loadLayerAdapter.js b/plugins/datasets/src/adapters/loadLayerAdapter.js similarity index 100% rename from plugins/beta/datasets/src/adapters/loadLayerAdapter.js rename to plugins/datasets/src/adapters/loadLayerAdapter.js diff --git a/plugins/beta/datasets/src/adapters/maplibre/layerBuilders.js b/plugins/datasets/src/adapters/maplibre/layerBuilders.js similarity index 100% rename from plugins/beta/datasets/src/adapters/maplibre/layerBuilders.js rename to plugins/datasets/src/adapters/maplibre/layerBuilders.js diff --git a/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.js b/plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.js similarity index 100% rename from plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.js rename to plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.js diff --git a/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js b/plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js similarity index 100% rename from plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js rename to plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js diff --git a/plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.js b/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.js similarity index 100% rename from plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.js rename to plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.js diff --git a/plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js b/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js similarity index 100% rename from plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js rename to plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js diff --git a/plugins/beta/datasets/src/api/addDataset.js b/plugins/datasets/src/api/addDataset.js similarity index 100% rename from plugins/beta/datasets/src/api/addDataset.js rename to plugins/datasets/src/api/addDataset.js diff --git a/plugins/beta/datasets/src/api/addDataset.test.js b/plugins/datasets/src/api/addDataset.test.js similarity index 100% rename from plugins/beta/datasets/src/api/addDataset.test.js rename to plugins/datasets/src/api/addDataset.test.js diff --git a/plugins/beta/datasets/src/api/getOpacity.js b/plugins/datasets/src/api/getOpacity.js similarity index 100% rename from plugins/beta/datasets/src/api/getOpacity.js rename to plugins/datasets/src/api/getOpacity.js diff --git a/plugins/beta/datasets/src/api/getOpacity.test.js b/plugins/datasets/src/api/getOpacity.test.js similarity index 100% rename from plugins/beta/datasets/src/api/getOpacity.test.js rename to plugins/datasets/src/api/getOpacity.test.js diff --git a/plugins/beta/datasets/src/api/getStyle.js b/plugins/datasets/src/api/getStyle.js similarity index 100% rename from plugins/beta/datasets/src/api/getStyle.js rename to plugins/datasets/src/api/getStyle.js diff --git a/plugins/beta/datasets/src/api/getStyle.test.js b/plugins/datasets/src/api/getStyle.test.js similarity index 100% rename from plugins/beta/datasets/src/api/getStyle.test.js rename to plugins/datasets/src/api/getStyle.test.js diff --git a/plugins/beta/datasets/src/api/removeDataset.js b/plugins/datasets/src/api/removeDataset.js similarity index 100% rename from plugins/beta/datasets/src/api/removeDataset.js rename to plugins/datasets/src/api/removeDataset.js diff --git a/plugins/beta/datasets/src/api/removeDataset.test.js b/plugins/datasets/src/api/removeDataset.test.js similarity index 100% rename from plugins/beta/datasets/src/api/removeDataset.test.js rename to plugins/datasets/src/api/removeDataset.test.js diff --git a/plugins/beta/datasets/src/api/setData.js b/plugins/datasets/src/api/setData.js similarity index 100% rename from plugins/beta/datasets/src/api/setData.js rename to plugins/datasets/src/api/setData.js diff --git a/plugins/beta/datasets/src/api/setData.test.js b/plugins/datasets/src/api/setData.test.js similarity index 100% rename from plugins/beta/datasets/src/api/setData.test.js rename to plugins/datasets/src/api/setData.test.js diff --git a/plugins/beta/datasets/src/api/setDatasetVisibility.js b/plugins/datasets/src/api/setDatasetVisibility.js similarity index 100% rename from plugins/beta/datasets/src/api/setDatasetVisibility.js rename to plugins/datasets/src/api/setDatasetVisibility.js diff --git a/plugins/beta/datasets/src/api/setDatasetVisibility.test.js b/plugins/datasets/src/api/setDatasetVisibility.test.js similarity index 100% rename from plugins/beta/datasets/src/api/setDatasetVisibility.test.js rename to plugins/datasets/src/api/setDatasetVisibility.test.js diff --git a/plugins/beta/datasets/src/api/setFeatureVisibility.js b/plugins/datasets/src/api/setFeatureVisibility.js similarity index 100% rename from plugins/beta/datasets/src/api/setFeatureVisibility.js rename to plugins/datasets/src/api/setFeatureVisibility.js diff --git a/plugins/beta/datasets/src/api/setFeatureVisibility.test.js b/plugins/datasets/src/api/setFeatureVisibility.test.js similarity index 100% rename from plugins/beta/datasets/src/api/setFeatureVisibility.test.js rename to plugins/datasets/src/api/setFeatureVisibility.test.js diff --git a/plugins/beta/datasets/src/api/setGlobals.js b/plugins/datasets/src/api/setGlobals.js similarity index 100% rename from plugins/beta/datasets/src/api/setGlobals.js rename to plugins/datasets/src/api/setGlobals.js diff --git a/plugins/beta/datasets/src/api/setGlobals.test.js b/plugins/datasets/src/api/setGlobals.test.js similarity index 100% rename from plugins/beta/datasets/src/api/setGlobals.test.js rename to plugins/datasets/src/api/setGlobals.test.js diff --git a/plugins/beta/datasets/src/api/setOpacity.js b/plugins/datasets/src/api/setOpacity.js similarity index 100% rename from plugins/beta/datasets/src/api/setOpacity.js rename to plugins/datasets/src/api/setOpacity.js diff --git a/plugins/beta/datasets/src/api/setOpacity.test.js b/plugins/datasets/src/api/setOpacity.test.js similarity index 100% rename from plugins/beta/datasets/src/api/setOpacity.test.js rename to plugins/datasets/src/api/setOpacity.test.js diff --git a/plugins/beta/datasets/src/api/setStyle.js b/plugins/datasets/src/api/setStyle.js similarity index 100% rename from plugins/beta/datasets/src/api/setStyle.js rename to plugins/datasets/src/api/setStyle.js diff --git a/plugins/beta/datasets/src/api/setStyle.test.js b/plugins/datasets/src/api/setStyle.test.js similarity index 100% rename from plugins/beta/datasets/src/api/setStyle.test.js rename to plugins/datasets/src/api/setStyle.test.js diff --git a/plugins/beta/datasets/src/components/Key/EmptyKey.jsx b/plugins/datasets/src/components/Key/EmptyKey.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/EmptyKey.jsx rename to plugins/datasets/src/components/Key/EmptyKey.jsx diff --git a/plugins/beta/datasets/src/components/Key/EmptyKey.test.jsx b/plugins/datasets/src/components/Key/EmptyKey.test.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/EmptyKey.test.jsx rename to plugins/datasets/src/components/Key/EmptyKey.test.jsx diff --git a/plugins/beta/datasets/src/components/Key/Key.jsx b/plugins/datasets/src/components/Key/Key.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/Key.jsx rename to plugins/datasets/src/components/Key/Key.jsx diff --git a/plugins/beta/datasets/src/components/Key/Key.module.scss b/plugins/datasets/src/components/Key/Key.module.scss similarity index 100% rename from plugins/beta/datasets/src/components/Key/Key.module.scss rename to plugins/datasets/src/components/Key/Key.module.scss diff --git a/plugins/beta/datasets/src/components/Key/KeyGroupItem.jsx b/plugins/datasets/src/components/Key/KeyGroupItem.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeyGroupItem.jsx rename to plugins/datasets/src/components/Key/KeyGroupItem.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeyItem.jsx b/plugins/datasets/src/components/Key/KeyItem.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeyItem.jsx rename to plugins/datasets/src/components/Key/KeyItem.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvg.jsx b/plugins/datasets/src/components/Key/KeySvg.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvg.jsx rename to plugins/datasets/src/components/Key/KeySvg.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvg.test.jsx b/plugins/datasets/src/components/Key/KeySvg.test.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvg.test.jsx rename to plugins/datasets/src/components/Key/KeySvg.test.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgLine.jsx b/plugins/datasets/src/components/Key/KeySvgLine.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgLine.jsx rename to plugins/datasets/src/components/Key/KeySvgLine.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgLine.test.jsx b/plugins/datasets/src/components/Key/KeySvgLine.test.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgLine.test.jsx rename to plugins/datasets/src/components/Key/KeySvgLine.test.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgPattern.jsx b/plugins/datasets/src/components/Key/KeySvgPattern.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgPattern.jsx rename to plugins/datasets/src/components/Key/KeySvgPattern.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgPattern.test.jsx b/plugins/datasets/src/components/Key/KeySvgPattern.test.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgPattern.test.jsx rename to plugins/datasets/src/components/Key/KeySvgPattern.test.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgRect.jsx b/plugins/datasets/src/components/Key/KeySvgRect.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgRect.jsx rename to plugins/datasets/src/components/Key/KeySvgRect.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgRect.test.jsx b/plugins/datasets/src/components/Key/KeySvgRect.test.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgRect.test.jsx rename to plugins/datasets/src/components/Key/KeySvgRect.test.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgSymbol.jsx b/plugins/datasets/src/components/Key/KeySvgSymbol.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgSymbol.jsx rename to plugins/datasets/src/components/Key/KeySvgSymbol.jsx diff --git a/plugins/beta/datasets/src/components/Key/KeySvgSymbol.test.jsx b/plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx similarity index 100% rename from plugins/beta/datasets/src/components/Key/KeySvgSymbol.test.jsx rename to plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx diff --git a/plugins/beta/datasets/src/components/Key/svgProperties.js b/plugins/datasets/src/components/Key/svgProperties.js similarity index 100% rename from plugins/beta/datasets/src/components/Key/svgProperties.js rename to plugins/datasets/src/components/Key/svgProperties.js diff --git a/plugins/beta/datasets/src/components/Key/svgProperties.test.js b/plugins/datasets/src/components/Key/svgProperties.test.js similarity index 100% rename from plugins/beta/datasets/src/components/Key/svgProperties.test.js rename to plugins/datasets/src/components/Key/svgProperties.test.js diff --git a/plugins/beta/datasets/src/components/LayersMenu/Layers.module.scss b/plugins/datasets/src/components/LayersMenu/Layers.module.scss similarity index 100% rename from plugins/beta/datasets/src/components/LayersMenu/Layers.module.scss rename to plugins/datasets/src/components/LayersMenu/Layers.module.scss diff --git a/plugins/beta/datasets/src/components/LayersMenu/LayersMenu.jsx b/plugins/datasets/src/components/LayersMenu/LayersMenu.jsx similarity index 100% rename from plugins/beta/datasets/src/components/LayersMenu/LayersMenu.jsx rename to plugins/datasets/src/components/LayersMenu/LayersMenu.jsx diff --git a/plugins/beta/datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx b/plugins/datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx similarity index 100% rename from plugins/beta/datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx rename to plugins/datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx diff --git a/plugins/beta/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx b/plugins/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx similarity index 100% rename from plugins/beta/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx rename to plugins/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx diff --git a/plugins/beta/datasets/src/datasets.scss b/plugins/datasets/src/datasets.scss similarity index 100% rename from plugins/beta/datasets/src/datasets.scss rename to plugins/datasets/src/datasets.scss diff --git a/plugins/beta/datasets/src/fetch/createDynamicSource.js b/plugins/datasets/src/fetch/createDynamicSource.js similarity index 100% rename from plugins/beta/datasets/src/fetch/createDynamicSource.js rename to plugins/datasets/src/fetch/createDynamicSource.js diff --git a/plugins/beta/datasets/src/fetch/fetchGeoJSON.js b/plugins/datasets/src/fetch/fetchGeoJSON.js similarity index 100% rename from plugins/beta/datasets/src/fetch/fetchGeoJSON.js rename to plugins/datasets/src/fetch/fetchGeoJSON.js diff --git a/plugins/beta/datasets/src/index.js b/plugins/datasets/src/index.js similarity index 100% rename from plugins/beta/datasets/src/index.js rename to plugins/datasets/src/index.js diff --git a/plugins/beta/datasets/src/initialise/DatasetsInit.jsx b/plugins/datasets/src/initialise/DatasetsInit.jsx similarity index 100% rename from plugins/beta/datasets/src/initialise/DatasetsInit.jsx rename to plugins/datasets/src/initialise/DatasetsInit.jsx diff --git a/plugins/beta/datasets/src/initialise/defaults.js b/plugins/datasets/src/initialise/defaults.js similarity index 100% rename from plugins/beta/datasets/src/initialise/defaults.js rename to plugins/datasets/src/initialise/defaults.js diff --git a/plugins/beta/datasets/src/initialise/defaults.test.js b/plugins/datasets/src/initialise/defaults.test.js similarity index 100% rename from plugins/beta/datasets/src/initialise/defaults.test.js rename to plugins/datasets/src/initialise/defaults.test.js diff --git a/plugins/beta/datasets/src/initialise/initialiseDatasets.js b/plugins/datasets/src/initialise/initialiseDatasets.js similarity index 100% rename from plugins/beta/datasets/src/initialise/initialiseDatasets.js rename to plugins/datasets/src/initialise/initialiseDatasets.js diff --git a/plugins/beta/datasets/src/initialise/initialiseDatasets.test.js b/plugins/datasets/src/initialise/initialiseDatasets.test.js similarity index 100% rename from plugins/beta/datasets/src/initialise/initialiseDatasets.test.js rename to plugins/datasets/src/initialise/initialiseDatasets.test.js diff --git a/plugins/beta/datasets/src/manifest.js b/plugins/datasets/src/manifest.js similarity index 100% rename from plugins/beta/datasets/src/manifest.js rename to plugins/datasets/src/manifest.js diff --git a/plugins/beta/datasets/src/reducers/__data__/demoDatasets.js b/plugins/datasets/src/reducers/__data__/demoDatasets.js similarity index 100% rename from plugins/beta/datasets/src/reducers/__data__/demoDatasets.js rename to plugins/datasets/src/reducers/__data__/demoDatasets.js diff --git a/plugins/beta/datasets/src/reducers/datasetsToMenu.js b/plugins/datasets/src/reducers/datasetsToMenu.js similarity index 100% rename from plugins/beta/datasets/src/reducers/datasetsToMenu.js rename to plugins/datasets/src/reducers/datasetsToMenu.js diff --git a/plugins/beta/datasets/src/reducers/datasetsToMenu.test.js b/plugins/datasets/src/reducers/datasetsToMenu.test.js similarity index 100% rename from plugins/beta/datasets/src/reducers/datasetsToMenu.test.js rename to plugins/datasets/src/reducers/datasetsToMenu.test.js diff --git a/plugins/beta/datasets/src/reducers/mappedDatasetsReducer.js b/plugins/datasets/src/reducers/mappedDatasetsReducer.js similarity index 100% rename from plugins/beta/datasets/src/reducers/mappedDatasetsReducer.js rename to plugins/datasets/src/reducers/mappedDatasetsReducer.js diff --git a/plugins/beta/datasets/src/reducers/mappedDatasetsReducer.test.js b/plugins/datasets/src/reducers/mappedDatasetsReducer.test.js similarity index 100% rename from plugins/beta/datasets/src/reducers/mappedDatasetsReducer.test.js rename to plugins/datasets/src/reducers/mappedDatasetsReducer.test.js diff --git a/plugins/beta/datasets/src/reducers/pluginState.js b/plugins/datasets/src/reducers/pluginState.js similarity index 100% rename from plugins/beta/datasets/src/reducers/pluginState.js rename to plugins/datasets/src/reducers/pluginState.js diff --git a/plugins/beta/datasets/src/reducers/pluginState.test.js b/plugins/datasets/src/reducers/pluginState.test.js similarity index 100% rename from plugins/beta/datasets/src/reducers/pluginState.test.js rename to plugins/datasets/src/reducers/pluginState.test.js diff --git a/plugins/beta/datasets/src/registry/__mocks__/datasetRegistry.js b/plugins/datasets/src/registry/__mocks__/datasetRegistry.js similarity index 100% rename from plugins/beta/datasets/src/registry/__mocks__/datasetRegistry.js rename to plugins/datasets/src/registry/__mocks__/datasetRegistry.js diff --git a/plugins/beta/datasets/src/registry/createDataset.js b/plugins/datasets/src/registry/createDataset.js similarity index 100% rename from plugins/beta/datasets/src/registry/createDataset.js rename to plugins/datasets/src/registry/createDataset.js diff --git a/plugins/beta/datasets/src/registry/dataset.js b/plugins/datasets/src/registry/dataset.js similarity index 100% rename from plugins/beta/datasets/src/registry/dataset.js rename to plugins/datasets/src/registry/dataset.js diff --git a/plugins/beta/datasets/src/registry/dataset.test.js b/plugins/datasets/src/registry/dataset.test.js similarity index 100% rename from plugins/beta/datasets/src/registry/dataset.test.js rename to plugins/datasets/src/registry/dataset.test.js diff --git a/plugins/beta/datasets/src/registry/datasetDefinitionCache.js b/plugins/datasets/src/registry/datasetDefinitionCache.js similarity index 100% rename from plugins/beta/datasets/src/registry/datasetDefinitionCache.js rename to plugins/datasets/src/registry/datasetDefinitionCache.js diff --git a/plugins/beta/datasets/src/registry/datasetRegistry.js b/plugins/datasets/src/registry/datasetRegistry.js similarity index 100% rename from plugins/beta/datasets/src/registry/datasetRegistry.js rename to plugins/datasets/src/registry/datasetRegistry.js diff --git a/plugins/beta/datasets/src/registry/datasetRegistry.test.js b/plugins/datasets/src/registry/datasetRegistry.test.js similarity index 100% rename from plugins/beta/datasets/src/registry/datasetRegistry.test.js rename to plugins/datasets/src/registry/datasetRegistry.test.js diff --git a/plugins/beta/datasets/src/registry/dynamicGeoJson.js b/plugins/datasets/src/registry/dynamicGeoJson.js similarity index 100% rename from plugins/beta/datasets/src/registry/dynamicGeoJson.js rename to plugins/datasets/src/registry/dynamicGeoJson.js diff --git a/plugins/beta/datasets/src/registry/globalDataset.js b/plugins/datasets/src/registry/globalDataset.js similarity index 100% rename from plugins/beta/datasets/src/registry/globalDataset.js rename to plugins/datasets/src/registry/globalDataset.js diff --git a/plugins/beta/datasets/src/utils/bbox.js b/plugins/datasets/src/utils/bbox.js similarity index 100% rename from plugins/beta/datasets/src/utils/bbox.js rename to plugins/datasets/src/utils/bbox.js diff --git a/plugins/beta/datasets/src/utils/debounce.js b/plugins/datasets/src/utils/debounce.js similarity index 100% rename from plugins/beta/datasets/src/utils/debounce.js rename to plugins/datasets/src/utils/debounce.js diff --git a/plugins/beta/draw-es/src/DrawInit.jsx b/plugins/draw-es/src/DrawInit.jsx similarity index 100% rename from plugins/beta/draw-es/src/DrawInit.jsx rename to plugins/draw-es/src/DrawInit.jsx diff --git a/plugins/beta/draw-es/src/api/addFeature.js b/plugins/draw-es/src/api/addFeature.js similarity index 100% rename from plugins/beta/draw-es/src/api/addFeature.js rename to plugins/draw-es/src/api/addFeature.js diff --git a/plugins/beta/draw-es/src/api/deleteFeature.js b/plugins/draw-es/src/api/deleteFeature.js similarity index 100% rename from plugins/beta/draw-es/src/api/deleteFeature.js rename to plugins/draw-es/src/api/deleteFeature.js diff --git a/plugins/beta/draw-es/src/api/editFeature.js b/plugins/draw-es/src/api/editFeature.js similarity index 100% rename from plugins/beta/draw-es/src/api/editFeature.js rename to plugins/draw-es/src/api/editFeature.js diff --git a/plugins/beta/draw-es/src/api/newPolygon.js b/plugins/draw-es/src/api/newPolygon.js similarity index 100% rename from plugins/beta/draw-es/src/api/newPolygon.js rename to plugins/draw-es/src/api/newPolygon.js diff --git a/plugins/beta/draw-es/src/events.js b/plugins/draw-es/src/events.js similarity index 100% rename from plugins/beta/draw-es/src/events.js rename to plugins/draw-es/src/events.js diff --git a/plugins/beta/draw-es/src/events.test.js b/plugins/draw-es/src/events.test.js similarity index 100% rename from plugins/beta/draw-es/src/events.test.js rename to plugins/draw-es/src/events.test.js diff --git a/plugins/beta/draw-es/src/graphic.js b/plugins/draw-es/src/graphic.js similarity index 100% rename from plugins/beta/draw-es/src/graphic.js rename to plugins/draw-es/src/graphic.js diff --git a/plugins/beta/draw-es/src/index.js b/plugins/draw-es/src/index.js similarity index 100% rename from plugins/beta/draw-es/src/index.js rename to plugins/draw-es/src/index.js diff --git a/plugins/beta/draw-es/src/manifest.js b/plugins/draw-es/src/manifest.js similarity index 100% rename from plugins/beta/draw-es/src/manifest.js rename to plugins/draw-es/src/manifest.js diff --git a/plugins/beta/draw-es/src/reducer.js b/plugins/draw-es/src/reducer.js similarity index 100% rename from plugins/beta/draw-es/src/reducer.js rename to plugins/draw-es/src/reducer.js diff --git a/plugins/beta/draw-es/src/sketchViewModel.js b/plugins/draw-es/src/sketchViewModel.js similarity index 100% rename from plugins/beta/draw-es/src/sketchViewModel.js rename to plugins/draw-es/src/sketchViewModel.js diff --git a/plugins/beta/draw-ml/src/DrawInit.jsx b/plugins/draw-ml/src/DrawInit.jsx similarity index 100% rename from plugins/beta/draw-ml/src/DrawInit.jsx rename to plugins/draw-ml/src/DrawInit.jsx diff --git a/plugins/beta/draw-ml/src/api/addFeature.js b/plugins/draw-ml/src/api/addFeature.js similarity index 100% rename from plugins/beta/draw-ml/src/api/addFeature.js rename to plugins/draw-ml/src/api/addFeature.js diff --git a/plugins/beta/draw-ml/src/api/deleteFeature.js b/plugins/draw-ml/src/api/deleteFeature.js similarity index 100% rename from plugins/beta/draw-ml/src/api/deleteFeature.js rename to plugins/draw-ml/src/api/deleteFeature.js diff --git a/plugins/beta/draw-ml/src/api/editFeature.js b/plugins/draw-ml/src/api/editFeature.js similarity index 100% rename from plugins/beta/draw-ml/src/api/editFeature.js rename to plugins/draw-ml/src/api/editFeature.js diff --git a/plugins/beta/draw-ml/src/api/merge.js b/plugins/draw-ml/src/api/merge.js similarity index 100% rename from plugins/beta/draw-ml/src/api/merge.js rename to plugins/draw-ml/src/api/merge.js diff --git a/plugins/beta/draw-ml/src/api/newLine.js b/plugins/draw-ml/src/api/newLine.js similarity index 100% rename from plugins/beta/draw-ml/src/api/newLine.js rename to plugins/draw-ml/src/api/newLine.js diff --git a/plugins/beta/draw-ml/src/api/newPolygon.js b/plugins/draw-ml/src/api/newPolygon.js similarity index 100% rename from plugins/beta/draw-ml/src/api/newPolygon.js rename to plugins/draw-ml/src/api/newPolygon.js diff --git a/plugins/beta/draw-ml/src/api/split.js b/plugins/draw-ml/src/api/split.js similarity index 100% rename from plugins/beta/draw-ml/src/api/split.js rename to plugins/draw-ml/src/api/split.js diff --git a/plugins/beta/draw-ml/src/defaults.js b/plugins/draw-ml/src/defaults.js similarity index 100% rename from plugins/beta/draw-ml/src/defaults.js rename to plugins/draw-ml/src/defaults.js diff --git a/plugins/beta/draw-ml/src/draw.scss b/plugins/draw-ml/src/draw.scss similarity index 100% rename from plugins/beta/draw-ml/src/draw.scss rename to plugins/draw-ml/src/draw.scss diff --git a/plugins/beta/draw-ml/src/events.js b/plugins/draw-ml/src/events.js similarity index 100% rename from plugins/beta/draw-ml/src/events.js rename to plugins/draw-ml/src/events.js diff --git a/plugins/beta/draw-ml/src/index.js b/plugins/draw-ml/src/index.js similarity index 100% rename from plugins/beta/draw-ml/src/index.js rename to plugins/draw-ml/src/index.js diff --git a/plugins/beta/draw-ml/src/manifest.js b/plugins/draw-ml/src/manifest.js similarity index 100% rename from plugins/beta/draw-ml/src/manifest.js rename to plugins/draw-ml/src/manifest.js diff --git a/plugins/beta/draw-ml/src/mapboxDraw.js b/plugins/draw-ml/src/mapboxDraw.js similarity index 100% rename from plugins/beta/draw-ml/src/mapboxDraw.js rename to plugins/draw-ml/src/mapboxDraw.js diff --git a/plugins/beta/draw-ml/src/mapboxSnap.js b/plugins/draw-ml/src/mapboxSnap.js similarity index 100% rename from plugins/beta/draw-ml/src/mapboxSnap.js rename to plugins/draw-ml/src/mapboxSnap.js diff --git a/plugins/beta/draw-ml/src/modes/createDrawMode.js b/plugins/draw-ml/src/modes/createDrawMode.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/createDrawMode.js rename to plugins/draw-ml/src/modes/createDrawMode.js diff --git a/plugins/beta/draw-ml/src/modes/disabledMode.js b/plugins/draw-ml/src/modes/disabledMode.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/disabledMode.js rename to plugins/draw-ml/src/modes/disabledMode.js diff --git a/plugins/beta/draw-ml/src/modes/drawLineMode.js b/plugins/draw-ml/src/modes/drawLineMode.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/drawLineMode.js rename to plugins/draw-ml/src/modes/drawLineMode.js diff --git a/plugins/beta/draw-ml/src/modes/drawPolygonMode.js b/plugins/draw-ml/src/modes/drawPolygonMode.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/drawPolygonMode.js rename to plugins/draw-ml/src/modes/drawPolygonMode.js diff --git a/plugins/beta/draw-ml/src/modes/editVertex/geometryHelpers.js b/plugins/draw-ml/src/modes/editVertex/geometryHelpers.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertex/geometryHelpers.js rename to plugins/draw-ml/src/modes/editVertex/geometryHelpers.js diff --git a/plugins/beta/draw-ml/src/modes/editVertex/helpers.js b/plugins/draw-ml/src/modes/editVertex/helpers.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertex/helpers.js rename to plugins/draw-ml/src/modes/editVertex/helpers.js diff --git a/plugins/beta/draw-ml/src/modes/editVertex/touchHandlers.js b/plugins/draw-ml/src/modes/editVertex/touchHandlers.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertex/touchHandlers.js rename to plugins/draw-ml/src/modes/editVertex/touchHandlers.js diff --git a/plugins/beta/draw-ml/src/modes/editVertex/undoHandlers.js b/plugins/draw-ml/src/modes/editVertex/undoHandlers.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertex/undoHandlers.js rename to plugins/draw-ml/src/modes/editVertex/undoHandlers.js diff --git a/plugins/beta/draw-ml/src/modes/editVertex/vertexOperations.js b/plugins/draw-ml/src/modes/editVertex/vertexOperations.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertex/vertexOperations.js rename to plugins/draw-ml/src/modes/editVertex/vertexOperations.js diff --git a/plugins/beta/draw-ml/src/modes/editVertex/vertexQueries.js b/plugins/draw-ml/src/modes/editVertex/vertexQueries.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertex/vertexQueries.js rename to plugins/draw-ml/src/modes/editVertex/vertexQueries.js diff --git a/plugins/beta/draw-ml/src/modes/editVertexMode.js b/plugins/draw-ml/src/modes/editVertexMode.js similarity index 100% rename from plugins/beta/draw-ml/src/modes/editVertexMode.js rename to plugins/draw-ml/src/modes/editVertexMode.js diff --git a/plugins/beta/draw-ml/src/reducer.js b/plugins/draw-ml/src/reducer.js similarity index 100% rename from plugins/beta/draw-ml/src/reducer.js rename to plugins/draw-ml/src/reducer.js diff --git a/plugins/beta/draw-ml/src/styles.js b/plugins/draw-ml/src/styles.js similarity index 100% rename from plugins/beta/draw-ml/src/styles.js rename to plugins/draw-ml/src/styles.js diff --git a/plugins/beta/draw-ml/src/undoStack.js b/plugins/draw-ml/src/undoStack.js similarity index 100% rename from plugins/beta/draw-ml/src/undoStack.js rename to plugins/draw-ml/src/undoStack.js diff --git a/plugins/beta/draw-ml/src/utils/debounce.js b/plugins/draw-ml/src/utils/debounce.js similarity index 100% rename from plugins/beta/draw-ml/src/utils/debounce.js rename to plugins/draw-ml/src/utils/debounce.js diff --git a/plugins/beta/draw-ml/src/utils/flattenStyleProperties.js b/plugins/draw-ml/src/utils/flattenStyleProperties.js similarity index 100% rename from plugins/beta/draw-ml/src/utils/flattenStyleProperties.js rename to plugins/draw-ml/src/utils/flattenStyleProperties.js diff --git a/plugins/beta/draw-ml/src/utils/snapHelpers.js b/plugins/draw-ml/src/utils/snapHelpers.js similarity index 100% rename from plugins/beta/draw-ml/src/utils/snapHelpers.js rename to plugins/draw-ml/src/utils/snapHelpers.js diff --git a/plugins/beta/draw-ml/src/utils/spatial.js b/plugins/draw-ml/src/utils/spatial.js similarity index 100% rename from plugins/beta/draw-ml/src/utils/spatial.js rename to plugins/draw-ml/src/utils/spatial.js diff --git a/plugins/beta/draw-ol/src/DrawInit.jsx b/plugins/draw-ol/src/DrawInit.jsx similarity index 100% rename from plugins/beta/draw-ol/src/DrawInit.jsx rename to plugins/draw-ol/src/DrawInit.jsx diff --git a/plugins/beta/draw-ol/src/api/addFeature.js b/plugins/draw-ol/src/api/addFeature.js similarity index 100% rename from plugins/beta/draw-ol/src/api/addFeature.js rename to plugins/draw-ol/src/api/addFeature.js diff --git a/plugins/beta/draw-ol/src/api/deleteFeature.js b/plugins/draw-ol/src/api/deleteFeature.js similarity index 100% rename from plugins/beta/draw-ol/src/api/deleteFeature.js rename to plugins/draw-ol/src/api/deleteFeature.js diff --git a/plugins/beta/draw-ol/src/api/editFeature.js b/plugins/draw-ol/src/api/editFeature.js similarity index 100% rename from plugins/beta/draw-ol/src/api/editFeature.js rename to plugins/draw-ol/src/api/editFeature.js diff --git a/plugins/beta/draw-ol/src/api/newLine.js b/plugins/draw-ol/src/api/newLine.js similarity index 100% rename from plugins/beta/draw-ol/src/api/newLine.js rename to plugins/draw-ol/src/api/newLine.js diff --git a/plugins/beta/draw-ol/src/api/newPolygon.js b/plugins/draw-ol/src/api/newPolygon.js similarity index 100% rename from plugins/beta/draw-ol/src/api/newPolygon.js rename to plugins/draw-ol/src/api/newPolygon.js diff --git a/plugins/beta/draw-ol/src/core/OLDrawManager.js b/plugins/draw-ol/src/core/OLDrawManager.js similarity index 100% rename from plugins/beta/draw-ol/src/core/OLDrawManager.js rename to plugins/draw-ol/src/core/OLDrawManager.js diff --git a/plugins/beta/draw-ol/src/core/featureStore.js b/plugins/draw-ol/src/core/featureStore.js similarity index 100% rename from plugins/beta/draw-ol/src/core/featureStore.js rename to plugins/draw-ol/src/core/featureStore.js diff --git a/plugins/beta/draw-ol/src/core/styles.js b/plugins/draw-ol/src/core/styles.js similarity index 100% rename from plugins/beta/draw-ol/src/core/styles.js rename to plugins/draw-ol/src/core/styles.js diff --git a/plugins/beta/draw-ol/src/core/undoStack.js b/plugins/draw-ol/src/core/undoStack.js similarity index 100% rename from plugins/beta/draw-ol/src/core/undoStack.js rename to plugins/draw-ol/src/core/undoStack.js diff --git a/plugins/beta/draw-ol/src/defaults.js b/plugins/draw-ol/src/defaults.js similarity index 100% rename from plugins/beta/draw-ol/src/defaults.js rename to plugins/draw-ol/src/defaults.js diff --git a/plugins/beta/draw-ol/src/draw.scss b/plugins/draw-ol/src/draw.scss similarity index 100% rename from plugins/beta/draw-ol/src/draw.scss rename to plugins/draw-ol/src/draw.scss diff --git a/plugins/beta/draw-ol/src/draw/DrawMode.js b/plugins/draw-ol/src/draw/DrawMode.js similarity index 100% rename from plugins/beta/draw-ol/src/draw/DrawMode.js rename to plugins/draw-ol/src/draw/DrawMode.js diff --git a/plugins/beta/draw-ol/src/draw/drawInput.js b/plugins/draw-ol/src/draw/drawInput.js similarity index 100% rename from plugins/beta/draw-ol/src/draw/drawInput.js rename to plugins/draw-ol/src/draw/drawInput.js diff --git a/plugins/beta/draw-ol/src/edit/EditMode.js b/plugins/draw-ol/src/edit/EditMode.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/EditMode.js rename to plugins/draw-ol/src/edit/EditMode.js diff --git a/plugins/beta/draw-ol/src/edit/keyboardHandler.js b/plugins/draw-ol/src/edit/keyboardHandler.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/keyboardHandler.js rename to plugins/draw-ol/src/edit/keyboardHandler.js diff --git a/plugins/beta/draw-ol/src/edit/midpointLayer.js b/plugins/draw-ol/src/edit/midpointLayer.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/midpointLayer.js rename to plugins/draw-ol/src/edit/midpointLayer.js diff --git a/plugins/beta/draw-ol/src/edit/touchHandler.js b/plugins/draw-ol/src/edit/touchHandler.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/touchHandler.js rename to plugins/draw-ol/src/edit/touchHandler.js diff --git a/plugins/beta/draw-ol/src/edit/undoOps.js b/plugins/draw-ol/src/edit/undoOps.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/undoOps.js rename to plugins/draw-ol/src/edit/undoOps.js diff --git a/plugins/beta/draw-ol/src/edit/vertexHitTest.js b/plugins/draw-ol/src/edit/vertexHitTest.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/vertexHitTest.js rename to plugins/draw-ol/src/edit/vertexHitTest.js diff --git a/plugins/beta/draw-ol/src/edit/vertexLayer.js b/plugins/draw-ol/src/edit/vertexLayer.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/vertexLayer.js rename to plugins/draw-ol/src/edit/vertexLayer.js diff --git a/plugins/beta/draw-ol/src/edit/vertexOps.js b/plugins/draw-ol/src/edit/vertexOps.js similarity index 100% rename from plugins/beta/draw-ol/src/edit/vertexOps.js rename to plugins/draw-ol/src/edit/vertexOps.js diff --git a/plugins/beta/draw-ol/src/events.js b/plugins/draw-ol/src/events.js similarity index 100% rename from plugins/beta/draw-ol/src/events.js rename to plugins/draw-ol/src/events.js diff --git a/plugins/beta/draw-ol/src/index.js b/plugins/draw-ol/src/index.js similarity index 100% rename from plugins/beta/draw-ol/src/index.js rename to plugins/draw-ol/src/index.js diff --git a/plugins/beta/draw-ol/src/manifest.js b/plugins/draw-ol/src/manifest.js similarity index 100% rename from plugins/beta/draw-ol/src/manifest.js rename to plugins/draw-ol/src/manifest.js diff --git a/plugins/beta/draw-ol/src/olDraw.js b/plugins/draw-ol/src/olDraw.js similarity index 100% rename from plugins/beta/draw-ol/src/olDraw.js rename to plugins/draw-ol/src/olDraw.js diff --git a/plugins/beta/draw-ol/src/reducer.js b/plugins/draw-ol/src/reducer.js similarity index 100% rename from plugins/beta/draw-ol/src/reducer.js rename to plugins/draw-ol/src/reducer.js diff --git a/plugins/beta/draw-ol/src/snap/snapEngine.js b/plugins/draw-ol/src/snap/snapEngine.js similarity index 100% rename from plugins/beta/draw-ol/src/snap/snapEngine.js rename to plugins/draw-ol/src/snap/snapEngine.js diff --git a/plugins/beta/draw-ol/src/snap/snapGeometry.js b/plugins/draw-ol/src/snap/snapGeometry.js similarity index 100% rename from plugins/beta/draw-ol/src/snap/snapGeometry.js rename to plugins/draw-ol/src/snap/snapGeometry.js diff --git a/plugins/beta/draw-ol/src/snap/snapIndicator.js b/plugins/draw-ol/src/snap/snapIndicator.js similarity index 100% rename from plugins/beta/draw-ol/src/snap/snapIndicator.js rename to plugins/draw-ol/src/snap/snapIndicator.js diff --git a/plugins/beta/draw-ol/src/snap/snapInteraction.js b/plugins/draw-ol/src/snap/snapInteraction.js similarity index 100% rename from plugins/beta/draw-ol/src/snap/snapInteraction.js rename to plugins/draw-ol/src/snap/snapInteraction.js diff --git a/plugins/beta/draw-ol/src/snap/snapManager.js b/plugins/draw-ol/src/snap/snapManager.js similarity index 100% rename from plugins/beta/draw-ol/src/snap/snapManager.js rename to plugins/draw-ol/src/snap/snapManager.js diff --git a/plugins/beta/draw-ol/src/utils/flattenStyleProperties.js b/plugins/draw-ol/src/utils/flattenStyleProperties.js similarity index 100% rename from plugins/beta/draw-ol/src/utils/flattenStyleProperties.js rename to plugins/draw-ol/src/utils/flattenStyleProperties.js diff --git a/plugins/beta/draw-ol/src/utils/geometryHelpers.js b/plugins/draw-ol/src/utils/geometryHelpers.js similarity index 100% rename from plugins/beta/draw-ol/src/utils/geometryHelpers.js rename to plugins/draw-ol/src/utils/geometryHelpers.js diff --git a/plugins/beta/draw-ol/src/utils/olCoords.js b/plugins/draw-ol/src/utils/olCoords.js similarity index 100% rename from plugins/beta/draw-ol/src/utils/olCoords.js rename to plugins/draw-ol/src/utils/olCoords.js diff --git a/plugins/beta/draw-ol/src/utils/resolveColors.js b/plugins/draw-ol/src/utils/resolveColors.js similarity index 100% rename from plugins/beta/draw-ol/src/utils/resolveColors.js rename to plugins/draw-ol/src/utils/resolveColors.js diff --git a/plugins/beta/draw-ol/src/utils/spatial.js b/plugins/draw-ol/src/utils/spatial.js similarity index 100% rename from plugins/beta/draw-ol/src/utils/spatial.js rename to plugins/draw-ol/src/utils/spatial.js diff --git a/plugins/beta/draw-ol/src/utils/touchTarget.js b/plugins/draw-ol/src/utils/touchTarget.js similarity index 100% rename from plugins/beta/draw-ol/src/utils/touchTarget.js rename to plugins/draw-ol/src/utils/touchTarget.js diff --git a/plugins/beta/frame/package.json b/plugins/frame/package.json similarity index 100% rename from plugins/beta/frame/package.json rename to plugins/frame/package.json diff --git a/plugins/beta/frame/src/Frame.jsx b/plugins/frame/src/Frame.jsx similarity index 100% rename from plugins/beta/frame/src/Frame.jsx rename to plugins/frame/src/Frame.jsx diff --git a/plugins/beta/frame/src/FrameInit.jsx b/plugins/frame/src/FrameInit.jsx similarity index 100% rename from plugins/beta/frame/src/FrameInit.jsx rename to plugins/frame/src/FrameInit.jsx diff --git a/plugins/beta/frame/src/api/addFrame.js b/plugins/frame/src/api/addFrame.js similarity index 100% rename from plugins/beta/frame/src/api/addFrame.js rename to plugins/frame/src/api/addFrame.js diff --git a/plugins/beta/frame/src/api/editFeature.js b/plugins/frame/src/api/editFeature.js similarity index 100% rename from plugins/beta/frame/src/api/editFeature.js rename to plugins/frame/src/api/editFeature.js diff --git a/plugins/beta/frame/src/config.js b/plugins/frame/src/config.js similarity index 100% rename from plugins/beta/frame/src/config.js rename to plugins/frame/src/config.js diff --git a/plugins/beta/frame/src/frame.scss b/plugins/frame/src/frame.scss similarity index 100% rename from plugins/beta/frame/src/frame.scss rename to plugins/frame/src/frame.scss diff --git a/plugins/beta/frame/src/index.js b/plugins/frame/src/index.js similarity index 100% rename from plugins/beta/frame/src/index.js rename to plugins/frame/src/index.js diff --git a/plugins/beta/frame/src/manifest.js b/plugins/frame/src/manifest.js similarity index 100% rename from plugins/beta/frame/src/manifest.js rename to plugins/frame/src/manifest.js diff --git a/plugins/beta/frame/src/reducer.js b/plugins/frame/src/reducer.js similarity index 100% rename from plugins/beta/frame/src/reducer.js rename to plugins/frame/src/reducer.js diff --git a/plugins/beta/frame/src/utils.js b/plugins/frame/src/utils.js similarity index 100% rename from plugins/beta/frame/src/utils.js rename to plugins/frame/src/utils.js diff --git a/plugins/beta/map-styles/src/MapStyles.jsx b/plugins/map-styles/src/MapStyles.jsx similarity index 100% rename from plugins/beta/map-styles/src/MapStyles.jsx rename to plugins/map-styles/src/MapStyles.jsx diff --git a/plugins/beta/map-styles/src/MapStylesInit.jsx b/plugins/map-styles/src/MapStylesInit.jsx similarity index 100% rename from plugins/beta/map-styles/src/MapStylesInit.jsx rename to plugins/map-styles/src/MapStylesInit.jsx diff --git a/plugins/beta/map-styles/src/config.js b/plugins/map-styles/src/config.js similarity index 100% rename from plugins/beta/map-styles/src/config.js rename to plugins/map-styles/src/config.js diff --git a/plugins/beta/map-styles/src/index.js b/plugins/map-styles/src/index.js similarity index 100% rename from plugins/beta/map-styles/src/index.js rename to plugins/map-styles/src/index.js diff --git a/plugins/beta/map-styles/src/manifest.js b/plugins/map-styles/src/manifest.js similarity index 100% rename from plugins/beta/map-styles/src/manifest.js rename to plugins/map-styles/src/manifest.js diff --git a/plugins/beta/map-styles/src/mapStyles.scss b/plugins/map-styles/src/mapStyles.scss similarity index 100% rename from plugins/beta/map-styles/src/mapStyles.scss rename to plugins/map-styles/src/mapStyles.scss diff --git a/plugins/beta/scale-bar/package.json b/plugins/scale-bar/package.json similarity index 100% rename from plugins/beta/scale-bar/package.json rename to plugins/scale-bar/package.json diff --git a/plugins/beta/scale-bar/src/ScaleBar.jsx b/plugins/scale-bar/src/ScaleBar.jsx similarity index 100% rename from plugins/beta/scale-bar/src/ScaleBar.jsx rename to plugins/scale-bar/src/ScaleBar.jsx diff --git a/plugins/beta/scale-bar/src/ScaleBar.test.jsx b/plugins/scale-bar/src/ScaleBar.test.jsx similarity index 100% rename from plugins/beta/scale-bar/src/ScaleBar.test.jsx rename to plugins/scale-bar/src/ScaleBar.test.jsx diff --git a/plugins/beta/scale-bar/src/index.js b/plugins/scale-bar/src/index.js similarity index 100% rename from plugins/beta/scale-bar/src/index.js rename to plugins/scale-bar/src/index.js diff --git a/plugins/beta/scale-bar/src/index.test.js b/plugins/scale-bar/src/index.test.js similarity index 100% rename from plugins/beta/scale-bar/src/index.test.js rename to plugins/scale-bar/src/index.test.js diff --git a/plugins/beta/scale-bar/src/manifest.js b/plugins/scale-bar/src/manifest.js similarity index 100% rename from plugins/beta/scale-bar/src/manifest.js rename to plugins/scale-bar/src/manifest.js diff --git a/plugins/beta/scale-bar/src/scaleBar.scss b/plugins/scale-bar/src/scaleBar.scss similarity index 100% rename from plugins/beta/scale-bar/src/scaleBar.scss rename to plugins/scale-bar/src/scaleBar.scss diff --git a/plugins/beta/scale-bar/src/utils.js b/plugins/scale-bar/src/utils.js similarity index 100% rename from plugins/beta/scale-bar/src/utils.js rename to plugins/scale-bar/src/utils.js diff --git a/plugins/beta/scale-bar/src/utils.test.js b/plugins/scale-bar/src/utils.test.js similarity index 100% rename from plugins/beta/scale-bar/src/utils.test.js rename to plugins/scale-bar/src/utils.test.js diff --git a/plugins/beta/use-location/src/UseLocation.jsx b/plugins/use-location/src/UseLocation.jsx similarity index 100% rename from plugins/beta/use-location/src/UseLocation.jsx rename to plugins/use-location/src/UseLocation.jsx diff --git a/plugins/beta/use-location/src/UseLocationInit.jsx b/plugins/use-location/src/UseLocationInit.jsx similarity index 100% rename from plugins/beta/use-location/src/UseLocationInit.jsx rename to plugins/use-location/src/UseLocationInit.jsx diff --git a/plugins/beta/use-location/src/defaults.js b/plugins/use-location/src/defaults.js similarity index 100% rename from plugins/beta/use-location/src/defaults.js rename to plugins/use-location/src/defaults.js diff --git a/plugins/beta/use-location/src/events.js b/plugins/use-location/src/events.js similarity index 100% rename from plugins/beta/use-location/src/events.js rename to plugins/use-location/src/events.js diff --git a/plugins/beta/use-location/src/index.js b/plugins/use-location/src/index.js similarity index 100% rename from plugins/beta/use-location/src/index.js rename to plugins/use-location/src/index.js diff --git a/plugins/beta/use-location/src/manifest.js b/plugins/use-location/src/manifest.js similarity index 100% rename from plugins/beta/use-location/src/manifest.js rename to plugins/use-location/src/manifest.js diff --git a/plugins/beta/use-location/src/reducer.js b/plugins/use-location/src/reducer.js similarity index 100% rename from plugins/beta/use-location/src/reducer.js rename to plugins/use-location/src/reducer.js diff --git a/providers/beta/esri/src/appEvents.js b/providers/esri/src/appEvents.js similarity index 100% rename from providers/beta/esri/src/appEvents.js rename to providers/esri/src/appEvents.js diff --git a/providers/beta/esri/src/defaults.js b/providers/esri/src/defaults.js similarity index 100% rename from providers/beta/esri/src/defaults.js rename to providers/esri/src/defaults.js diff --git a/providers/beta/esri/src/esriProvider.js b/providers/esri/src/esriProvider.js similarity index 100% rename from providers/beta/esri/src/esriProvider.js rename to providers/esri/src/esriProvider.js diff --git a/providers/beta/esri/src/esriProvider.scss b/providers/esri/src/esriProvider.scss similarity index 100% rename from providers/beta/esri/src/esriProvider.scss rename to providers/esri/src/esriProvider.scss diff --git a/providers/beta/esri/src/index.js b/providers/esri/src/index.js similarity index 100% rename from providers/beta/esri/src/index.js rename to providers/esri/src/index.js diff --git a/providers/beta/esri/src/mapEvents.js b/providers/esri/src/mapEvents.js similarity index 100% rename from providers/beta/esri/src/mapEvents.js rename to providers/esri/src/mapEvents.js diff --git a/providers/beta/esri/src/utils/coords.js b/providers/esri/src/utils/coords.js similarity index 100% rename from providers/beta/esri/src/utils/coords.js rename to providers/esri/src/utils/coords.js diff --git a/providers/beta/esri/src/utils/coords.test.js b/providers/esri/src/utils/coords.test.js similarity index 100% rename from providers/beta/esri/src/utils/coords.test.js rename to providers/esri/src/utils/coords.test.js diff --git a/providers/beta/esri/src/utils/detectWebGL.js b/providers/esri/src/utils/detectWebGL.js similarity index 100% rename from providers/beta/esri/src/utils/detectWebGL.js rename to providers/esri/src/utils/detectWebGL.js diff --git a/providers/beta/esri/src/utils/esriFixes.js b/providers/esri/src/utils/esriFixes.js similarity index 100% rename from providers/beta/esri/src/utils/esriFixes.js rename to providers/esri/src/utils/esriFixes.js diff --git a/providers/beta/esri/src/utils/query.js b/providers/esri/src/utils/query.js similarity index 100% rename from providers/beta/esri/src/utils/query.js rename to providers/esri/src/utils/query.js diff --git a/providers/beta/esri/src/utils/spatial.js b/providers/esri/src/utils/spatial.js similarity index 100% rename from providers/beta/esri/src/utils/spatial.js rename to providers/esri/src/utils/spatial.js diff --git a/providers/beta/esri/src/utils/spatial.test.js b/providers/esri/src/utils/spatial.test.js similarity index 100% rename from providers/beta/esri/src/utils/spatial.test.js rename to providers/esri/src/utils/spatial.test.js diff --git a/providers/beta/open-names/src/index.js b/providers/open-names/src/index.js similarity index 100% rename from providers/beta/open-names/src/index.js rename to providers/open-names/src/index.js diff --git a/providers/beta/open-names/src/reverseGeocode.js b/providers/open-names/src/reverseGeocode.js similarity index 100% rename from providers/beta/open-names/src/reverseGeocode.js rename to providers/open-names/src/reverseGeocode.js diff --git a/providers/beta/open-names/src/utils/mapToLocationModel.js b/providers/open-names/src/utils/mapToLocationModel.js similarity index 100% rename from providers/beta/open-names/src/utils/mapToLocationModel.js rename to providers/open-names/src/utils/mapToLocationModel.js diff --git a/providers/beta/open-names/src/utils/mapToLocationModel.test.js b/providers/open-names/src/utils/mapToLocationModel.test.js similarity index 100% rename from providers/beta/open-names/src/utils/mapToLocationModel.test.js rename to providers/open-names/src/utils/mapToLocationModel.test.js diff --git a/providers/beta/openlayers/src/appEvents.js b/providers/openlayers/src/appEvents.js similarity index 100% rename from providers/beta/openlayers/src/appEvents.js rename to providers/openlayers/src/appEvents.js diff --git a/providers/beta/openlayers/src/appEvents.test.js b/providers/openlayers/src/appEvents.test.js similarity index 100% rename from providers/beta/openlayers/src/appEvents.test.js rename to providers/openlayers/src/appEvents.test.js diff --git a/providers/beta/openlayers/src/defaults.js b/providers/openlayers/src/defaults.js similarity index 100% rename from providers/beta/openlayers/src/defaults.js rename to providers/openlayers/src/defaults.js diff --git a/providers/beta/openlayers/src/index.js b/providers/openlayers/src/index.js similarity index 100% rename from providers/beta/openlayers/src/index.js rename to providers/openlayers/src/index.js diff --git a/providers/beta/openlayers/src/mapEvents.js b/providers/openlayers/src/mapEvents.js similarity index 100% rename from providers/beta/openlayers/src/mapEvents.js rename to providers/openlayers/src/mapEvents.js diff --git a/providers/beta/openlayers/src/mapEvents.test.js b/providers/openlayers/src/mapEvents.test.js similarity index 100% rename from providers/beta/openlayers/src/mapEvents.test.js rename to providers/openlayers/src/mapEvents.test.js diff --git a/providers/beta/openlayers/src/openlayersProvider.js b/providers/openlayers/src/openlayersProvider.js similarity index 100% rename from providers/beta/openlayers/src/openlayersProvider.js rename to providers/openlayers/src/openlayersProvider.js diff --git a/providers/beta/openlayers/src/openlayersProvider.test.js b/providers/openlayers/src/openlayersProvider.test.js similarity index 100% rename from providers/beta/openlayers/src/openlayersProvider.test.js rename to providers/openlayers/src/openlayersProvider.test.js diff --git a/providers/beta/openlayers/src/utils/highlightFeatures.js b/providers/openlayers/src/utils/highlightFeatures.js similarity index 100% rename from providers/beta/openlayers/src/utils/highlightFeatures.js rename to providers/openlayers/src/utils/highlightFeatures.js diff --git a/providers/beta/openlayers/src/utils/hoverCursor.js b/providers/openlayers/src/utils/hoverCursor.js similarity index 100% rename from providers/beta/openlayers/src/utils/hoverCursor.js rename to providers/openlayers/src/utils/hoverCursor.js diff --git a/providers/beta/openlayers/src/utils/hoverCursor.test.js b/providers/openlayers/src/utils/hoverCursor.test.js similarity index 100% rename from providers/beta/openlayers/src/utils/hoverCursor.test.js rename to providers/openlayers/src/utils/hoverCursor.test.js diff --git a/providers/beta/openlayers/src/utils/openLayersFixes.js b/providers/openlayers/src/utils/openLayersFixes.js similarity index 100% rename from providers/beta/openlayers/src/utils/openLayersFixes.js rename to providers/openlayers/src/utils/openLayersFixes.js diff --git a/providers/beta/openlayers/src/utils/openLayersFixes.test.js b/providers/openlayers/src/utils/openLayersFixes.test.js similarity index 100% rename from providers/beta/openlayers/src/utils/openLayersFixes.test.js rename to providers/openlayers/src/utils/openLayersFixes.test.js diff --git a/providers/beta/openlayers/src/utils/queryFeatures.js b/providers/openlayers/src/utils/queryFeatures.js similarity index 100% rename from providers/beta/openlayers/src/utils/queryFeatures.js rename to providers/openlayers/src/utils/queryFeatures.js diff --git a/providers/beta/openlayers/src/utils/queryFeatures.test.js b/providers/openlayers/src/utils/queryFeatures.test.js similarity index 100% rename from providers/beta/openlayers/src/utils/queryFeatures.test.js rename to providers/openlayers/src/utils/queryFeatures.test.js diff --git a/providers/beta/openlayers/src/utils/spatial.js b/providers/openlayers/src/utils/spatial.js similarity index 100% rename from providers/beta/openlayers/src/utils/spatial.js rename to providers/openlayers/src/utils/spatial.js diff --git a/providers/beta/openlayers/src/utils/spatial.test.js b/providers/openlayers/src/utils/spatial.test.js similarity index 100% rename from providers/beta/openlayers/src/utils/spatial.test.js rename to providers/openlayers/src/utils/spatial.test.js diff --git a/providers/beta/openlayers/src/utils/tileLayers.js b/providers/openlayers/src/utils/tileLayers.js similarity index 100% rename from providers/beta/openlayers/src/utils/tileLayers.js rename to providers/openlayers/src/utils/tileLayers.js diff --git a/providers/beta/openlayers/src/utils/tileLayers.test.js b/providers/openlayers/src/utils/tileLayers.test.js similarity index 100% rename from providers/beta/openlayers/src/utils/tileLayers.test.js rename to providers/openlayers/src/utils/tileLayers.test.js diff --git a/providers/beta/openlayers/src/utils/vtTileFragments.js b/providers/openlayers/src/utils/vtTileFragments.js similarity index 100% rename from providers/beta/openlayers/src/utils/vtTileFragments.js rename to providers/openlayers/src/utils/vtTileFragments.js diff --git a/providers/beta/openlayers/src/utils/zoom.js b/providers/openlayers/src/utils/zoom.js similarity index 100% rename from providers/beta/openlayers/src/utils/zoom.js rename to providers/openlayers/src/utils/zoom.js diff --git a/providers/beta/openlayers/src/utils/zoom.test.js b/providers/openlayers/src/utils/zoom.test.js similarity index 100% rename from providers/beta/openlayers/src/utils/zoom.test.js rename to providers/openlayers/src/utils/zoom.test.js From 12273a555ab8977ae8c92fd658dd09b7fa51522b Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:15:44 +0100 Subject: [PATCH 03/22] feat: add package.json to each provider Add package.json files for maplibre (stable), esri, openlayers, and open-names (beta) providers. Each declares @defra/interactive-map and required engine peer dependencies, with files field limiting published output to dist/ only. --- providers/esri/package.json | 26 ++++++++++++++++++++++++++ providers/maplibre/package.json | 26 ++++++++++++++++++++++++++ providers/open-names/package.json | 26 ++++++++++++++++++++++++++ providers/openlayers/package.json | 28 ++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 providers/esri/package.json create mode 100644 providers/maplibre/package.json create mode 100644 providers/open-names/package.json create mode 100644 providers/openlayers/package.json diff --git a/providers/esri/package.json b/providers/esri/package.json new file mode 100644 index 00000000..8ff9a30a --- /dev/null +++ b/providers/esri/package.json @@ -0,0 +1,26 @@ +{ + "name": "@defra/interactive-map-provider-esri", + "version": "0.0.0-development", + "description": "ArcGIS/ESRI provider for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "providers/esri" + }, + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js" + }, + "./css": "./dist/css/index.css" + }, + "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*", + "@arcgis/core": "^5.0.9" + }, + "license": "" +} diff --git a/providers/maplibre/package.json b/providers/maplibre/package.json new file mode 100644 index 00000000..5231a847 --- /dev/null +++ b/providers/maplibre/package.json @@ -0,0 +1,26 @@ +{ + "name": "@defra/interactive-map-provider-maplibre", + "version": "0.0.0-development", + "description": "MapLibre GL JS provider for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "providers/maplibre" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + } + }, + "type": "module", + "files": ["dist"], + "sideEffects": false, + "peerDependencies": { + "@defra/interactive-map": "*", + "maplibre-gl": "^5.23.0" + }, + "license": "" +} diff --git a/providers/open-names/package.json b/providers/open-names/package.json new file mode 100644 index 00000000..3316543b --- /dev/null +++ b/providers/open-names/package.json @@ -0,0 +1,26 @@ +{ + "name": "@defra/interactive-map-provider-open-names", + "version": "0.0.0-development", + "description": "OS Open Names search provider for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "providers/open-names" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + } + }, + "type": "module", + "files": ["dist"], + "sideEffects": false, + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*" + }, + "license": "" +} diff --git a/providers/openlayers/package.json b/providers/openlayers/package.json new file mode 100644 index 00000000..ee6df107 --- /dev/null +++ b/providers/openlayers/package.json @@ -0,0 +1,28 @@ +{ + "name": "@defra/interactive-map-provider-openlayers", + "version": "0.0.0-development", + "description": "OpenLayers provider for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "providers/openlayers" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + } + }, + "type": "module", + "files": ["dist"], + "sideEffects": false, + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*", + "ol": "^10.9.0", + "proj4": "^2.20.8" + }, + "license": "" +} From 03525327974dc48b4067edb4049310779ed6e8a4 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:20:25 +0100 Subject: [PATCH 04/22] feat: add package.json to engine-agnostic plugins --- plugins/datasets/package.json | 28 +++++++++++++++++++++++ plugins/frame/package.json | 37 +++++++++++++++---------------- plugins/interact/package.json | 26 ++++++++++++++++++++++ plugins/map-styles/package.json | 27 ++++++++++++++++++++++ plugins/scale-bar/package.json | 37 +++++++++++++++---------------- plugins/search/package.json | 26 ++++++++++++++++++++++ plugins/use-location/package.json | 26 ++++++++++++++++++++++ 7 files changed, 169 insertions(+), 38 deletions(-) create mode 100644 plugins/datasets/package.json create mode 100644 plugins/interact/package.json create mode 100644 plugins/map-styles/package.json create mode 100644 plugins/search/package.json create mode 100644 plugins/use-location/package.json diff --git a/plugins/datasets/package.json b/plugins/datasets/package.json new file mode 100644 index 00000000..22de8712 --- /dev/null +++ b/plugins/datasets/package.json @@ -0,0 +1,28 @@ +{ + "name": "@defra/interactive-map-plugin-datasets", + "version": "0.0.0-development", + "description": "Datasets plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/datasets" + }, + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js" + }, + "./adapters/maplibre": { + "import": "./dist/adapters/maplibre/esm/index.js" + }, + "./css": "./dist/css/index.css" + }, + "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*" + }, + "license": "" +} diff --git a/plugins/frame/package.json b/plugins/frame/package.json index 3ef0c778..8bdb7cad 100644 --- a/plugins/frame/package.json +++ b/plugins/frame/package.json @@ -1,28 +1,27 @@ { - "name": "@defra/frame-plugin", - "version": "1.0.0-alpha.1", + "name": "@defra/interactive-map-plugin-frame", + "version": "0.0.0-development", + "description": "Frame plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/frame" + }, "main": "dist/umd/index.js", "module": "dist/esm/index.js", "exports": { - "import": "./dist/esm/index.js", - "require": "./dist/umd/index.js" + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + }, + "./css": "./dist/css/index.css" }, "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "publishConfig": { "tag": "beta" }, "peerDependencies": { - "react": "^19.2.0", - "react-dom": "^19.2.0", - "preact": "^10.27.0" - }, - "peerDependenciesMeta": { - "react": { "optional": true }, - "react-dom": { "optional": true } - }, - "scripts": { - "build:umd": "webpack --config ../../../webpack.umd.js --mode production", - "build:esm": "webpack --config ../../../webpack.esm.mjs --mode production", - "build": "npm run build:umd && npm run build:esm", - "clean": "rm -rf dist" + "@defra/interactive-map": "*" }, - "devDependencies": {}, - "dependencies": {} + "license": "" } diff --git a/plugins/interact/package.json b/plugins/interact/package.json new file mode 100644 index 00000000..4b890e6c --- /dev/null +++ b/plugins/interact/package.json @@ -0,0 +1,26 @@ +{ + "name": "@defra/interactive-map-plugin-interact", + "version": "0.0.0-development", + "description": "Interact plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/interact" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + }, + "./css": "./dist/css/index.css" + }, + "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "peerDependencies": { + "@defra/interactive-map": "*" + }, + "license": "" +} diff --git a/plugins/map-styles/package.json b/plugins/map-styles/package.json new file mode 100644 index 00000000..5c4ed560 --- /dev/null +++ b/plugins/map-styles/package.json @@ -0,0 +1,27 @@ +{ + "name": "@defra/interactive-map-plugin-map-styles", + "version": "0.0.0-development", + "description": "Map styles plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/map-styles" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + }, + "./css": "./dist/css/index.css" + }, + "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*" + }, + "license": "" +} diff --git a/plugins/scale-bar/package.json b/plugins/scale-bar/package.json index f054c8c5..d20db11a 100644 --- a/plugins/scale-bar/package.json +++ b/plugins/scale-bar/package.json @@ -1,28 +1,27 @@ { - "name": "@defra/scale-bar-plugin", - "version": "1.0.0-alpha.1", + "name": "@defra/interactive-map-plugin-scale-bar", + "version": "0.0.0-development", + "description": "Scale bar plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/scale-bar" + }, "main": "dist/umd/index.js", "module": "dist/esm/index.js", "exports": { - "import": "./dist/esm/index.js", - "require": "./dist/umd/index.js" + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + }, + "./css": "./dist/css/index.css" }, "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "publishConfig": { "tag": "beta" }, "peerDependencies": { - "react": "^19.2.0", - "react-dom": "^19.2.0", - "preact": "^10.27.0" - }, - "peerDependenciesMeta": { - "react": { "optional": true }, - "react-dom": { "optional": true } - }, - "scripts": { - "build:umd": "webpack --config ../../../webpack.umd.js --mode production", - "build:esm": "webpack --config ../../../webpack.esm.mjs --mode production", - "build": "npm run build:umd && npm run build:esm", - "clean": "rm -rf dist" + "@defra/interactive-map": "*" }, - "devDependencies": {}, - "dependencies": {} + "license": "" } diff --git a/plugins/search/package.json b/plugins/search/package.json new file mode 100644 index 00000000..0346493b --- /dev/null +++ b/plugins/search/package.json @@ -0,0 +1,26 @@ +{ + "name": "@defra/interactive-map-plugin-search", + "version": "0.0.0-development", + "description": "Search plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/search" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + }, + "./css": "./dist/css/index.css" + }, + "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "peerDependencies": { + "@defra/interactive-map": "*" + }, + "license": "" +} diff --git a/plugins/use-location/package.json b/plugins/use-location/package.json new file mode 100644 index 00000000..675406b2 --- /dev/null +++ b/plugins/use-location/package.json @@ -0,0 +1,26 @@ +{ + "name": "@defra/interactive-map-plugin-use-location", + "version": "0.0.0-development", + "description": "Use-location plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/use-location" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + } + }, + "type": "module", + "files": ["dist"], + "sideEffects": false, + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*" + }, + "license": "" +} From 7c4826dcb41b184d77447aaad9b96f943681ec40 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:25:55 +0100 Subject: [PATCH 05/22] feat: add package.json to engine-coupled plugins --- plugins/draw-es/package.json | 25 +++++++++++++++++++++++++ plugins/draw-ml/package.json | 28 ++++++++++++++++++++++++++++ plugins/draw-ol/package.json | 27 +++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 plugins/draw-es/package.json create mode 100644 plugins/draw-ml/package.json create mode 100644 plugins/draw-ol/package.json diff --git a/plugins/draw-es/package.json b/plugins/draw-es/package.json new file mode 100644 index 00000000..ac1eed3f --- /dev/null +++ b/plugins/draw-es/package.json @@ -0,0 +1,25 @@ +{ + "name": "@defra/interactive-map-plugin-draw-es", + "version": "0.0.0-development", + "description": "ArcGIS/ESRI draw plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/draw-es" + }, + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js" + } + }, + "type": "module", + "files": ["dist"], + "sideEffects": false, + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*", + "@arcgis/core": "^5.0.9" + }, + "license": "" +} diff --git a/plugins/draw-ml/package.json b/plugins/draw-ml/package.json new file mode 100644 index 00000000..3e37039f --- /dev/null +++ b/plugins/draw-ml/package.json @@ -0,0 +1,28 @@ +{ + "name": "@defra/interactive-map-plugin-draw-ml", + "version": "0.0.0-development", + "description": "MapLibre draw plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/draw-ml" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + }, + "./css": "./dist/css/index.css" + }, + "type": "module", + "files": ["dist"], + "sideEffects": ["**/*.css"], + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*", + "maplibre-gl": "^5.23.0" + }, + "license": "" +} diff --git a/plugins/draw-ol/package.json b/plugins/draw-ol/package.json new file mode 100644 index 00000000..a97fdc01 --- /dev/null +++ b/plugins/draw-ol/package.json @@ -0,0 +1,27 @@ +{ + "name": "@defra/interactive-map-plugin-draw-ol", + "version": "0.0.0-development", + "description": "OpenLayers draw plugin for @defra/interactive-map", + "repository": { + "type": "git", + "url": "https://github.com/DEFRA/interactive-map", + "directory": "plugins/draw-ol" + }, + "main": "dist/umd/index.js", + "module": "dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/umd/index.js" + } + }, + "type": "module", + "files": ["dist"], + "sideEffects": false, + "publishConfig": { "tag": "beta" }, + "peerDependencies": { + "@defra/interactive-map": "*", + "ol": "^10.9.0" + }, + "license": "" +} From f6dda29a207e0034760f01a9e1d886d3212bceb2 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:27:33 +0100 Subject: [PATCH 06/22] feat: add workspaces, trim exports, remove engine peer deps from root --- package.json | 86 +++------------------------------------------------- 1 file changed, 5 insertions(+), 81 deletions(-) diff --git a/package.json b/package.json index bbba9d0e..68f3175a 100755 --- a/package.json +++ b/package.json @@ -6,6 +6,10 @@ "type": "git", "url": "https://github.com/DEFRA/interactive-map" }, + "workspaces": [ + "providers/*", + "plugins/*" + ], "main": "dist/umd/index.js", "module": "dist/esm/index.js", "exports": { @@ -13,67 +17,7 @@ "import": "./dist/esm/index.js", "require": "./dist/umd/index.js" }, - "./providers/maplibre": { - "import": "./providers/maplibre/dist/esm/index.js", - "require": "./providers/maplibre/dist/umd/index.js" - }, - "./providers/open-names": { - "import": "./providers/beta/open-names/dist/esm/index.js", - "require": "./providers/beta/open-names/dist/umd/index.js" - }, - "./providers/esri": { - "import": "./providers/beta/esri/dist/esm/index.js" - }, - "./providers/openlayers": { - "import": "./providers/beta/openlayers/dist/esm/index.js", - "require": "./providers/beta/openlayers/dist/umd/index.js" - }, - "./plugins/scale-bar": { - "import": "./plugins/beta/scale-bar/dist/esm/index.js", - "require": "./plugins/beta/scale-bar/dist/umd/index.js" - }, - "./plugins/use-location": { - "import": "./plugins/beta/use-location/dist/esm/index.js", - "require": "./plugins/beta/use-location/dist/umd/index.js" - }, - "./plugins/search": { - "import": "./plugins/search/dist/esm/index.js", - "require": "./plugins/search/dist/umd/index.js" - }, - "./plugins/interact": { - "import": "./plugins/interact/dist/esm/index.js", - "require": "./plugins/interact/dist/umd/index.js" - }, - "./plugins/datasets": { - "import": "./plugins/beta/datasets/dist/esm/index.js" - }, - "./plugins/datasets/adapters/maplibre": { - "import": "./plugins/beta/datasets/dist/adapters/maplibre/esm/index.js" - }, - "./plugins/map-styles": { - "import": "./plugins/beta/map-styles/dist/esm/index.js", - "require": "./plugins/beta/map-styles/dist/umd/index.js" - }, - "./plugins/draw-ml": { - "import": "./plugins/beta/draw-ml/dist/esm/index.js", - "require": "./plugins/beta/draw-ml/dist/umd/index.js" - }, - "./plugins/draw-es": { - "import": "./plugins/beta/draw-es/dist/esm/index.js" - }, - "./plugins/frame": { - "import": "./plugins/beta/frame/dist/esm/index.js", - "require": "./plugins/beta/frame/dist/umd/index.js" - }, - "./css": "./dist/css/index.css", - "./plugins/draw-ml/css": "./plugins/beta/draw-ml/dist/css/index.css", - "./plugins/scale-bar/css": "./plugins/beta/scale-bar/dist/css/index.css", - "./plugins/datasets/css": "./plugins/beta/datasets/dist/css/index.css", - "./plugins/frame/css": "./plugins/beta/frame/dist/css/index.css", - "./plugins/map-styles/css": "./plugins/beta/map-styles/dist/css/index.css", - "./plugins/search/css": "./plugins/search/dist/css/index.css", - "./plugins/interact/css": "./plugins/interact/dist/css/index.css", - "./providers/esri/css": "./providers/beta/esri/dist/css/index.css" + "./css": "./dist/css/index.css" }, "type": "module", "sideEffects": [ @@ -119,26 +63,6 @@ "node_modules" ] }, - "peerDependencies": { - "@arcgis/core": "^5.0.9", - "maplibre-gl": "^5.23.0", - "ol": "^10.9.0", - "proj4": "^2.20.8" - }, - "peerDependenciesMeta": { - "@arcgis/core": { - "optional": true - }, - "maplibre-gl": { - "optional": true - }, - "ol": { - "optional": true - }, - "proj4": { - "optional": true - } - }, "devDependencies": { "@arcgis/core": "^5.0.9", "@babel/core": "^7.28.0", From 719625d5affaa46fcb3029be5ab7aa2e00faee97 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:31:52 +0100 Subject: [PATCH 07/22] fix: update beta/ paths to flat paths in jest coveragePathIgnorePatterns --- jest.config.mjs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/jest.config.mjs b/jest.config.mjs index a33d594e..6a1aee23 100755 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -26,14 +26,16 @@ export default { '/coverage', '/demo', '/src/test-utils.js', - '/plugins/beta/datasets/', - '/providers/beta/', - '/plugins/beta/draw-es', - '/plugins/beta/draw-ml', - '/plugins/beta/frame', - '/plugins/beta/map-styles', - '/plugins/beta/scale-bar', - '/plugins/beta/use-location', + '/plugins/datasets/', + '/providers/esri/', + '/providers/openlayers/', + '/providers/open-names/', + '/plugins/draw-es/', + '/plugins/draw-ml/', + '/plugins/frame/', + '/plugins/map-styles/', + '/plugins/scale-bar/', + '/plugins/use-location/', '/.docusaurus', '/build/assets/js', '/dist/' From fac5193bbd232090158a36f7f77f326ba2987c4f Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:32:40 +0100 Subject: [PATCH 08/22] fix: remove beta/ from rollup build paths --- rollup.esm.mjs | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/rollup.esm.mjs b/rollup.esm.mjs index f9cfef48..f560f685 100644 --- a/rollup.esm.mjs +++ b/rollup.esm.mjs @@ -220,18 +220,18 @@ const ALL_BUILDS = [ manualChunks: (id) => { if (id.includes('/maplibreProvider')) return 'im-maplibre-provider' } }, { - entryPath: './providers/beta/open-names/src/index.js', - outDir: 'providers/beta/open-names/dist/esm', + entryPath: './providers/open-names/src/index.js', + outDir: 'providers/open-names/dist/esm', manualChunks: (id) => { if (id.includes('/reverseGeocode')) return 'im-reverse-geocode' } }, { - entryPath: './providers/beta/esri/src/index.js', - outDir: 'providers/beta/esri/dist/esm', + entryPath: './providers/esri/src/index.js', + outDir: 'providers/esri/dist/esm', manualChunks: (id) => { if (id.includes('/esriProvider')) return 'im-esri-provider' } }, { - entryPath: './providers/beta/openlayers/src/index.js', - outDir: 'providers/beta/openlayers/dist/esm', + entryPath: './providers/openlayers/src/index.js', + outDir: 'providers/openlayers/dist/esm', extraExternals: [/^ol\//, 'proj4'], manualChunks: (id) => { if (id.includes('/openlayersProvider')) { @@ -242,13 +242,13 @@ const ALL_BUILDS = [ // Plugins — each lazy-loads ./manifest.js; manualChunks names that split chunk { - entryPath: './plugins/beta/scale-bar/src/index.js', - outDir: 'plugins/beta/scale-bar/dist/esm', + entryPath: './plugins/scale-bar/src/index.js', + outDir: 'plugins/scale-bar/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-scale-bar-plugin' } }, { - entryPath: './plugins/beta/use-location/src/index.js', - outDir: 'plugins/beta/use-location/dist/esm', + entryPath: './plugins/use-location/src/index.js', + outDir: 'plugins/use-location/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-use-location-plugin' } }, { @@ -262,37 +262,37 @@ const ALL_BUILDS = [ manualChunks: (id) => { if (id.includes('/manifest')) return 'im-interact-plugin' } }, { - entryPath: './plugins/beta/datasets/src/index.js', - outDir: 'plugins/beta/datasets/dist/esm', + entryPath: './plugins/datasets/src/index.js', + outDir: 'plugins/datasets/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-datasets-plugin' if (id.includes('maplibreLayerAdapter')) return 'im-datasets-ml-adapter' } }, { - entryPath: './plugins/beta/map-styles/src/index.js', - outDir: 'plugins/beta/map-styles/dist/esm', + entryPath: './plugins/map-styles/src/index.js', + outDir: 'plugins/map-styles/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-map-styles-plugin' } }, { - entryPath: './plugins/beta/draw-ml/src/index.js', - outDir: 'plugins/beta/draw-ml/dist/esm', + entryPath: './plugins/draw-ml/src/index.js', + outDir: 'plugins/draw-ml/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-draw-ml-plugin' } }, { - entryPath: './plugins/beta/draw-es/src/index.js', - outDir: 'plugins/beta/draw-es/dist/esm', + entryPath: './plugins/draw-es/src/index.js', + outDir: 'plugins/draw-es/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-draw-es-plugin' } }, { - entryPath: './plugins/beta/draw-ol/src/index.js', - outDir: 'plugins/beta/draw-ol/dist/esm', + entryPath: './plugins/draw-ol/src/index.js', + outDir: 'plugins/draw-ol/dist/esm', extraExternals: [/^ol\//], manualChunks: (id) => { if (id.includes('/manifest')) return 'im-draw-ol-plugin' } }, { - entryPath: './plugins/beta/frame/src/index.js', - outDir: 'plugins/beta/frame/dist/esm', + entryPath: './plugins/frame/src/index.js', + outDir: 'plugins/frame/dist/esm', manualChunks: (id) => { if (id.includes('/manifest')) return 'im-frame-plugin' } } ] From b209019b37017b96bee53d8586d999c059cb29ba Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Tue, 9 Jun 2026 16:33:14 +0100 Subject: [PATCH 09/22] fix: remove beta/ from webpack build paths --- webpack.umd.mjs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/webpack.umd.mjs b/webpack.umd.mjs index 3704729f..6804b533 100755 --- a/webpack.umd.mjs +++ b/webpack.umd.mjs @@ -136,18 +136,18 @@ const ALL_BUILDS = [ // Providers { entryPath: './providers/maplibre/src/index.js', libraryPath: 'maplibreProvider', outDir: 'providers/maplibre/dist/umd' }, - { entryPath: './providers/beta/open-names/src/index.js', libraryPath: 'openNamesProvider', outDir: 'providers/beta/open-names/dist/umd' }, - { entryPath: './providers/beta/openlayers/src/index.js', libraryPath: 'openLayersProvider', outDir: 'providers/beta/openlayers/dist/umd' }, + { entryPath: './providers/open-names/src/index.js', libraryPath: 'openNamesProvider', outDir: 'providers/open-names/dist/umd' }, + { entryPath: './providers/openlayers/src/index.js', libraryPath: 'openLayersProvider', outDir: 'providers/openlayers/dist/umd' }, // Plugins - { entryPath: './plugins/beta/scale-bar/src/index.js', libraryPath: 'scaleBarPlugin', outDir: 'plugins/beta/scale-bar/dist/umd' }, - { entryPath: './plugins/beta/use-location/src/index.js', libraryPath: 'useLocationPlugin', outDir: 'plugins/beta/use-location/dist/umd' }, + { entryPath: './plugins/scale-bar/src/index.js', libraryPath: 'scaleBarPlugin', outDir: 'plugins/scale-bar/dist/umd' }, + { entryPath: './plugins/use-location/src/index.js', libraryPath: 'useLocationPlugin', outDir: 'plugins/use-location/dist/umd' }, { entryPath: './plugins/search/src/index.js', libraryPath: 'searchPlugin', outDir: 'plugins/search/dist/umd' }, { entryPath: './plugins/interact/src/index.js', libraryPath: 'interactPlugin', outDir: 'plugins/interact/dist/umd' }, - { entryPath: './plugins/beta/datasets/src/index.js', libraryPath: 'datasetsPlugin', outDir: 'plugins/beta/datasets/dist/umd', cssOutDir: 'plugins/beta/datasets/dist' }, - { entryPath: './plugins/beta/map-styles/src/index.js', libraryPath: 'mapStylesPlugin', outDir: 'plugins/beta/map-styles/dist/umd' }, - { entryPath: './plugins/beta/draw-ml/src/index.js', libraryPath: 'drawMLPlugin', outDir: 'plugins/beta/draw-ml/dist/umd' }, - { entryPath: './plugins/beta/frame/src/index.js', libraryPath: 'framePlugin', outDir: 'plugins/beta/frame/dist/umd' } + { entryPath: './plugins/datasets/src/index.js', libraryPath: 'datasetsPlugin', outDir: 'plugins/datasets/dist/umd', cssOutDir: 'plugins/datasets/dist' }, + { entryPath: './plugins/map-styles/src/index.js', libraryPath: 'mapStylesPlugin', outDir: 'plugins/map-styles/dist/umd' }, + { entryPath: './plugins/draw-ml/src/index.js', libraryPath: 'drawMLPlugin', outDir: 'plugins/draw-ml/dist/umd' }, + { entryPath: './plugins/frame/src/index.js', libraryPath: 'framePlugin', outDir: 'plugins/frame/dist/umd' } ] // === Filter via environment variable === From b9cca0d5787239f4268e80ed4a19bb0f809d85fe Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 09:37:18 +0100 Subject: [PATCH 10/22] fix: update relative import paths after beta/ directory flatten --- plugins/datasets/src/adapters/maplibre/layerBuilders.js | 4 ++-- .../src/adapters/maplibre/maplibreLayerAdapter.test.js | 4 ++-- .../src/adapters/maplibre/registry/mapLibreDataset.js | 4 ++-- plugins/datasets/src/api/getOpacity.js | 2 +- plugins/datasets/src/api/getOpacity.test.js | 4 ++-- plugins/datasets/src/api/getStyle.js | 2 +- plugins/datasets/src/api/getStyle.test.js | 4 ++-- plugins/datasets/src/api/setData.js | 2 +- plugins/datasets/src/api/setData.test.js | 4 ++-- plugins/datasets/src/api/setGlobals.js | 2 +- plugins/datasets/src/api/setGlobals.test.js | 4 ++-- plugins/datasets/src/components/Key/KeyItem.jsx | 2 +- plugins/datasets/src/components/Key/KeySvg.test.jsx | 4 ++-- plugins/datasets/src/components/Key/KeySvgLine.jsx | 2 +- plugins/datasets/src/components/Key/KeySvgLine.test.jsx | 4 ++-- plugins/datasets/src/components/Key/KeySvgPattern.test.jsx | 2 +- plugins/datasets/src/components/Key/KeySvgRect.jsx | 2 +- plugins/datasets/src/components/Key/KeySvgRect.test.jsx | 4 ++-- plugins/datasets/src/components/Key/KeySvgSymbol.jsx | 2 +- plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx | 4 ++-- plugins/datasets/src/initialise/DatasetsInit.jsx | 2 +- plugins/datasets/src/reducers/pluginState.js | 2 +- plugins/datasets/src/reducers/pluginState.test.js | 4 ++-- plugins/datasets/src/registry/dataset.js | 2 +- plugins/draw-es/src/DrawInit.jsx | 2 +- plugins/draw-es/src/events.test.js | 2 +- plugins/draw-ml/src/DrawInit.jsx | 2 +- plugins/draw-ol/src/DrawInit.jsx | 2 +- plugins/map-styles/src/MapStyles.jsx | 4 ++-- plugins/map-styles/src/MapStylesInit.jsx | 2 +- providers/esri/src/mapEvents.js | 4 ++-- providers/openlayers/src/mapEvents.js | 4 ++-- providers/openlayers/src/mapEvents.test.js | 4 ++-- 33 files changed, 49 insertions(+), 49 deletions(-) diff --git a/plugins/datasets/src/adapters/maplibre/layerBuilders.js b/plugins/datasets/src/adapters/maplibre/layerBuilders.js index f4c59a6c..fba15763 100644 --- a/plugins/datasets/src/adapters/maplibre/layerBuilders.js +++ b/plugins/datasets/src/adapters/maplibre/layerBuilders.js @@ -1,5 +1,5 @@ -import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle.js' -import { getSymbolAnchor } from '../../../../../../src/utils/symbolUtils.js' +import { getValueForStyle } from '../../../../../src/utils/getValueForStyle.js' +import { getSymbolAnchor } from '../../../../../src/utils/symbolUtils.js' // ─── Fill layer ─────────────────────────────────────────────────────────────── diff --git a/plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js b/plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js index 247d1b54..feeaf4ae 100644 --- a/plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js +++ b/plugins/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js @@ -1,8 +1,8 @@ import MaplibreLayerAdapter from './maplibreLayerAdapter.js' import { MapLibreDataset } from './registry/mapLibreDataset.js' import { datasetRegistry } from '../../registry/datasetRegistry.js' -import { symbolRegistry } from '../../../../../../src/services/symbolRegistry.js' -import { patternRegistry } from '../../../../../../src/services/patternRegistry.js' +import { symbolRegistry } from '../../../../../src/services/symbolRegistry.js' +import { patternRegistry } from '../../../../../src/services/patternRegistry.js' jest.mock('../../registry/datasetRegistry.js') diff --git a/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.js b/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.js index 9c1f705b..06f03d39 100644 --- a/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.js +++ b/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.js @@ -1,6 +1,6 @@ import { Dataset } from '../../../registry/dataset.js' -import { hashString } from '../../../../../../../src/utils/patternUtils.js' -import { anchorToMaplibre } from '../../../../../../../providers/maplibre/src/utils/symbolImages.js' +import { hashString } from '../../../../../../src/utils/patternUtils.js' +import { anchorToMaplibre } from '../../../../../../providers/maplibre/src/utils/symbolImages.js' const MAX_TILE_ZOOM = 22 export class MapLibreDataset extends Dataset { diff --git a/plugins/datasets/src/api/getOpacity.js b/plugins/datasets/src/api/getOpacity.js index 53b9fb61..58c9b1c1 100644 --- a/plugins/datasets/src/api/getOpacity.js +++ b/plugins/datasets/src/api/getOpacity.js @@ -1,4 +1,4 @@ -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' import { datasetRegistry } from '../registry/datasetRegistry.js' export const getOpacity = ({ pluginState: { globals } }, options = {}) => { diff --git a/plugins/datasets/src/api/getOpacity.test.js b/plugins/datasets/src/api/getOpacity.test.js index a1e943e0..43e1286e 100644 --- a/plugins/datasets/src/api/getOpacity.test.js +++ b/plugins/datasets/src/api/getOpacity.test.js @@ -1,12 +1,12 @@ import { getOpacity } from './getOpacity.js' import { datasetRegistry } from '../registry/datasetRegistry.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' jest.mock('../registry/datasetRegistry.js', () => ({ datasetRegistry: { getDataset: jest.fn() } })) -jest.mock('../../../../../src/services/logger.js', () => ({ +jest.mock('../../../../src/services/logger.js', () => ({ logger: { warn: jest.fn() } })) diff --git a/plugins/datasets/src/api/getStyle.js b/plugins/datasets/src/api/getStyle.js index 0a6cd1c9..6ecfc39a 100644 --- a/plugins/datasets/src/api/getStyle.js +++ b/plugins/datasets/src/api/getStyle.js @@ -1,4 +1,4 @@ -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' import { datasetRegistry } from '../registry/datasetRegistry.js' export const getStyle = ({ pluginState }, { datasetId, sublayerId } = {}) => { diff --git a/plugins/datasets/src/api/getStyle.test.js b/plugins/datasets/src/api/getStyle.test.js index fc1b6232..3771cbdc 100644 --- a/plugins/datasets/src/api/getStyle.test.js +++ b/plugins/datasets/src/api/getStyle.test.js @@ -1,12 +1,12 @@ import { getStyle } from './getStyle.js' import { datasetRegistry } from '../registry/datasetRegistry.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' jest.mock('../registry/datasetRegistry.js', () => ({ datasetRegistry: { getDataset: jest.fn() } })) -jest.mock('../../../../../src/services/logger.js', () => ({ +jest.mock('../../../../src/services/logger.js', () => ({ logger: { warn: jest.fn() } })) diff --git a/plugins/datasets/src/api/setData.js b/plugins/datasets/src/api/setData.js index cf0ee23b..f5485fc8 100644 --- a/plugins/datasets/src/api/setData.js +++ b/plugins/datasets/src/api/setData.js @@ -1,4 +1,4 @@ -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' import { datasetRegistry } from '../registry/datasetRegistry.js' import { layerAdapter } from '../adapters/loadLayerAdapter.js' diff --git a/plugins/datasets/src/api/setData.test.js b/plugins/datasets/src/api/setData.test.js index 80b18142..2b2f2927 100644 --- a/plugins/datasets/src/api/setData.test.js +++ b/plugins/datasets/src/api/setData.test.js @@ -1,6 +1,6 @@ import { setData } from './setData.js' import { datasetRegistry } from '../registry/datasetRegistry.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' import { layerAdapter } from '../adapters/loadLayerAdapter.js' jest.mock('../adapters/loadLayerAdapter.js', () => ({ @@ -13,7 +13,7 @@ jest.mock('../registry/datasetRegistry.js', () => ({ datasetRegistry: { getDataset: jest.fn() } })) -jest.mock('../../../../../src/services/logger.js', () => ({ +jest.mock('../../../../src/services/logger.js', () => ({ logger: { warn: jest.fn() } })) diff --git a/plugins/datasets/src/api/setGlobals.js b/plugins/datasets/src/api/setGlobals.js index 10195266..99c16d90 100644 --- a/plugins/datasets/src/api/setGlobals.js +++ b/plugins/datasets/src/api/setGlobals.js @@ -1,4 +1,4 @@ -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' export const setGlobals = ({ pluginState: { dispatch } }, values) => { const { opacityMode } = values const payload = {} diff --git a/plugins/datasets/src/api/setGlobals.test.js b/plugins/datasets/src/api/setGlobals.test.js index bb0e1651..e71bde00 100644 --- a/plugins/datasets/src/api/setGlobals.test.js +++ b/plugins/datasets/src/api/setGlobals.test.js @@ -1,7 +1,7 @@ import { setGlobals } from './setGlobals.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' -jest.mock('../../../../../src/services/logger.js', () => ({ +jest.mock('../../../../src/services/logger.js', () => ({ logger: { warn: jest.fn() } })) diff --git a/plugins/datasets/src/components/Key/KeyItem.jsx b/plugins/datasets/src/components/Key/KeyItem.jsx index f931a7dc..57035f11 100644 --- a/plugins/datasets/src/components/Key/KeyItem.jsx +++ b/plugins/datasets/src/components/Key/KeyItem.jsx @@ -1,4 +1,4 @@ -import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle.js' +import { getValueForStyle } from '../../../../../src/utils/getValueForStyle.js' import { KeySvg } from './KeySvg.jsx' export const KeyItem = ({ registryDataset, symbolRegistry, patternRegistry, mapStyle }) => { diff --git a/plugins/datasets/src/components/Key/KeySvg.test.jsx b/plugins/datasets/src/components/Key/KeySvg.test.jsx index 494e9c4f..4020fd16 100644 --- a/plugins/datasets/src/components/Key/KeySvg.test.jsx +++ b/plugins/datasets/src/components/Key/KeySvg.test.jsx @@ -1,8 +1,8 @@ import { render } from '@testing-library/react' import { KeySvg } from './KeySvg' -import { symbolRegistry } from '../../../../../../src/services/symbolRegistry.js' -import { patternRegistry } from '../../../../../../src/services/patternRegistry.js' +import { symbolRegistry } from '../../../../../src/services/symbolRegistry.js' +import { patternRegistry } from '../../../../../src/services/patternRegistry.js' const getSymbolDef = jest.spyOn(symbolRegistry, 'getSymbolDef') diff --git a/plugins/datasets/src/components/Key/KeySvgLine.jsx b/plugins/datasets/src/components/Key/KeySvgLine.jsx index 13fb3d87..7d5b165a 100644 --- a/plugins/datasets/src/components/Key/KeySvgLine.jsx +++ b/plugins/datasets/src/components/Key/KeySvgLine.jsx @@ -1,5 +1,5 @@ import { svgProps, SVG_SIZE, SVG_CENTER } from './svgProperties.js' -import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle.js' +import { getValueForStyle } from '../../../../../src/utils/getValueForStyle.js' export const KeySvgLine = ({ mapStyle, registryDataset }) => { const { style } = registryDataset diff --git a/plugins/datasets/src/components/Key/KeySvgLine.test.jsx b/plugins/datasets/src/components/Key/KeySvgLine.test.jsx index 866aa330..4a596b80 100644 --- a/plugins/datasets/src/components/Key/KeySvgLine.test.jsx +++ b/plugins/datasets/src/components/Key/KeySvgLine.test.jsx @@ -1,9 +1,9 @@ import { render } from '@testing-library/react' import { KeySvgLine } from './KeySvgLine' -import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle' +import { getValueForStyle } from '../../../../../src/utils/getValueForStyle' -jest.mock('../../../../../../src/utils/getValueForStyle', () => ({ +jest.mock('../../../../../src/utils/getValueForStyle', () => ({ getValueForStyle: jest.fn((value) => value) })) diff --git a/plugins/datasets/src/components/Key/KeySvgPattern.test.jsx b/plugins/datasets/src/components/Key/KeySvgPattern.test.jsx index c806168a..209d9953 100644 --- a/plugins/datasets/src/components/Key/KeySvgPattern.test.jsx +++ b/plugins/datasets/src/components/Key/KeySvgPattern.test.jsx @@ -1,6 +1,6 @@ import { render } from '@testing-library/react' import { KeySvgPattern } from './KeySvgPattern' -import { patternRegistry } from '../../../../../../src/services/patternRegistry.js' +import { patternRegistry } from '../../../../../src/services/patternRegistry.js' const getKeyPatternPaths = jest.spyOn(patternRegistry, 'getKeyPatternPaths') const defaultProps = { diff --git a/plugins/datasets/src/components/Key/KeySvgRect.jsx b/plugins/datasets/src/components/Key/KeySvgRect.jsx index 86f23330..ac0bab83 100644 --- a/plugins/datasets/src/components/Key/KeySvgRect.jsx +++ b/plugins/datasets/src/components/Key/KeySvgRect.jsx @@ -1,4 +1,4 @@ -import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle.js' +import { getValueForStyle } from '../../../../../src/utils/getValueForStyle.js' import { svgProps, SVG_SIZE } from './svgProperties.js' export const KeySvgRect = ({ mapStyle, registryDataset }) => { diff --git a/plugins/datasets/src/components/Key/KeySvgRect.test.jsx b/plugins/datasets/src/components/Key/KeySvgRect.test.jsx index 0365d806..30da5bc7 100644 --- a/plugins/datasets/src/components/Key/KeySvgRect.test.jsx +++ b/plugins/datasets/src/components/Key/KeySvgRect.test.jsx @@ -1,9 +1,9 @@ import { render } from '@testing-library/react' import { KeySvgRect } from './KeySvgRect' -import { getValueForStyle } from '../../../../../../src/utils/getValueForStyle' +import { getValueForStyle } from '../../../../../src/utils/getValueForStyle' -jest.mock('../../../../../../src/utils/getValueForStyle', () => ({ +jest.mock('../../../../../src/utils/getValueForStyle', () => ({ getValueForStyle: jest.fn((value) => value) })) diff --git a/plugins/datasets/src/components/Key/KeySvgSymbol.jsx b/plugins/datasets/src/components/Key/KeySvgSymbol.jsx index e2b92f24..7e21a026 100644 --- a/plugins/datasets/src/components/Key/KeySvgSymbol.jsx +++ b/plugins/datasets/src/components/Key/KeySvgSymbol.jsx @@ -1,4 +1,4 @@ -import { getSymbolStyleColors, getSymbolViewBox } from '../../../../../../src/utils/symbolUtils.js' +import { getSymbolStyleColors, getSymbolViewBox } from '../../../../../src/utils/symbolUtils.js' import { svgSymbolProps } from './svgProperties.js' export const KeySvgSymbol = ({ symbolRegistry, registryDataset, mapStyle, symbolDef }) => { diff --git a/plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx b/plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx index 4436c78f..920fd3e2 100644 --- a/plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx +++ b/plugins/datasets/src/components/Key/KeySvgSymbol.test.jsx @@ -1,9 +1,9 @@ import { render } from '@testing-library/react' import { KeySvgSymbol } from './KeySvgSymbol' -import { getSymbolStyleColors, getSymbolViewBox } from '../../../../../../src/utils/symbolUtils.js' +import { getSymbolStyleColors, getSymbolViewBox } from '../../../../../src/utils/symbolUtils.js' -jest.mock('../../../../../../src/utils/symbolUtils.js', () => ({ +jest.mock('../../../../../src/utils/symbolUtils.js', () => ({ getSymbolStyleColors: jest.fn(() => ({ foreground: '#000', background: '#fff' })), getSymbolViewBox: jest.fn(() => '0 0 38 38') })) diff --git a/plugins/datasets/src/initialise/DatasetsInit.jsx b/plugins/datasets/src/initialise/DatasetsInit.jsx index e1968af5..b1875eae 100755 --- a/plugins/datasets/src/initialise/DatasetsInit.jsx +++ b/plugins/datasets/src/initialise/DatasetsInit.jsx @@ -1,6 +1,6 @@ // src/plugins/datasets/datasetsInit.jsx import { useEffect, useRef } from 'react' -import { EVENTS } from '../../../../../src/config/events.js' +import { EVENTS } from '../../../../src/config/events.js' import { initialiseDatasets } from './initialiseDatasets.js' import { datasetRegistry } from '../registry/datasetRegistry.js' import { attachGlobalState } from '../registry/globalDataset.js' diff --git a/plugins/datasets/src/reducers/pluginState.js b/plugins/datasets/src/reducers/pluginState.js index d52f5975..46ba0d31 100755 --- a/plugins/datasets/src/reducers/pluginState.js +++ b/plugins/datasets/src/reducers/pluginState.js @@ -1,6 +1,6 @@ import { datasetsToMenu, addDatasetToMenu, removeDatasetsFromMenu } from './datasetsToMenu.js' import { mappedDatasetsReducer } from './mappedDatasetsReducer.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' const initialState = { globals: { diff --git a/plugins/datasets/src/reducers/pluginState.test.js b/plugins/datasets/src/reducers/pluginState.test.js index 68b4089b..1020e52d 100644 --- a/plugins/datasets/src/reducers/pluginState.test.js +++ b/plugins/datasets/src/reducers/pluginState.test.js @@ -1,7 +1,7 @@ import { initialState, actions } from './pluginState.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' -jest.mock('../../../../../src/services/logger.js', () => ({ +jest.mock('../../../../src/services/logger.js', () => ({ logger: { error: jest.fn() } })) diff --git a/plugins/datasets/src/registry/dataset.js b/plugins/datasets/src/registry/dataset.js index 3ead34d0..39c3e215 100644 --- a/plugins/datasets/src/registry/dataset.js +++ b/plugins/datasets/src/registry/dataset.js @@ -1,6 +1,6 @@ import { datasetRegistry } from './datasetRegistry.js' import { hasCustomVisualStyle } from '../initialise/defaults.js' -import { hasPattern } from '../../../../../src/utils/patternUtils.js' +import { hasPattern } from '../../../../src/utils/patternUtils.js' import { DynamicGeoJson } from './dynamicGeoJson.js' import { calculateOpacity, getGlobalVisibility } from './globalDataset.js' diff --git a/plugins/draw-es/src/DrawInit.jsx b/plugins/draw-es/src/DrawInit.jsx index ced29d09..480955b6 100755 --- a/plugins/draw-es/src/DrawInit.jsx +++ b/plugins/draw-es/src/DrawInit.jsx @@ -1,5 +1,5 @@ import { useEffect } from 'react' -import { EVENTS } from '../../../../src/config/events.js' +import { EVENTS } from '../../../src/config/events.js' import { createSketchViewModel } from './sketchViewModel.js' import { attachEvents } from './events.js' diff --git a/plugins/draw-es/src/events.test.js b/plugins/draw-es/src/events.test.js index 6428b758..c8ef949c 100644 --- a/plugins/draw-es/src/events.test.js +++ b/plugins/draw-es/src/events.test.js @@ -1,5 +1,5 @@ import { attachEvents } from './events.js' -import { EVENTS as events } from '../../../../src/config/events.js' +import { EVENTS as events } from '../../../src/config/events.js' import * as graphicJs from './graphic.js' jest.mock('./graphic.js') diff --git a/plugins/draw-ml/src/DrawInit.jsx b/plugins/draw-ml/src/DrawInit.jsx index fc4ee0b8..9d1dda85 100755 --- a/plugins/draw-ml/src/DrawInit.jsx +++ b/plugins/draw-ml/src/DrawInit.jsx @@ -1,5 +1,5 @@ import { useEffect } from 'react' -import { EVENTS } from '../../../../src/config/events.js' +import { EVENTS } from '../../../src/config/events.js' import { attachEvents } from './events.js' import { createMapboxDraw } from './mapboxDraw.js' diff --git a/plugins/draw-ol/src/DrawInit.jsx b/plugins/draw-ol/src/DrawInit.jsx index 5a4e2ec1..45ce8a78 100644 --- a/plugins/draw-ol/src/DrawInit.jsx +++ b/plugins/draw-ol/src/DrawInit.jsx @@ -1,5 +1,5 @@ import { useEffect } from 'react' -import { EVENTS } from '../../../../src/config/events.js' +import { EVENTS } from '../../../src/config/events.js' import { createOLDraw } from './olDraw.js' import { attachEvents } from './events.js' diff --git a/plugins/map-styles/src/MapStyles.jsx b/plugins/map-styles/src/MapStyles.jsx index d78e2b73..98acede2 100755 --- a/plugins/map-styles/src/MapStyles.jsx +++ b/plugins/map-styles/src/MapStyles.jsx @@ -1,7 +1,7 @@ import React from 'react' -import { EVENTS } from '../../../../src/config/events.js' +import { EVENTS } from '../../../src/config/events.js' import { textSizeSvgPath } from './config.js' -import { scaleFactor } from '../../../../src/config/appConfig.js' +import { scaleFactor } from '../../../src/config/appConfig.js' export const MapStyles = ({ mapState, pluginConfig, services, mapProvider }) => { const { mapStyle: currentMapStyle, mapSize: currentMapSize } = mapState diff --git a/plugins/map-styles/src/MapStylesInit.jsx b/plugins/map-styles/src/MapStylesInit.jsx index eff44cc5..035a19ea 100755 --- a/plugins/map-styles/src/MapStylesInit.jsx +++ b/plugins/map-styles/src/MapStylesInit.jsx @@ -1,6 +1,6 @@ // src/plugins/mapStyles/MapStylesInit.jsx import { useEffect } from 'react' -import { EVENTS } from '../../../../src/config/events.js' +import { EVENTS } from '../../../src/config/events.js' export function MapStylesInit ({ pluginConfig, services }) { const { eventBus } = services diff --git a/providers/esri/src/mapEvents.js b/providers/esri/src/mapEvents.js index a790113d..19986421 100644 --- a/providers/esri/src/mapEvents.js +++ b/providers/esri/src/mapEvents.js @@ -1,6 +1,6 @@ import { watch, when, once } from '@arcgis/core/core/reactiveUtils.js' -import { debounce } from '../../../../src/utils/debounce.js' -import { throttle } from '../../../../src/utils/throttle.js' +import { debounce } from '../../../src/utils/debounce.js' +import { throttle } from '../../../src/utils/throttle.js' const DEBOUNCE_IDLE_TIME = 500 const MOVE_THROTTLE_TIME = 10 diff --git a/providers/openlayers/src/mapEvents.js b/providers/openlayers/src/mapEvents.js index 59795d81..0d73a9e3 100644 --- a/providers/openlayers/src/mapEvents.js +++ b/providers/openlayers/src/mapEvents.js @@ -1,5 +1,5 @@ -import { debounce } from '../../../../src/utils/debounce.js' -import { throttle } from '../../../../src/utils/throttle.js' +import { debounce } from '../../../src/utils/debounce.js' +import { throttle } from '../../../src/utils/throttle.js' import { ZOOM_TOLERANCE } from './defaults.js' const DEBOUNCE_IDLE_TIME = 500 diff --git a/providers/openlayers/src/mapEvents.test.js b/providers/openlayers/src/mapEvents.test.js index e4d5fda6..83e4f732 100644 --- a/providers/openlayers/src/mapEvents.test.js +++ b/providers/openlayers/src/mapEvents.test.js @@ -3,7 +3,7 @@ import { attachMapEvents } from './mapEvents.js' const mockDebounceFns = [] -jest.mock('../../../../src/utils/debounce.js', () => ({ +jest.mock('../../../src/utils/debounce.js', () => ({ __esModule: true, debounce: (fn) => { const wrapper = jest.fn() @@ -14,7 +14,7 @@ jest.mock('../../../../src/utils/debounce.js', () => ({ })) // Passthrough throttle: calls fn immediately (no cancel needed, not added to debouncers) -jest.mock('../../../../src/utils/throttle.js', () => ({ +jest.mock('../../../src/utils/throttle.js', () => ({ __esModule: true, throttle: (fn) => jest.fn(fn) })) From 7e87b93a3a87a22714c305697a139536536d1552 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 09:38:45 +0100 Subject: [PATCH 11/22] =?UTF-8?q?feat:=20extend=20publish=20script=20for?= =?UTF-8?q?=20monorepo=20=E2=80=94=20stamp=20versions,=20publish=20all=20w?= =?UTF-8?q?orkspace=20packages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/publish-package.sh | 89 +++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 20 deletions(-) diff --git a/scripts/publish-package.sh b/scripts/publish-package.sh index 9d43dd3a..beed3e6e 100755 --- a/scripts/publish-package.sh +++ b/scripts/publish-package.sh @@ -24,7 +24,7 @@ validate_version_format() { get_published_version() { local major_version=$1 local published=$(npm view "${PACKAGE_NAME}@^${major_version}.0.0" version --json 2>/dev/null | jq -r '.[-1]' 2>/dev/null || echo "") - + if [ -z "$published" ] || [ "$published" = "null" ]; then echo "0.0.0" else @@ -35,60 +35,109 @@ get_published_version() { validate_version_bump() { local new_version="${TAG_NAME#v}" local major_version=$(echo "$new_version" | cut -d. -f1) - + echo "Package: ${PACKAGE_NAME}" echo "Checking version constraints for v${major_version}.x line..." - + local published_version=$(get_published_version "$major_version") - + echo "Latest v${major_version}.x published: $published_version" echo "New version to publish: $new_version" - + if npx --yes semver "$new_version" -r "<=$published_version" >/dev/null 2>&1; then echo "ERROR: Version $new_version is not greater than published version $published_version in the v${major_version}.x line" exit 1 fi - + echo "✓ Version check passed" } +stamp_versions() { + local version="${TAG_NAME#v}" + npm pkg set version="$version" + for pkg_dir in providers/* plugins/*; do + [ -f "$pkg_dir/package.json" ] || continue + npm pkg set version="$version" --prefix "$pkg_dir" + npm pkg set "peerDependencies.@defra/interactive-map"="$version" --prefix "$pkg_dir" + done +} + +assert_version() { + local pkg_dir=$1 + local expected=$2 + local actual + actual=$(jq -r '.version' "${pkg_dir}/package.json") + if [ "$actual" != "$expected" ]; then + echo "ERROR: version mismatch in $pkg_dir — expected $expected, got $actual" + exit 1 + fi +} + determine_release_tag() { if [[ "$IS_PRE_RELEASE" == "true" ]] || [[ "$TAG_NAME" =~ $PRE_RELEASE_PATTERN ]]; then - echo "pre-release" + echo "alpha" else echo "latest" fi } -publish_package() { +determine_pkg_tag() { + local pkg_dir=$1 + if [[ "$IS_PRE_RELEASE" == "true" ]] || [[ "$TAG_NAME" =~ $PRE_RELEASE_PATTERN ]]; then + echo "alpha" + return + fi + jq -r '.publishConfig.tag // "latest"' "$pkg_dir/package.json" +} + +publish_all() { local release_tag=$1 - local new_version="${TAG_NAME#v}" - - echo "Publishing ${PACKAGE_NAME}@${new_version} to npm with tag: ${release_tag}" - + local version="${TAG_NAME#v}" + + echo "Publishing ${PACKAGE_NAME}@${version} to npm with tag: ${release_tag}" + if [ "$DRY_RUN" = "true" ]; then - echo "[DRY RUN] Would run: npm version --no-git-tag-version ${TAG_NAME}" echo "[DRY RUN] Would run: npm publish --access public --tag=${release_tag}" else - npm version --no-git-tag-version "${TAG_NAME}" + assert_version "." "$version" npm publish --access public --tag="${release_tag}" fi - - echo "✓ Successfully published ${PACKAGE_NAME}@${new_version}" + + echo "✓ Published ${PACKAGE_NAME}@${version}" + + for pkg_dir in providers/* plugins/*; do + [ -f "$pkg_dir/package.json" ] || continue + local pkg_name + pkg_name=$(jq -r '.name' "$pkg_dir/package.json") + local pkg_tag + pkg_tag=$(determine_pkg_tag "$pkg_dir") + + echo "Publishing ${pkg_name}@${version} to npm with tag: ${pkg_tag}" + + if [ "$DRY_RUN" = "true" ]; then + echo "[DRY RUN] Would run: npm publish --prefix ${pkg_dir} --access public --tag=${pkg_tag}" + else + assert_version "$pkg_dir" "$version" + npm publish --prefix "$pkg_dir" --access public --tag="${pkg_tag}" + fi + + echo "✓ Published ${pkg_name}@${version}" + done } main() { - PACKAGE_NAME=$(npm pkg get name | tr -d '"') + PACKAGE_NAME=$(jq -r '.name' package.json) TAG_NAME="${1:-}" IS_PRE_RELEASE="${2:-false}" DRY_RUN="${3:-false}" - + validate_arguments validate_version_format validate_version_bump - + stamp_versions + RELEASE_TAG=$(determine_release_tag) - publish_package "$RELEASE_TAG" + publish_all "$RELEASE_TAG" } main "$@" From 8cb8ee2e6135d2ac76d3ef158501cecf792c048e Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 09:41:11 +0100 Subject: [PATCH 12/22] docs: update import paths to new monorepo package names --- demo/js/gep.js | 2 +- docs/examples/add-marker-with-panel.mdx | 4 ++-- docs/examples/basic-map.mdx | 2 +- docs/examples/button-map.mdx | 2 +- docs/examples/toggle-marker-label.mdx | 4 ++-- docs/getting-started.md | 6 +++--- docs/plugins/datasets.md | 2 +- docs/plugins/interact.md | 2 +- docs/plugins/map-styles.md | 2 +- docs/plugins/scale-bar.md | 2 +- docs/plugins/search.md | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/demo/js/gep.js b/demo/js/gep.js index e03ef086..ff57e922 100644 --- a/demo/js/gep.js +++ b/demo/js/gep.js @@ -1,7 +1,7 @@ import InteractiveMap from '../../src/index.js' import { vtsMapStyles27700 } from './mapStyles.js' import { transformGeocodeRequest, transformVtsRequest27700 } from './auth.js' -import '/plugins/beta/datasets/src/datasets.scss' // in a separate repo: import '@defra/interactive-map/plugins/datasets/css' +import '/plugins/beta/datasets/src/datasets.scss' // in a separate repo: import '@defra/interactive-map-plugin-datasets/css' // Providers import openLayersProvider from '/providers/beta/openlayers/src/index.js' import openNamesProvider from '/providers/beta/open-names/src/index.js' diff --git a/docs/examples/add-marker-with-panel.mdx b/docs/examples/add-marker-with-panel.mdx index d42b55d7..e89f4c83 100644 --- a/docs/examples/add-marker-with-panel.mdx +++ b/docs/examples/add-marker-with-panel.mdx @@ -13,8 +13,8 @@ Add markers to the map and allow users to select them. Selecting a marker fires language: 'js', code: ` import InteractiveMap from '@defra/interactive-map' - import maplibreProvider from '@defra/interactive-map/providers/maplibre' - import createInteractPlugin from '@defra/interactive-map/plugins/interact' + import maplibreProvider from '@defra/interactive-map-provider-maplibre' + import createInteractPlugin from '@defra/interactive-map-plugin-interact' const interactPlugin = createInteractPlugin({ deselectOnClickOutside: true diff --git a/docs/examples/basic-map.mdx b/docs/examples/basic-map.mdx index 93375e64..1cae1bc6 100644 --- a/docs/examples/basic-map.mdx +++ b/docs/examples/basic-map.mdx @@ -13,7 +13,7 @@ Embed an interactive map directly on the page, allowing users to explore and int language: 'js', code: ` import InteractiveMap from '@defra/interactive-map' - import maplibreProvider from '@defra/interactive-map/providers/maplibre' + import maplibreProvider from '@defra/interactive-map-provider-maplibre' new InteractiveMap('my-map', { behaviour: 'inline', diff --git a/docs/examples/button-map.mdx b/docs/examples/button-map.mdx index 17006058..3f4daf93 100644 --- a/docs/examples/button-map.mdx +++ b/docs/examples/button-map.mdx @@ -13,7 +13,7 @@ Trigger the map to show on button press, allowing users to access the map when n language: 'js', code: ` import InteractiveMap from '@defra/interactive-map' - import maplibreProvider from '@defra/interactive-map/providers/maplibre' + import maplibreProvider from '@defra/interactive-map-provider-maplibre' new InteractiveMap('my-map', { behaviour: 'buttonFirst', diff --git a/docs/examples/toggle-marker-label.mdx b/docs/examples/toggle-marker-label.mdx index 164e21aa..9cfd1b83 100644 --- a/docs/examples/toggle-marker-label.mdx +++ b/docs/examples/toggle-marker-label.mdx @@ -13,8 +13,8 @@ Add a marker with a hidden label, then use the interact plugin to show the label language: 'js', code: ` import InteractiveMap from '@defra/interactive-map' - import maplibreProvider from '@defra/interactive-map/providers/maplibre' - import createInteractPlugin from '@defra/interactive-map/plugins/interact' + import maplibreProvider from '@defra/interactive-map-provider-maplibre' + import createInteractPlugin from '@defra/interactive-map-plugin-interact' const interactPlugin = createInteractPlugin({ deselectOnClickOutside: true diff --git a/docs/getting-started.md b/docs/getting-started.md index 97c0826f..5506e3f9 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -54,7 +54,7 @@ npm install @arcgis/core ```js import InteractiveMap from '@defra/interactive-map' -import maplibreProvider from '@defra/interactive-map/providers/maplibre' +import maplibreProvider from '@defra/interactive-map-provider-maplibre' import '@defra/interactive-map/css' @@ -116,8 +116,8 @@ const interactiveMap = new InteractiveMap('map', { **ESM** — add the plugin import and its CSS alongside your existing core imports, then pass it to `plugins`: ```js -import createInteractPlugin from '@defra/interactive-map/plugins/interact' -import '@defra/interactive-map/plugins/interact/css' +import createInteractPlugin from '@defra/interactive-map-plugin-interact' +import '@defra/interactive-map-plugin-interact/css' const interactiveMap = new InteractiveMap('map', { // ...your existing options diff --git a/docs/plugins/datasets.md b/docs/plugins/datasets.md index 2bede84b..8f21aac5 100644 --- a/docs/plugins/datasets.md +++ b/docs/plugins/datasets.md @@ -5,7 +5,7 @@ The datasets plugin renders GeoJSON and vector tile datasets on the map, with su ## ESM usage ```js -import createDatasetsPlugin from '@defra/interactive-map/plugins/datasets' +import createDatasetsPlugin from '@defra/interactive-map-plugin-datasets' const datasetsPlugin = createDatasetsPlugin({ datasets: [ diff --git a/docs/plugins/interact.md b/docs/plugins/interact.md index 4136b808..635de584 100644 --- a/docs/plugins/interact.md +++ b/docs/plugins/interact.md @@ -5,7 +5,7 @@ The interact plugin provides a unified way to handle user interactions for selec ## Usage ```js -import createInteractPlugin from '@defra/interactive-map/plugins/interact' +import createInteractPlugin from '@defra/interactive-map-plugin-interact' const interactPlugin = createInteractPlugin({ interactionModes: ['selectMarker', 'selectFeature'], diff --git a/docs/plugins/map-styles.md b/docs/plugins/map-styles.md index 68ff7b0c..b6de2171 100644 --- a/docs/plugins/map-styles.md +++ b/docs/plugins/map-styles.md @@ -5,7 +5,7 @@ Adds a UI control for switching between basemap styles and, where supported by t ## Usage ```js -import createMapStylesPlugin from '@defra/interactive-map/plugins/map-styles' +import createMapStylesPlugin from '@defra/interactive-map-plugin-map-styles' const mapStylesPlugin = createMapStylesPlugin({ mapStyles: [ diff --git a/docs/plugins/scale-bar.md b/docs/plugins/scale-bar.md index 0a7227e6..0e97d198 100644 --- a/docs/plugins/scale-bar.md +++ b/docs/plugins/scale-bar.md @@ -5,7 +5,7 @@ Displays the current map scale. The scale bar automatically updates as the user ## Usage ```js -import createScaleBarPlugin from '@defra/interactive-map/plugins/scale-bar' +import createScaleBarPlugin from '@defra/interactive-map-plugin-scale-bar' const scaleBarPlugin = createScaleBarPlugin({ units: 'metric' diff --git a/docs/plugins/search.md b/docs/plugins/search.md index e450b9f8..b979bead 100644 --- a/docs/plugins/search.md +++ b/docs/plugins/search.md @@ -5,7 +5,7 @@ Location search with autocomplete. Supports the OS Names API out of the box, and ## Usage ```js -import searchPlugin from '@defra/interactive-map/plugins/search' +import searchPlugin from '@defra/interactive-map-plugin-search' const interactiveMap = new InteractiveMap({ plugins: [ From 493535be9b16f84d1dd74a2f1b6884b8245f8a62 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 09:41:23 +0100 Subject: [PATCH 13/22] fix: update beta/ paths in govuk-prototype-kit asset list --- govuk-prototype-kit.config.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/govuk-prototype-kit.config.json b/govuk-prototype-kit.config.json index ffd00155..da2aae89 100644 --- a/govuk-prototype-kit.config.json +++ b/govuk-prototype-kit.config.json @@ -11,14 +11,14 @@ "/dist/css/", "/dist/umd/", "/providers/maplibre/dist", - "/providers/beta/open-names/dist", - "/plugins/beta/datasets/dist", + "/providers/open-names/dist", + "/plugins/datasets/dist", "/plugins/interact/dist", - "/plugins/beta/map-styles/dist", - "/plugins/beta/scale-bar/dist", + "/plugins/map-styles/dist", + "/plugins/scale-bar/dist", "/plugins/search/dist", - "/plugins/beta/use-location/dist", - "/plugins/beta/draw-ml/dist", - "/plugins/beta/frame/dist" + "/plugins/use-location/dist", + "/plugins/draw-ml/dist", + "/plugins/frame/dist" ] } \ No newline at end of file From ee2854bd109d9ce73ca6e95fa214de57aa506de1 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 14:45:47 +0100 Subject: [PATCH 14/22] fix: correct node_modules relative import depth in draw-ml modes --- plugins/draw-ml/src/modes/createDrawMode.js | 2 +- plugins/draw-ml/src/modes/drawLineMode.js | 2 +- plugins/draw-ml/src/modes/drawPolygonMode.js | 2 +- plugins/draw-ml/src/modes/editVertexMode.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/draw-ml/src/modes/createDrawMode.js b/plugins/draw-ml/src/modes/createDrawMode.js index 0dac5e5a..6cc3dc69 100644 --- a/plugins/draw-ml/src/modes/createDrawMode.js +++ b/plugins/draw-ml/src/modes/createDrawMode.js @@ -1,4 +1,4 @@ -import createVertex from '../../../../../node_modules/@mapbox/mapbox-gl-draw/src/lib/create_vertex.js' +import createVertex from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/lib/create_vertex.js' import { getSnapInstance, diff --git a/plugins/draw-ml/src/modes/drawLineMode.js b/plugins/draw-ml/src/modes/drawLineMode.js index 1b3aade5..7612dba7 100644 --- a/plugins/draw-ml/src/modes/drawLineMode.js +++ b/plugins/draw-ml/src/modes/drawLineMode.js @@ -1,4 +1,4 @@ -import DrawLineString from '../../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/draw_line_string.js' +import DrawLineString from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/draw_line_string.js' import { isValidLineClick } from '../utils/spatial.js' import { createDrawMode } from './createDrawMode.js' diff --git a/plugins/draw-ml/src/modes/drawPolygonMode.js b/plugins/draw-ml/src/modes/drawPolygonMode.js index f68fb568..fcef3c6f 100755 --- a/plugins/draw-ml/src/modes/drawPolygonMode.js +++ b/plugins/draw-ml/src/modes/drawPolygonMode.js @@ -1,4 +1,4 @@ -import DrawPolygon from '../../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/draw_polygon.js' +import DrawPolygon from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/draw_polygon.js' import { isValidClick } from '../utils/spatial.js' import { createDrawMode } from './createDrawMode.js' diff --git a/plugins/draw-ml/src/modes/editVertexMode.js b/plugins/draw-ml/src/modes/editVertexMode.js index 017981c9..9db5d389 100755 --- a/plugins/draw-ml/src/modes/editVertexMode.js +++ b/plugins/draw-ml/src/modes/editVertexMode.js @@ -1,4 +1,4 @@ -import DirectSelect from '../../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/direct_select.js' +import DirectSelect from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/direct_select.js' import { getSnapInstance, isSnapActive, isSnapEnabled, getSnapLngLat, getSnapRadius, triggerSnapAtPoint, clearSnapIndicator, clearSnapState From 5b3be7bede59990a42c4544b13c02144cc8adff4 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 14:48:09 +0100 Subject: [PATCH 15/22] fix: add draw-ol to webpack UMD builds; fix draw-ml node_modules import depth --- webpack.umd.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/webpack.umd.mjs b/webpack.umd.mjs index 6804b533..9c7aa888 100755 --- a/webpack.umd.mjs +++ b/webpack.umd.mjs @@ -147,6 +147,7 @@ const ALL_BUILDS = [ { entryPath: './plugins/datasets/src/index.js', libraryPath: 'datasetsPlugin', outDir: 'plugins/datasets/dist/umd', cssOutDir: 'plugins/datasets/dist' }, { entryPath: './plugins/map-styles/src/index.js', libraryPath: 'mapStylesPlugin', outDir: 'plugins/map-styles/dist/umd' }, { entryPath: './plugins/draw-ml/src/index.js', libraryPath: 'drawMLPlugin', outDir: 'plugins/draw-ml/dist/umd' }, + { entryPath: './plugins/draw-ol/src/index.js', libraryPath: 'drawOLPlugin', outDir: 'plugins/draw-ol/dist/umd' }, { entryPath: './plugins/frame/src/index.js', libraryPath: 'framePlugin', outDir: 'plugins/frame/dist/umd' } ] From fbb0320d598e376962a91d8be71663766d5bdfb5 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 15:06:35 +0100 Subject: [PATCH 16/22] fix: replace direct node_modules imports with public MapboxDraw API --- plugins/draw-ml/src/modes/createDrawMode.js | 4 +++- plugins/draw-ml/src/modes/drawLineMode.js | 4 +++- plugins/draw-ml/src/modes/drawPolygonMode.js | 4 +++- plugins/draw-ml/src/modes/editVertexMode.js | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/draw-ml/src/modes/createDrawMode.js b/plugins/draw-ml/src/modes/createDrawMode.js index 6cc3dc69..7ba32154 100644 --- a/plugins/draw-ml/src/modes/createDrawMode.js +++ b/plugins/draw-ml/src/modes/createDrawMode.js @@ -1,4 +1,6 @@ -import createVertex from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/lib/create_vertex.js' +import MapboxDraw from '@mapbox/mapbox-gl-draw' + +const { createVertex } = MapboxDraw.lib import { getSnapInstance, diff --git a/plugins/draw-ml/src/modes/drawLineMode.js b/plugins/draw-ml/src/modes/drawLineMode.js index 7612dba7..1157911d 100644 --- a/plugins/draw-ml/src/modes/drawLineMode.js +++ b/plugins/draw-ml/src/modes/drawLineMode.js @@ -1,4 +1,6 @@ -import DrawLineString from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/draw_line_string.js' +import MapboxDraw from '@mapbox/mapbox-gl-draw' + +const DrawLineString = MapboxDraw.modes.draw_line_string import { isValidLineClick } from '../utils/spatial.js' import { createDrawMode } from './createDrawMode.js' diff --git a/plugins/draw-ml/src/modes/drawPolygonMode.js b/plugins/draw-ml/src/modes/drawPolygonMode.js index fcef3c6f..eb86370f 100755 --- a/plugins/draw-ml/src/modes/drawPolygonMode.js +++ b/plugins/draw-ml/src/modes/drawPolygonMode.js @@ -1,4 +1,6 @@ -import DrawPolygon from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/draw_polygon.js' +import MapboxDraw from '@mapbox/mapbox-gl-draw' + +const DrawPolygon = MapboxDraw.modes.draw_polygon import { isValidClick } from '../utils/spatial.js' import { createDrawMode } from './createDrawMode.js' diff --git a/plugins/draw-ml/src/modes/editVertexMode.js b/plugins/draw-ml/src/modes/editVertexMode.js index 9db5d389..6ffd7dcf 100755 --- a/plugins/draw-ml/src/modes/editVertexMode.js +++ b/plugins/draw-ml/src/modes/editVertexMode.js @@ -1,4 +1,6 @@ -import DirectSelect from '../../../../node_modules/@mapbox/mapbox-gl-draw/src/modes/direct_select.js' +import MapboxDraw from '@mapbox/mapbox-gl-draw' + +const DirectSelect = MapboxDraw.modes.direct_select import { getSnapInstance, isSnapActive, isSnapEnabled, getSnapLngLat, getSnapRadius, triggerSnapAtPoint, clearSnapIndicator, clearSnapState From ce268a225cf47ea189ff602f2689d39248d6bbd3 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 15:15:13 +0100 Subject: [PATCH 17/22] fix: update beta/ paths in demo JS files --- demo/js/draw-ol.js | 8 ++++---- demo/js/draw.js | 10 +++++----- demo/js/esm.js | 10 +++++----- demo/js/farming.js | 14 +++++++------- demo/js/gep.js | 10 +++++----- demo/js/index.js | 24 ++++++++++++------------ demo/js/ml-datasets.js | 10 +++++----- demo/js/planning-ol.js | 10 +++++----- demo/js/planning.js | 20 ++++++++++---------- 9 files changed, 58 insertions(+), 58 deletions(-) diff --git a/demo/js/draw-ol.js b/demo/js/draw-ol.js index 0ba9b88a..092aa7a7 100644 --- a/demo/js/draw-ol.js +++ b/demo/js/draw-ol.js @@ -3,11 +3,11 @@ import InteractiveMap from '../../src/index.js' import { vtsMapStyles27700, ngdMapStyles27700 } from './mapStyles.js' import { transformGeocodeRequest, transformVtsRequest27700 } from './auth.js' // Providers -import openLayersProvider from '/providers/beta/openlayers/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openLayersProvider from '/providers/openlayers/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDrawPlugin from '/plugins/beta/draw-ol/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDrawPlugin from '/plugins/draw-ol/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' diff --git a/demo/js/draw.js b/demo/js/draw.js index b140131e..17d0eed0 100755 --- a/demo/js/draw.js +++ b/demo/js/draw.js @@ -5,12 +5,12 @@ import { parcelSearch, gridRefSearchETRS89 } from './searchCustomDatasets.js' import { transformGeocodeRequest, transformVtsRequest3857, transformDataRequest } from './auth.js' // Providers import maplibreProvider from '/providers/maplibre/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDatasetsPlugin from '/plugins/beta/datasets/src/index.js' -import createDrawPlugin from '/plugins/beta/draw-ml/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDatasetsPlugin from '/plugins/datasets/src/index.js' +import createDrawPlugin from '/plugins/draw-ml/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' diff --git a/demo/js/esm.js b/demo/js/esm.js index 5b118944..e1f952d9 100644 --- a/demo/js/esm.js +++ b/demo/js/esm.js @@ -4,14 +4,14 @@ import { parcelSearch, gridRefSearchETRS89 } from './searchCustomDatasets.js' import { transformGeocodeRequest, transformVtsRequest3857, transformDataRequest } from './auth.js' // Providers import maplibreProvider from '/providers/maplibre/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDatasetsPlugin from '/plugins/beta/datasets/dist/esm/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDatasetsPlugin from '/plugins/datasets/dist/esm/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' -import createFramePlugin from '/plugins/beta/frame/src/index.js' +import createFramePlugin from '/plugins/frame/src/index.js' const pointData = { type: 'FeatureCollection', diff --git a/demo/js/farming.js b/demo/js/farming.js index ec1c770c..98feba0b 100755 --- a/demo/js/farming.js +++ b/demo/js/farming.js @@ -4,16 +4,16 @@ import { parcelSearch, gridRefSearchETRS89 } from './searchCustomDatasets.js' import { transformGeocodeRequest, transformVtsRequest3857, transformDataRequest } from './auth.js' // Providers import maplibreProvider from '/providers/maplibre/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import useLocationPlugin from '/plugins/beta/use-location/src/index.js' -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDatasetsPlugin from '/plugins/beta/datasets/src/index.js' -import createDrawPlugin from '/plugins/beta/draw-ml/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import useLocationPlugin from '/plugins/use-location/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDatasetsPlugin from '/plugins/datasets/src/index.js' +import createDrawPlugin from '/plugins/draw-ml/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' -import createFramePlugin from '/plugins/beta/frame/src/index.js' +import createFramePlugin from '/plugins/frame/src/index.js' var feature = { id: 'test1234', type: 'Feature', geometry: { coordinates: [[[-2.9406643378873127,54.918060570259456],[-2.9092219779267054,54.91564249172612],[-2.904350626383433,54.90329530000005],[-2.909664828067463,54.89540129642464],[-2.9225074821353587,54.88979816151294],[-2.937121536764323,54.88826989853317],[-2.95682836800691,54.88916139231736],[-2.965463945742613,54.898966521920045],[-2.966349646023133,54.910805898763385],[-2.9406643378873127,54.918060570259456]]], type: 'Polygon' }} diff --git a/demo/js/gep.js b/demo/js/gep.js index ff57e922..de97fb7b 100644 --- a/demo/js/gep.js +++ b/demo/js/gep.js @@ -1,13 +1,13 @@ import InteractiveMap from '../../src/index.js' import { vtsMapStyles27700 } from './mapStyles.js' import { transformGeocodeRequest, transformVtsRequest27700 } from './auth.js' -import '/plugins/beta/datasets/src/datasets.scss' // in a separate repo: import '@defra/interactive-map-plugin-datasets/css' +import '/plugins/datasets/src/datasets.scss' // in a separate repo: import '@defra/interactive-map-plugin-datasets/css' // Providers -import openLayersProvider from '/providers/beta/openlayers/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openLayersProvider from '/providers/openlayers/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' // GEP demo utils diff --git a/demo/js/index.js b/demo/js/index.js index 6064febd..531984a7 100755 --- a/demo/js/index.js +++ b/demo/js/index.js @@ -1,12 +1,12 @@ // CSS // import '../../dist/css/index.css' -// import '/plugins/beta/map-styles/dist/css/index.css' -// import '/plugins/beta/datasets/dist/css/index.css' -// import '/plugins/beta/draw-ml/dist/css/index.css' -// import '/plugins/beta/scale-bar/dist/css/index.css' +// import '/plugins/map-styles/dist/css/index.css' +// import '/plugins/datasets/dist/css/index.css' +// import '/plugins/draw-ml/dist/css/index.css' +// import '/plugins/scale-bar/dist/css/index.css' // import '/plugins/search/dist/css/index.css' // import '/plugins/interact/dist/css/index.css' -// import '/plugins/beta/frame/dist/css/index.css' +// import '/plugins/frame/dist/css/index.css' // InteractiveMap import InteractiveMap from '../../src/index.js' import { openMapStyles, vtsMapStyles3857 } from './mapStyles.js' @@ -14,16 +14,16 @@ import { parcelSearch, gridRefSearchETRS89 } from './searchCustomDatasets.js' import { transformGeocodeRequest, transformVtsRequest3857, transformDataRequest } from './auth.js' // Providers import maplibreProvider from '/providers/maplibre/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import useLocationPlugin from '/plugins/beta/use-location/src/index.js' -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDatasetsPlugin from '/plugins/beta/datasets/src/index.js' -// import createDrawPlugin from '/plugins/beta/draw-ml/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import useLocationPlugin from '/plugins/use-location/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDatasetsPlugin from '/plugins/datasets/src/index.js' +// import createDrawPlugin from '/plugins/draw-ml/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' -import createFramePlugin from '/plugins/beta/frame/src/index.js' +import createFramePlugin from '/plugins/frame/src/index.js' const pointData = { type: 'FeatureCollection', diff --git a/demo/js/ml-datasets.js b/demo/js/ml-datasets.js index 722121d4..efed51bf 100644 --- a/demo/js/ml-datasets.js +++ b/demo/js/ml-datasets.js @@ -4,14 +4,14 @@ import { parcelSearch, gridRefSearchETRS89 } from './searchCustomDatasets.js' import { transformGeocodeRequest, transformVtsRequest3857, transformDataRequest } from './auth.js' // Providers import maplibreProvider from '/providers/maplibre/src/index.js' -import openNamesProvider from '/providers/beta/open-names/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' // Plugins -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDatasetsPlugin from '/plugins/beta/datasets/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDatasetsPlugin from '/plugins/datasets/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' -import createFramePlugin from '/plugins/beta/frame/src/index.js' +import createFramePlugin from '/plugins/frame/src/index.js' const pointData = { type: 'FeatureCollection', diff --git a/demo/js/planning-ol.js b/demo/js/planning-ol.js index 87c48dd7..1264092e 100644 --- a/demo/js/planning-ol.js +++ b/demo/js/planning-ol.js @@ -1,11 +1,11 @@ import InteractiveMap from '../../src/index.js' // Providers -import openNamesProvider from '/providers/beta/open-names/src/index.js' -import openLayersProvider from '/providers/beta/openlayers/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' +import openLayersProvider from '/providers/openlayers/src/index.js' // Plugins -import useLocationPlugin from '/plugins/beta/use-location/src/index.js' -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import useLocationPlugin from '/plugins/use-location/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' // Demo utils diff --git a/demo/js/planning.js b/demo/js/planning.js index 71370a94..f98a517e 100755 --- a/demo/js/planning.js +++ b/demo/js/planning.js @@ -1,23 +1,23 @@ // CSS // import '../../dist/css/index.css' -// import '/plugins/beta/map-styles/dist/css/index.css' -// import '/plugins/beta/scale-bar/dist/css/index.css' +// import '/plugins/map-styles/dist/css/index.css' +// import '/plugins/scale-bar/dist/css/index.css' // import '/plugins/search/dist/css/index.css' // import '/plugins/interact/dist/css/index.css' -// import '/plugins/beta/frame/dist/css/index.css' +// import '/plugins/frame/dist/css/index.css' // InteractiveMap import InteractiveMap from '../../src/index.js' // Providers -import openNamesProvider from '/providers/beta/open-names/src/index.js' -import esriProvider from '/providers/beta/esri/src/index.js' +import openNamesProvider from '/providers/open-names/src/index.js' +import esriProvider from '/providers/esri/src/index.js' // Plugins -import useLocationPlugin from '/plugins/beta/use-location/src/index.js' -import mapStylesPlugin from '/plugins/beta/map-styles/src/index.js' -import createDrawPlugin from '/plugins/beta/draw-es/src/index.js' -import scaleBarPlugin from '/plugins/beta/scale-bar/src/index.js' +import useLocationPlugin from '/plugins/use-location/src/index.js' +import mapStylesPlugin from '/plugins/map-styles/src/index.js' +import createDrawPlugin from '/plugins/draw-es/src/index.js' +import scaleBarPlugin from '/plugins/scale-bar/src/index.js' import searchPlugin from '/plugins/search/src/index.js' import createInteractPlugin from '/plugins/interact/src/index.js' -import createFramePlugin from '/plugins/beta/frame/src/index.js' +import createFramePlugin from '/plugins/frame/src/index.js' // Demo utils import { vtsMapStyles27700 } from './mapStyles.js' import { gridRefSearchOSGB36 } from './searchCustomDatasets.js' From b2b13dadf638f8c4b889330e22a3b8aabf301fd7 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 15:47:22 +0100 Subject: [PATCH 18/22] chore: update lockfile for workspace packages --- package-lock.json | 210 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 193 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6684c5ec..bc57d068 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,10 @@ "": { "name": "@defra/interactive-map", "version": "0.0.0-development", + "workspaces": [ + "providers/*", + "plugins/*" + ], "dependencies": { "@babel/runtime": "^7.28.6", "@turf/area": "^7.2.0", @@ -21,7 +25,6 @@ "@turf/polygon-to-line": "^7.3.3", "accessible-autocomplete": "^3.0.1", "govuk-frontend": "^5.13.0", - "maplibre-gl": "^5.23.0", "polygon-splitter": "^0.0.11", "preact": "^10.27.2", "tslib": "^2.8.1" @@ -66,6 +69,7 @@ "jest-expect-message": "^1.1.3", "likec4": "^1.50.0", "mapbox-gl-snap": "^1.1.9", + "maplibre-gl": "^5.23.0", "mini-css-extract-plugin": "^2.9.2", "node-fetch": "^3.3.2", "npm-run-all": "^4.1.5", @@ -92,22 +96,6 @@ "webpack-dev-server": "^5.2.2", "webpack-merge": "^6.0.1", "webpack-remove-empty-scripts": "^1.1.1" - }, - "peerDependencies": { - "@arcgis/core": "^5.0.9", - "ol": "^10.9.0", - "proj4": "^2.20.8" - }, - "peerDependenciesMeta": { - "@arcgis/core": { - "optional": true - }, - "ol": { - "optional": true - }, - "proj4": { - "optional": true - } } }, "../../docusaurus-govuk": { @@ -3486,6 +3474,62 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@defra/interactive-map-plugin-datasets": { + "resolved": "plugins/datasets", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-draw-es": { + "resolved": "plugins/draw-es", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-draw-ml": { + "resolved": "plugins/draw-ml", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-draw-ol": { + "resolved": "plugins/draw-ol", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-frame": { + "resolved": "plugins/frame", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-interact": { + "resolved": "plugins/interact", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-map-styles": { + "resolved": "plugins/map-styles", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-scale-bar": { + "resolved": "plugins/scale-bar", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-search": { + "resolved": "plugins/search", + "link": true + }, + "node_modules/@defra/interactive-map-plugin-use-location": { + "resolved": "plugins/use-location", + "link": true + }, + "node_modules/@defra/interactive-map-provider-esri": { + "resolved": "providers/esri", + "link": true + }, + "node_modules/@defra/interactive-map-provider-maplibre": { + "resolved": "providers/maplibre", + "link": true + }, + "node_modules/@defra/interactive-map-provider-open-names": { + "resolved": "providers/open-names", + "link": true + }, + "node_modules/@defra/interactive-map-provider-openlayers": { + "resolved": "providers/openlayers", + "link": true + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "dev": true, @@ -6224,6 +6268,7 @@ }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", + "dev": true, "engines": { "node": ">= 0.6" } @@ -6251,18 +6296,22 @@ }, "node_modules/@mapbox/point-geometry": { "version": "1.1.0", + "dev": true, "license": "ISC" }, "node_modules/@mapbox/tiny-sdf": { "version": "2.0.7", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/@mapbox/unitbezier": { "version": "0.0.1", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/@mapbox/vector-tile": { "version": "2.0.4", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@mapbox/point-geometry": "~1.1.0", @@ -6272,6 +6321,7 @@ }, "node_modules/@mapbox/whoots-js": { "version": "3.1.0", + "dev": true, "license": "ISC", "engines": { "node": ">=6.0.0" @@ -6281,6 +6331,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-6.1.0.tgz", "integrity": "sha512-2eIY4gZxeKIVOZVNkAMb+5NgXhgsMQpOveTQAvnp53LYqHGJZDidk7Ew0Tged9PThidpbS+NFTh0g4zivhPDzQ==", + "dev": true, "license": "ISC", "dependencies": { "kdbush": "^4.0.2" @@ -6290,6 +6341,7 @@ "version": "24.8.1", "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-24.8.1.tgz", "integrity": "sha512-zxa92qF96ZNojLxeAjnaRpjVCy+swoUNJvDhtpC90k7u5F0TMr4GmvNqMKvYrMoPB8d7gRSXbMG1hBbmgESIsw==", + "dev": true, "license": "ISC", "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", @@ -6310,6 +6362,7 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/@maplibre/mlt/-/mlt-1.1.8.tgz", "integrity": "sha512-8vtfYGidr1rNkv5IwIoU2lfe3Oy+Wa8HluzQYcQi9cveU9K3pweAal/poQj4GJ0K/EW4bTQp2wVAs09g2yDRZg==", + "dev": true, "license": "(MIT OR Apache-2.0)", "dependencies": { "@mapbox/point-geometry": "^1.1.0" @@ -6319,6 +6372,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.3.0.tgz", "integrity": "sha512-jIvp8F5hQCcreqOOpEt42TJMUlsrEcpf/kI1T2v85YrQRV6PPXUcEXUg5karKtH6oh47XJZ4kHu56pUkOuqA7w==", + "dev": true, "license": "MIT", "dependencies": { "@mapbox/point-geometry": "^1.1.0", @@ -6334,6 +6388,7 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-5.0.4.tgz", "integrity": "sha512-KGg9sma45S+stfH9vPCJk1J0lSDLWZgCT9Y8u8qWZJyjFlP8MNP1WGTxIMYJZjDvVT3PDn05kN1C95Sut1HpgQ==", + "dev": true, "license": "ISC" }, "node_modules/@mdx-js/mdx": { @@ -10999,6 +11054,7 @@ }, "node_modules/@types/supercluster": { "version": "7.1.3", + "dev": true, "license": "MIT", "dependencies": { "@types/geojson": "*" @@ -15109,6 +15165,7 @@ }, "node_modules/earcut": { "version": "3.0.2", + "dev": true, "license": "ISC" }, "node_modules/eastasianwidth": { @@ -17303,6 +17360,7 @@ }, "node_modules/gl-matrix": { "version": "3.4.4", + "dev": true, "license": "MIT" }, "node_modules/glob": { @@ -20346,6 +20404,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "dev": true, "license": "MIT" }, "node_modules/json5": { @@ -20386,6 +20445,7 @@ }, "node_modules/kdbush": { "version": "4.0.2", + "dev": true, "license": "ISC" }, "node_modules/keyv": { @@ -21298,6 +21358,7 @@ "version": "5.23.0", "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.23.0.tgz", "integrity": "sha512-aou8YBNFS8uVtDWFWt0W/6oorfl18wt+oIA8fnXk1kivjkbtXi9gGrQvflTpwrR3hG13aWdIdbYWeN0NFMV7ag==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@mapbox/jsonlint-lines-primitives": "^2.0.2", @@ -23921,6 +23982,7 @@ }, "node_modules/minimist": { "version": "1.2.8", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -24010,6 +24072,7 @@ }, "node_modules/murmurhash-js": { "version": "1.0.0", + "dev": true, "license": "MIT" }, "node_modules/nano-spawn": { @@ -25114,6 +25177,7 @@ }, "node_modules/pbf": { "version": "4.0.1", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "resolve-protobuf-schema": "^2.1.0" @@ -27134,6 +27198,7 @@ }, "node_modules/potpack": { "version": "2.1.0", + "dev": true, "license": "ISC" }, "node_modules/powershell-utils": { @@ -27302,6 +27367,7 @@ "version": "3.6.1", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==", + "dev": true, "license": "MIT" }, "node_modules/proxy-addr": { @@ -27445,6 +27511,7 @@ }, "node_modules/quickselect": { "version": "3.0.0", + "dev": true, "license": "ISC" }, "node_modules/range-parser": { @@ -28226,6 +28293,7 @@ }, "node_modules/resolve-protobuf-schema": { "version": "2.1.0", + "dev": true, "license": "MIT", "dependencies": { "protocol-buffers-schema": "^3.3.1" @@ -29330,6 +29398,7 @@ }, "node_modules/rw": { "version": "1.3.3", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/safe-array-concat": { @@ -30811,6 +30880,7 @@ }, "node_modules/supercluster": { "version": "8.0.1", + "dev": true, "license": "ISC", "dependencies": { "kdbush": "^4.0.2" @@ -31258,6 +31328,7 @@ }, "node_modules/tinyqueue": { "version": "3.0.0", + "dev": true, "license": "ISC" }, "node_modules/tldts": { @@ -33423,6 +33494,111 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } + }, + "plugins/datasets": { + "name": "@defra/interactive-map-plugin-datasets", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "plugins/draw-es": { + "name": "@defra/interactive-map-plugin-draw-es", + "version": "0.0.0-development", + "peerDependencies": { + "@arcgis/core": "^5.0.9", + "@defra/interactive-map": "*" + } + }, + "plugins/draw-ml": { + "name": "@defra/interactive-map-plugin-draw-ml", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*", + "maplibre-gl": "^5.23.0" + } + }, + "plugins/draw-ol": { + "name": "@defra/interactive-map-plugin-draw-ol", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*", + "ol": "^10.9.0" + } + }, + "plugins/frame": { + "name": "@defra/interactive-map-plugin-frame", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "plugins/interact": { + "name": "@defra/interactive-map-plugin-interact", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "plugins/map-styles": { + "name": "@defra/interactive-map-plugin-map-styles", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "plugins/scale-bar": { + "name": "@defra/interactive-map-plugin-scale-bar", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "plugins/search": { + "name": "@defra/interactive-map-plugin-search", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "plugins/use-location": { + "name": "@defra/interactive-map-plugin-use-location", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "providers/esri": { + "name": "@defra/interactive-map-provider-esri", + "version": "0.0.0-development", + "peerDependencies": { + "@arcgis/core": "^5.0.9", + "@defra/interactive-map": "*" + } + }, + "providers/maplibre": { + "name": "@defra/interactive-map-provider-maplibre", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*", + "maplibre-gl": "^5.23.0" + } + }, + "providers/open-names": { + "name": "@defra/interactive-map-provider-open-names", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*" + } + }, + "providers/openlayers": { + "name": "@defra/interactive-map-provider-openlayers", + "version": "0.0.0-development", + "peerDependencies": { + "@defra/interactive-map": "*", + "ol": "^10.9.0", + "proj4": "^2.20.8" + } } } } From a5f420bfbc0d5522f53b4eab850ae8f904c2d7b0 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 10 Jun 2026 17:41:04 +0100 Subject: [PATCH 19/22] fix: add **/*.scss to sideEffects in packages with SCSS imports --- plugins/datasets/package.json | 2 +- plugins/draw-ml/package.json | 2 +- plugins/draw-ol/package.json | 2 +- plugins/frame/package.json | 2 +- plugins/map-styles/package.json | 2 +- plugins/scale-bar/package.json | 2 +- plugins/search/package.json | 2 +- providers/esri/package.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/datasets/package.json b/plugins/datasets/package.json index 22de8712..2645bd6d 100644 --- a/plugins/datasets/package.json +++ b/plugins/datasets/package.json @@ -19,7 +19,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*" diff --git a/plugins/draw-ml/package.json b/plugins/draw-ml/package.json index 3e37039f..b5ebf6b8 100644 --- a/plugins/draw-ml/package.json +++ b/plugins/draw-ml/package.json @@ -18,7 +18,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*", diff --git a/plugins/draw-ol/package.json b/plugins/draw-ol/package.json index a97fdc01..05559e16 100644 --- a/plugins/draw-ol/package.json +++ b/plugins/draw-ol/package.json @@ -17,7 +17,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": false, + "sideEffects": ["**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*", diff --git a/plugins/frame/package.json b/plugins/frame/package.json index 8bdb7cad..5d13b504 100644 --- a/plugins/frame/package.json +++ b/plugins/frame/package.json @@ -18,7 +18,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*" diff --git a/plugins/map-styles/package.json b/plugins/map-styles/package.json index 5c4ed560..01beb429 100644 --- a/plugins/map-styles/package.json +++ b/plugins/map-styles/package.json @@ -18,7 +18,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*" diff --git a/plugins/scale-bar/package.json b/plugins/scale-bar/package.json index d20db11a..fc54dc81 100644 --- a/plugins/scale-bar/package.json +++ b/plugins/scale-bar/package.json @@ -18,7 +18,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*" diff --git a/plugins/search/package.json b/plugins/search/package.json index 0346493b..98f95317 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -18,7 +18,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "peerDependencies": { "@defra/interactive-map": "*" }, diff --git a/providers/esri/package.json b/providers/esri/package.json index 8ff9a30a..bf1e8fb3 100644 --- a/providers/esri/package.json +++ b/providers/esri/package.json @@ -16,7 +16,7 @@ }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": ["**/*.css", "**/*.scss"], "publishConfig": { "tag": "beta" }, "peerDependencies": { "@defra/interactive-map": "*", From 7e30c5cc965fe30f0c6bb8363ff9403bbcf457d5 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Wed, 17 Jun 2026 13:28:14 +0100 Subject: [PATCH 20/22] fix: correct CSS exports, add datasets adapter entry, fix publish script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove ./css export from interact plugin (no SCSS source files) - Add missing ./css export to draw-ol plugin (has SCSS source files) - Add rollup entry for datasets maplibre adapter sub-path export - Add adapter index.js re-exporting maplibreLayerAdapter as named export - Fix publish script: replace npm publish --prefix with npm publish ./ (--prefix targets the npm prefix dir, not the package dir; bare paths are treated as git URLs — ./ prefix is required for local directories) --- plugins/datasets/src/adapters/maplibre/index.js | 1 + plugins/draw-ol/package.json | 3 ++- plugins/interact/package.json | 5 ++--- rollup.esm.mjs | 4 ++++ scripts/publish-package.sh | 4 ++-- 5 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 plugins/datasets/src/adapters/maplibre/index.js diff --git a/plugins/datasets/src/adapters/maplibre/index.js b/plugins/datasets/src/adapters/maplibre/index.js new file mode 100644 index 00000000..d7053ef5 --- /dev/null +++ b/plugins/datasets/src/adapters/maplibre/index.js @@ -0,0 +1 @@ +export { default as maplibreLayerAdapter } from './maplibreLayerAdapter.js' diff --git a/plugins/draw-ol/package.json b/plugins/draw-ol/package.json index 05559e16..3d411b19 100644 --- a/plugins/draw-ol/package.json +++ b/plugins/draw-ol/package.json @@ -13,7 +13,8 @@ ".": { "import": "./dist/esm/index.js", "require": "./dist/umd/index.js" - } + }, + "./css": "./dist/css/index.css" }, "type": "module", "files": ["dist"], diff --git a/plugins/interact/package.json b/plugins/interact/package.json index 4b890e6c..0272c1ba 100644 --- a/plugins/interact/package.json +++ b/plugins/interact/package.json @@ -13,12 +13,11 @@ ".": { "import": "./dist/esm/index.js", "require": "./dist/umd/index.js" - }, - "./css": "./dist/css/index.css" + } }, "type": "module", "files": ["dist"], - "sideEffects": ["**/*.css"], + "sideEffects": false, "peerDependencies": { "@defra/interactive-map": "*" }, diff --git a/rollup.esm.mjs b/rollup.esm.mjs index f560f685..4a923cdc 100644 --- a/rollup.esm.mjs +++ b/rollup.esm.mjs @@ -269,6 +269,10 @@ const ALL_BUILDS = [ if (id.includes('maplibreLayerAdapter')) return 'im-datasets-ml-adapter' } }, + { + entryPath: './plugins/datasets/src/adapters/maplibre/index.js', + outDir: 'plugins/datasets/dist/adapters/maplibre/esm' + }, { entryPath: './plugins/map-styles/src/index.js', outDir: 'plugins/map-styles/dist/esm', diff --git a/scripts/publish-package.sh b/scripts/publish-package.sh index beed3e6e..f63dc068 100755 --- a/scripts/publish-package.sh +++ b/scripts/publish-package.sh @@ -115,10 +115,10 @@ publish_all() { echo "Publishing ${pkg_name}@${version} to npm with tag: ${pkg_tag}" if [ "$DRY_RUN" = "true" ]; then - echo "[DRY RUN] Would run: npm publish --prefix ${pkg_dir} --access public --tag=${pkg_tag}" + echo "[DRY RUN] Would run: npm publish ./${pkg_dir} --access public --tag=${pkg_tag}" else assert_version "$pkg_dir" "$version" - npm publish --prefix "$pkg_dir" --access public --tag="${pkg_tag}" + npm publish "./${pkg_dir}" --access public --tag="${pkg_tag}" fi echo "✓ Published ${pkg_name}@${version}" From 3cffe5a059e3928190877996c68501d48044cda5 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Thu, 18 Jun 2026 10:37:59 +0100 Subject: [PATCH 21/22] fix: expose ./package.json in root exports for tooling resolution --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 68f3175a..fd82c926 100755 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "import": "./dist/esm/index.js", "require": "./dist/umd/index.js" }, - "./css": "./dist/css/index.css" + "./css": "./dist/css/index.css", + "./package.json": "./package.json" }, "type": "module", "sideEffects": [ From 5f2554870e5f1069d6d24edef83046b9b8edd255 Mon Sep 17 00:00:00 2001 From: Alex Luckett Date: Thu, 18 Jun 2026 11:11:52 +0100 Subject: [PATCH 22/22] fix: correct logger import depth after beta/ flatten in merged files Main-side commits added logger imports at the old beta/ directory depth. The merge auto-applied them verbatim onto the flattened paths, leaving one too many '../' levels. Build (rollup) caught these; jest masked them via mocks. --- plugins/datasets/src/api/setFeatureVisibility.js | 2 +- plugins/datasets/src/api/setFeatureVisibility.test.js | 4 ++-- plugins/draw-es/src/graphic.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/datasets/src/api/setFeatureVisibility.js b/plugins/datasets/src/api/setFeatureVisibility.js index 1f3701ce..7f7c09a3 100644 --- a/plugins/datasets/src/api/setFeatureVisibility.js +++ b/plugins/datasets/src/api/setFeatureVisibility.js @@ -1,4 +1,4 @@ -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' import { datasetRegistry } from '../registry/datasetRegistry.js' export const setFeatureVisibility = ({ pluginState: { dispatch } }, visible, featureIds, { datasetId = null } = {}) => { diff --git a/plugins/datasets/src/api/setFeatureVisibility.test.js b/plugins/datasets/src/api/setFeatureVisibility.test.js index 0dd5b5ca..d4deb3c2 100644 --- a/plugins/datasets/src/api/setFeatureVisibility.test.js +++ b/plugins/datasets/src/api/setFeatureVisibility.test.js @@ -1,12 +1,12 @@ import { setFeatureVisibility } from './setFeatureVisibility.js' import { datasetRegistry } from '../registry/datasetRegistry.js' -import { logger } from '../../../../../src/services/logger.js' +import { logger } from '../../../../src/services/logger.js' jest.mock('../registry/datasetRegistry.js', () => ({ datasetRegistry: { getDataset: jest.fn() } })) -jest.mock('../../../../../src/services/logger.js', () => ({ +jest.mock('../../../../src/services/logger.js', () => ({ logger: { warn: jest.fn() } })) diff --git a/plugins/draw-es/src/graphic.js b/plugins/draw-es/src/graphic.js index 2f30ca08..6ad3ffbf 100644 --- a/plugins/draw-es/src/graphic.js +++ b/plugins/draw-es/src/graphic.js @@ -1,6 +1,6 @@ import Graphic from '@arcgis/core/Graphic.js' import * as simplifyOperator from '@arcgis/core/geometry/operators/simplifyOperator.js' -import { logger } from '../../../../src/services/logger.js' +import { logger } from '../../../src/services/logger.js' function createSymbol (mapColorScheme) { return {