diff --git a/.github/workflows/deploy/Dockerfile b/.github/workflows/deploy/Dockerfile index b22aa162..a2081dcb 100644 --- a/.github/workflows/deploy/Dockerfile +++ b/.github/workflows/deploy/Dockerfile @@ -3,6 +3,7 @@ ARG JBROWSE_VERSION COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf COPY ./jbrowse-plugin-apollo.umd.development.js /usr/local/apache2/htdocs/ COPY ./jbrowse-plugin-apollo.umd.production.min.js /usr/local/apache2/htdocs/ +COPY ./jbrowse-plugin-apollo.umd.production.min.js /usr/local/apache2/htdocs/apollo.js WORKDIR /usr/local/apache2/htdocs/ RUN < absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real eslint/bin/eslint.js your application uses -module.exports = absRequire(`eslint/bin/eslint.js`); +module.exports = wrapWithUserWrapper(absRequire(`eslint/bin/eslint.js`)); diff --git a/.yarn/sdks/eslint/lib/api.js b/.yarn/sdks/eslint/lib/api.js index ea2b46a7..8addf97f 100644 --- a/.yarn/sdks/eslint/lib/api.js +++ b/.yarn/sdks/eslint/lib/api.js @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real eslint your application uses -module.exports = absRequire(`eslint`); +module.exports = wrapWithUserWrapper(absRequire(`eslint`)); diff --git a/.yarn/sdks/eslint/lib/unsupported-api.js b/.yarn/sdks/eslint/lib/unsupported-api.js index f5f8e24d..c2b464ce 100644 --- a/.yarn/sdks/eslint/lib/unsupported-api.js +++ b/.yarn/sdks/eslint/lib/unsupported-api.js @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real eslint/use-at-your-own-risk your application uses -module.exports = absRequire(`eslint/use-at-your-own-risk`); +module.exports = wrapWithUserWrapper(absRequire(`eslint/use-at-your-own-risk`)); diff --git a/.yarn/sdks/eslint/package.json b/.yarn/sdks/eslint/package.json index 7468a956..263cd3d5 100644 --- a/.yarn/sdks/eslint/package.json +++ b/.yarn/sdks/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "8.51.0-sdk", + "version": "8.57.0-sdk", "main": "./lib/api.js", "type": "commonjs", "bin": { diff --git a/.yarn/sdks/prettier/bin/prettier.cjs b/.yarn/sdks/prettier/bin/prettier.cjs index 00f1f7f7..9a4098f7 100755 --- a/.yarn/sdks/prettier/bin/prettier.cjs +++ b/.yarn/sdks/prettier/bin/prettier.cjs @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real prettier/bin/prettier.cjs your application uses -module.exports = absRequire(`prettier/bin/prettier.cjs`); +module.exports = wrapWithUserWrapper(absRequire(`prettier/bin/prettier.cjs`)); diff --git a/.yarn/sdks/prettier/index.cjs b/.yarn/sdks/prettier/index.cjs index d546c6a7..57cb2ab1 100644 --- a/.yarn/sdks/prettier/index.cjs +++ b/.yarn/sdks/prettier/index.cjs @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real prettier your application uses -module.exports = absRequire(`prettier`); +module.exports = wrapWithUserWrapper(absRequire(`prettier`)); diff --git a/.yarn/sdks/prettier/package.json b/.yarn/sdks/prettier/package.json index 6e68f38b..b2633814 100644 --- a/.yarn/sdks/prettier/package.json +++ b/.yarn/sdks/prettier/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "3.2.5-sdk", + "version": "3.3.2-sdk", "main": "./index.cjs", "type": "commonjs", "bin": "./bin/prettier.cjs" diff --git a/.yarn/sdks/typescript/bin/tsc b/.yarn/sdks/typescript/bin/tsc index a6bb0e2c..867a7bdf 100755 --- a/.yarn/sdks/typescript/bin/tsc +++ b/.yarn/sdks/typescript/bin/tsc @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real typescript/bin/tsc your application uses -module.exports = absRequire(`typescript/bin/tsc`); +module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsc`)); diff --git a/.yarn/sdks/typescript/bin/tsserver b/.yarn/sdks/typescript/bin/tsserver index 957bed20..3fc5aa31 100755 --- a/.yarn/sdks/typescript/bin/tsserver +++ b/.yarn/sdks/typescript/bin/tsserver @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real typescript/bin/tsserver your application uses -module.exports = absRequire(`typescript/bin/tsserver`); +module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsserver`)); diff --git a/.yarn/sdks/typescript/lib/tsc.js b/.yarn/sdks/typescript/lib/tsc.js index a262a77d..da411bdb 100644 --- a/.yarn/sdks/typescript/lib/tsc.js +++ b/.yarn/sdks/typescript/lib/tsc.js @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real typescript/lib/tsc.js your application uses -module.exports = absRequire(`typescript/lib/tsc.js`); +module.exports = wrapWithUserWrapper(absRequire(`typescript/lib/tsc.js`)); diff --git a/.yarn/sdks/typescript/lib/tsserver.js b/.yarn/sdks/typescript/lib/tsserver.js index 1dae54c1..6249c467 100644 --- a/.yarn/sdks/typescript/lib/tsserver.js +++ b/.yarn/sdks/typescript/lib/tsserver.js @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,7 +24,15 @@ if (existsSync(absPnpApiPath)) { } } -const moduleWrapper = tsserver => { +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +const moduleWrapper = exports => { + return wrapWithUserWrapper(moduleWrapperFn(exports)); +}; + +const moduleWrapperFn = tsserver => { if (!process.versions.pnp) { return tsserver; } diff --git a/.yarn/sdks/typescript/lib/tsserverlibrary.js b/.yarn/sdks/typescript/lib/tsserverlibrary.js index 7f9d7f96..0e50e0a2 100644 --- a/.yarn/sdks/typescript/lib/tsserverlibrary.js +++ b/.yarn/sdks/typescript/lib/tsserverlibrary.js @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,7 +24,15 @@ if (existsSync(absPnpApiPath)) { } } -const moduleWrapper = tsserver => { +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +const moduleWrapper = exports => { + return wrapWithUserWrapper(moduleWrapperFn(exports)); +}; + +const moduleWrapperFn = tsserver => { if (!process.versions.pnp) { return tsserver; } diff --git a/.yarn/sdks/typescript/lib/typescript.js b/.yarn/sdks/typescript/lib/typescript.js index 317b60b4..7b6cc220 100644 --- a/.yarn/sdks/typescript/lib/typescript.js +++ b/.yarn/sdks/typescript/lib/typescript.js @@ -8,6 +8,7 @@ const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); @@ -23,5 +24,9 @@ if (existsSync(absPnpApiPath)) { } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real typescript your application uses -module.exports = absRequire(`typescript`); +module.exports = wrapWithUserWrapper(absRequire(`typescript`)); diff --git a/.yarn/sdks/typescript/package.json b/.yarn/sdks/typescript/package.json index d32f3913..0c65a695 100644 --- a/.yarn/sdks/typescript/package.json +++ b/.yarn/sdks/typescript/package.json @@ -1,6 +1,6 @@ { "name": "typescript", - "version": "5.2.2-sdk", + "version": "5.5.3-sdk", "main": "./lib/typescript.js", "type": "commonjs", "bin": { diff --git a/package.json b/package.json index a22124eb..7e11663a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "apollo3", + "private": true, "description": "Monorepo containing Apollo front and back end code", - "packageManager": "yarn@4.3.1", "workspaces": [ "packages/*" ], @@ -42,10 +42,11 @@ "lint-staged": "^15.2.2", "npm-run-all": "^4.1.5", "prettier": "^3.3.2", + "prettier-plugin-packagejson": "^2.5.2", "react": "^18.2.0", "tsx": "^4.6.2", "typescript": "^5.5.3", "yargs": "^17.7.2" }, - "private": true + "packageManager": "yarn@4.3.1" } diff --git a/packages/apollo-cli/README.md b/packages/apollo-cli/README.md index 1be041ec..b8894341 100644 --- a/packages/apollo-cli/README.md +++ b/packages/apollo-cli/README.md @@ -16,7 +16,7 @@ $ npm install -g @apollo-annotation/cli $ apollo COMMAND running command... $ apollo (--version) -@apollo-annotation/cli/0.1.18 linux-x64 node-v20.14.0 +@apollo-annotation/cli/0.1.19 linux-x64 node-v20.13.0 $ apollo --help [COMMAND] USAGE $ apollo COMMAND diff --git a/packages/apollo-cli/package.json b/packages/apollo-cli/package.json index 1a53265d..b097e122 100644 --- a/packages/apollo-cli/package.json +++ b/packages/apollo-cli/package.json @@ -1,22 +1,19 @@ { "name": "@apollo-annotation/cli", + "version": "0.1.19", "description": "Command line interface for the Apollo annotation server", - "version": "0.1.18", - "author": "Apollo Team", "repository": { "type": "git", "url": "https://github.com/GMOD/Apollo3.git", "directory": "packages/apollo-cli" }, - "bin": { - "apollo": "./bin/run.js" - }, + "author": "Apollo Team", "type": "module", + "exports": "./dist/index.js", "main": "", "types": "dist/index.d.ts", - "exports": "./dist/index.js", - "engines": { - "node": ">=18.0.0" + "bin": { + "apollo": "./bin/run.js" }, "files": [ "/bin", @@ -26,14 +23,44 @@ "scripts": { "build": "shx rm -rf dist && tsc -b", "dev": "tsx bin/dev.js", + "prepack": "yarn build && oclif manifest && oclif readme && prettier --write README.md", "postpack": "shx rm -f oclif.manifest.json", - "posttest": "yarn lint", - "prepack": "yarn build && oclif manifest && oclif readme", "prepare": "yarn build", "test": "mocha --require src/test/fixtures.ts 'src/**/*.test.ts'", + "posttest": "yarn lint", "test:ci": "nyc mocha 'src/**/*.test.ts'", "version": "oclif readme && git add README.md" }, + "oclif": { + "bin": "apollo", + "commands": "./dist/commands", + "dirname": "apollo-cli", + "helpOptions": { + "flagSortOrder": "none" + }, + "plugins": [ + "@oclif/plugin-help" + ], + "repositoryPrefix": "<%- repo %>/blob/v<%- version %>/packages/apollo-cli/<%- commandPath %>", + "topicSeparator": " ", + "topics": { + "assembly": { + "description": "Commands to handle assemblies" + }, + "change": { + "description": "Commands to handle the log of changes made to the database" + }, + "feature": { + "description": "Commands to handle features" + }, + "refseq": { + "description": "Commands to handle reference sequences" + }, + "user": { + "description": "Commands to handle users" + } + } + }, "dependencies": { "@inquirer/input": "^1.2.14", "@inquirer/password": "^1.1.14", @@ -55,7 +82,7 @@ "@istanbuljs/esm-loader-hook": "^0.2.0", "@istanbuljs/nyc-config-typescript": "^1.0.2", "@oclif/test": "^3.1.3", - "@types/chai": "^4", + "@types/chai": "^4.3.19", "@types/cli-progress": "^3", "@types/inquirer": "^9.0.7", "@types/mocha": "^10", @@ -64,6 +91,7 @@ "mocha": "^10.2.0", "nyc": "^15.1.0", "oclif": "^4.4.2", + "prettier": "^3.3.2", "react-dom": "^18.2.0", "rxjs": "^7.4.0", "shx": "^0.3.3", @@ -71,35 +99,8 @@ "tsx": "^4.6.2", "typescript": "^5.5.3" }, - "oclif": { - "helpOptions": { - "flagSortOrder": "none" - }, - "bin": "apollo", - "dirname": "apollo-cli", - "commands": "./dist/commands", - "plugins": [ - "@oclif/plugin-help" - ], - "repositoryPrefix": "<%- repo %>/blob/v<%- version %>/packages/apollo-cli/<%- commandPath %>", - "topicSeparator": " ", - "topics": { - "assembly": { - "description": "Commands to handle assemblies" - }, - "change": { - "description": "Commands to handle the log of changes made to the database" - }, - "feature": { - "description": "Commands to handle features" - }, - "refseq": { - "description": "Commands to handle reference sequences" - }, - "user": { - "description": "Commands to handle users" - } - } + "engines": { + "node": ">=18.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/apollo-collaboration-server/package.json b/packages/apollo-collaboration-server/package.json index 39ab7526..fd7bc225 100644 --- a/packages/apollo-collaboration-server/package.json +++ b/packages/apollo-collaboration-server/package.json @@ -1,27 +1,42 @@ { "name": "@apollo-annotation/collaboration-server", - "version": "0.1.18", + "version": "0.1.19", + "private": true, "description": "", - "author": "", "license": "Apache-2.0", - "engines": { - "node": ">=14" - }, + "author": "", "scripts": { "build": "yarn build:shared && rimraf dist && nest build", + "cypress:start": "GUEST_USER_ROLE=admin MONGODB_URI=\"mongodb://localhost:27017/apolloTestDb?directConnection=true\" LOG_LEVELS=error,warn yarn start", + "deb": "ts-node-dev src/main.ts", "start": "yarn build:shared && yarn start:nest --watch", + "start:debug": "yarn build:shared && yarn start:nest --debug --watch", "start:nest": "NODE_ENV=development nest start", "start:no-watch": "yarn build:shared && yarn start:nest", - "start:debug": "yarn build:shared && yarn start:nest --debug --watch", - "deb": "ts-node-dev src/main.ts", "start:prod": "NODE_ENV=production node dist/main.js", "test": "jest", - "test:watch": "jest --watch", + "test:cli:start": "ALLOW_ROOT_USER=true ROOT_USER_NAME=admin ROOT_USER_PASSWORD=pass MONGODB_URI=\"mongodb://localhost:27017/apolloTestCliDb?directConnection=true\" LOG_LEVELS=error,warn yarn start", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json", - "cypress:start": "GUEST_USER_ROLE=admin MONGODB_URI=\"mongodb://localhost:27017/apolloTestDb?directConnection=true\" LOG_LEVELS=error,warn yarn start", - "test:cli:start": "ALLOW_ROOT_USER=true ROOT_USER_NAME=admin ROOT_USER_PASSWORD=pass MONGODB_URI=\"mongodb://localhost:27017/apolloTestCliDb?directConnection=true\" LOG_LEVELS=error,warn yarn start" + "test:watch": "jest --watch" + }, + "jest": { + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testEnvironment": "node", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } }, "dependencies": { "@apollo-annotation/common": "workspace:^", @@ -104,22 +119,7 @@ "tsconfig-paths": "^3.11.0", "typescript": "^5.5.3" }, - "jest": { - "moduleFileExtensions": [ - "js", - "json", - "ts" - ], - "rootDir": "src", - "testRegex": ".*\\.spec\\.ts$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - }, - "collectCoverageFrom": [ - "**/*.(t|j)s" - ], - "coverageDirectory": "../coverage", - "testEnvironment": "node" - }, - "private": true + "engines": { + "node": ">=14" + } } diff --git a/packages/apollo-common/package.json b/packages/apollo-common/package.json index 8c21a079..cb1bf528 100644 --- a/packages/apollo-common/package.json +++ b/packages/apollo-common/package.json @@ -1,6 +1,6 @@ { "name": "@apollo-annotation/common", - "version": "0.1.18", + "version": "0.1.19", "repository": { "type": "git", "url": "https://github.com/GMOD/Apollo3.git", @@ -17,6 +17,14 @@ "bson-objectid": "^2.0.4", "tslib": "^2.3.1" }, + "devDependencies": { + "@apollo-annotation/mst": "workspace:^", + "@nestjs/common": "^10.1.0", + "@nestjs/core": "^10.1.0", + "@types/node": "^18.14.2", + "mongoose": "^6.12.0", + "typescript": "^5.5.3" + }, "peerDependencies": { "@mui/material": "^5.11.14", "@mui/x-data-grid": "^7.0.0", @@ -29,14 +37,6 @@ "rxjs": "^7.4.0", "tss-react": "^4.6.1" }, - "devDependencies": { - "@apollo-annotation/mst": "workspace:^", - "@nestjs/common": "^10.1.0", - "@nestjs/core": "^10.1.0", - "@types/node": "^18.14.2", - "mongoose": "^6.12.0", - "typescript": "^5.5.3" - }, "publishConfig": { "access": "public" } diff --git a/packages/apollo-mst/package.json b/packages/apollo-mst/package.json index 3960481b..f295fabc 100644 --- a/packages/apollo-mst/package.json +++ b/packages/apollo-mst/package.json @@ -1,6 +1,6 @@ { "name": "@apollo-annotation/mst", - "version": "0.1.18", + "version": "0.1.19", "main": "./dist/index.js", "scripts": { "build": "tsc" diff --git a/packages/apollo-schemas/package.json b/packages/apollo-schemas/package.json index 44d28762..0dbb3df9 100644 --- a/packages/apollo-schemas/package.json +++ b/packages/apollo-schemas/package.json @@ -1,6 +1,6 @@ { "name": "@apollo-annotation/schemas", - "version": "0.1.18", + "version": "0.1.19", "main": "./dist/index.js", "scripts": { "build": "tsc" diff --git a/packages/apollo-schemas/src/user.schema.ts b/packages/apollo-schemas/src/user.schema.ts index c3be2f69..f3c02a78 100644 --- a/packages/apollo-schemas/src/user.schema.ts +++ b/packages/apollo-schemas/src/user.schema.ts @@ -13,7 +13,7 @@ export class User { @Prop({ required: true, unique: true }) email: string - @Prop({ type: String, enum: ['readOnly', 'admin', 'user'] }) + @Prop({ type: String, enum: ['readOnly', 'admin', 'user', 'none'] }) role: Role } diff --git a/packages/apollo-shared/package.json b/packages/apollo-shared/package.json index 8377c44f..1b91a530 100644 --- a/packages/apollo-shared/package.json +++ b/packages/apollo-shared/package.json @@ -1,11 +1,11 @@ { "name": "@apollo-annotation/shared", - "version": "0.1.18", + "version": "0.1.19", "main": "./dist/index.js", "scripts": { - "start": "tsc --build --watch", "build": "yarn clean && tsc --build", "clean": "rimraf dist", + "start": "tsc --build --watch", "test": "glob -c \"tsx --test --test-reporter spec \" \"**/*.test.ts\"", "test:ci": "NODE_V8_COVERAGE=./coverage glob -c \"tsx --test --test-reporter spec --experimental-test-coverage \" \"**/*.test.ts\"" }, @@ -26,8 +26,11 @@ "devDependencies": { "@nestjs/common": "^10.1.0", "@nestjs/core": "^10.1.0", + "@types/chai": "^4.3.19", "@types/node": "^18.14.2", "@types/rimraf": "^3", + "chai": "^5.1.1", + "chai-exclude": "^3.0.0", "glob": "^11.0.0", "mobx": "^6.6.1", "mobx-state-tree": "^5.1.7", diff --git a/packages/apollo-shared/src/GFF3/gff3ToAnnotationFeature.test.ts b/packages/apollo-shared/src/GFF3/gff3ToAnnotationFeature.test.ts index 707dcccf..9dbfec41 100644 --- a/packages/apollo-shared/src/GFF3/gff3ToAnnotationFeature.test.ts +++ b/packages/apollo-shared/src/GFF3/gff3ToAnnotationFeature.test.ts @@ -1,16 +1,14 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-floating-promises */ -import { strict as assert } from 'node:assert' import { describe, it } from 'node:test' -import gff, { GFF3Feature } from '@gmod/gff' - -import { readFileSync } from 'node:fs' +import gff from '@gmod/gff' +import { assert, use } from 'chai' +import chaiExclude from 'chai-exclude' import { gff3ToAnnotationFeature } from './gff3ToAnnotationFeature' import { AnnotationFeatureSnapshot } from '@apollo-annotation/mst' +use(chaiExclude) + const testCases: [string, string, AnnotationFeatureSnapshot][] = [ [ 'a feature with no children', @@ -28,94 +26,84 @@ const testCases: [string, string, AnnotationFeatureSnapshot][] = [ }, }, ], + [ + 'a feature with two children', + `ctgA est EST_match 1050 3202 . + . ID=Match1;Name=agt830.5;Target=agt830.5 1 654 +ctgA est match_part 1050 1500 . + . Parent=Match1;Name=agt830.5;Target=agt830.5 1 451 +ctgA est match_part 3000 3202 . + . Parent=Match1;Name=agt830.5;Target=agt830.5 452 654 +`, + { + _id: '66cf9fbb4e947fa2c27d3d6a', + refSeq: 'ctgA', + type: 'EST_match', + min: 1049, + max: 3202, + strand: 1, + children: { + '66cf9fbb4e947fa2c27d3d68': { + _id: '66cf9fbb4e947fa2c27d3d68', + refSeq: 'ctgA', + type: 'match_part', + min: 1049, + max: 1500, + strand: 1, + attributes: { + gff_source: ['est'], + gff_name: ['agt830.5'], + gff_target: ['agt830.5 1 451'], + }, + }, + '66cf9fbb4e947fa2c27d3d69': { + _id: '66cf9fbb4e947fa2c27d3d69', + refSeq: 'ctgA', + type: 'match_part', + min: 2999, + max: 3202, + strand: 1, + attributes: { + gff_source: ['est'], + gff_name: ['agt830.5'], + gff_target: ['agt830.5 452 654'], + }, + }, + }, + attributes: { + gff_source: ['est'], + gff_id: ['Match1'], + gff_name: ['agt830.5'], + gff_target: ['agt830.5 1 654'], + }, + }, + ], ] -function readSingleFeatureFile(fn: string): GFF3Feature { - const lines = readFileSync(fn).toString().split('\n') - const feature: string[] = [] - for (const line of lines) { - if (!line.startsWith('#')) { - feature.push(line) - } - } - const inGff = gff.parseStringSync(feature.join('\n')) as GFF3Feature[] - if (inGff.length != 1) { - throw new Error(`Exactly 1 feature expected in file ${fn}`) - } - return inGff[0] +interface AnnotationFeatureSnapshotWithChildrenArray + extends Omit { + children?: AnnotationFeatureSnapshotWithChildrenArray[] } -function renameIds(x: AnnotationFeatureSnapshot): AnnotationFeatureSnapshot { - const gene = JSON.parse(JSON.stringify(x)) - if (gene.children) { - for (const mrnaId of Object.keys(gene.children)) { - const mrnaNewId = gene.children[mrnaId].attributes?.testid - if (!mrnaNewId) { - throw new Error('Expected to find testid') - } - const mrna = gene.children[mrnaId] - gene.children[mrnaNewId] = mrna - delete gene.children[mrnaId] - if (mrna.children) { - for (const exonId of Object.keys(mrna.children)) { - const exonNewId = mrna.children[exonId].attributes?.testid - if (!exonNewId) { - throw new Error('Expected to find testid') - } - const exon = gene.children[mrnaNewId].children[exonId] - gene.children[mrnaNewId].children[exonNewId] = exon - delete gene.children[mrnaNewId].children[exonId] - if (exon.children) { - for (const cdsId of Object.keys(exon.children)) { - const cdsNewId = exon.children[cdsId].attributes?.testid - if (!cdsNewId) { - throw new Error('Expected to find testid') - } - const cds = - gene.children[mrnaNewId].children[exonNewId].children[cdsId] - gene.children[mrnaNewId].children[exonNewId].children[cdsNewId] = - cds - delete gene.children[mrnaNewId].children[exonNewId].children[ - cdsId - ] - if (cds.children) { - for (const subId of Object.keys(cds.children)) { - const subNewId = cds.children[subId].attributes?.testid - if (!subNewId) { - throw new Error('Expected to find testid') - } - const sub = - gene.children[mrnaNewId].children[exonNewId].children[ - cdsNewId - ].children[subId] - gene.children[mrnaNewId].children[exonNewId].children[ - cdsNewId - ].children[subNewId] = sub - delete gene.children[mrnaNewId].children[exonNewId].children[ - cdsNewId - ].children[subId] - } - } - } - } - } - } - } +function childrenToArray( + feature: AnnotationFeatureSnapshot, +): AnnotationFeatureSnapshotWithChildrenArray { + const { children } = feature + if (!children) { + return feature as AnnotationFeatureSnapshotWithChildrenArray } - return gene as AnnotationFeatureSnapshot + const childrenArray = Object.values(children).map((child) => + childrenToArray(child), + ) + return { ...feature, children: childrenArray } } function compareFeatures( feature1: AnnotationFeatureSnapshot, feature2: AnnotationFeatureSnapshot, ) { - const f1 = structuredClone(feature1) - const f2 = structuredClone(feature2) - assert.ok(f1.attributes) - assert.ok(f2.attributes) - f1.attributes.testid = undefined - f2.attributes.testid = undefined - assert.deepEqual({ ...f1, _id: undefined }, { ...f2, _id: undefined }) + assert.deepEqualExcludingEvery( + childrenToArray(feature1), + childrenToArray(feature2), + '_id', + ) } describe('gff3ToAnnotationFeature', () => { @@ -129,88 +117,4 @@ describe('gff3ToAnnotationFeature', () => { compareFeatures(convertedFeature, feature) }) } - - it.skip('converts gene with mRNA', () => { - const expected: AnnotationFeatureSnapshot = { - _id: '66cc92b3f580b24ed78564b5', - refSeq: 'ctgA', - type: 'gene', - min: 999, - max: 2000, - children: { - '66cc92b3f580b24ed78564b6': { - _id: '66cc92b3f580b24ed78564b6', - refSeq: 'ctgA', - type: 'mRNA', - min: 999, - max: 2000, - attributes: { - gff_source: ['example'], - gff_name: ['mrnaA'], - gff_alias: ['hga'], - }, - }, - }, - attributes: { - gff_source: ['example'], - gff_id: ['gene01'], - gff_name: ['geneA'], - gff_alias: ['hga'], - }, - } - - const feature: GFF3Feature = readSingleFeatureFile( - 'test_data/gene_mrna.gff3', - ) - const actual = gff3ToAnnotationFeature(feature) - compareFeatures(actual, expected) - }) - - it.only('converts example', () => { - const _ex1 = gff3ToAnnotationFeature( - readSingleFeatureFile('test_data/example01.gff3'), - ) - console.log(JSON.stringify(_ex1, null, 2)) - - const ex1 = renameIds(_ex1) - - const _ex2 = gff3ToAnnotationFeature( - readSingleFeatureFile('test_data/example02.gff3'), - ) - const ex2 = renameIds(_ex2) - - const gene1 = structuredClone(ex1) - gene1.children = undefined - const gene2 = structuredClone(ex2) - gene2.children = undefined - compareFeatures(gene1, gene2) - - assert.ok(ex1.children) - assert.ok(ex2.children) - - assert.equal( - JSON.stringify(Object.keys(ex1.children).sort()), - JSON.stringify(['t004', 't005', 't006', 'x001']), - ) - assert.equal( - JSON.stringify(Object.keys(ex2.children).sort()), - JSON.stringify(['t004', 't005', 't006']), - ) - - const mrna_1 = structuredClone(ex1).children?.t004 - const mrna_2 = structuredClone(ex2).children?.t004 - - console.log(JSON.stringify(mrna_1, null, 2)) - - assert.ok(mrna_1?.children) - assert.ok(mrna_2?.children) - - assert.equal( - Object.keys(mrna_1.children).length, - Object.keys(mrna_2.children).length, - ) - - compareFeatures(mrna_1.children.t007, mrna_2.children.t007) - compareFeatures(mrna_1.children.t015, mrna_2.children.t021) - }) }) diff --git a/packages/jbrowse-plugin-apollo/package.json b/packages/jbrowse-plugin-apollo/package.json index d85f3da0..9007996c 100644 --- a/packages/jbrowse-plugin-apollo/package.json +++ b/packages/jbrowse-plugin-apollo/package.json @@ -1,18 +1,18 @@ { "name": "@apollo-annotation/jbrowse-plugin-apollo", - "version": "0.1.18", + "version": "0.1.19", "description": "Apollo plugin for JBrowse 2", + "keywords": [ + "jbrowse", + "jbrowse2" + ], "repository": { "type": "git", "url": "https://github.com/GMOD/Apollo3.git", "directory": "packages/jbrowse-plugin-apollo" }, - "author": "JBrowse Team", "license": "Apache-2.0", - "keywords": [ - "jbrowse", - "jbrowse2" - ], + "author": "JBrowse Team", "main": "dist/index.js", "module": "dist/index.esm.js", "typings": "dist/index.d.ts", @@ -20,13 +20,6 @@ "dist", "src" ], - "config": { - "jbrowse": { - "plugin": { - "name": "Apollo" - } - } - }, "scripts": { "setup": "rimraf .jbrowse && jbrowse create .jbrowse", "clean": "rimraf dist", @@ -47,8 +40,12 @@ "prepack": "yarn build", "postversion": "git push --follow-tags" }, - "jbrowse-plugin": { - "name": "Apollo" + "config": { + "jbrowse": { + "plugin": { + "name": "Apollo" + } + } }, "dependencies": { "@apollo-annotation/common": "workspace:^", @@ -74,18 +71,6 @@ "socket.io-client": "^4.5.4", "tslib": "^2.3.1" }, - "peerDependencies": { - "@jbrowse/core": "^2.13.1", - "@mui/material": "^5.11.14", - "mobx": "^6.6.1", - "mobx-react": "^7.2.1", - "mobx-state-tree": "^5.1.7", - "prop-types": "^15.8.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "rxjs": "^7.4.0", - "tss-react": "^4.6.1" - }, "devDependencies": { "@jbrowse/cli": "^2.6.2", "@jbrowse/core": "^2.13.1", @@ -123,7 +108,22 @@ "tss-react": "^4.6.1", "typescript": "^5.5.3" }, + "peerDependencies": { + "@jbrowse/core": "^2.13.1", + "@mui/material": "^5.11.14", + "mobx": "^6.6.1", + "mobx-react": "^7.2.1", + "mobx-state-tree": "^5.1.7", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rxjs": "^7.4.0", + "tss-react": "^4.6.1" + }, "publishConfig": { "access": "public" + }, + "jbrowse-plugin": { + "name": "Apollo" } } diff --git a/packages/jbrowse-plugin-apollo/src/components/ManageUsers.tsx b/packages/jbrowse-plugin-apollo/src/components/ManageUsers.tsx index c003004f..0b6e8757 100644 --- a/packages/jbrowse-plugin-apollo/src/components/ManageUsers.tsx +++ b/packages/jbrowse-plugin-apollo/src/components/ManageUsers.tsx @@ -124,7 +124,26 @@ export function ManageUsers({ headerName: 'Role', width: 140, type: 'singleSelect', - valueOptions: ['', 'readOnly', 'user', 'admin'], + valueOptions: ['readOnly', 'user', 'admin', 'none'], + getOptionLabel(value) { + switch (value) { + case 'readOnly': { + return 'Read-only' + } + case 'user': { + return 'User' + } + case 'admin': { + return 'Admin' + } + case 'none': { + return 'None' + } + default: { + return 'unknown' + } + } + }, editable: true, }, { diff --git a/yarn.lock b/yarn.lock index 15ea0730..031baa53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -129,7 +129,7 @@ __metadata: "@oclif/core": "npm:^3.18.2" "@oclif/plugin-help": "npm:^6.0.8" "@oclif/test": "npm:^3.1.3" - "@types/chai": "npm:^4" + "@types/chai": "npm:^4.3.19" "@types/cli-progress": "npm:^3" "@types/inquirer": "npm:^9.0.7" "@types/mocha": "npm:^10" @@ -143,6 +143,7 @@ __metadata: nyc: "npm:^15.1.0" oclif: "npm:^4.4.2" open: "npm:^10.1.0" + prettier: "npm:^3.3.2" react-dom: "npm:^18.2.0" rxjs: "npm:^7.4.0" shx: "npm:^0.3.3" @@ -389,9 +390,12 @@ __metadata: "@jbrowse/core": "npm:^2.13.1" "@nestjs/common": "npm:^10.1.0" "@nestjs/core": "npm:^10.1.0" + "@types/chai": "npm:^4.3.19" "@types/node": "npm:^18.14.2" "@types/rimraf": "npm:^3" bson-objectid: "npm:^2.0.4" + chai: "npm:^5.1.1" + chai-exclude: "npm:^3.0.0" generic-filehandle: "npm:^3.0.0" glob: "npm:^11.0.0" jwt-decode: "npm:^3.1.2" @@ -5574,6 +5578,13 @@ __metadata: languageName: node linkType: hard +"@pkgr/core@npm:^0.1.0": + version: 0.1.1 + resolution: "@pkgr/core@npm:0.1.1" + checksum: 10c0/3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8 + languageName: node + linkType: hard + "@popperjs/core@npm:^2.11.0, @popperjs/core@npm:^2.11.8": version: 2.11.8 resolution: "@popperjs/core@npm:2.11.8" @@ -6943,13 +6954,20 @@ __metadata: languageName: node linkType: hard -"@types/chai@npm:*, @types/chai@npm:^4": +"@types/chai@npm:*": version: 4.3.11 resolution: "@types/chai@npm:4.3.11" checksum: 10c0/0c216ac4a19bfbf8318bb104d32e50704ee2ffc4b538b976c4326e6638fee121462402caa570662227a2a218810388aadb14bdbd3d3d474ec300b00695db448a languageName: node linkType: hard +"@types/chai@npm:^4.3.19": + version: 4.3.19 + resolution: "@types/chai@npm:4.3.19" + checksum: 10c0/8fd573192e486803c4d04185f2b0fab554660d9a1300dbed5bde9747ab8bef15f462a226f560ed5ca48827eecaf8d71eed64aa653ff9aec72fb2eae272e43a84 + languageName: node + linkType: hard + "@types/cli-progress@npm:^3, @types/cli-progress@npm:^3.11.5": version: 3.11.5 resolution: "@types/cli-progress@npm:3.11.5" @@ -8479,6 +8497,7 @@ __metadata: lint-staged: "npm:^15.2.2" npm-run-all: "npm:^4.1.5" prettier: "npm:^3.3.2" + prettier-plugin-packagejson: "npm:^2.5.2" react: "npm:^18.2.0" tsx: "npm:^4.6.2" typescript: "npm:^5.5.3" @@ -8758,6 +8777,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.7": version: 0.0.7 resolution: "ast-types-flow@npm:0.0.7" @@ -9839,6 +9865,17 @@ __metadata: languageName: node linkType: hard +"chai-exclude@npm:^3.0.0": + version: 3.0.0 + resolution: "chai-exclude@npm:3.0.0" + dependencies: + fclone: "npm:^1.0.11" + peerDependencies: + chai: ">= 5" + checksum: 10c0/c0bbe2f29398e9a9338e0aa86835668b701bf220e49ec24cf80d58f3b322b4a9dd332e3052c757f97ea5ba2c0086c64c7014a3b07862fa370480f350ceac4066 + languageName: node + linkType: hard + "chai@npm:*, chai@npm:^4.3.10": version: 4.3.10 resolution: "chai@npm:4.3.10" @@ -9854,6 +9891,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c + languageName: node + linkType: hard + "chalk-template@npm:0.4.0": version: 0.4.0 resolution: "chalk-template@npm:0.4.0" @@ -9958,6 +10008,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e + languageName: node + linkType: hard + "check-more-types@npm:2.24.0, check-more-types@npm:^2.24.0": version: 2.24.0 resolution: "check-more-types@npm:2.24.0" @@ -11108,6 +11165,13 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -11272,6 +11336,13 @@ __metadata: languageName: node linkType: hard +"detect-indent@npm:^7.0.1": + version: 7.0.1 + resolution: "detect-indent@npm:7.0.1" + checksum: 10c0/47b6e3e3dda603c386e73b129f3e84844ae59bc2615f5072becf3cc02eab400bed5a4e6379c49d0b18cf630e80c2b07e87e0038b777addbc6ef793ad77dd05bc + languageName: node + linkType: hard + "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -11279,6 +11350,13 @@ __metadata: languageName: node linkType: hard +"detect-newline@npm:^4.0.0": + version: 4.0.1 + resolution: "detect-newline@npm:4.0.1" + checksum: 10c0/1cc1082e88ad477f30703ae9f23bd3e33816ea2db6a35333057e087d72d466f5a777809b71f560118ecff935d2c712f5b59e1008a8b56a900909d8fd4621c603 + languageName: node + linkType: hard + "detect-node@npm:^2.1.0": version: 2.1.0 resolution: "detect-node@npm:2.1.0" @@ -12670,6 +12748,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.0": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -12752,6 +12843,13 @@ __metadata: languageName: node linkType: hard +"fclone@npm:^1.0.11": + version: 1.0.11 + resolution: "fclone@npm:1.0.11" + checksum: 10c0/dbe3ebd0883edeec2998874bf951aa03198d727f1091351b22af250ff53e227ee94872487ae88ba7280b2469fb164a7d4dd4e5ece10afd4988ab4712f49bc43b + languageName: node + linkType: hard + "fd-slicer@npm:~1.1.0": version: 1.1.0 resolution: "fd-slicer@npm:1.1.0" @@ -13294,6 +13392,13 @@ __metadata: languageName: node linkType: hard +"get-stdin@npm:^9.0.0": + version: 9.0.0 + resolution: "get-stdin@npm:9.0.0" + checksum: 10c0/7ef2edc0c81a0644ca9f051aad8a96ae9373d901485abafaabe59fd347a1c378689d8a3d8825fb3067415d1d09dfcaa43cb9b9516ecac6b74b3138b65a8ccc6b + languageName: node + linkType: hard + "get-stream@npm:^2.2.0": version: 2.3.1 resolution: "get-stream@npm:2.3.1" @@ -13376,6 +13481,13 @@ __metadata: languageName: node linkType: hard +"git-hooks-list@npm:^3.0.0": + version: 3.1.0 + resolution: "git-hooks-list@npm:3.1.0" + checksum: 10c0/f1b93dd11b80b2a687b99a8bb553c0d07f344532d475b3ac2a5ff044d40fa71567ddcfa5cb39fae0b4e43a670a33f02f71ec3b24b7263233f3a3df89deddfb5a + languageName: node + linkType: hard + "github-slugger@npm:^1.5.0": version: 1.5.0 resolution: "github-slugger@npm:1.5.0" @@ -13549,6 +13661,19 @@ __metadata: languageName: node linkType: hard +"globby@npm:^13.1.2": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.3.0" + ignore: "npm:^5.2.4" + merge2: "npm:^1.4.1" + slash: "npm:^4.0.0" + checksum: 10c0/a8d7cc7cbe5e1b2d0f81d467bbc5bc2eac35f74eaded3a6c85fc26d7acc8e6de22d396159db8a2fc340b8a342e74cac58de8f4aee74146d3d146921a76062664 + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -14036,6 +14161,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.2.4": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 + languageName: node + linkType: hard + "ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" @@ -14537,6 +14669,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^4.1.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e + languageName: node + linkType: hard + "is-plain-object@npm:^5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" @@ -16308,6 +16447,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -18660,6 +18808,13 @@ __metadata: languageName: node linkType: hard +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 + languageName: node + linkType: hard + "pause-stream@npm:0.0.11": version: 0.0.11 resolution: "pause-stream@npm:0.0.11" @@ -18828,6 +18983,21 @@ __metadata: languageName: node linkType: hard +"prettier-plugin-packagejson@npm:^2.5.2": + version: 2.5.2 + resolution: "prettier-plugin-packagejson@npm:2.5.2" + dependencies: + sort-package-json: "npm:2.10.1" + synckit: "npm:0.9.1" + peerDependencies: + prettier: ">= 1.16.0" + peerDependenciesMeta: + prettier: + optional: true + checksum: 10c0/ddaf6a662f0156ad1a34d4e891b6ea05398de4fe56d6d14f4802f79b4824c71602e09661e665e0228232313a5cd27fe6d9d481080d6dd41620f9cf7fb285d240 + languageName: node + linkType: hard + "prettier@npm:^3.3.2": version: 3.3.2 resolution: "prettier@npm:3.3.2" @@ -20533,6 +20703,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^4.0.0": + version: 4.0.0 + resolution: "slash@npm:4.0.0" + checksum: 10c0/b522ca75d80d107fd30d29df0549a7b2537c83c4c4ecd12cd7d4ea6c8aaca2ab17ada002e7a1d78a9d736a0261509f26ea5b489082ee443a3a810586ef8eff18 + languageName: node + linkType: hard + "slice-ansi@npm:^3.0.0": version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" @@ -20690,6 +20867,31 @@ __metadata: languageName: node linkType: hard +"sort-object-keys@npm:^1.1.3": + version: 1.1.3 + resolution: "sort-object-keys@npm:1.1.3" + checksum: 10c0/3bf62398658d3ff4bbca0db4ed8f42f98abc41433859f63d02fb0ab953fbe5526be240ec7e5d85aa50fcab6c937f3fa7015abf1ecdeb3045a2281c53953886bf + languageName: node + linkType: hard + +"sort-package-json@npm:2.10.1": + version: 2.10.1 + resolution: "sort-package-json@npm:2.10.1" + dependencies: + detect-indent: "npm:^7.0.1" + detect-newline: "npm:^4.0.0" + get-stdin: "npm:^9.0.0" + git-hooks-list: "npm:^3.0.0" + globby: "npm:^13.1.2" + is-plain-obj: "npm:^4.1.0" + semver: "npm:^7.6.0" + sort-object-keys: "npm:^1.1.3" + bin: + sort-package-json: cli.js + checksum: 10c0/7511c57e4661be222bce68522fb90f72e77a2a4694d05df0e55e70e72736944371a4be82a7cb1be4402455bbfd23857b0fabae3bbe9a1ae1351ff7caac64a468 + languageName: node + linkType: hard + "source-map-js@npm:^1.0.2": version: 1.2.0 resolution: "source-map-js@npm:1.2.0" @@ -21317,6 +21519,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:0.9.1": + version: 0.9.1 + resolution: "synckit@npm:0.9.1" + dependencies: + "@pkgr/core": "npm:^0.1.0" + tslib: "npm:^2.6.2" + checksum: 10c0/d8b89e1bf30ba3ffb469d8418c836ad9c0c062bf47028406b4d06548bc66af97155ea2303b96c93bf5c7c0f0d66153a6fbd6924c76521b434e6a9898982abc2e + 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" @@ -21831,6 +22043,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.6.2": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + "tss-react@npm:^4.6.1": version: 4.9.2 resolution: "tss-react@npm:4.9.2"