diff --git a/Dockerfile b/Dockerfile index f5d93188..59786ec6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,11 +3,10 @@ FROM node:18-bullseye as redeye-builder WORKDIR /app COPY ./ ./ ENV CYPRESS_INSTALL_BINARY=0 -RUN npm install -g pkg -RUN yarn add rimraf +RUN npm install -g pkg rimraf RUN yarn install --immutable --inline-builds RUN yarn moon run server:build client:build -RUN yarn node scripts/create-release.mjs +RUN bash create-release.sh RUN tar -zcvf release.tar.gz ./release/ RUN mkdir outputs RUN cp release.tar.gz outputs/release.tar.gz diff --git a/applications/client/src/store/campaign/presentation.ts b/applications/client/src/store/campaign/presentation.ts index b9ebbe13..609c49cc 100644 --- a/applications/client/src/store/campaign/presentation.ts +++ b/applications/client/src/store/campaign/presentation.ts @@ -1,5 +1,4 @@ import { CampaignViews } from '@redeye/client/types'; -import type { UUID } from '@redeye/client/types/uuid'; import { computed } from 'mobx'; import { ExtendedModel, model, modelAction } from 'mobx-keystone'; import type { PresentationCommandGroupModel, PresentationItemModel } from '../graphql'; diff --git a/applications/client/src/views/Campaigns/Upload/NewCampaignDialog.tsx b/applications/client/src/views/Campaigns/Upload/NewCampaignDialog.tsx index 8e9805c4..ac1adccf 100644 --- a/applications/client/src/views/Campaigns/Upload/NewCampaignDialog.tsx +++ b/applications/client/src/views/Campaigns/Upload/NewCampaignDialog.tsx @@ -1,12 +1,11 @@ import type { OptionProps } from '@blueprintjs/core'; import { Divider, FormGroup, HTMLSelect } from '@blueprintjs/core'; import { css } from '@emotion/react'; -import { DialogEx, ErrorFallback } from '@redeye/client/components'; +import { DialogEx, ErrorFallback, createState } from '@redeye/client/components'; import { RedEyeDbUploadForm } from '@redeye/client/views'; import { CoreTokens, ExternalLink, Header, Txt } from '@redeye/ui-styles'; import { observer } from 'mobx-react-lite'; import type { ComponentProps } from 'react'; -import { useMemo, useState } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; import type { ParserInfoModel } from '../../../store'; import { useStore } from '../../../store'; @@ -21,41 +20,38 @@ const SOURCE_UNSET = ''; export const NewCampaignDialog = observer(({ ...props }) => { const store = useStore(); - const [currentUploadOptionValue, setCurrentUploadOptionValue] = useState(SOURCE_UNSET); + const state = createState({ + currentUploadOptionValue: SOURCE_UNSET as string, + get uploadOptions() { + const options: (OptionProps & { + parserInfo?: ParserInfoModel; + })[] = [ + { + label: 'Select Source', + value: SOURCE_UNSET, + disabled: true, + }, + ]; - const uploadOptions = useMemo(() => { - const options: (OptionProps & { - parserInfo?: ParserInfoModel; - })[] = [ - { - label: 'Select Source', - value: SOURCE_UNSET, - disabled: true, - }, - ]; - - options.push( - ...Array.from(store.graphqlStore.parserInfos.values()) - .sort((a) => (a.name.includes('Cobalt') ? -1 : 1)) - .map((parserInfo) => ({ + options.push( + ...Array.from(store.graphqlStore.parserInfos.values(), (parserInfo) => ({ label: parserInfo?.uploadForm?.tabTitle, value: parserInfo.id, parserInfo, - })) - ); - - options.push({ - label: '.redeye file', - value: 'redeye-file', - }); + })).sort((a) => (a.parserInfo.name.toLowerCase().includes('cobalt') ? -1 : 1)) + ); - return options; - }, [store.graphqlStore.parserInfos.values()]); + options.push({ + label: '.redeye file', + value: 'redeye-file', + }); - const selectedUploadOption = useMemo( - () => uploadOptions.find((option) => option.value === currentUploadOptionValue), - [uploadOptions, currentUploadOptionValue] - ); + return options; + }, + get selectedUploadOption() { + return this.uploadOptions.find((option) => option.value === this.currentUploadOptionValue); + }, + }); return ( (({ ...props }) setCurrentUploadOptionValue(e.target.value)} + value={state.currentUploadOptionValue} + css={!state.currentUploadOptionValue && htmlSelectPlaceholderStyle} + options={state.uploadOptions} + onChange={(e) => state.update('currentUploadOptionValue', e.target.value)} fill large /> - {currentUploadOptionValue === SOURCE_UNSET ? ( + {state.currentUploadOptionValue === SOURCE_UNSET ? (
Select an import source to continue
- ) : selectedUploadOption?.parserInfo == null ? ( + ) : state.selectedUploadOption?.parserInfo == null ? ( - ) : !selectedUploadOption?.parserInfo?.uploadForm?.enabledInBlueTeam && store.appMeta.blueTeam ? ( + ) : !state.selectedUploadOption?.parserInfo?.uploadForm?.enabledInBlueTeam && store.appMeta.blueTeam ? (
This upload source is not available in BlueTeam mode. @@ -101,7 +97,7 @@ export const NewCampaignDialog = observer(({ ...props })
) : ( - + )} diff --git a/applications/server/src/store/presentation-resolvers.ts b/applications/server/src/store/presentation-resolvers.ts index bee16a14..f80b256b 100644 --- a/applications/server/src/store/presentation-resolvers.ts +++ b/applications/server/src/store/presentation-resolvers.ts @@ -1,6 +1,6 @@ import type { EntityManager } from '@mikro-orm/core'; import { Arg, Authorized, Ctx, Field, InputType, ObjectType, Query, Resolver, registerEnumType } from 'type-graphql'; -import { CommandGroup, Link, Server, Tag } from '@redeye/models'; +import { CommandGroup, GenerationType, Link, Server, Tag } from '@redeye/models'; import { beaconHidden } from './utils/hidden-entities-helper'; import { connectToProjectEmOrFail } from './utils/project-db'; import type { GraphQLContext } from '../types'; @@ -304,7 +304,10 @@ export class PresentationResolvers { // procedural comments const proceduralComments = await em.find( CommandGroup, - { annotations: { generation: 'PROCEDURAL' }, ...(!hidden ? { commands: { ...beaconHidden(hidden) } } : {}) }, + { + annotations: { generation: GenerationType.PROCEDURAL }, + ...(!hidden ? { commands: { ...beaconHidden(hidden) } } : {}), + }, { populate: ['commands', 'annotations'], orderBy, @@ -336,7 +339,10 @@ export class PresentationResolvers { let commandsByUser: PresentationItem[] = []; const manualComments = await em.find( CommandGroup, - { annotations: { generation: 'MANUAL' }, ...(!hidden ? { commands: { ...beaconHidden(hidden) } } : {}) }, + { + annotations: { generation: GenerationType.MANUAL }, + ...(!hidden ? { commands: { ...beaconHidden(hidden) } } : {}), + }, { populate: ['commands', 'annotations'], orderBy, diff --git a/create-release.sh b/create-release.sh new file mode 100644 index 00000000..9e79055a --- /dev/null +++ b/create-release.sh @@ -0,0 +1,12 @@ +platforms=(mac linux windows) +parsers=(sliver brute-ratel cobalt-strike) + +for platform in "${platforms[@]}"; do + echo "Creating server release for $platform" + pkg applications/server/package.json -t node18-$platform-x64 -o release/RedEye-$platform/RedEye + for parser in "${parsers[@]}"; do + echo "Creating $parser release for $platform" + pkg parsers/$parser-parser/package.json -t node18-$platform-x64 -o release/RedEye-$platform/parsers/$parser-parser + done +done + diff --git a/package.json b/package.json index 92f2c68a..e130446c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "redeye", "productName": "RedEye", - "version": "0.9.3", + "version": "0.9.4", "private": true, "workspaces": [ "applications/**", @@ -35,10 +35,10 @@ "cy:open": "yarn moon run @redeye/e2e:open-cy", "cy:open-blue": "yarn moon run @redeye/e2e:open-cy-blue", "start:blue": "SERVER_BLUE_TEAM=true yarn run start:dev", - "release:all": "yarn moon run server:release-all && yarn moon run cobalt-strike-parser:release-all && yarn moon run brute-ratel-parser:release-all", - "release:mac": "yarn moon run server:release-mac && yarn moon run cobalt-strike-parser:release-mac && yarn moon run brute-ratel-parser:release-mac", - "release:linux": "yarn moon run server:release-linux && yarn moon run cobalt-strike-parser:release-linux && yarn moon run brute-ratel-parser:release-linux", - "release:windows": "yarn moon run server:release-windows && yarn moon run cobalt-strike-parser:release-windows && yarn moon run brute-ratel-parser:release-windows" + "release:all": "yarn node ./scripts/create-release.mjs", + "release:mac": "yarn node ./scripts/create-release.mjs --os mac", + "release:linux": "yarn node ./scripts/create-release.mjs --os linux", + "release:windows": "yarn node ./scripts/create-release.mjs --os windows" }, "dependencies": { "@apollo/server": "^4.7.0", @@ -49,8 +49,8 @@ "@emotion/react": "^11.4.0", "@emotion/styled": "^11.3.0", "@fontsource/redacted-script": "^4.5.13", - "@mikro-orm/better-sqlite": "5.6.16", - "@mikro-orm/core": "5.6.16", + "@mikro-orm/better-sqlite": "5.8.4", + "@mikro-orm/core": "5.8.4", "@openfonts/ibm-plex-mono_all": "^1.44.2", "@openfonts/ibm-plex-sans_all": "^1.44.2", "@tanstack/react-query": "^4.1.3", @@ -109,9 +109,9 @@ "@babel/plugin-proposal-decorators": "^7.20.13", "@changesets/cli": "^2.22.0", "@emotion/babel-plugin": "^11.10.0", - "@mikro-orm/entity-generator": "5.6.16", - "@mikro-orm/migrations": "5.6.16", - "@mikro-orm/seeder": "5.6.16", + "@mikro-orm/entity-generator": "5.8.4", + "@mikro-orm/migrations": "5.8.4", + "@mikro-orm/seeder": "5.8.4", "@moonrepo/cli": "1.9.2", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", @@ -212,7 +212,13 @@ "vite-plugin-dts": "^2.3.0", "vite-tsconfig-paths": "^4.2.0" }, + "overrides": { + "pkg": { + "pkg-fetch": "^3.5.2" + } + }, "resolutions": { + "pkg-fetch": "^3.5.2", "@moonrepo/core-linux-arm64-gnu": "1.9.2", "@moonrepo/core-linux-arm64-musl": "1.9.2", "@moonrepo/core-linux-x64-gnu": "1.9.2", diff --git a/scripts/create-release.mjs b/scripts/create-release.mjs index d7bb2b7c..5dbf85a5 100644 --- a/scripts/create-release.mjs +++ b/scripts/create-release.mjs @@ -1,12 +1,34 @@ -import { resolve, join } from 'node:path'; +import { resolve } from 'node:path'; import { readdir } from 'node:fs/promises'; -import childProc from 'node:child_process'; import { fileURLToPath } from 'node:url'; -import { promisify } from 'node:util'; +import { parseArgs } from 'node:util'; +import {exec as pkgExec} from 'pkg' -const exec = promisify(childProc.exec); +const { + values: { + /** @type {string} */ + nodeVersion, + /** @type {['all'] | ('mac' | 'linux' | 'windows' | 'mac-arm')[]} */ + os + }, +} = parseArgs({ + options: { + nodeVersion: { + type: "string", + short: "n", + default: "18.15.0", + }, + os: { + type: "string", + multiple: true, + default: ["all"], + short: "o", + }, + }, +}); -const NODE_VER = 'node18'; + +const NODE_VER = nodeVersion; const __dirname = fileURLToPath(new URL('.', import.meta.url)); const rootDir = resolve(__dirname, '..'); @@ -14,10 +36,22 @@ const releaseDir = resolve(rootDir, 'release'); const OS_ARCH = { - mac: 'macos-x64', - linux: 'linux-x64', - windows: 'win-x64', - 'mac-arm': 'macos-arm64', + mac: { + platform: 'macos', + arch: 'x64', + }, + linux: { + platform: 'linux', + arch: 'x64', + }, + windows: { + platform: 'windows', + arch: 'x64', + }, + // 'mac-arm': { + // platform: 'macos', + // arch: 'arm64', + // }, }; const PARSERS = []; @@ -30,11 +64,16 @@ const PROJECTS = [ { path: 'applications/server/package.json', out: 'RedEye' }, ...PARSERS.map((parser) => ({ path: `parsers/${parser}`, out: `parsers/${parser}` })), ]; - +const isAllOS = os.includes('all'); for (const [OS, PKG_KEY] of Object.entries(OS_ARCH)) { + if (!isAllOS && !os.includes(OS)) { + continue; + } + console.log('Building for: ', OS) for (const project of PROJECTS) { - await exec( - `yarn pkg ${project.path} -t ${NODE_VER}-${PKG_KEY} -o ${resolve(releaseDir, `RedEye-${OS}`, project.out)}` + console.log('\tBuilding: ', project.path) + await pkgExec( + [project.path, '-t', `node${NODE_VER}-${PKG_KEY.platform}-${PKG_KEY.arch}`, '-o', resolve(releaseDir, `RedEye-${OS}`, project.out)] ); } } diff --git a/yarn.lock b/yarn.lock index a9608e51..5480b953 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2412,12 +2412,12 @@ __metadata: languageName: node linkType: hard -"@mikro-orm/better-sqlite@npm:5.6.16": - version: 5.6.16 - resolution: "@mikro-orm/better-sqlite@npm:5.6.16" +"@mikro-orm/better-sqlite@npm:5.8.4": + version: 5.8.4 + resolution: "@mikro-orm/better-sqlite@npm:5.8.4" dependencies: - "@mikro-orm/knex": ~5.6.16 - better-sqlite3: 8.2.0 + "@mikro-orm/knex": ~5.8.4 + better-sqlite3: 8.6.0 fs-extra: 11.1.1 sqlstring-sqlite: 0.1.1 peerDependencies: @@ -2432,20 +2432,20 @@ __metadata: optional: true "@mikro-orm/seeder": optional: true - checksum: 34d2f225e757498f610494db78a207c0a9a12d48be4fc0d4b8b8d680199526cf01f9f882c8d0c08e284be4ae95fb872d10d1c961e5c2c0ecce911f99e2531c99 + checksum: f149d0b34e795ddd33424f1edaa3d84d192d167277f6ee245c9c3564b0a23651c493c5a2146b6af6b792d14cf1df636ccf2d35458ae76fa9acc08cd9fdc29059 languageName: node linkType: hard -"@mikro-orm/core@npm:5.6.16": - version: 5.6.16 - resolution: "@mikro-orm/core@npm:5.6.16" +"@mikro-orm/core@npm:5.8.4": + version: 5.8.4 + resolution: "@mikro-orm/core@npm:5.8.4" dependencies: acorn-loose: 8.3.0 acorn-walk: 8.2.0 - dotenv: 16.0.3 + dotenv: 16.3.1 fs-extra: 11.1.1 globby: 11.1.0 - mikro-orm: ~5.6.16 + mikro-orm: ~5.8.4 reflect-metadata: 0.1.13 peerDependencies: "@mikro-orm/better-sqlite": ^5.0.0 @@ -2479,39 +2479,39 @@ __metadata: optional: true "@mikro-orm/sqlite": optional: true - checksum: a27876862f818312f6f31eb05f7a14125544a0bf137892d55f6b7be5aa3f20061079dcfe00d0da6968f041137991924d95fe65dd97e3a7a794ee074e21612675 + checksum: d3b92d5865f8036f0b6056a8163f80a01ad805ddbdff7633d94da386671ee07a6ba57a488d5584062985742b9299272a7a8127729de94c6b0699fdbabfea8646 languageName: node linkType: hard -"@mikro-orm/entity-generator@npm:5.6.16": - version: 5.6.16 - resolution: "@mikro-orm/entity-generator@npm:5.6.16" +"@mikro-orm/entity-generator@npm:5.8.4": + version: 5.8.4 + resolution: "@mikro-orm/entity-generator@npm:5.8.4" dependencies: - "@mikro-orm/knex": ~5.6.16 + "@mikro-orm/knex": ~5.8.4 fs-extra: 11.1.1 peerDependencies: "@mikro-orm/core": ^5.0.0 - checksum: 4986d5f815fe0a55c81b257339c30d67441828ebaa038d3f6c1fa56e503dd491f420649facdeaa7692cf9c693dd0bd6fa9fa282730aa6047c377a1563a613632 + checksum: 21facc1f5b90bfd07fa85c9c0f468fb37d8b52ce4c142275b29dc205626a05f47f89c72ed62e87ae46bb4def6a2c97e0bf83671a2a42fcec989fbd56e0f2c34c languageName: node linkType: hard -"@mikro-orm/knex@npm:~5.6.16": - version: 5.6.16 - resolution: "@mikro-orm/knex@npm:5.6.16" +"@mikro-orm/knex@npm:~5.8.4": + version: 5.8.4 + resolution: "@mikro-orm/knex@npm:5.8.4" dependencies: fs-extra: 11.1.1 - knex: 2.4.2 + knex: 2.5.1 sqlstring: 2.3.3 peerDependencies: "@mikro-orm/core": ^5.0.0 "@mikro-orm/entity-generator": ^5.0.0 "@mikro-orm/migrations": ^5.0.0 - better-sqlite3: ^8.0.0 - mssql: ^7.0.0 - mysql: ^2.18.1 - mysql2: ^2.1.0 - pg: ^8.0.3 - sqlite3: ^5.0.0 + better-sqlite3: "*" + mssql: "*" + mysql: "*" + mysql2: "*" + pg: "*" + sqlite3: "*" peerDependenciesMeta: "@mikro-orm/entity-generator": optional: true @@ -2529,34 +2529,34 @@ __metadata: optional: true sqlite3: optional: true - checksum: 0798fb9abdfb6bf0db097bab725d6006c7a4bc5d358be5f97cb862e77cd963053fe7dc6cd0c3ae784ae8d804f6ecfddfb100f53debe66afb2cbf647496ea70e3 + checksum: cec3c048ec9f337540618a2fadba21dc1b42af7e0bd21ad36993bac092d29922d482c5016f29e0d8fb0acedd5d2d0380499f5801d92aa07d0c4f70550c440e91 languageName: node linkType: hard -"@mikro-orm/migrations@npm:5.6.16": - version: 5.6.16 - resolution: "@mikro-orm/migrations@npm:5.6.16" +"@mikro-orm/migrations@npm:5.8.4": + version: 5.8.4 + resolution: "@mikro-orm/migrations@npm:5.8.4" dependencies: - "@mikro-orm/knex": ~5.6.16 + "@mikro-orm/knex": ~5.8.4 fs-extra: 11.1.1 - knex: 2.4.2 - umzug: 3.2.1 + knex: 2.5.1 + umzug: 3.3.1 peerDependencies: "@mikro-orm/core": ^5.0.0 - checksum: 5c82605e89a88645724247b0c179d39ccefbf6be39e978af2b35912b2650938d99bf1243117f249e7eae86d8f3569566a467166f8d27ef6379b70253d8234976 + checksum: 5309f5dfbede63753fb218b406e2b59afab814494ade9b62b5b2ba9e37a8b2307dd3e67373e002cff00bb173108c73e7bd663c7f41e338951293093b9b184611 languageName: node linkType: hard -"@mikro-orm/seeder@npm:5.6.16": - version: 5.6.16 - resolution: "@mikro-orm/seeder@npm:5.6.16" +"@mikro-orm/seeder@npm:5.8.4": + version: 5.8.4 + resolution: "@mikro-orm/seeder@npm:5.8.4" dependencies: "@faker-js/faker": 7.6.0 fs-extra: 11.1.1 globby: 11.1.0 peerDependencies: "@mikro-orm/core": ^5.0.0 - checksum: c974b69ce287e64b7f46f697f9a4ba24fe8bdd3ee0de7522f179814e871704dc6adc33c2a8223a6c8f304662efa829d89f3334d7c4768fdd58b8567f61d474a7 + checksum: e8fdd44fa62514287178fbd66d7251bfae08c13a0185f262e95ae96e2e375fe0c7cb973f004c63013e88dd44fef035b0ac0c82074c824cb9c0fb87a1e17f1abc languageName: node linkType: hard @@ -5339,14 +5339,14 @@ __metadata: languageName: node linkType: hard -"better-sqlite3@npm:8.2.0": - version: 8.2.0 - resolution: "better-sqlite3@npm:8.2.0" +"better-sqlite3@npm:8.6.0": + version: 8.6.0 + resolution: "better-sqlite3@npm:8.6.0" dependencies: bindings: ^1.5.0 node-gyp: latest - prebuild-install: ^7.1.0 - checksum: ab8a00bcc33c4a7467f78fcbb103c784705cf170ecc9c8eb1149a89a2153c03a7f65681064667eb214fa7f555797abd8183380a0396ce04eaf36efef921ce103 + prebuild-install: ^7.1.1 + checksum: 9ebdfd675352347cda1ba30d620a3c512d9db827a1eba66460fd48203a7ad8138b0195893bbf47d40f704bcdd598710041271d4ed69779979b6f784c0d3579a1 languageName: node linkType: hard @@ -6255,6 +6255,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^10.0.0, commander@npm:~10.0.0": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 + languageName: node + linkType: hard + "commander@npm:^6.2.0, commander@npm:^6.2.1": version: 6.2.1 resolution: "commander@npm:6.2.1" @@ -6269,20 +6276,13 @@ __metadata: languageName: node linkType: hard -"commander@npm:^9.1.0, commander@npm:^9.4.1": +"commander@npm:^9.4.1": version: 9.5.0 resolution: "commander@npm:9.5.0" checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade languageName: node linkType: hard -"commander@npm:~10.0.0": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 - languageName: node - linkType: hard - "common-ancestor-path@npm:^1.0.1": version: 1.0.1 resolution: "common-ancestor-path@npm:1.0.1" @@ -7424,10 +7424,10 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:16.0.3": - version: 16.0.3 - resolution: "dotenv@npm:16.0.3" - checksum: afcf03f373d7a6d62c7e9afea6328e62851d627a4e73f2e12d0a8deae1cd375892004f3021883f8aec85932cd2834b091f568ced92b4774625b321db83b827f8 +"dotenv@npm:16.3.1": + version: 16.3.1 + resolution: "dotenv@npm:16.3.1" + checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd languageName: node linkType: hard @@ -7483,14 +7483,7 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^0.12.1": - version: 0.12.1 - resolution: "emittery@npm:0.12.1" - checksum: 64ad8f2c498be09449b232730d07044976ef2662aa891e9ecfb956d70fc1c39a46aa66adb70f2d2a097059c5f923408723f2ec1778b86360268591b403348c1c - languageName: node - linkType: hard - -"emittery@npm:^0.13.1": +"emittery@npm:^0.13.0, emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 @@ -9077,16 +9070,6 @@ __metadata: languageName: node linkType: hard -"fs-jetpack@npm:^4.3.1": - version: 4.3.1 - resolution: "fs-jetpack@npm:4.3.1" - dependencies: - minimatch: ^3.0.2 - rimraf: ^2.6.3 - checksum: ffe90946ec250c6042569faa2ec7753594779ca0e8a72eea0b76b82574542c50d580974f54c5d6885f44f5719ece173be778cf82dc50ad90f43dab043f4061c9 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -11466,12 +11449,12 @@ __metadata: languageName: node linkType: hard -"knex@npm:2.4.2": - version: 2.4.2 - resolution: "knex@npm:2.4.2" +"knex@npm:2.5.1": + version: 2.5.1 + resolution: "knex@npm:2.5.1" dependencies: colorette: 2.0.19 - commander: ^9.1.0 + commander: ^10.0.0 debug: 4.3.4 escalade: ^3.1.1 esm: ^3.2.25 @@ -11479,7 +11462,7 @@ __metadata: getopts: 2.3.0 interpret: ^2.2.0 lodash: ^4.17.21 - pg-connection-string: 2.5.0 + pg-connection-string: 2.6.1 rechoir: ^0.8.0 resolve-from: ^5.0.0 tarn: ^3.0.2 @@ -11501,7 +11484,7 @@ __metadata: optional: true bin: knex: bin/cli.js - checksum: cfb6436c0e3df3cd1f55d3637e4f222d1acbc7b6ec3757e52c92cbf0a7da4055d40156d707ffede57dc155af75d7f5739a49d1b31d8755bc77bc0e4e2a570748 + checksum: 4f2da7fda51a450de25274eb76034c869de0427c17831dc8472b8116e879d23aae0592c2ce4e9b2a473417867063ac6e7b29021b39b4a4d502335017a5a09278 languageName: node linkType: hard @@ -12604,10 +12587,10 @@ __metadata: languageName: node linkType: hard -"mikro-orm@npm:~5.6.16": - version: 5.6.16 - resolution: "mikro-orm@npm:5.6.16" - checksum: 69ab788b7ec39ab7e5e821fb327150acdb9d89b2165db015b03b0b38b33a31a48dfab9720e798f4f68aa4e5b079edda311b99dbf03e81eef9d7f127509755fe1 +"mikro-orm@npm:~5.8.4": + version: 5.8.4 + resolution: "mikro-orm@npm:5.8.4" + checksum: 54c07e5f0288c3488bd96e3d493754af8b565cdf875193b09afae57b7fa449f8e478491bf2d1302e73ae5408a3a9292e293e14c94971f1dd82b2f3c8aac69682 languageName: node linkType: hard @@ -12698,7 +12681,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:3.1.2, minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -13897,10 +13880,10 @@ __metadata: languageName: node linkType: hard -"pg-connection-string@npm:2.5.0": - version: 2.5.0 - resolution: "pg-connection-string@npm:2.5.0" - checksum: a6f3a068f7c9416a5b33a326811caf0dfaaee045c225b7c628b4c9b4e9a2b25bdd12a21e4c48940e1000ea223a4e608ca122d2ff3dd08c8b1db0fc9f5705133a +"pg-connection-string@npm:2.6.1": + version: 2.6.1 + resolution: "pg-connection-string@npm:2.6.1" + checksum: 882344a47e1ecf3a91383e0809bf2ac48facea97fcec0358d6e060e1cbcb8737acde419b4c86f05da4ce4a16634ee50fff1d2bb787d73b52ccbfde697243ad8a languageName: node linkType: hard @@ -13965,24 +13948,6 @@ __metadata: languageName: node linkType: hard -"pkg-fetch@npm:3.4.2": - version: 3.4.2 - resolution: "pkg-fetch@npm:3.4.2" - dependencies: - chalk: ^4.1.2 - fs-extra: ^9.1.0 - https-proxy-agent: ^5.0.0 - node-fetch: ^2.6.6 - progress: ^2.0.3 - semver: ^7.3.5 - tar-fs: ^2.1.1 - yargs: ^16.2.0 - bin: - pkg-fetch: lib-es5/bin.js - checksum: e0f73cedf6cb8882e4d998700031443e6542d213f9817d66deb03fb89c122ca7f7505f11401f85a760a2d3951f9b793d0f78782be220c46c56ccf70f9915812a - languageName: node - linkType: hard - "pkg-fetch@npm:^3.5.2": version: 3.5.2 resolution: "pkg-fetch@npm:3.5.2" @@ -14046,7 +14011,7 @@ __metadata: languageName: node linkType: hard -"pony-cause@npm:^2.1.2": +"pony-cause@npm:^2.1.4": version: 2.1.10 resolution: "pony-cause@npm:2.1.10" checksum: 8b61378f213e61056312dc274a1c79980154e9d864f6ad86e0c8b91a50d3ce900d430995ee24147c9f3caa440dfe7d51c274b488d7f033b65b206522536d7217 @@ -14074,7 +14039,7 @@ __metadata: languageName: node linkType: hard -"prebuild-install@npm:7.1.1, prebuild-install@npm:^7.1.0": +"prebuild-install@npm:7.1.1, prebuild-install@npm:^7.1.1": version: 7.1.1 resolution: "prebuild-install@npm:7.1.1" dependencies: @@ -14794,11 +14759,11 @@ __metadata: "@emotion/react": ^11.4.0 "@emotion/styled": ^11.3.0 "@fontsource/redacted-script": ^4.5.13 - "@mikro-orm/better-sqlite": 5.6.16 - "@mikro-orm/core": 5.6.16 - "@mikro-orm/entity-generator": 5.6.16 - "@mikro-orm/migrations": 5.6.16 - "@mikro-orm/seeder": 5.6.16 + "@mikro-orm/better-sqlite": 5.8.4 + "@mikro-orm/core": 5.8.4 + "@mikro-orm/entity-generator": 5.8.4 + "@mikro-orm/migrations": 5.8.4 + "@mikro-orm/seeder": 5.8.4 "@moonrepo/cli": 1.9.2 "@openfonts/ibm-plex-mono_all": ^1.44.2 "@openfonts/ibm-plex-sans_all": ^1.44.2 @@ -15338,17 +15303,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.6.3": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: ^7.1.3 - bin: - rimraf: ./bin.js - checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd - languageName: node - linkType: hard - "rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -17055,13 +17009,20 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.18.0, type-fest@npm:^2.5.0": +"type-fest@npm:^2.5.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 languageName: node linkType: hard +"type-fest@npm:^3.0.0": + version: 3.13.1 + resolution: "type-fest@npm:3.13.1" + checksum: c06b0901d54391dc46de3802375f5579868949d71f93b425ce564e19a428a0d411ae8d8cb0e300d330071d86152c3ea86e744c3f2860a42a79585b6ec2fdae8e + languageName: node + linkType: hard + "type-graphql@npm:^2.0.0-beta.1": version: 2.0.0-beta.2 resolution: "type-graphql@npm:2.0.0-beta.2" @@ -17217,17 +17178,16 @@ __metadata: languageName: node linkType: hard -"umzug@npm:3.2.1": - version: 3.2.1 - resolution: "umzug@npm:3.2.1" +"umzug@npm:3.3.1": + version: 3.3.1 + resolution: "umzug@npm:3.3.1" dependencies: "@rushstack/ts-command-line": ^4.12.2 - emittery: ^0.12.1 - fs-jetpack: ^4.3.1 + emittery: ^0.13.0 glob: ^8.0.3 - pony-cause: ^2.1.2 - type-fest: ^2.18.0 - checksum: 8b118345cf4a9faedfaf2d169deb9a630ff630719c684070d02d0f55b8eb4b8f4b03648d6ff7ff03de03ce2650f05b7dde88c2b4f564b279af153c92e1739f38 + pony-cause: ^2.1.4 + type-fest: ^3.0.0 + checksum: 3a6ce3dca1de1178e46484641cd306fc06bfa8c1313bd2b8e475458c69e11782fd1ea1974b363563ce09af2deca32ac29055949fd1a66713db8222ea490cdf62 languageName: node linkType: hard