diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..bdbaea66 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,9 @@ +node_modules +dist +coverage +**/*.d.ts +**/*.js +tests +ui-tests +**/build/ +examples/ diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..b32723ae --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,39 @@ +module.exports = { + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + ], + parser: "@typescript-eslint/parser", + parserOptions: { + project: "tsconfig.eslint.json", + sourceType: "module", + }, + plugins: ["@typescript-eslint"], + rules: { + "@typescript-eslint/naming-convention": [ + "error", + { + selector: "interface", + format: ["PascalCase"], + custom: { + regex: "^I[A-Z]", + match: true, + }, + }, + ], + "@typescript-eslint/no-unused-vars": ["warn", { args: "none" }], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/ban-ts-comment": "warn", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/quotes": [ + "error", + "single", + { avoidEscape: true, allowTemplateLiterals: false }, + ], + curly: ["error", "all"], + eqeqeq: "error", + "prefer-arrow-callback": "error", + }, +}; diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6500780d..b298992f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -171,6 +171,30 @@ jobs: ui-tests/test-results ui-tests/playwright-report + check_linting: + name: Lint check + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install Conda environment with Micromamba + uses: mamba-org/setup-micromamba@v1 + with: + environment-name: gis + create-args: >- + python=3.9 + jupyterlab=4 + yarn=3 + + - name: Lint + shell: bash -l {0} + run: | + jlpm install + jlpm run eslint:check + jlpm run prettier:check + check_links: name: Check Links runs-on: ubuntu-latest diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..95d4c0de --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +node_modules +**/node_modules +**/lib +**/*.d.ts +**/*.js +yarn.lock +*.jGIS +playwright.config.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..d0824a69 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto" +} diff --git a/lerna.json b/lerna.json index 53e4e2a3..77eeecde 100644 --- a/lerna.json +++ b/lerna.json @@ -2,9 +2,5 @@ "npmClient": "yarn", "version": "independent", "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "packages": [ - "packages/*", - "python/jupytergis_core", - "python/jupytergis_lab" - ] + "packages": ["packages/*", "python/jupytergis_core", "python/jupytergis_lab"] } diff --git a/package.json b/package.json index 993bcccc..f5c5ea97 100644 --- a/package.json +++ b/package.json @@ -59,18 +59,13 @@ "@typescript-eslint/eslint-plugin": "5.55.0", "@typescript-eslint/parser": "5.55.0", "copy-webpack-plugin": "^10.0.0", - "eslint": "8.36.0", - "eslint-config-prettier": "8.7.0", - "eslint-plugin-prettier": "5.0.1", + "eslint": "^8.36.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^5.0.1", "lerna": "^7.0.0", "npm-run-all": "^4.1.5", "prettier": "^3.0.0", "rimraf": "^3.0.2", - "stylelint": "^15.10.1", - "stylelint-config-recommended": "^13.0.0", - "stylelint-config-standard": "^34.0.0", - "stylelint-csstree-validator": "^3.0.0", - "stylelint-prettier": "^4.0.0", "typescript": "^5", "webpack": "^5.76.3" } diff --git a/packages/base/src/commands.ts b/packages/base/src/commands.ts index f231495d..f3592441 100644 --- a/packages/base/src/commands.ts +++ b/packages/base/src/commands.ts @@ -5,7 +5,13 @@ import { ITranslator } from '@jupyterlab/translation'; import { redoIcon, undoIcon } from '@jupyterlab/ui-components'; import { JupyterGISWidget } from './widget'; -import { IDict, IJGISFormSchemaRegistry, IJGISLayer, IJGISSource, IJupyterGISModel } from '@jupytergis/schema'; +import { + IDict, + IJGISFormSchemaRegistry, + IJGISLayer, + IJGISSource, + IJupyterGISModel +} from '@jupytergis/schema'; import { FormDialog } from './formdialog'; import RASTER_LAYER_GALLERY from '../rasterlayer_gallery/raster_layer_gallery.json'; @@ -45,7 +51,6 @@ function getRasterLayerGallery(): IRasterLayerGalleryEntry[] { return gallery; } - /** * Add the commands to the application's command registry. */ @@ -117,7 +122,6 @@ export namespace CommandIDs { export const newRasterLayer = 'jupytergis:newRasterLayer'; } - namespace Private { export const FORM_SCHEMA = {}; @@ -156,7 +160,7 @@ namespace Private { default: (model: IJupyterGISModel) => { return { name: 'RasterSource', - url: "https://tile.openstreetmap.org/{z}/{x}/{y}.png", + url: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', maxZoom: 24, minZoom: 0 }; @@ -186,7 +190,7 @@ namespace Private { context: current.context, title: form.title, sourceData: form.default(current.context.model), - schema: FORM_SCHEMA["RasterSource"], + schema: FORM_SCHEMA['RasterSource'], syncData: (props: IDict) => { const sharedModel = current.context.model.sharedModel; if (!sharedModel) { @@ -198,7 +202,7 @@ namespace Private { const sourceId = UUID.uuid4(); const sourceModel: IJGISSource = { - type: "RasterSource", + type: 'RasterSource', name, parameters: { url: parameters.url, @@ -208,15 +212,15 @@ namespace Private { }; const layerModel: IJGISLayer = { - type: "RasterLayer", + type: 'RasterLayer', parameters: { source: sourceId }, visible: true, - name: name + " Layer" + name: name + ' Layer' }; - sharedModel.addSource(sourceId, sourceModel) + sharedModel.addSource(sourceId, sourceModel); sharedModel.addLayer(UUID.uuid4(), layerModel); }, cancelButton: () => { @@ -227,5 +231,4 @@ namespace Private { await dialog.launch(); }; } - } diff --git a/packages/base/src/mainview/mainview.tsx b/packages/base/src/mainview/mainview.tsx index 76e6c78a..f6935733 100644 --- a/packages/base/src/mainview/mainview.tsx +++ b/packages/base/src/mainview/mainview.tsx @@ -4,7 +4,7 @@ import { IJupyterGISClientState, IJupyterGISDoc, IJupyterGISModel, - IRasterSource, + IRasterSource } from '@jupytergis/schema'; import { IObservableMap, ObservableMap } from '@jupyterlab/observables'; import { User } from '@jupyterlab/services'; @@ -32,7 +32,6 @@ interface IStates { firstLoad: boolean; } - export class MainView extends React.Component { constructor(props: IProps) { super(props); @@ -51,10 +50,7 @@ export class MainView extends React.Component { this ); - this._model.sharedLayersChanged.connect( - this._onLayersChanged, - this - ); + this._model.sharedLayersChanged.connect(this._onLayersChanged, this); this.state = { id: this._mainViewModel.id, @@ -139,8 +135,8 @@ export class MainView extends React.Component { continue; } - switch(layer.type) { - case 'RasterLayer': + switch (layer.type) { + case 'RasterLayer': { const sourceId = layer.parameters?.source; const source = this.getSource(sourceId); @@ -156,7 +152,7 @@ export class MainView extends React.Component { this._Map.addSource(sourceId, { type: 'raster', tiles: [source.url], - tileSize: 256, + tileSize: 256 }); } else { // TODO If the source already existed, update it @@ -167,8 +163,9 @@ export class MainView extends React.Component { type: 'raster', source: sourceId, minzoom: source.minZoom || 0, - maxzoom: source.maxZoom || 24, + maxzoom: source.maxZoom || 24 }); + } } } } diff --git a/packages/base/src/mainview/mainviewmodel.ts b/packages/base/src/mainview/mainviewmodel.ts index 90e1e829..07c249aa 100644 --- a/packages/base/src/mainview/mainviewmodel.ts +++ b/packages/base/src/mainview/mainviewmodel.ts @@ -1,13 +1,12 @@ import { IJGISLayerDocChange, IJupyterGISDoc, - IJupyterGISModel, + IJupyterGISModel } from '@jupytergis/schema'; import { ObservableMap } from '@jupyterlab/observables'; import { JSONValue } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; - export class MainViewModel implements IDisposable { constructor(options: MainViewModel.IOptions) { this._jGISModel = options.jGISModel; diff --git a/packages/base/src/panelview/leftpanel.tsx b/packages/base/src/panelview/leftpanel.tsx index 892d7f7c..4d9d4280 100644 --- a/packages/base/src/panelview/leftpanel.tsx +++ b/packages/base/src/panelview/leftpanel.tsx @@ -1,13 +1,9 @@ -import { - JupyterGISDoc, - IJupyterGISTracker -} from '@jupytergis/schema'; +import { JupyterGISDoc, IJupyterGISTracker } from '@jupytergis/schema'; import { SidePanel } from '@jupyterlab/ui-components'; import { IControlPanelModel } from '../types'; import { ControlPanelHeader } from './header'; - export class LeftPanelWidget extends SidePanel { constructor(options: LeftPanelWidget.IOptions) { super(); @@ -16,7 +12,7 @@ export class LeftPanelWidget extends SidePanel { const header = new ControlPanelHeader(); this.header.addWidget(header); - console.log(this._model) + console.log(this._model); // const datasources = new DataSourceList({ controlPanelModel: this._model }); // this.addWidget(datasources); diff --git a/packages/base/src/panelview/objectproperties.tsx b/packages/base/src/panelview/objectproperties.tsx index 85a0a13c..18d52512 100644 --- a/packages/base/src/panelview/objectproperties.tsx +++ b/packages/base/src/panelview/objectproperties.tsx @@ -13,10 +13,7 @@ import { Panel } from '@lumino/widgets'; import * as React from 'react'; import { v4 as uuid } from 'uuid'; -import { - focusInputField, - removeStyleFromProperty -} from '../tools'; +import { focusInputField, removeStyleFromProperty } from '../tools'; import { IControlPanelModel } from '../types'; import { ObjectPropertiesForm } from './formbuilder'; import { JupyterGISWidget } from '../widget'; @@ -139,7 +136,10 @@ class ObjectPropertiesReact extends React.Component { ): void => { this.setState(old => { if (old.selectedObject) { - const selectedObject = this.props.cpModel.jGISModel?.sharedModel.getObject(old.selectedObject); + const selectedObject = + this.props.cpModel.jGISModel?.sharedModel.getObject( + old.selectedObject + ); if (selectedObject) { const selectedObjectData = selectedObject.parameters; return { diff --git a/packages/base/src/panelview/rightpanel.tsx b/packages/base/src/panelview/rightpanel.tsx index 47a2065c..f5d348c7 100644 --- a/packages/base/src/panelview/rightpanel.tsx +++ b/packages/base/src/panelview/rightpanel.tsx @@ -9,7 +9,6 @@ import { IControlPanelModel } from '../types'; import { ControlPanelHeader } from './header'; import { ObjectProperties } from './objectproperties'; - export class RightPanelWidget extends SidePanel { constructor(options: RightPanelWidget.IOptions) { super(); diff --git a/packages/base/src/svg.d.ts b/packages/base/src/svg.d.ts index d4627e55..16cdda94 100644 --- a/packages/base/src/svg.d.ts +++ b/packages/base/src/svg.d.ts @@ -1,4 +1,4 @@ -declare module '*.svg' { +declare module "*.svg" { const value: string; // @ts-ignore export default value; } diff --git a/packages/base/src/tools.ts b/packages/base/src/tools.ts index 7616990a..38389c41 100644 --- a/packages/base/src/tools.ts +++ b/packages/base/src/tools.ts @@ -2,7 +2,6 @@ import { URLExt } from '@jupyterlab/coreutils'; import { ServerConnection } from '@jupyterlab/services'; import * as d3Color from 'd3-color'; - export const debounce = ( func: CallableFunction, timeout = 100 diff --git a/packages/base/src/widget.tsx b/packages/base/src/widget.tsx index 011b7f89..0783b308 100644 --- a/packages/base/src/widget.tsx +++ b/packages/base/src/widget.tsx @@ -9,7 +9,6 @@ import * as React from 'react'; import { MainView } from './mainview'; import { MainViewModel } from './mainview/mainviewmodel'; - export class JupyterGISWidget extends DocumentWidget implements IJupyterGISWidget @@ -39,9 +38,7 @@ export class JupyterGISPanel extends ReactWidget { * * @param context - The documents context. */ - constructor(options: { - model: IJupyterGISModel; - }) { + constructor(options: { model: IJupyterGISModel }) { super(); this.addClass('jp-jupytergis-panel'); this._view = new ObservableMap(); diff --git a/packages/schema/schema.js b/packages/schema/schema.js index c3b6cfd0..c14f02d4 100644 --- a/packages/schema/schema.js +++ b/packages/schema/schema.js @@ -1,13 +1,15 @@ -const path = require('path'); -const fs = require('fs'); -const $RefParser = require('@apidevtools/json-schema-ref-parser'); -const schemaPath = path.join(__dirname, 'src/schema'); +const path = require("path"); +const fs = require("fs"); +const $RefParser = require("@apidevtools/json-schema-ref-parser"); +const schemaPath = path.join(__dirname, "src/schema"); const allSchema = {}; const files = fs.readdirSync(schemaPath); -fs.cpSync(path.join(__dirname, 'src/_interface'),'../../lib/_interface', {recursive: true}) +fs.cpSync(path.join(__dirname, "src/_interface"), "../../lib/_interface", { + recursive: true, +}); -files.forEach(file => { +files.forEach((file) => { const rawData = fs.readFileSync(path.join(schemaPath, file)); const data = JSON.parse(rawData); @@ -15,13 +17,13 @@ files.forEach(file => { if (err) { console.error(err); } else { - if (rschema['description']) { + if (rschema["description"]) { const { description, title, ...props } = rschema; allSchema[description] = props; } fs.writeFileSync( - '../../lib/_interface/forms.json', - JSON.stringify(allSchema, null, 2) + "../../lib/_interface/forms.json", + JSON.stringify(allSchema, null, 2), ); } }); diff --git a/packages/schema/src/doc.ts b/packages/schema/src/doc.ts index 4adc9340..21031c50 100644 --- a/packages/schema/src/doc.ts +++ b/packages/schema/src/doc.ts @@ -3,7 +3,13 @@ import { JSONExt, JSONObject } from '@lumino/coreutils'; import { ISignal, Signal } from '@lumino/signaling'; import * as Y from 'yjs'; -import { IJGISLayer, IJGISLayers, IJGISOptions, IJGISSource, IJGISSources } from './_interface/jgis'; +import { + IJGISLayer, + IJGISLayers, + IJGISOptions, + IJGISSource, + IJGISSources +} from './_interface/jgis'; import { IDict, IJGISLayerDocChange, @@ -136,7 +142,10 @@ export class JupyterGISDoc } } - updateObjectParameters(id: string, value: IJGISLayer['parameters'] | IJGISSource['parameters']) { + updateObjectParameters( + id: string, + value: IJGISLayer['parameters'] | IJGISSource['parameters'] + ) { const layer = this.getLayer(id); if (layer) { layer.parameters = { @@ -235,7 +244,7 @@ export class JupyterGISDoc if (needEmit) { this._layersChanged.emit({ layerChange: changes }); } - }; + } private _sourcesObserver(events: Y.YEvent[]): void { const changes: Array<{ @@ -258,7 +267,7 @@ export class JupyterGISDoc if (needEmit) { this._sourcesChanged.emit({ sourceChange: changes }); } - }; + } private _optionsObserver = (event: Y.YMapEvent>): void => { this._optionsChanged.emit(event.keys); diff --git a/packages/schema/src/interfaces.ts b/packages/schema/src/interfaces.ts index df710c28..fdddf8c9 100644 --- a/packages/schema/src/interfaces.ts +++ b/packages/schema/src/interfaces.ts @@ -69,7 +69,10 @@ export interface IJupyterGISDoc extends YDocument { addSource(id: string, value: IJGISSource): void; updateSource(id: string, value: IJGISSource): void; - updateObjectParameters(id: string, value: IJGISLayer['parameters'] | IJGISSource['parameters']): void; + updateObjectParameters( + id: string, + value: IJGISLayer['parameters'] | IJGISSource['parameters'] + ): void; getObject(id: string): IJGISLayer | IJGISSource | undefined; getOption(key: keyof IJGISOptions): IDict | undefined; diff --git a/packages/schema/src/model.ts b/packages/schema/src/model.ts index 4c416a64..8fe17dbe 100644 --- a/packages/schema/src/model.ts +++ b/packages/schema/src/model.ts @@ -5,18 +5,23 @@ import { PartialJSONObject } from '@lumino/coreutils'; import { ISignal, Signal } from '@lumino/signaling'; import Ajv from 'ajv'; -import { IJGISContent, IJGISLayer, IJGISLayers, IJGISSource, IJGISSources } from './_interface/jgis'; +import { + IJGISContent, + IJGISLayer, + IJGISLayers, + IJGISSource, + IJGISSources +} from './_interface/jgis'; import { JupyterGISDoc } from './doc'; import { IJGISLayerDocChange, IJupyterGISClientState, IJupyterGISDoc, IJupyterGISModel, - IUserData, + IUserData } from './interfaces'; import jgisSchema from './schema/jgis.json'; - export class JupyterGISModel implements IJupyterGISModel { constructor(options: DocumentRegistry.IModelOptions) { const { sharedModel } = options; diff --git a/packages/schema/src/schema/jgis.json b/packages/schema/src/schema/jgis.json index e3210ed4..497b4df7 100644 --- a/packages/schema/src/schema/jgis.json +++ b/packages/schema/src/schema/jgis.json @@ -17,15 +17,11 @@ "definitions": { "layerType": { "type": "string", - "enum": [ - "RasterLayer" - ] + "enum": ["RasterLayer"] }, "sourceType": { "type": "string", - "enum": [ - "RasterSource" - ] + "enum": ["RasterSource"] }, "jGISLayer": { "title": "IJGISLayer", @@ -85,9 +81,7 @@ "type": "object", "default": {}, "additionalProperties": false, - "properties": { - - } + "properties": {} } } } diff --git a/packages/schema/src/schema/rasterlayer.json b/packages/schema/src/schema/rasterlayer.json index 515157a5..00d70fec 100644 --- a/packages/schema/src/schema/rasterlayer.json +++ b/packages/schema/src/schema/rasterlayer.json @@ -1,13 +1,13 @@ { - "type": "object", - "description": "RasterLayer", - "title": "IRasterLayer", - "required": ["source"], - "additionalProperties": false, - "properties": { - "source": { - "type": "string", - "description": "The id of the source" - } + "type": "object", + "description": "RasterLayer", + "title": "IRasterLayer", + "required": ["source"], + "additionalProperties": false, + "properties": { + "source": { + "type": "string", + "description": "The id of the source" } } +} diff --git a/packages/schema/src/schema/rastersource.json b/packages/schema/src/schema/rastersource.json index 91853582..d5f19d61 100644 --- a/packages/schema/src/schema/rastersource.json +++ b/packages/schema/src/schema/rastersource.json @@ -1,25 +1,25 @@ { - "type": "object", - "description": "RasterSource", - "title": "IRasterSource", - "required": ["url", "maxZoom", "minZoom"], - "additionalProperties": false, - "properties": { - "url": { - "type": "string", - "description": "The url to the tile provider" - }, - "maxZoom": { - "type": "number", - "minimum": 0, - "maximum": 24, - "description": "The maximum zoom level for the raster source" - }, - "minZoom": { - "type": "number", - "minimum": 0, - "maximum": 24, - "description": "The minimum zoom level for the raster source" - } + "type": "object", + "description": "RasterSource", + "title": "IRasterSource", + "required": ["url", "maxZoom", "minZoom"], + "additionalProperties": false, + "properties": { + "url": { + "type": "string", + "description": "The url to the tile provider" + }, + "maxZoom": { + "type": "number", + "minimum": 0, + "maximum": 24, + "description": "The maximum zoom level for the raster source" + }, + "minZoom": { + "type": "number", + "minimum": 0, + "maximum": 24, + "description": "The minimum zoom level for the raster source" } + } } diff --git a/python/jupytergis_core/src/jgisplugin/modelfactory.ts b/python/jupytergis_core/src/jgisplugin/modelfactory.ts index 495954a7..ebdbfb9e 100644 --- a/python/jupytergis_core/src/jgisplugin/modelfactory.ts +++ b/python/jupytergis_core/src/jgisplugin/modelfactory.ts @@ -1,7 +1,4 @@ -import { - IJupyterGISDoc, - JupyterGISModel -} from '@jupytergis/schema'; +import { IJupyterGISDoc, JupyterGISModel } from '@jupytergis/schema'; import { DocumentRegistry } from '@jupyterlab/docregistry'; import { Contents } from '@jupyterlab/services'; diff --git a/python/jupytergis_core/src/jgisplugin/plugins.ts b/python/jupytergis_core/src/jgisplugin/plugins.ts index c96c1b77..9aae4966 100644 --- a/python/jupytergis_core/src/jgisplugin/plugins.ts +++ b/python/jupytergis_core/src/jgisplugin/plugins.ts @@ -110,8 +110,7 @@ const activate = ( ...model, format: 'text', size: undefined, - content: - '{\n\t"layers": {},\n\t"sources": {},\n\t"options": {}\n}' + content: '{\n\t"layers": {},\n\t"sources": {},\n\t"options": {}\n}' }); // Open the newly created file with the 'Editor' diff --git a/python/jupytergis_core/style/index.js b/python/jupytergis_core/style/index.js index a028a764..3e6051dc 100644 --- a/python/jupytergis_core/style/index.js +++ b/python/jupytergis_core/style/index.js @@ -1 +1 @@ -import './base.css'; +import "./base.css"; diff --git a/python/jupytergis_lab/src/index.ts b/python/jupytergis_lab/src/index.ts index a77075c9..fb0f84af 100644 --- a/python/jupytergis_lab/src/index.ts +++ b/python/jupytergis_lab/src/index.ts @@ -28,10 +28,7 @@ const NAME_SPACE = 'jupytergis'; const plugin: JupyterFrontEndPlugin = { id: 'jupytergis:lab:main-menu', autoStart: true, - requires: [ - IJupyterGISDocTracker, - IJGISFormSchemaRegistryToken - ], + requires: [IJupyterGISDocTracker, IJGISFormSchemaRegistryToken], optional: [IMainMenu, ITranslator], activate: ( app: JupyterFrontEnd, diff --git a/python/jupytergis_lab/src/notebookrenderer.ts b/python/jupytergis_lab/src/notebookrenderer.ts index 69e0db6d..03545d27 100644 --- a/python/jupytergis_lab/src/notebookrenderer.ts +++ b/python/jupytergis_lab/src/notebookrenderer.ts @@ -1,8 +1,6 @@ import { WebSocketProvider } from '@jupyter/docprovider'; import { JupyterGISPanel } from '@jupytergis/base'; -import { - JupyterGISModel -} from '@jupytergis/schema'; +import { JupyterGISModel } from '@jupytergis/schema'; import { JupyterFrontEnd, @@ -36,9 +34,7 @@ export class YJupyterGISModel extends JupyterYModel { } export class YJupyterGISLuminoWidget extends Panel { - constructor(options: { - model: JupyterGISModel; - }) { + constructor(options: { model: JupyterGISModel }) { super(); this.addClass(CLASS_NAME); diff --git a/python/jupytergis_lab/style/index.js b/python/jupytergis_lab/style/index.js index a028a764..3e6051dc 100644 --- a/python/jupytergis_lab/style/index.js +++ b/python/jupytergis_lab/style/index.js @@ -1 +1 @@ -import './base.css'; +import "./base.css"; diff --git a/ui-tests/playwright.config.js b/ui-tests/playwright.config.js index ead43458..e57f435b 100644 --- a/ui-tests/playwright.config.js +++ b/ui-tests/playwright.config.js @@ -1,21 +1,20 @@ /** * Configuration for Playwright using default from @jupyterlab/galata */ -const baseConfig = require('@jupyterlab/galata/lib/playwright-config'); +const baseConfig = require("@jupyterlab/galata/lib/playwright-config"); module.exports = { ...baseConfig, webServer: { - command: 'jlpm start', - url: 'http://localhost:8888/lab', + command: "jlpm start", + url: "http://localhost:8888/lab", timeout: 120 * 1000, - reuseExistingServer: false + reuseExistingServer: false, }, retries: 1, use: { ...baseConfig.use, - trace: 'off', - + trace: "off", }, expect: { toMatchSnapshot: { diff --git a/yarn.lock b/yarn.lock index 2923fe0e..db146540 100644 --- a/yarn.lock +++ b/yarn.lock @@ -523,41 +523,6 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.3.1": - version: 2.6.3 - resolution: "@csstools/css-parser-algorithms@npm:2.6.3" - peerDependencies: - "@csstools/css-tokenizer": ^2.3.1 - checksum: f1bfcb6680c801f4201c30b77827e000b838e5a45b42f146ec352cd008b51ebb31b8aae00364369765c24e938391e221e37f4063e3a6151316d6990c498da103 - languageName: node - linkType: hard - -"@csstools/css-tokenizer@npm:^2.2.0": - version: 2.3.1 - resolution: "@csstools/css-tokenizer@npm:2.3.1" - checksum: a5fe22faed5673b5d19e64aa7f4730b48711d0946470551376bc3125d831511070c94addfdfc6a62634e968955050ef2c99c92ff8cb294d9bf70ebc1f3ac22a8 - languageName: node - linkType: hard - -"@csstools/media-query-list-parser@npm:^2.1.4": - version: 2.1.11 - resolution: "@csstools/media-query-list-parser@npm:2.1.11" - peerDependencies: - "@csstools/css-parser-algorithms": ^2.6.3 - "@csstools/css-tokenizer": ^2.3.1 - checksum: e338eff90b43ab31b3d33c55c792f7760d556feaeaa042e12b8e3f873293b72f1140df1bbbfa1c9dcc16c58afb777f1e218e17afdcd0ab8228d2a8ea22bcbe61 - languageName: node - linkType: hard - -"@csstools/selector-specificity@npm:^3.0.0": - version: 3.1.1 - resolution: "@csstools/selector-specificity@npm:3.1.1" - peerDependencies: - postcss-selector-parser: ^6.0.13 - checksum: 3786a6afea97b08ad739ee8f4004f7e0a9e25049cee13af809dbda6462090744012a54bd9275a44712791e8f103f85d21641f14e81799f9dab946b0459a5e1ef - languageName: node - linkType: hard - "@deathbeds/jupyterlab-rjsf@npm:^1.1.0": version: 1.1.0 resolution: "@deathbeds/jupyterlab-rjsf@npm:1.1.0" @@ -618,14 +583,14 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": +"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.1 resolution: "@eslint-community/regexpp@npm:4.10.1" checksum: 1e04bc366fb8152c9266258cd25e3fded102f1d212a9476928e3cb98c48be645df6d676728d1c596053992fb9134879fe0de23c9460035b342cceb22d3af1776 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.0.1": +"@eslint/eslintrc@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: @@ -642,10 +607,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.36.0": - version: 8.36.0 - resolution: "@eslint/js@npm:8.36.0" - checksum: b7d6b84b823c8c7784be390741196617565527b1f7c0977fde9455bfb57fd88f81c074a03dd878757d2c33fa29f24291e9ecbc1425710f067917324b55e1bf3a +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb languageName: node linkType: hard @@ -663,7 +628,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.8": +"@humanwhocodes/config-array@npm:^0.11.14": version: 0.11.14 resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: @@ -1011,18 +976,13 @@ __metadata: "@typescript-eslint/eslint-plugin": 5.55.0 "@typescript-eslint/parser": 5.55.0 copy-webpack-plugin: ^10.0.0 - eslint: 8.36.0 - eslint-config-prettier: 8.7.0 - eslint-plugin-prettier: 5.0.1 + eslint: ^8.36.0 + eslint-config-prettier: ^8.8.0 + eslint-plugin-prettier: ^5.0.1 lerna: ^7.0.0 npm-run-all: ^4.1.5 prettier: ^3.0.0 rimraf: ^3.0.2 - stylelint: ^15.10.1 - stylelint-config-recommended: ^13.0.0 - stylelint-config-standard: ^34.0.0 - stylelint-csstree-validator: ^3.0.0 - stylelint-prettier: ^4.0.0 typescript: ^5 webpack: ^5.76.3 languageName: unknown @@ -3239,7 +3199,7 @@ __metadata: languageName: node linkType: hard -"@types/minimist@npm:^1.2.0, @types/minimist@npm:^1.2.2": +"@types/minimist@npm:^1.2.0": version: 1.2.5 resolution: "@types/minimist@npm:1.2.5" checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90 @@ -3488,6 +3448,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": version: 1.12.1 resolution: "@webassemblyjs/ast@npm:1.12.1" @@ -3890,7 +3857,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.7.0": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.7.0": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -3902,7 +3869,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.12.0, ajv@npm:^8.9.0": +"ajv@npm:^8.0.0, ajv@npm:^8.12.0, ajv@npm:^8.9.0": version: 8.16.0 resolution: "ajv@npm:8.16.0" dependencies: @@ -4098,13 +4065,6 @@ __metadata: languageName: node linkType: hard -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 - languageName: node - linkType: hard - "async-limiter@npm:~1.0.0": version: 1.0.1 resolution: "async-limiter@npm:1.0.1" @@ -4177,13 +4137,6 @@ __metadata: languageName: node linkType: hard -"balanced-match@npm:^2.0.0": - version: 2.0.0 - resolution: "balanced-match@npm:2.0.0" - checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 - languageName: node - linkType: hard - "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -4421,18 +4374,6 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:^7.0.0": - version: 7.0.2 - resolution: "camelcase-keys@npm:7.0.2" - dependencies: - camelcase: ^6.3.0 - map-obj: ^4.1.0 - quick-lru: ^5.1.1 - type-fest: ^1.2.1 - checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b - languageName: node - linkType: hard - "camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -4440,13 +4381,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.3.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - "camelize@npm:^1.0.0": version: 1.0.1 resolution: "camelize@npm:1.0.1" @@ -4679,13 +4613,6 @@ __metadata: languageName: node linkType: hard -"colord@npm:^2.9.3": - version: 2.9.3 - resolution: "colord@npm:2.9.3" - checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 - languageName: node - linkType: hard - "colorette@npm:^2.0.14": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -4970,13 +4897,6 @@ __metadata: languageName: node linkType: hard -"css-functions-list@npm:^3.2.1": - version: 3.2.2 - resolution: "css-functions-list@npm:3.2.2" - checksum: b8a564118b93b87b63236a57132a3ef581416896a70c1d0df73360a9ec43dc582f7c2a586b578feb8476179518e557c6657570a8b6185b16300c7232a84d43e3 - languageName: node - linkType: hard - "css-loader@npm:^6.7.1": version: 6.11.0 resolution: "css-loader@npm:6.11.0" @@ -5012,16 +4932,6 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^2.3.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" - dependencies: - mdn-data: 2.0.30 - source-map-js: ^1.0.1 - checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 - languageName: node - linkType: hard - "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -5156,13 +5066,6 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^5.0.0": - version: 5.0.1 - resolution: "decamelize@npm:5.0.1" - checksum: 7c3b1ed4b3e60e7fbc00a35fb248298527c1cdfe603e41dfcf05e6c4a8cb9efbee60630deb677ed428908fb4e74e322966c687a094d1478ddc9c3a74e9dc7140 - languageName: node - linkType: hard - "dedent@npm:0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -5730,33 +5633,34 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:8.7.0": - version: 8.7.0 - resolution: "eslint-config-prettier@npm:8.7.0" +"eslint-config-prettier@npm:^8.8.0": + version: 8.10.0 + resolution: "eslint-config-prettier@npm:8.10.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: b05bc7f2296ce3e0925c14147849706544870e0382d38af2352d709a6cf8521bdaff2bd8e5021f1780e570775a8ffa1d2bac28b8065d90d43a3f1f98fd26ce52 + checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 languageName: node linkType: hard -"eslint-plugin-prettier@npm:5.0.1": - version: 5.0.1 - resolution: "eslint-plugin-prettier@npm:5.0.1" +"eslint-plugin-prettier@npm:^5.0.1": + version: 5.1.3 + resolution: "eslint-plugin-prettier@npm:5.1.3" dependencies: prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.5 + synckit: ^0.8.6 peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" + eslint-config-prettier: "*" prettier: ">=3.0.0" peerDependenciesMeta: "@types/eslint": optional: true eslint-config-prettier: optional: true - checksum: c2261033b97bafe99ccb7cc47c2fac6fa85b8bbc8b128042e52631f906b69e12afed2cdd9d7e3021cc892ee8dd4204a3574e1f32a0b718b4bb3b440944b6983b + checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 languageName: node linkType: hard @@ -5770,7 +5674,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.1.1": +"eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" dependencies: @@ -5780,33 +5684,34 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:8.36.0": - version: 8.36.0 - resolution: "eslint@npm:8.36.0" +"eslint@npm:^8.36.0": + version: 8.57.0 + resolution: "eslint@npm:8.57.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.0.1 - "@eslint/js": 8.36.0 - "@humanwhocodes/config-array": ^0.11.8 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.57.0 + "@humanwhocodes/config-array": ^0.11.14 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.1 - eslint-visitor-keys: ^3.3.0 - espree: ^9.5.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -5814,26 +5719,23 @@ __metadata: find-up: ^5.0.0 glob-parent: ^6.0.2 globals: ^13.19.0 - grapheme-splitter: ^1.0.4 + graphemer: ^1.4.0 ignore: ^5.2.0 - import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 - js-sdsl: ^4.1.4 js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 + optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: e9a961fc3b3de5cff5a1cb2c92eeffaa7e155a715489e30b3e1e76f186bd1255e0481e09564f2094733c0b1dbd3453499fb72ae7c043c83156e11e6d965b2304 + checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 languageName: node linkType: hard @@ -5849,7 +5751,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.5.0, espree@npm:^9.6.0": +"espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -6034,7 +5936,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": +"fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -6061,7 +5963,7 @@ __metadata: languageName: node linkType: hard -"fastest-levenshtein@npm:^1.0.12, fastest-levenshtein@npm:^1.0.16": +"fastest-levenshtein@npm:^1.0.12": version: 1.0.16 resolution: "fastest-levenshtein@npm:1.0.16" checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 @@ -6095,15 +5997,6 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^7.0.0": - version: 7.0.2 - resolution: "file-entry-cache@npm:7.0.2" - dependencies: - flat-cache: ^3.2.0 - checksum: 283c674fc26bed1c44e74cf25c2640c813e222ea30a2536404b53511ca311d4a2502ee8145a01aecd12b9a910eb4162364776be27a9683e8447332054e9d712f - languageName: node - linkType: hard - "filelist@npm:^1.0.4": version: 1.0.4 resolution: "filelist@npm:1.0.4" @@ -6158,7 +6051,7 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0": +"flat-cache@npm:^3.0.4": version: 3.2.0 resolution: "flat-cache@npm:3.2.0" dependencies: @@ -6603,15 +6496,6 @@ __metadata: languageName: node linkType: hard -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: ^3.0.0 - checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 - languageName: node - linkType: hard - "global-prefix@npm:^3.0.0": version: 3.0.0 resolution: "global-prefix@npm:3.0.0" @@ -6677,13 +6561,6 @@ __metadata: languageName: node linkType: hard -"globjoin@npm:^0.1.4": - version: 0.1.4 - resolution: "globjoin@npm:0.1.4" - checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -6707,6 +6584,13 @@ __metadata: languageName: node linkType: hard +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + "gud@npm:^1.0.0": version: 1.0.0 resolution: "gud@npm:1.0.0" @@ -6851,13 +6735,6 @@ __metadata: languageName: node linkType: hard -"html-tags@npm:^3.3.1": - version: 3.3.1 - resolution: "html-tags@npm:3.3.1" - checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce - languageName: node - linkType: hard - "htmlparser2@npm:^6.0.0": version: 6.1.0 resolution: "htmlparser2@npm:6.1.0" @@ -6986,7 +6863,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.4, ignore@npm:^5.1.9, ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.0.4, ignore@npm:^5.1.9, ignore@npm:^5.2.0": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 @@ -7000,7 +6877,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -7010,13 +6887,6 @@ __metadata: languageName: node linkType: hard -"import-lazy@npm:^4.0.0": - version: 4.0.0 - resolution: "import-lazy@npm:4.0.0" - checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 - languageName: node - linkType: hard - "import-local@npm:3.1.0, import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" @@ -7043,13 +6913,6 @@ __metadata: languageName: node linkType: hard -"indent-string@npm:^5.0.0": - version: 5.0.0 - resolution: "indent-string@npm:5.0.0" - checksum: e466c27b6373440e6d84fbc19e750219ce25865cb82d578e41a6053d727e5520dc5725217d6eb1cc76005a1bb1696a0f106d84ce7ebda3033b963a38583fb3b3 - languageName: node - linkType: hard - "infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" @@ -7585,13 +7448,6 @@ __metadata: languageName: node linkType: hard -"js-sdsl@npm:^4.1.4": - version: 4.4.2 - resolution: "js-sdsl@npm:4.4.2" - checksum: ba705adc1788bf3c6f6c8e5077824f2bb4f0acab5a984420ce5cc492c7fff3daddc26335ad2c9a67d4f5e3241ec790f9e5b72a625adcf20cf321d2fd85e62b8b - languageName: node - linkType: hard - "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -7832,13 +7688,6 @@ __metadata: languageName: node linkType: hard -"known-css-properties@npm:^0.29.0": - version: 0.29.0 - resolution: "known-css-properties@npm:0.29.0" - checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af - languageName: node - linkType: hard - "lerna@npm:^7.0.0": version: 7.4.2 resolution: "lerna@npm:7.4.2" @@ -8215,13 +8064,6 @@ __metadata: languageName: node linkType: hard -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 - languageName: node - linkType: hard - "lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -8382,7 +8224,7 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.0.0, map-obj@npm:^4.1.0": +"map-obj@npm:^4.0.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e @@ -8442,20 +8284,6 @@ __metadata: languageName: node linkType: hard -"mathml-tag-names@npm:^2.1.3": - version: 2.1.3 - resolution: "mathml-tag-names@npm:2.1.3" - checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 - languageName: node - linkType: hard - -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa - languageName: node - linkType: hard - "memoizee@npm:^0.4.15": version: 0.4.17 resolution: "memoizee@npm:0.4.17" @@ -8479,26 +8307,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^10.1.5": - version: 10.1.5 - resolution: "meow@npm:10.1.5" - dependencies: - "@types/minimist": ^1.2.2 - camelcase-keys: ^7.0.0 - decamelize: ^5.0.0 - decamelize-keys: ^1.1.0 - hard-rejection: ^2.1.0 - minimist-options: 4.1.0 - normalize-package-data: ^3.0.2 - read-pkg-up: ^8.0.0 - redent: ^4.0.0 - trim-newlines: ^4.0.2 - type-fest: ^1.2.2 - yargs-parser: ^20.2.9 - checksum: dd5f0caa4af18517813547dc66741dcbf52c4c23def5062578d39b11189fd9457aee5c1f2263a5cd6592a465023df8357e8ac876b685b64dbcf545e3f66c23a7 - languageName: node - linkType: hard - "meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -8532,7 +8340,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.0, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.0, micromatch@npm:^4.0.4": version: 4.0.7 resolution: "micromatch@npm:4.0.7" dependencies: @@ -8565,7 +8373,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": +"min-indent@npm:^1.0.0": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 @@ -9078,7 +8886,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.2, normalize-package-data@npm:^3.0.3": +"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.3": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -9429,7 +9237,7 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1": +"optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" dependencies: @@ -9889,23 +9697,7 @@ __metadata: languageName: node linkType: hard -"postcss-resolve-nested-selector@npm:^0.1.1": - version: 0.1.1 - resolution: "postcss-resolve-nested-selector@npm:0.1.1" - checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 - languageName: node - linkType: hard - -"postcss-safe-parser@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-safe-parser@npm:6.0.0" - peerDependencies: - postcss: ^8.3.3 - checksum: 06c733eaad83a3954367e7ee02ddfe3796e7a44d4299ccf9239f40964a4daac153c7d77613f32964b5a86c0c6c2f6167738f31d578b73b17cb69d0c4446f0ebe - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": version: 6.1.0 resolution: "postcss-selector-parser@npm:6.1.0" dependencies: @@ -9922,7 +9714,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11, postcss@npm:^8.4.28, postcss@npm:^8.4.33": +"postcss@npm:^8.3.11, postcss@npm:^8.4.33": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -10106,13 +9898,6 @@ __metadata: languageName: node linkType: hard -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed - languageName: node - linkType: hard - "quickselect@npm:^2.0.0": version: 2.0.0 resolution: "quickselect@npm:2.0.0" @@ -10306,17 +10091,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^8.0.0": - version: 8.0.0 - resolution: "read-pkg-up@npm:8.0.0" - dependencies: - find-up: ^5.0.0 - read-pkg: ^6.0.0 - type-fest: ^1.0.1 - checksum: fe4c80401656b40b408884457fffb5a8015c03b1018cfd8e48f8d82a5e9023e24963603aeb2755608d964593e046c15b34d29b07d35af9c7aa478be81805209c - languageName: node - linkType: hard - "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -10340,18 +10114,6 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^6.0.0": - version: 6.0.0 - resolution: "read-pkg@npm:6.0.0" - dependencies: - "@types/normalize-package-data": ^2.4.0 - normalize-package-data: ^3.0.2 - parse-json: ^5.2.0 - type-fest: ^1.0.1 - checksum: 0cebdff381128e923815c643074a87011070e5fc352bee575d327d6485da3317fab6d802a7b03deeb0be7be8d3ad1640397b3d5d2f044452caf4e8d1736bf94f - languageName: node - linkType: hard - "read@npm:^2.0.0": version: 2.1.0 resolution: "read@npm:2.1.0" @@ -10415,16 +10177,6 @@ __metadata: languageName: node linkType: hard -"redent@npm:^4.0.0": - version: 4.0.0 - resolution: "redent@npm:4.0.0" - dependencies: - indent-string: ^5.0.0 - strip-indent: ^4.0.0 - checksum: 6944e7b1d8f3fd28c2515f5c605b9f7f0ea0f4edddf41890bbbdd4d9ee35abb7540c3b278f03ff827bd278bb6ff4a5bd8692ca406b748c5c1c3ce7355e9fbf8f - languageName: node - linkType: hard - "regenerator-runtime@npm:^0.14.0": version: 0.14.1 resolution: "regenerator-runtime@npm:0.14.1" @@ -10905,17 +10657,6 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 - languageName: node - linkType: hard - "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -11285,16 +11026,7 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-indent@npm:4.0.0" - dependencies: - min-indent: ^1.0.1 - checksum: 06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -11330,13 +11062,6 @@ __metadata: languageName: node linkType: hard -"style-search@npm:^0.1.0": - version: 0.1.0 - resolution: "style-search@npm:0.1.0" - checksum: 3cfefe335033aad6d47da0725cb48f5db91a73935954c77eab77d9e415e6668cdb406da4a4f7ef9f1aca77853cf5ba7952c45e869caa5bd6439691d88098d468 - languageName: node - linkType: hard - "styled-components@npm:^5.3.6": version: 5.3.11 resolution: "styled-components@npm:5.3.11" @@ -11359,99 +11084,6 @@ __metadata: languageName: node linkType: hard -"stylelint-config-recommended@npm:^13.0.0": - version: 13.0.0 - resolution: "stylelint-config-recommended@npm:13.0.0" - peerDependencies: - stylelint: ^15.10.0 - checksum: a56eb6d1a7c7f3a7a172b54bc34218859ba22a5a06816fb4d0964f66cb83cf372062f2c97830e994ad68243548e15fc49abf28887c3261ab1b471b3aa69f8e82 - languageName: node - linkType: hard - -"stylelint-config-standard@npm:^34.0.0": - version: 34.0.0 - resolution: "stylelint-config-standard@npm:34.0.0" - dependencies: - stylelint-config-recommended: ^13.0.0 - peerDependencies: - stylelint: ^15.10.0 - checksum: 536249800c04b48a9c354067765f042713982e8222be17bb897a27d26546e50adfb87e6f1e4541807d720de3554345da99ab470e13e8d7ab0ab326c73ae3df61 - languageName: node - linkType: hard - -"stylelint-csstree-validator@npm:^3.0.0": - version: 3.0.0 - resolution: "stylelint-csstree-validator@npm:3.0.0" - dependencies: - css-tree: ^2.3.1 - peerDependencies: - stylelint: ">=7.0.0 <16.0.0" - checksum: e518c8c17714022946b7637c23a6816fd2ccdd6052a19c5a138b3f7ce9b913ead9c612ac4401e102f14800a19967dbfd4b588b44cbf3f3c6a5984bef7bda4017 - languageName: node - linkType: hard - -"stylelint-prettier@npm:^4.0.0": - version: 4.1.0 - resolution: "stylelint-prettier@npm:4.1.0" - dependencies: - prettier-linter-helpers: ^1.0.0 - peerDependencies: - prettier: ">=3.0.0" - stylelint: ">=15.8.0" - checksum: bbeb7e0dd49099c43297e88a61385b39f4b5810c8bfcc972d5b2706b6a7e14a8eefd5f9e623841cf3127111a8859eb624a3e7cc1bc5197c83c55c6c9a616a4d2 - languageName: node - linkType: hard - -"stylelint@npm:^15.10.1": - version: 15.11.0 - resolution: "stylelint@npm:15.11.0" - dependencies: - "@csstools/css-parser-algorithms": ^2.3.1 - "@csstools/css-tokenizer": ^2.2.0 - "@csstools/media-query-list-parser": ^2.1.4 - "@csstools/selector-specificity": ^3.0.0 - balanced-match: ^2.0.0 - colord: ^2.9.3 - cosmiconfig: ^8.2.0 - css-functions-list: ^3.2.1 - css-tree: ^2.3.1 - debug: ^4.3.4 - fast-glob: ^3.3.1 - fastest-levenshtein: ^1.0.16 - file-entry-cache: ^7.0.0 - global-modules: ^2.0.0 - globby: ^11.1.0 - globjoin: ^0.1.4 - html-tags: ^3.3.1 - ignore: ^5.2.4 - import-lazy: ^4.0.0 - imurmurhash: ^0.1.4 - is-plain-object: ^5.0.0 - known-css-properties: ^0.29.0 - mathml-tag-names: ^2.1.3 - meow: ^10.1.5 - micromatch: ^4.0.5 - normalize-path: ^3.0.0 - picocolors: ^1.0.0 - postcss: ^8.4.28 - postcss-resolve-nested-selector: ^0.1.1 - postcss-safe-parser: ^6.0.0 - postcss-selector-parser: ^6.0.13 - postcss-value-parser: ^4.2.0 - resolve-from: ^5.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - style-search: ^0.1.0 - supports-hyperlinks: ^3.0.0 - svg-tags: ^1.0.0 - table: ^6.8.1 - write-file-atomic: ^5.0.1 - bin: - stylelint: bin/stylelint.mjs - checksum: 9835f8a3e3976a3b81a35569d08f5f4a9c3b5cff415f1345a505870afc0c3231acff27f119d937c5bb11fdbc98d554af564c2a648a52604280a59a11974fcbfc - languageName: node - linkType: hard - "supercluster@npm:^8.0.1": version: 8.0.1 resolution: "supercluster@npm:8.0.1" @@ -11470,7 +11102,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0, supports-color@npm:^7.2.0": +"supports-color@npm:^7.1.0, supports-color@npm:^7.2.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: @@ -11488,16 +11120,6 @@ __metadata: languageName: node linkType: hard -"supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" - dependencies: - has-flag: ^4.0.0 - supports-color: ^7.0.0 - checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 - languageName: node - linkType: hard - "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -11505,14 +11127,7 @@ __metadata: languageName: node linkType: hard -"svg-tags@npm:^1.0.0": - version: 1.0.0 - resolution: "svg-tags@npm:1.0.0" - checksum: 407e5ef87cfa2fb81c61d738081c2decd022ce13b922d035b214b49810630bf5d1409255a4beb3a940b77b32f6957806deff16f1bf0ce1ab11c7a184115a0b7f - languageName: node - linkType: hard - -"synckit@npm:^0.8.5": +"synckit@npm:^0.8.6": version: 0.8.8 resolution: "synckit@npm:0.8.8" dependencies: @@ -11529,19 +11144,6 @@ __metadata: languageName: node linkType: hard -"table@npm:^6.8.1": - version: 6.8.2 - resolution: "table@npm:6.8.2" - dependencies: - ajv: ^8.0.1 - lodash.truncate: ^4.4.2 - slice-ansi: ^4.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - checksum: 61188652f53a980d1759ca460ca8dea5c5322aece3210457e7084882f053c2b6a870041295e08a82cb1d676e31b056406845d94b0abf3c79a4b104777bec413b - languageName: node - linkType: hard - "tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -11770,13 +11372,6 @@ __metadata: languageName: node linkType: hard -"trim-newlines@npm:^4.0.2": - version: 4.1.1 - resolution: "trim-newlines@npm:4.1.1" - checksum: 5b09f8e329e8f33c1111ef26906332ba7ba7248cde3e26fc054bb3d69f2858bf5feedca9559c572ff91f33e52977c28e0d41c387df6a02a633cbb8c2d8238627 - languageName: node - linkType: hard - "ts-loader@npm:^9.2.6": version: 9.5.1 resolution: "ts-loader@npm:9.5.1" @@ -11905,13 +11500,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": - version: 1.4.0 - resolution: "type-fest@npm:1.4.0" - checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 - languageName: node - linkType: hard - "type@npm:^2.7.2": version: 2.7.3 resolution: "type@npm:2.7.3" @@ -12672,7 +12260,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:5.0.1, write-file-atomic@npm:^5.0.1": +"write-file-atomic@npm:5.0.1": version: 5.0.1 resolution: "write-file-atomic@npm:5.0.1" dependencies: @@ -12835,7 +12423,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": +"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3