diff --git a/.changeset/four-rings-relate.md b/.changeset/four-rings-relate.md new file mode 100644 index 00000000000..f2796b8087f --- /dev/null +++ b/.changeset/four-rings-relate.md @@ -0,0 +1,6 @@ +--- +"@tryghost/kg-utils": patch +"@tryghost/kg-markdown-html-renderer": patch +--- + +Updated dependencies diff --git a/.changeset/funky-rice-shine.md b/.changeset/funky-rice-shine.md new file mode 100644 index 00000000000..2f762631c3a --- /dev/null +++ b/.changeset/funky-rice-shine.md @@ -0,0 +1,5 @@ +--- +"@tryghost/koenig-lexical": patch +--- + +Updated dependencies diff --git a/.changeset/petite-forks-lick.md b/.changeset/petite-forks-lick.md new file mode 100644 index 00000000000..2f762631c3a --- /dev/null +++ b/.changeset/petite-forks-lick.md @@ -0,0 +1,5 @@ +--- +"@tryghost/koenig-lexical": patch +--- + +Updated dependencies diff --git a/.changeset/swift-guests-grin.md b/.changeset/swift-guests-grin.md new file mode 100644 index 00000000000..f26419f3739 --- /dev/null +++ b/.changeset/swift-guests-grin.md @@ -0,0 +1,5 @@ +--- +"@tryghost/kg-unsplash-selector": patch +--- + +Updated dependencies diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 677da159217..250aa9ce79f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -410,7 +410,7 @@ jobs: - name: Lint boundaries run: pnpm nx run ghost-monorepo:lint:boundaries - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -511,7 +511,7 @@ jobs: name: admin-coverage path: apps/*/coverage/cobertura-coverage.xml - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -729,7 +729,7 @@ jobs: exit 1 fi - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -878,7 +878,7 @@ jobs: ghost/*/coverage-e2e/cobertura-coverage.xml ghost/*/coverage-integration/cobertura-coverage.xml - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -968,7 +968,7 @@ jobs: exit 1 fi - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -1054,7 +1054,7 @@ jobs: path: ${{ steps.app_name.outputs.root }}/playwright-report retention-days: 30 - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -1125,7 +1125,7 @@ jobs: run: | [ -f ~/.ghost/logs/*.log ] && cat ~/.ghost/logs/*.log - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -1207,7 +1207,7 @@ jobs: retention-days: 7 if-no-files-found: error - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -1290,7 +1290,7 @@ jobs: retention-days: 7 if-no-files-found: error - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} @@ -1927,7 +1927,7 @@ jobs: path: e2e/test-results retention-days: 7 - - uses: tryghost/actions/actions/slack-build@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/slack-build@12da0671df2e249a65c467340262e6c4251d9565 # main if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' with: status: ${{ job.status }} diff --git a/.github/workflows/label-actions.yml b/.github/workflows/label-actions.yml index c4893032ca5..47263cbecc6 100644 --- a/.github/workflows/label-actions.yml +++ b/.github/workflows/label-actions.yml @@ -18,4 +18,4 @@ jobs: runs-on: ubuntu-slim if: github.repository_owner == 'TryGhost' steps: - - uses: tryghost/actions/actions/label-actions@d5080c41ac3ab68c4115bcd11fad5379778a7c70 # main + - uses: tryghost/actions/actions/label-actions@12da0671df2e249a65c467340262e6c4251d9565 # main diff --git a/.pnpmfile.mjs b/.pnpmfile.mjs index 2c5e2257fff..9b50b6d8539 100644 --- a/.pnpmfile.mjs +++ b/.pnpmfile.mjs @@ -2,10 +2,10 @@ import {glob, readFile} from 'node:fs/promises'; // Global pnpm hooks for the Ghost monorepo. // -// Only `beforePacking` is defined. It runs during `pnpm pack` / `pnpm publish` -// and mutates the package.json written *into the tarball* — the on-disk -// manifest is never touched, and dependency resolution / the shared lockfile -// are unaffected (no `readPackage`/`afterAllResolved` hook here). +// `beforePacking` runs during `pnpm pack` / `pnpm publish` and mutates the +// package.json written *into the tarball* — the on-disk manifest is never +// touched. `readPackage` runs during resolution, so it *does* feed the shared +// lockfile. // // Applied to every packed/published package: // - drop `nx` — Nx target config, meaningless to consumers @@ -65,6 +65,41 @@ function beforePacking(pkg) { return pkg; } +function readPackage(pkg) { + // consolidate declares 48 template engines as optional peers. pnpm links any + // that another workspace package happens to satisfy, so react, react-dom and + // @babel/core rode into ghost's production deploy closure via + // nodemailer-mailgun-transport — the only thing that pulls consolidate in, and + // it never renders through it. packageExtensions can only add, so dropping the + // peers outright needs this hook. + if (pkg.name === 'consolidate') { + delete pkg.peerDependencies; + delete pkg.peerDependenciesMeta; + } + + // knex declares sqlite3 as an optional peer dep, and we don't use it/don't + // want to install it in production, so we'll remove it from the knex peer + // deps + if (pkg.name === 'knex') { + delete pkg.peerDependencies?.sqlite3; + delete pkg.peerDependenciesMeta?.sqlite3; + } + + // these deps pull in typescript as an optional peer dep, which ends up + // being included in Ghost's production image because of the way pnpm hoists + // optional peers. We don't want to ship ts in the prod image so we delete + // it from the manifest + // + // NOTE: auto-install-peers: false doesn't solve the problem here unfortunately, + // and it causes more issues with other deps + if (['viem', 'ox', 'abitype'].includes(pkg.name)) { + delete pkg.peerDependencies?.typescript; + delete pkg.peerDependenciesMeta?.typescript; + } + + return pkg; +} + /** * Dynamic config update function to automatically exclude "private" packages * from pnpm's changelog detection. We can't remove the version fields @@ -105,4 +140,4 @@ async function updateConfig(config) { return config; } -export const hooks = {beforePacking, updateConfig}; +export const hooks = {beforePacking, readPackage, updateConfig}; diff --git a/Dockerfile.production b/Dockerfile.production index 94163a7e1f1..161dd0f7236 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -74,6 +74,12 @@ RUN pnpm --filter-prod "ghost^..." -r run build && \ RUN --mount=type=cache,target=/root/.local/share/pnpm/store,id=pnpm-store \ pnpm --filter=ghost --config.inject-workspace-packages=true deploy --prod /home/ghost +# Strip type-time, doc and native-build-input files the runtime never loads — see +# ghost/core/scripts/prune.mts for the rules and the exclusions they carry. The COPY +# layer below is extracted single-threaded, once per CI E2E shard, and that cost +# scales with file count: this removes roughly half of them. +RUN node ghost/core/scripts/prune.mts /home/ghost --profile=image + # Fail the build now if the native module didn't install correctly (missing/broken # prebuilt binary) rather than at container runtime. RUN cd /home/ghost && node -e "require('better-sqlite3'); console.log('better-sqlite3 OK')" diff --git a/apps/admin/package.json b/apps/admin/package.json index 681dca9bc8e..e778f87b099 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -45,7 +45,7 @@ "@tryghost/string": "catalog:", "@tryghost/timezone-data": "catalog:", "@uiw/react-codemirror": "catalog:", - "@xyflow/react": "12.11.1", + "@xyflow/react": "12.11.2", "clsx": "catalog:", "dequal": "catalog:", "i18n-iso-countries": "7.14.0", diff --git a/apps/portal/package.json b/apps/portal/package.json index 85af1adebf2..3f18c0e1041 100644 --- a/apps/portal/package.json +++ b/apps/portal/package.json @@ -50,7 +50,7 @@ "@testing-library/jest-dom": "catalog:", "@testing-library/react": "catalog:react17", "@types/react": "catalog:react17", - "@testing-library/user-event": "14.6.1", + "@testing-library/user-event": "14.6.3", "@tryghost/i18n": "workspace:*", "@vitest/coverage-v8": "catalog:", "dompurify": "catalog:", diff --git a/ghost/core/core/frontend/services/theme-engine/i18n/i18n.js b/ghost/core/core/frontend/services/theme-engine/i18n/i18n.js index 975b7474a05..7f23811114d 100644 --- a/ghost/core/core/frontend/services/theme-engine/i18n/i18n.js +++ b/ghost/core/core/frontend/services/theme-engine/i18n/i18n.js @@ -46,10 +46,6 @@ class I18n { return 'en'; } - supportedLocales() { - return [this.defaultLocale()]; - } - /** * Exporting the current locale (e.g. "en") to make it available for other files as well, * such as core/frontend/helpers/date.js and core/frontend/helpers/lang.js @@ -92,8 +88,6 @@ class I18n { */ init() { this._strings = this._loadStrings(); - - this._initializeIntl(); } /** @@ -228,33 +222,6 @@ class I18n { return msg; } - /** - * [Private] Setup i18n support: - * - Polyfill node.js if it does not have Intl support or support for a particular locale - */ - _initializeIntl() { - let hasBuiltInLocaleData; - let IntlPolyfill; - - if (global.Intl) { - // Determine if the built-in `Intl` has the locale data we need. - hasBuiltInLocaleData = this.supportedLocales().every(function (locale) { - return Intl.NumberFormat.supportedLocalesOf(locale)[0] === locale && - Intl.DateTimeFormat.supportedLocalesOf(locale)[0] === locale; - }); - if (!hasBuiltInLocaleData) { - // `Intl` exists, but it doesn't have the data we need, so load the - // polyfill and replace the constructors with need with the polyfill's. - IntlPolyfill = require('intl'); - Intl.NumberFormat = IntlPolyfill.NumberFormat; - Intl.DateTimeFormat = IntlPolyfill.DateTimeFormat; - } - } else { - // No `Intl`, so use and load the polyfill. - global.Intl = require('intl'); - } - } - _handleUninitialisedError(key) { logging.warn(`i18n was used before it was initialised with key ${key}`); this.init(); diff --git a/ghost/core/package.json b/ghost/core/package.json index 5afb7abd4dc..379db371e87 100644 --- a/ghost/core/package.json +++ b/ghost/core/package.json @@ -185,7 +185,6 @@ "human-number": "3.0.0", "iconv-lite": "0.7.2", "image-size": "1.2.1", - "intl": "1.2.5", "intl-messageformat": "5.4.3", "js-yaml": "catalog:", "jsdom": "catalog:", @@ -257,7 +256,7 @@ "@types/js-yaml": "4.0.9", "@types/jsdom": "28.0.3", "@types/jsonwebtoken": "9.0.10", - "@types/lodash": "4.17.24", + "@types/lodash": "4.17.25", "@types/lodash-es": "4.17.12", "@types/mime-types": "3.0.1", "@types/nconf": "catalog:", diff --git a/ghost/core/scripts/pack.mjs b/ghost/core/scripts/pack.mjs index 502c62204b6..cca3ff8b5c0 100644 --- a/ghost/core/scripts/pack.mjs +++ b/ghost/core/scripts/pack.mjs @@ -28,6 +28,7 @@ import os from 'node:os'; import {execFile} from 'node:child_process'; import {promisify} from 'node:util'; import yaml from 'js-yaml'; +import {prune, reportPrune} from './prune.mts'; const execFileAsync = promisify(execFile); @@ -169,6 +170,12 @@ if (!buildFiles.some(isLicenseFile)) { // native module post-install scripts like better-sqlite3, sharp, re2) // - overrides + packageExtensions (root dependency policy must apply to the // standalone install too) +// - ignoredOptionalDependencies: the archive gets no .pnpmfile.mjs, so the +// readPackage hook that strips knex's optional sqlite3 peer never runs here. +// This is what keeps sqlite3 out — dropping the provider (knex-migrator's +// optionalDependencies) leaves knex's optional peer with nothing to bind to. +// Without it the end-user install pulls sqlite3 back in and fails on +// ERR_PNPM_IGNORED_BUILDS, since allowBuilds no longer permits its build. // We drop: // - packages: relative paths that don't exist in the standalone dir // - minimumReleaseAge, blockExoticSubdeps, catalogMode: source-repo @@ -176,7 +183,7 @@ if (!buildFiles.some(isLicenseFile)) { // @tryghost/* component tarballs aren't on npm, so an age check would 404) console.log('\nWriting pnpm-workspace.yaml...'); const buildWorkspace = {}; -for (const key of ['catalog', 'catalogs', 'allowBuilds', 'strictDepBuilds', 'overrides', 'packageExtensions']) { +for (const key of ['catalog', 'catalogs', 'allowBuilds', 'strictDepBuilds', 'overrides', 'packageExtensions', 'ignoredOptionalDependencies']) { if (rootWorkspace[key] !== undefined) { buildWorkspace[key] = rootWorkspace[key]; } @@ -205,9 +212,16 @@ await pnpm( {cwd: BUILD_DIR} ); -// 5. Validate before tarring — guard against a valid-looking but broken archive. +// 5. Prune, then validate — the checks below have to see the tree that actually +// ships, so a prune that ate the entry point, the install metadata or a component +// tarball fails here rather than at a consumer's install. +await fs.rm(path.join(BUILD_DIR, 'node_modules'), {recursive: true, force: true}); + +console.log('\nPruning build output...'); +reportPrune(await prune(BUILD_DIR, {profile: 'archive'})); + console.log('\nValidating build output...'); -const requiredFiles = ['pnpm-workspace.yaml', 'pnpm-lock.yaml', 'package.json']; +const requiredFiles = ['pnpm-workspace.yaml', 'pnpm-lock.yaml', 'package.json', 'index.js']; const [packagedPkg, packagedWorkspace, missingFiles, componentTgzCount, packagedFiles] = await Promise.all([ readJson(pkgPath), readYaml(path.join(BUILD_DIR, 'pnpm-workspace.yaml')), @@ -249,7 +263,6 @@ if (!packagedWorkspace?.overrides || Object.keys(packagedWorkspace.overrides).le // 6. Create the tarball (npm layout: top-level package/ dir, no node_modules). const version = pkg.version; const tgzPath = path.join(CORE_DIR, `ghost-${version}.tgz`); -await fs.rm(path.join(BUILD_DIR, 'node_modules'), {recursive: true, force: true}); console.log(`\nCreating tarball: ghost-${version}.tgz`); await execFileAsync('tar', ['czf', tgzPath, 'package'], {cwd: CORE_DIR}); diff --git a/ghost/core/scripts/prune.mts b/ghost/core/scripts/prune.mts new file mode 100644 index 00000000000..e45a58782eb --- /dev/null +++ b/ghost/core/scripts/prune.mts @@ -0,0 +1,197 @@ +#!/usr/bin/env node + +/** + * prune.mts — Strip files no consumer loads from a built Ghost tree. + * + * Two callers, two profiles: + * + * image — Dockerfile.production's deploy stage, against /home/ghost (Ghost's + * `files` set + a resolved production node_modules). The COPY layer + * that follows is extracted single-threaded, once per CI E2E shard, + * and that cost scales with file count rather than bytes. + * archive — scripts/pack.mjs, against the extracted package/ dir. No + * node_modules there (the consumer installs its own), so only the + * source rules apply. + * + * Run directly by node (type stripping, no build step) — `scripts/` is outside + * the tsconfig `include`, so nothing compiles this. + * + * The exclusions below are load-bearing — each is something a naive version of + * the rule deleted and broke. Keep them, and prefer `--dry-run` over reasoning + * about a glob. + */ + +import fs from 'node:fs/promises'; +import path from 'node:path'; +import {parseArgs} from 'node:util'; + +export type Profile = 'image' | 'archive'; + +interface Rule { + name: string; + profiles: Profile[]; + summary: string; + match: (rel: string) => boolean; +} + +export interface PruneResult { + total: number; + removed: number; + bytes: number; + byRule: Record; +} + +// Script files are never build inputs, whatever directory they sit in. +const isScript = (base: string): boolean => /\.(js|json|mjs|cjs|node)$/.test(base); + +const RULES: Rule[] = [ + { + name: 'source', + profiles: ['image', 'archive'], + summary: 'TypeScript sources, declarations and sourcemaps', + // build:tsc emits a .js beside every .ts in the shipped set, and nothing + // runs node with --enable-source-maps (Sentry resolves frames from maps + // uploaded at release time, not from disk). `[cm]?ts` covers the + // declaration variants too — .d.ts, .d.mts, .d.cts. + match: rel => /\.(?:[cm]?ts|tsx|map)$/.test(rel) + }, + { + name: 'docs', + profiles: ['image'], + summary: 'Dependency READMEs, changelogs and contributor lists', + match(rel) { + // Scoped to the app roots: content/'s READMEs ship deliberately (they + // are ghost/core `files` entries, and what a self-hoster sees in each + // content dir). + if (!['node_modules/', 'core/', 'bin/'].some(root => rel.startsWith(root))) { + return false; + } + + // Self-hosters deploy their own Tinybird from these datafiles, so the + // docs explaining how are not ours to drop. + if (rel.includes('/data/tinybird/')) { + return false; + } + + const base = path.basename(rel); + if (/^(licen[sc]e|notice)/i.test(base)) { + return false; + } + + return /\.md$/i.test(base) || /^(history|authors)$/i.test(base); + } + }, + { + name: 'native', + profiles: ['image'], + summary: 'Vendored C/C++ trees and addon sources', + match(rel) { + if (!rel.startsWith('node_modules/')) { + return false; + } + + const base = path.basename(rel); + + // vendor/ is not always C: no-case, chalk and @sentry/* ship runtime + // .js under one. + if (rel.includes('/vendor/')) { + return !isScript(base); + } + + // The prebuilt .node binaries stay — only their build inputs go. A + // node-gyp rebuild is already impossible in the image (no toolchain + // is installed, deliberately), so nothing reads these. + return /\.(cc|cpp|cxx|c|h|hpp|hxx|gyp|gypi)$/.test(base); + } + } +]; + +export const PROFILES: Profile[] = ['image', 'archive']; + +/** + * Walk `dir` and yield every regular file, as a path relative to `dir`. + * Symlinks are never followed — pnpm's virtual store is full of them, and each + * target is reached once via .pnpm anyway. + */ +async function* walk(dir: string, prefix = ''): AsyncGenerator { + const entries = await fs.readdir(path.join(dir, prefix), {withFileTypes: true}); + + for (const entry of entries) { + const rel = prefix ? `${prefix}/${entry.name}` : entry.name; + if (entry.isDirectory()) { + yield* walk(dir, rel); + } else if (entry.isFile()) { + yield rel; + } + } +} + +export async function prune(target: string, {profile, dryRun = false}: {profile: Profile, dryRun?: boolean}): Promise { + if (!PROFILES.includes(profile)) { + throw new Error(`Unknown profile "${profile}" (expected one of: ${PROFILES.join(', ')})`); + } + + const rules = RULES.filter(rule => rule.profiles.includes(profile)); + const byRule = Object.fromEntries(rules.map(rule => [rule.name, {files: 0, bytes: 0}])); + let total = 0; + let removed = 0; + let bytes = 0; + + for await (const rel of walk(target)) { + total += 1; + const rule = rules.find(r => r.match(rel)); + if (!rule) { + continue; + } + + const absolute = path.join(target, rel); + const {size} = await fs.stat(absolute); + if (!dryRun) { + await fs.rm(absolute); + } + + byRule[rule.name].files += 1; + byRule[rule.name].bytes += size; + removed += 1; + bytes += size; + } + + return {total, removed, bytes, byRule}; +} + +const mib = (value: number): string => `${(value / 1024 / 1024).toFixed(1)} MiB`; + +/** + * Print a per-rule breakdown. Callers embed this in their own build output, so + * it takes no leading label of its own. + */ +export function reportPrune(result: PruneResult, {dryRun = false} = {}): void { + for (const rule of RULES) { + const stats = result.byRule[rule.name]; + if (stats) { + console.log(` ${rule.name.padEnd(7)} ${String(stats.files).padStart(6)} files ${mib(stats.bytes).padStart(9)} ${rule.summary}`); + } + } + console.log(` ${dryRun ? 'would remove' : 'removed'} ${result.removed} of ${result.total} files (${mib(result.bytes)})`); +} + +if (import.meta.main) { + const {values, positionals} = parseArgs({ + allowPositionals: true, + options: { + profile: {type: 'string'}, + 'dry-run': {type: 'boolean', default: false} + } + }); + + const [target] = positionals; + const profile = values.profile as Profile | undefined; + if (!target || !profile) { + console.error('Usage: prune.mts --profile= [--dry-run]'); + process.exit(1); + } + + console.log(`Pruning ${target} (profile: ${profile})`); + const result = await prune(path.resolve(target), {profile, dryRun: values['dry-run']}); + reportPrune(result, {dryRun: values['dry-run']}); +} diff --git a/koenig/kg-markdown-html-renderer/package.json b/koenig/kg-markdown-html-renderer/package.json index 304e7a5ac91..55879fed490 100644 --- a/koenig/kg-markdown-html-renderer/package.json +++ b/koenig/kg-markdown-html-renderer/package.json @@ -41,7 +41,7 @@ "@eslint/js": "catalog:", "@types/markdown-it": "14.1.2", "@types/node": "catalog:", - "@types/semver": "7.7.1", + "@types/semver": "7.8.0", "@vitest/coverage-v8": "catalog:", "eslint-plugin-ghost": "catalog:", "@typescript/native": "catalog:", diff --git a/koenig/kg-utils/package.json b/koenig/kg-utils/package.json index ab7ecc49850..4d408a7bc5c 100644 --- a/koenig/kg-utils/package.json +++ b/koenig/kg-utils/package.json @@ -37,7 +37,7 @@ "devDependencies": { "@eslint/js": "catalog:", "@types/node": "catalog:", - "@types/semver": "7.7.1", + "@types/semver": "7.8.0", "@vitest/coverage-v8": "catalog:", "eslint-plugin-ghost": "catalog:", "@typescript/native": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 033b25ec17a..93ae179c56b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,8 +142,8 @@ catalogs: specifier: 5.101.4 version: 5.101.4 '@tanstack/react-virtual': - specifier: 3.14.6 - version: 3.14.6 + specifier: 3.14.9 + version: 3.14.9 '@testing-library/jest-dom': specifier: 6.9.1 version: 6.9.1 @@ -274,8 +274,8 @@ catalogs: specifier: 2.1.1 version: 2.1.1 concurrently: - specifier: 10.0.3 - version: 10.0.3 + specifier: 10.0.4 + version: 10.0.4 country-flag-icons: specifier: 1.6.20 version: 1.6.20 @@ -286,8 +286,8 @@ catalogs: specifier: 2.0.3 version: 2.0.3 dompurify: - specifier: 3.4.11 - version: 3.4.11 + specifier: 3.4.13 + version: 3.4.13 dotenv: specifier: 17.4.2 version: 17.4.2 @@ -310,8 +310,8 @@ catalogs: specifier: 5.2.0 version: 5.2.0 eslint-plugin-react-refresh: - specifier: 0.5.3 - version: 0.5.3 + specifier: 0.5.4 + version: 0.5.4 eslint-plugin-tailwindcss: specifier: 4.0.4 version: 4.0.4 @@ -503,6 +503,7 @@ overrides: braces@<3.0.3: ^3.0.3 clean-css@<4.1.11: ^4.1.11 codemirror@<5.58.2: ^5.58.2 + consolidate@0.15.1: ^1.0.4 debug@>=4.0.0 <4.3.1: ^4.3.1 debug@<2.6.9: ^2.6.9 diff@<3.5.1: ^3.5.1 @@ -539,7 +540,7 @@ overrides: packageExtensionsChecksum: sha256-gFsvptlcVXY90ntXWh9ANUP1/LYyeqXjWoDGw6BCfOY= -pnpmfileChecksum: sha256-Ql0UP36A/aSGPgCeRfBqGbTHOVB+Rs4TPOe+11tcwYo= +pnpmfileChecksum: sha256-PElECk3o63aDDp91sRvCC2j0iZmO2E7A0goI70M/xOs= importers: @@ -613,7 +614,7 @@ importers: version: 2.1.1 dompurify: specifier: 'catalog:' - version: 3.4.11 + version: 3.4.13 html2canvas-pro: specifier: 2.2.1 version: 2.2.1 @@ -722,7 +723,7 @@ importers: version: 5.101.4(react@18.3.1) '@tanstack/react-virtual': specifier: 'catalog:' - version: 3.14.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.14.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tryghost/activitypub': specifier: workspace:* version: link:../activitypub @@ -769,8 +770,8 @@ importers: specifier: 'catalog:' version: 4.25.11(@babel/runtime@7.29.7)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/lint@6.9.7)(@codemirror/search@6.7.1)(@codemirror/state@6.7.1)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.43.6)(codemirror@6.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@xyflow/react': - specifier: 12.11.1 - version: 12.11.1(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 12.11.2 + version: 12.11.2(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: specifier: 'catalog:' version: 2.1.1 @@ -1207,7 +1208,7 @@ importers: dependencies: dompurify: specifier: 'catalog:' - version: 3.4.11 + version: 3.4.13 lodash: specifier: 'catalog:' version: 4.18.1 @@ -1367,7 +1368,7 @@ importers: version: 3.0.1(supports-color@10.2.2) ember-cli: specifier: 3.24.0 - version: 3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8) + version: 3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(supports-color@10.2.2) ember-cli-app-version: specifier: 5.0.0 version: 5.0.0(supports-color@10.2.2) @@ -1382,7 +1383,7 @@ importers: version: 1.0.3(supports-color@10.2.2) ember-cli-dependency-checker: specifier: 3.3.2 - version: 3.3.2(ember-cli@3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8)) + version: 3.3.2(ember-cli@3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(supports-color@10.2.2)) ember-cli-deprecation-workflow: specifier: 2.2.0 version: 2.2.0(supports-color@10.2.2) @@ -1592,7 +1593,7 @@ importers: version: 4.0.1(chai@4.5.0)(sinon@22.0.0) testem: specifier: 3.19.1 - version: 3.19.1(@babel/core@7.29.7(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8) + version: 3.19.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) tracked-built-ins: specifier: 3.4.0 version: 3.4.0(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) @@ -1631,8 +1632,8 @@ importers: specifier: catalog:react17 version: 12.1.5(@types/react@17.0.93)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@testing-library/user-event': - specifier: 14.6.1 - version: 14.6.1(@testing-library/dom@10.4.1) + specifier: 14.6.3 + version: 14.6.3(@testing-library/dom@10.4.1) '@tryghost/i18n': specifier: workspace:* version: link:../../packages/i18n @@ -1647,7 +1648,7 @@ importers: version: 4.1.10(@vitest/browser@4.1.10)(vitest@4.1.10) dompurify: specifier: 'catalog:' - version: 3.4.11 + version: 3.4.13 eslint: specifier: 'catalog:' version: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) @@ -2058,7 +2059,7 @@ importers: version: 5.2.0(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2)) eslint-plugin-react-refresh: specifier: 'catalog:' - version: 0.5.3(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2)) + version: 0.5.4(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2)) eslint-plugin-storybook: specifier: 10.4.6 version: 10.4.6(@typescript/typescript6@6.0.2)(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@18.3.31)(prettier@3.9.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(supports-color@10.2.2) @@ -2147,7 +2148,7 @@ importers: version: 4.22.2(supports-color@10.2.2) knex: specifier: 3.1.0 - version: 3.1.0(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@26.0.0))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + version: 3.1.0(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@26.0.0))(supports-color@10.2.2) stripe: specifier: 8.222.0 version: 8.222.0 @@ -2204,7 +2205,7 @@ importers: version: 2.3.8(supports-color@10.2.2) '@tryghost/brute-knex': specifier: 'catalog:' - version: 3.2.1(better-sqlite3@12.11.1)(express@4.22.2(supports-color@10.2.2))(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + version: 3.2.1(better-sqlite3@12.11.1)(express@4.22.2(supports-color@10.2.2))(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) '@tryghost/color-utils': specifier: 'catalog:' version: 0.2.20 @@ -2288,7 +2289,7 @@ importers: version: 1.0.6 '@tryghost/nodemailer': specifier: 2.3.1 - version: 2.3.1(babel-core@6.26.3(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(supports-color@10.2.2)(underscore@1.13.8) + version: 2.3.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) '@tryghost/nql': specifier: 'catalog:' version: 0.13.1(supports-color@10.2.2) @@ -2348,10 +2349,10 @@ importers: version: 1.20.5(supports-color@10.2.2) bookshelf: specifier: 1.2.0 - version: 1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)) + version: 1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)) bookshelf-relations: specifier: 2.8.0 - version: 2.8.0(bookshelf@1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)))(supports-color@10.2.2) + version: 2.8.0(bookshelf@1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)))(supports-color@10.2.2) bson-objectid: specifier: 'catalog:' version: 2.0.4 @@ -2405,7 +2406,7 @@ importers: version: 2.0.3 dompurify: specifier: 'catalog:' - version: 3.4.11 + version: 3.4.13 downsize-cjs: specifier: 1.1.2 version: 1.1.2 @@ -2478,9 +2479,6 @@ importers: image-size: specifier: 1.2.1 version: 1.2.1 - intl: - specifier: 1.2.5 - version: 1.2.5 intl-messageformat: specifier: 5.4.3 version: 5.4.3 @@ -2504,10 +2502,10 @@ importers: version: 1.0.4 knex: specifier: 2.4.2 - version: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + version: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) knex-migrator: specifier: 'catalog:' - version: 5.4.1(@types/node@22.20.1)(bluebird@3.7.2)(supports-color@10.2.2) + version: 5.4.1(@types/node@22.20.1)(supports-color@10.2.2) leaky-bucket: specifier: 2.2.0 version: 2.2.0 @@ -2564,7 +2562,7 @@ importers: version: 0.5.45 mppx: specifier: 'catalog:' - version: 0.6.20(@typescript/typescript6@6.0.2)(express@4.22.2(supports-color@10.2.2))(hono@4.12.18)(viem@2.55.11(@typescript/typescript6@6.0.2)(zod@4.4.3)) + version: 0.6.20(express@4.22.2(supports-color@10.2.2))(hono@4.12.18)(viem@2.55.11(zod@4.4.3)) multer: specifier: 2.2.0 version: 2.2.0 @@ -2661,7 +2659,7 @@ importers: version: 2.1.0 '@types/bookshelf': specifier: 1.2.9 - version: 1.2.9(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + version: 1.2.9(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) '@types/common-tags': specifier: 1.8.4 version: 1.8.4 @@ -2681,8 +2679,8 @@ importers: specifier: 9.0.10 version: 9.0.10 '@types/lodash': - specifier: 4.17.24 - version: 4.17.24 + specifier: 4.17.25 + version: 4.17.25 '@types/lodash-es': specifier: 4.17.12 version: 4.17.12 @@ -3255,8 +3253,8 @@ importers: specifier: 'catalog:' version: 22.20.1 '@types/semver': - specifier: 7.7.1 - version: 7.7.1 + specifier: 7.8.0 + version: 7.8.0 '@typescript/native': specifier: 'catalog:' version: typescript@7.0.2 @@ -3332,7 +3330,7 @@ importers: version: 5.2.0(eslint@9.39.4(jiti@1.21.7)(supports-color@10.2.2)) eslint-plugin-react-refresh: specifier: 'catalog:' - version: 0.5.3(eslint@9.39.4(jiti@1.21.7)(supports-color@10.2.2)) + version: 0.5.4(eslint@9.39.4(jiti@1.21.7)(supports-color@10.2.2)) eslint-plugin-tailwindcss: specifier: catalog:tailwind3 version: 3.18.3(tailwindcss@3.4.19(tsx@4.23.12)(yaml@2.9.0)) @@ -3380,8 +3378,8 @@ importers: specifier: 'catalog:' version: 22.20.1 '@types/semver': - specifier: 7.7.1 - version: 7.7.1 + specifier: 7.8.0 + version: 7.8.0 '@typescript/native': specifier: 'catalog:' version: typescript@7.0.2 @@ -3561,10 +3559,10 @@ importers: version: 2.1.1 concurrently: specifier: 'catalog:' - version: 10.0.3 + version: 10.0.4 dompurify: specifier: 'catalog:' - version: 3.4.11 + version: 3.4.13 dotenv: specifier: 'catalog:' version: 17.4.2 @@ -5836,9 +5834,6 @@ packages: '@floating-ui/utils@0.2.11': resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@glimmer/component@1.1.2': resolution: {integrity: sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==} engines: {node: 6.* || 8.* || >= 10.*} @@ -6599,14 +6594,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/fs@1.1.1': - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - - '@npmcli/move-file@1.1.2': - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - '@number-flow/react@0.6.2': resolution: {integrity: sha512-WjZuV4aA+vhRCgCF+adGLgFVVAJ8vdvq6EchRT2FiBIgElTXtDOA3YgkcMr9UHpvpS9v4H70AB5wZv0D9jc3QA==} peerDependencies: @@ -8870,24 +8857,24 @@ packages: peerDependencies: react: ^18 || ^19 - '@tanstack/react-virtual@3.14.5': - resolution: {integrity: sha512-4EKRXh7zBLkbKbFmG3AUVkircuHd+7OdT1pocJSepxtfBd3qnrJgJ5rtPkRYyo9fmyVb2+pI2xPy5oYvMLQy6A==} + '@tanstack/react-virtual@3.14.6': + resolution: {integrity: sha512-4+Uq8m0/gzO4kMCHUEpTtGX1RnONK0C+g88b2ltwPMWUBiaVarBuWKoPJaz7gj1cKCVRAdyu+U8GcKhwCc2beA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/react-virtual@3.14.6': - resolution: {integrity: sha512-4+Uq8m0/gzO4kMCHUEpTtGX1RnONK0C+g88b2ltwPMWUBiaVarBuWKoPJaz7gj1cKCVRAdyu+U8GcKhwCc2beA==} + '@tanstack/react-virtual@3.14.9': + resolution: {integrity: sha512-qZyr0FZDP8rDC4WBhsryIZmAd9bveJvFGUJJtskWaew6/0dTRS6wZxnR6VQ5bY2KwL3LjerrHqQLk3a0GKcPXQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.17.3': - resolution: {integrity: sha512-8Np/TFELpI0ySuJoVmjvOrQYXH/8sTX0Biv9szhFhY39xOdAAY+smrMxjxOum/ux3eM8MUJQsEJ0/R0UpvC8dw==} - '@tanstack/virtual-core@3.17.4': resolution: {integrity: sha512-nGm5KteqxasUdThLc2izl6dHUqLv0LQj7Nuyo5gYalTPf/U8a9ermvsl7reT+6ioBW1l8WfpP/mcU338nLXpqw==} + '@tanstack/virtual-core@3.17.7': + resolution: {integrity: sha512-bp+v10y65sp2H7WpWfIMyxTNfl8ZVfxFTLRjPIFRryi6FV/J33z4IS53WO4pTk36KlvJ4iLiQz+oaydDC1xbcA==} + '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} @@ -8933,8 +8920,8 @@ packages: '@types/react-dom': optional: true - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} + '@testing-library/user-event@14.6.3': + resolution: {integrity: sha512-6dBq67jT8lE+JTE8Exm02Kt6ze43hz1jdiSpSJwtTZiT1xQQ6b7nZYTTQ9njdArdU8XklOwaDp/AbT/eYSKF4g==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' @@ -9536,9 +9523,6 @@ packages: '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - '@types/lodash@4.17.24': - resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} - '@types/lodash@4.17.25': resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==} @@ -9658,9 +9642,6 @@ packages: '@types/scheduler@0.16.8': resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/semver@7.8.0': resolution: {integrity: sha512-1mAINjtQCXXeLkJ9ehXkwOcBpqtLxiVtKhpUf83DdRNdQKV0iXZpaHYqRr7nj+wvxuJzoAmAwXI+sCNMv1CzLQ==} @@ -10218,8 +10199,8 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@xyflow/react@12.11.1': - resolution: {integrity: sha512-L+zBoLGSXham0MnlY8QqjfR7/C5JNw0zxkaey5aZ5XmCgJBAdH4+WRIu8CR40d3l/BdU635V6YbhBK1jMo8/6Q==} + '@xyflow/react@12.11.2': + resolution: {integrity: sha512-eLAlDWJfWnQEhJwGMjlWdAXO9eYllKpliUmPQlAmOLxz6mExXuzMVDUKLMquixgkrtmMFFtug3jGKmYYld12cA==} peerDependencies: '@types/react': '>=17' '@types/react-dom': '>=17' @@ -10231,8 +10212,8 @@ packages: '@types/react-dom': optional: true - '@xyflow/system@0.0.78': - resolution: {integrity: sha512-lY0z2qP33fUhTva9Vaxrk0lqZta2pkbxB1trHAx1omnJqRtPvDlAQYV2r5fhS6AdpkulYmbNW0svy+A4/t4B/g==} + '@xyflow/system@0.0.79': + resolution: {integrity: sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA==} '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -10259,22 +10240,16 @@ packages: abitype@1.2.3: resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} peerDependencies: - typescript: '>=5.0.4' zod: ^3.22.0 || ^4.0.0 peerDependenciesMeta: - typescript: - optional: true zod: optional: true abitype@1.3.0: resolution: {integrity: sha512-fk6Te+bojIFrMvMZrnOO+SxCB+RUksTGOzq/60ZRvs1L+BVzvi2bqt9L3W/17ZLdZsyM1FuYf65P5nlmoiH1Bg==} peerDependencies: - typescript: '>=5.0.4' zod: ^3.22.0 || ^4.0.0 peerDependenciesMeta: - typescript: - optional: true zod: optional: true @@ -10360,14 +10335,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - ajv-errors@1.0.1: resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} peerDependencies: @@ -10519,9 +10486,6 @@ packages: aproba@1.2.0: resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} - archiver@8.0.0: resolution: {integrity: sha512-fV1orZfsnPn9BaSByR/qE67rJCLJEy2Ox5bq7nJh+jquWaNh6Sfec75kJ2T6PtdGUbPQlrVoSVCEOa5SdiTQ1g==} engines: {node: '>=18'} @@ -10530,11 +10494,6 @@ packages: resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} deprecated: This package is no longer supported. - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -11604,10 +11563,6 @@ packages: cacache@12.0.4: resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} - cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - cache-manager-ioredis@2.1.0: resolution: {integrity: sha512-TCxbp9ceuFveTKWuNaCX8QjoC41rAlHen4s63u9Yd+iXlw3efYmimc/u935PKPxSdhkXpnMes4mxtK3/yb0L4g==} engines: {node: '>=6.0.0'} @@ -11839,10 +11794,6 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -12044,10 +11995,6 @@ packages: resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} engines: {node: '>=18'} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - color@3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} @@ -12187,8 +12134,8 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} - concurrently@10.0.3: - resolution: {integrity: sha512-hc3LH4UaKWd/bbyDK/IGVa4RB6PtQ3CUYwtrkzqHn+wIG3Hr5fhpRlk0L/gCa8ZE1L/Ufj50Zho69cI5w8SQBA==} + concurrently@10.0.4: + resolution: {integrity: sha512-trZql+7l/0+WRAsAnEdctr4+iiOS6ZrViI6H8QWcCF9MFS/LT0dKpe8vluB1to6it+OxSI4VospFTIFMW8DJRw==} engines: {node: '>=22'} hasBin: true @@ -12226,321 +12173,9 @@ packages: resolution: {integrity: sha512-+5j3R4wZJcEYZeXk30whc4ZU/+fWW9JMTNntVuMYpjZJ9n26Cxr0tUBXco1NRjVZRpRVvZ4DDKKKIHNYeUG9Dw==} engines: {node: 6.* || 8.* || >= 10.*} - consolidate@0.15.1: - resolution: {integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==} - engines: {node: '>= 0.10.0'} - deprecated: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog - peerDependencies: - arc-templates: ^0.5.3 - atpl: '>=0.7.6' - babel-core: ^6.26.3 - bracket-template: ^1.1.5 - coffee-script: ^1.12.7 - dot: ^1.1.3 - dust: ^0.3.0 - dustjs-helpers: ^1.7.4 - dustjs-linkedin: ^2.7.5 - eco: ^1.1.0-rc-3 - ect: ^0.5.9 - ejs: ^3.1.5 - haml-coffee: ^1.14.1 - hamlet: ^0.3.3 - hamljs: ^0.6.2 - handlebars: ^4.7.9 - hogan.js: ^3.0.2 - htmling: ^0.0.8 - jade: ^1.11.0 - jazz: ^0.0.18 - jqtpl: ~1.1.0 - just: ^0.1.8 - liquid-node: ^3.0.1 - liquor: ^0.0.5 - lodash: ^4.18.0 - marko: ^3.14.4 - mote: ^0.2.0 - mustache: ^3.0.0 - nunjucks: ^3.2.2 - plates: ~0.4.11 - pug: ^3.0.0 - qejs: ^3.0.5 - ractive: ^1.3.12 - razor-tmpl: ^1.3.1 - react: ^16.13.1 - react-dom: ^16.13.1 - slm: ^2.0.0 - squirrelly: ^5.1.0 - swig: ^1.4.2 - swig-templates: ^2.0.3 - teacup: ^2.0.0 - templayed: '>=0.2.3' - then-jade: '*' - then-pug: '*' - tinyliquid: ^0.2.34 - toffee: ^0.3.6 - twig: ^1.15.2 - twing: ^5.0.2 - underscore: ^1.12.1 - vash: ^0.13.0 - velocityjs: ^2.0.1 - walrus: ^0.10.1 - whiskers: ^0.4.0 - peerDependenciesMeta: - arc-templates: - optional: true - atpl: - optional: true - babel-core: - optional: true - bracket-template: - optional: true - coffee-script: - optional: true - dot: - optional: true - dust: - optional: true - dustjs-helpers: - optional: true - dustjs-linkedin: - optional: true - eco: - optional: true - ect: - optional: true - ejs: - optional: true - haml-coffee: - optional: true - hamlet: - optional: true - hamljs: - optional: true - handlebars: - optional: true - hogan.js: - optional: true - htmling: - optional: true - jade: - optional: true - jazz: - optional: true - jqtpl: - optional: true - just: - optional: true - liquid-node: - optional: true - liquor: - optional: true - lodash: - optional: true - marko: - optional: true - mote: - optional: true - mustache: - optional: true - nunjucks: - optional: true - plates: - optional: true - pug: - optional: true - qejs: - optional: true - ractive: - optional: true - razor-tmpl: - optional: true - react: - optional: true - react-dom: - optional: true - slm: - optional: true - squirrelly: - optional: true - swig: - optional: true - swig-templates: - optional: true - teacup: - optional: true - templayed: - optional: true - then-jade: - optional: true - then-pug: - optional: true - tinyliquid: - optional: true - toffee: - optional: true - twig: - optional: true - twing: - optional: true - underscore: - optional: true - vash: - optional: true - velocityjs: - optional: true - walrus: - optional: true - whiskers: - optional: true - consolidate@1.0.4: resolution: {integrity: sha512-RuZ3xnqEDsxiwaoIkqVeeK3gg9qxw7+YKYX2tKhLs1eukVKMgSr4VYI3iYFsRHi4TloHYDlugrz3kvkjs3nynA==} engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.22.5 - arc-templates: ^0.5.3 - atpl: '>=0.7.6' - bracket-template: ^1.1.5 - coffee-script: ^1.12.7 - dot: ^1.1.3 - dust: ^0.3.0 - dustjs-helpers: ^1.7.4 - dustjs-linkedin: ^2.7.5 - eco: ^1.1.0-rc-3 - ect: ^0.5.9 - ejs: ^3.1.5 - haml-coffee: ^1.14.1 - hamlet: ^0.3.3 - hamljs: ^0.6.2 - handlebars: ^4.7.9 - hogan.js: ^3.0.2 - htmling: ^0.0.8 - jazz: ^0.0.18 - jqtpl: ~1.1.0 - just: ^0.1.8 - liquid-node: ^3.0.1 - liquor: ^0.0.5 - lodash: ^4.18.0 - mote: ^0.2.0 - mustache: ^4.0.1 - nunjucks: ^3.2.2 - plates: ~0.4.11 - pug: ^3.0.0 - qejs: ^3.0.5 - ractive: ^1.3.12 - react: '>=16.13.1' - react-dom: '>=16.13.1' - slm: ^2.0.0 - swig: ^1.4.2 - swig-templates: ^2.0.3 - teacup: ^2.0.0 - templayed: '>=0.2.3' - then-pug: '*' - tinyliquid: ^0.2.34 - toffee: ^0.3.6 - twig: ^1.15.2 - twing: ^5.0.2 - underscore: ^1.12.1 - vash: ^0.13.0 - velocityjs: ^2.0.1 - walrus: ^0.10.1 - whiskers: ^0.4.0 - peerDependenciesMeta: - '@babel/core': - optional: true - arc-templates: - optional: true - atpl: - optional: true - bracket-template: - optional: true - coffee-script: - optional: true - dot: - optional: true - dust: - optional: true - dustjs-helpers: - optional: true - dustjs-linkedin: - optional: true - eco: - optional: true - ect: - optional: true - ejs: - optional: true - haml-coffee: - optional: true - hamlet: - optional: true - hamljs: - optional: true - handlebars: - optional: true - hogan.js: - optional: true - htmling: - optional: true - jazz: - optional: true - jqtpl: - optional: true - just: - optional: true - liquid-node: - optional: true - liquor: - optional: true - lodash: - optional: true - mote: - optional: true - mustache: - optional: true - nunjucks: - optional: true - plates: - optional: true - pug: - optional: true - qejs: - optional: true - ractive: - optional: true - react: - optional: true - react-dom: - optional: true - slm: - optional: true - swig: - optional: true - swig-templates: - optional: true - teacup: - optional: true - templayed: - optional: true - then-pug: - optional: true - tinyliquid: - optional: true - toffee: - optional: true - twig: - optional: true - twing: - optional: true - underscore: - optional: true - vash: - optional: true - velocityjs: - optional: true - walrus: - optional: true - whiskers: - optional: true constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} @@ -13329,8 +12964,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.4.11: - resolution: {integrity: sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==} + dompurify@3.4.13: + resolution: {integrity: sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==} domutils@1.5.1: resolution: {integrity: sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==} @@ -14041,9 +13676,6 @@ packages: eol@0.9.1: resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true @@ -14230,8 +13862,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.5.3: - resolution: {integrity: sha512-5EMmLCV98Pi4o/f/3DP/v/tNqLHMIc9I8LKClNDWhZ9JTho89/kQcitCXQBMG7sAfVRK0Ie3T2EDOzp1YXYiVA==} + eslint-plugin-react-refresh@0.5.4: + resolution: {integrity: sha512-7bqTKz7T0r+HKWFarNXByDE9/5+73wI2ru+M3zuqGbR7s/b/5/pQJXZoufWlrngqGqoZto73ZkGumCdLxk+4rw==} peerDependencies: eslint: ^9 || ^10 @@ -14950,10 +14582,6 @@ packages: fs-merger@3.2.1: resolution: {integrity: sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug==} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - fs-mkdirp-stream@2.0.1: resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} engines: {node: '>=10.13.0'} @@ -15010,11 +14638,6 @@ packages: resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} deprecated: This package is no longer supported. - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - gelf-stream@1.1.1: resolution: {integrity: sha512-kCzCfI6DJ8+aaDhwMcsNm2l6CsBj6y4Is6CCxH2W9sYnZGcXg9WmJ/iZMoJVO6uTwTRL7dbIioAS8lCuGUXSFA==} @@ -15580,9 +15203,6 @@ packages: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - husky@9.1.7: resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} @@ -15789,9 +15409,6 @@ packages: intl-messageformat@5.4.3: resolution: {integrity: sha512-wiGIeeokY6D/TFC6JYoBIUmZJ2AzkTHJuWp5QulDH4h77aghFTBm+8MvjTLIUiQ/z7xiY3SUQN2UBG7EtwYTAg==} - intl@1.2.5: - resolution: {integrity: sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -15799,10 +15416,6 @@ packages: resolution: {integrity: sha512-tVrCrc4LWJwX82GD79dZ0teZQGq+5KJEGpXJRgzHOrhHtLgF9ME6rTwDV5+HN5bjnvmtrnS8ioXhflY16sy2HQ==} engines: {node: '>=6'} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} - engines: {node: '>= 12'} - ip-regex@4.3.0: resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} @@ -15999,9 +15612,6 @@ packages: resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==} engines: {node: '>=0.10.0'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-language-code@2.0.0: resolution: {integrity: sha512-6xKmRRcP2YdmMBZMVS3uiJRPQgcMYolkD6hFw2Y4KjqyIyaJlCGxUt56tuu0iIV8q9r8kMEo0Gjd/GFwKrgjbw==} @@ -16698,7 +16308,6 @@ packages: mysql: ^2.18.1 mysql2: ^2.1.0 pg: ^8.3.0 - sqlite3: ^5.0.0 peerDependenciesMeta: mssql: optional: true @@ -16708,8 +16317,6 @@ packages: optional: true pg: optional: true - sqlite3: - optional: true knex@2.4.2: resolution: {integrity: sha512-tMI1M7a+xwHhPxjbl/H9K1kHX+VncEYcvCx5K00M16bWvpYPKAZd6QrCu68PtHAdIZNQPWZn0GVhqVBEthGWCg==} @@ -16721,7 +16328,6 @@ packages: mysql2: '*' pg: '*' pg-native: '*' - sqlite3: '*' tedious: '*' peerDependenciesMeta: better-sqlite3: @@ -16734,8 +16340,6 @@ packages: optional: true pg-native: optional: true - sqlite3: - optional: true tedious: optional: true @@ -16749,7 +16353,6 @@ packages: mysql2: '*' pg: '*' pg-native: '*' - sqlite3: '*' tedious: '*' peerDependenciesMeta: better-sqlite3: @@ -16762,8 +16365,6 @@ packages: optional: true pg-native: optional: true - sqlite3: - optional: true tedious: optional: true @@ -17299,10 +16900,6 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} - make-iterator@1.0.1: resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} engines: {node: '>=0.10.0'} @@ -17788,33 +17385,9 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} - - minipass-flush@1.0.7: - resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - minipass@2.9.0: resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} @@ -17823,10 +17396,6 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -18059,9 +17628,6 @@ packages: resolution: {integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==} engines: {node: '>=10'} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -18088,11 +17654,6 @@ packages: engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} hasBin: true - node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true - node-html-markdown@2.0.0: resolution: {integrity: sha512-DqUC3GGP7pwSYxS93SwHoP+qCw78xcMP6C6H2DuC8rPD2AweJRjBzQb5SdXpKtDlqAQ7hVotJcfhgU7hU5Gthw==} engines: {node: '>=20.0.0'} @@ -18293,11 +17854,6 @@ packages: resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} hasBin: true - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -18372,11 +17928,6 @@ packages: resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} deprecated: This package is no longer supported. - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -18549,19 +18100,9 @@ packages: ox@0.14.20: resolution: {integrity: sha512-rby38C3nDn8eQkf29Zgw4hkCZJ64Qqi0zRPWL8ENUQ7JVuoITqrVtwWQgM/He19SCMUEc7hS/Sjw0jIOSLJhOw==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true ox@0.14.33: resolution: {integrity: sha512-rooA/4o7bBof4Ge2VH/eovfNPb/AEEYyrNj03wggc55g5HZD8Pjs/OeWhttgjic3dDcqn0r29bDuvQEdTiUemQ==} - peerDependencies: - typescript: '>=5.4.0' - peerDependenciesMeta: - typescript: - optional: true oxc-parser@0.127.0: resolution: {integrity: sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==} @@ -18642,10 +18183,6 @@ packages: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - p-map@7.0.6: resolution: {integrity: sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==} engines: {node: '>=18'} @@ -19714,10 +19251,6 @@ packages: resolution: {integrity: sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==} engines: {node: 10.* || >= 12.*} - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - promise.hash.helper@1.0.8: resolution: {integrity: sha512-KYcnXctWUWyVD3W3Ye0ZDuA1N8Szrh85cVCxpG6xYrOk/0CttRtYCmU30nWsUch0NuExQQ63QXvzRE6FLimZmg==} engines: {node: 10.* || >= 12.*} @@ -20770,8 +20303,8 @@ packages: resolution: {integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==} engines: {node: '>= 0.4'} - shell-quote@1.8.4: - resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + shell-quote@1.9.0: + resolution: {integrity: sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==} engines: {node: '>= 0.4'} shellwords@0.1.1: @@ -20868,10 +20401,6 @@ packages: slick@1.12.2: resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==} - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smartquotes@2.3.2: resolution: {integrity: sha512-0R6YJ5hLpDH4mZR7N5eZ12oCMLspvGOHL9A9SEm2e3b/CQmQidekW4SWSKEmor/3x6m3NCBBEqLzikcZC9VJNQ==} engines: {node: '>=4.0.0'} @@ -20898,14 +20427,6 @@ packages: resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==} engines: {node: '>=10.2.0'} - socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} - - socks@2.8.9: - resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sonner@2.0.7: resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} peerDependencies: @@ -21006,9 +20527,6 @@ packages: resolution: {integrity: sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==} engines: {bun: '>=1.0.0', deno: '>=2.0.0', node: '>=12.0.0'} - sqlite3@5.1.7: - resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} - ssh2@1.17.0: resolution: {integrity: sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==} engines: {node: '>=10.16.0'} @@ -21016,10 +20534,6 @@ packages: ssri@6.0.2: resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} - ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' @@ -22299,11 +21813,6 @@ packages: viem@2.55.11: resolution: {integrity: sha512-RR5MwtdUnFfqw6ZGoFptizywyLOkLuhTL7UafoP3Irf2upXpANakQkLgGqY4H7A7+8JBxjUs6lElGF5zuGjMEw==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true vinyl-contents@2.0.0: resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==} @@ -22903,6 +22412,9 @@ packages: zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} +ignoredOptionalDependencies: + - sqlite3 + snapshots: '@adobe/css-tools@4.5.0': {} @@ -25120,9 +24632,6 @@ snapshots: '@floating-ui/utils@0.2.11': {} - '@gar/promisify@1.1.3': - optional: true - '@glimmer/component@1.1.2(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: '@glimmer/di': 0.1.11 @@ -25288,7 +24797,7 @@ snapshots: '@headlessui/react@1.7.19(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: - '@tanstack/react-virtual': 3.14.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@tanstack/react-virtual': 3.14.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2) client-only: 0.0.1 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) @@ -26168,18 +25677,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@npmcli/fs@1.1.1': - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.8.5 - optional: true - - '@npmcli/move-file@1.1.2': - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - optional: true - '@number-flow/react@0.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: esm-env: 1.2.2 @@ -28453,22 +27950,22 @@ snapshots: '@tanstack/query-core': 5.101.4 react: 18.3.1 - '@tanstack/react-virtual@3.14.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@tanstack/react-virtual@3.14.6(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: - '@tanstack/virtual-core': 3.17.3 + '@tanstack/virtual-core': 3.17.4 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@tanstack/react-virtual@3.14.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.14.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/virtual-core': 3.17.4 + '@tanstack/virtual-core': 3.17.7 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.17.3': {} - '@tanstack/virtual-core@3.17.4': {} + '@tanstack/virtual-core@3.17.7': {} + '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.29.7 @@ -28541,7 +28038,7 @@ snapshots: '@types/react': 18.3.31 '@types/react-dom': 18.3.7(@types/react@18.3.31) - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': + '@testing-library/user-event@14.6.3(@testing-library/dom@10.4.1)': dependencies: '@testing-library/dom': 10.4.1 @@ -28758,10 +28255,10 @@ snapshots: '@tryghost/bookshelf-transaction-events@2.3.7': {} - '@tryghost/brute-knex@3.2.1(better-sqlite3@12.11.1)(express@4.22.2(supports-color@10.2.2))(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)': + '@tryghost/brute-knex@3.2.1(better-sqlite3@12.11.1)(express@4.22.2(supports-color@10.2.2))(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)': dependencies: express-brute: 1.0.1(express@4.22.2(supports-color@10.2.2)) - knex: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + knex: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) transitivePeerDependencies: - better-sqlite3 - express @@ -28769,7 +28266,6 @@ snapshots: - mysql2 - pg - pg-native - - sqlite3 - supports-color - tedious @@ -28996,70 +28492,17 @@ snapshots: '@tryghost/mw-vhost@1.0.6': {} - '@tryghost/nodemailer@2.3.1(babel-core@6.26.3(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(supports-color@10.2.2)(underscore@1.13.8)': + '@tryghost/nodemailer@2.3.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: '@aws-sdk/client-sesv2': 3.1073.0 '@tryghost/errors': 3.3.5 '@tryghost/tpl': 2.3.1 nodemailer: 9.0.1 - nodemailer-mailgun-transport: 2.1.5(babel-core@6.26.3(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(supports-color@10.2.2)(underscore@1.13.8) + nodemailer-mailgun-transport: 2.1.5(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) nodemailer-stub-transport: 1.1.0 transitivePeerDependencies: - - arc-templates - - atpl - - babel-core - - bracket-template - - coffee-script - debug - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jade - - jazz - - jqtpl - - just - - liquid-node - - liquor - - lodash - - marko - - mote - - mustache - - nunjucks - - plates - - pug - - qejs - - ractive - - razor-tmpl - - react - - react-dom - - slm - - squirrelly - - supports-color - - swig - - swig-templates - - teacup - - templayed - - then-jade - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore - - vash - - velocityjs - - walrus - - whiskers + - supports-color '@tryghost/nql-lang@0.6.6': dependencies: @@ -29342,18 +28785,17 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 26.0.0 - '@types/bookshelf@1.2.9(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)': + '@types/bookshelf@1.2.9(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)': dependencies: '@types/bluebird': 3.5.42 '@types/create-error': 0.3.33 - '@types/lodash': 4.17.24 - knex: 0.21.21(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + '@types/lodash': 4.17.25 + knex: 0.21.21(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) transitivePeerDependencies: - mssql - mysql - mysql2 - pg - - sqlite3 - supports-color '@types/broccoli-plugin@1.3.0': {} @@ -29570,9 +29012,7 @@ snapshots: '@types/lodash-es@4.17.12': dependencies: - '@types/lodash': 4.17.24 - - '@types/lodash@4.17.24': {} + '@types/lodash': 4.17.25 '@types/lodash@4.17.25': {} @@ -29694,8 +29134,6 @@ snapshots: '@types/scheduler@0.16.8': {} - '@types/semver@7.7.1': {} - '@types/semver@7.8.0': {} '@types/send@0.17.6': @@ -30640,9 +30078,9 @@ snapshots: '@xtuc/long@4.2.2': {} - '@xyflow/react@12.11.1(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@xyflow/react@12.11.2(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@xyflow/system': 0.0.78 + '@xyflow/system': 0.0.79 classcat: 5.0.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -30653,7 +30091,7 @@ snapshots: transitivePeerDependencies: - immer - '@xyflow/system@0.0.78': + '@xyflow/system@0.0.79': dependencies: '@types/d3-drag': 3.0.7 '@types/d3-interpolate': 3.0.4 @@ -30680,14 +30118,12 @@ snapshots: abbrev@5.0.0: {} - abitype@1.2.3(@typescript/typescript6@6.0.2)(zod@4.4.3): + abitype@1.2.3(zod@4.4.3): optionalDependencies: - typescript: '@typescript/typescript6@6.0.2' zod: 4.4.3 - abitype@1.3.0(@typescript/typescript6@6.0.2)(zod@4.4.3): + abitype@1.3.0(zod@4.4.3): optionalDependencies: - typescript: '@typescript/typescript6@6.0.2' zod: 4.4.3 abort-controller@3.0.0: @@ -30759,17 +30195,6 @@ snapshots: transitivePeerDependencies: - supports-color - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - optional: true - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - optional: true - ajv-errors@1.0.1(ajv@6.15.0): dependencies: ajv: 6.15.0 @@ -30904,9 +30329,6 @@ snapshots: aproba@1.2.0: {} - aproba@2.1.0: - optional: true - archiver@8.0.0: dependencies: async: 3.2.6 @@ -30928,12 +30350,6 @@ snapshots: delegates: 1.0.0 readable-stream: 2.3.8 - are-we-there-yet@3.0.1: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - optional: true - arg@5.0.2: {} argparse@1.0.10: @@ -31975,22 +31391,22 @@ snapshots: fast-safe-stringify: 2.1.1 individual: 3.0.0 - bookshelf-relations@2.8.0(bookshelf@1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)))(supports-color@10.2.2): + bookshelf-relations@2.8.0(bookshelf@1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)))(supports-color@10.2.2): dependencies: '@tryghost/debug': 0.1.40(supports-color@10.2.2) '@tryghost/errors': 3.3.5 bluebird: 3.7.2 - bookshelf: 1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)) + bookshelf: 1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)) lodash: 4.18.1 transitivePeerDependencies: - supports-color - bookshelf@1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2)): + bookshelf@1.2.0(knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2)): dependencies: bluebird: 3.7.2 create-error: 0.3.1 inflection: 1.13.4 - knex: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + knex: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) lodash: 4.18.1 boolbase@1.0.0: {} @@ -32763,30 +32179,6 @@ snapshots: unique-filename: 1.1.1 y18n: 4.0.3 - cacache@15.3.0(bluebird@3.7.2): - dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1(bluebird@3.7.2) - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 7.5.16 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - optional: true - cache-manager-ioredis@2.1.0(supports-color@10.2.2): dependencies: ioredis: 4.31.0(supports-color@10.2.2) @@ -33095,9 +32487,6 @@ snapshots: chownr@1.1.4: {} - chownr@2.0.0: - optional: true - chownr@3.0.0: {} chrome-trace-event@1.0.4: {} @@ -33287,9 +32676,6 @@ snapshots: dependencies: color-name: 2.1.0 - color-support@1.1.3: - optional: true - color@3.2.1: dependencies: color-convert: 1.9.3 @@ -33413,11 +32799,11 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 - concurrently@10.0.3: + concurrently@10.0.4: dependencies: chalk: 5.6.2 rxjs: 7.8.2 - shell-quote: 1.8.4 + shell-quote: 1.9.0 supports-color: 10.2.2 tree-kill: 1.2.2 yargs: 18.0.0 @@ -33466,24 +32852,7 @@ snapshots: ora: 3.4.0 through2: 3.0.2 - consolidate@0.15.1(babel-core@6.26.3(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8): - dependencies: - bluebird: 3.7.2 - optionalDependencies: - babel-core: 6.26.3(supports-color@10.2.2) - handlebars: 4.7.9 - lodash: 4.18.1 - underscore: 1.13.8 - - consolidate@1.0.4(@babel/core@7.29.7(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(underscore@1.13.8): - optionalDependencies: - '@babel/core': 7.29.7(supports-color@10.2.2) - handlebars: 4.7.9 - lodash: 4.18.1 - mustache: 4.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - underscore: 1.13.8 + consolidate@1.0.4: {} constants-browserify@1.0.0: {} @@ -34358,7 +33727,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.4.11: + dompurify@3.4.13: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -34754,10 +34123,10 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.3.2(ember-cli@3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8)): + ember-cli-dependency-checker@3.3.2(ember-cli@3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(supports-color@10.2.2)): dependencies: chalk: 2.4.2 - ember-cli: 3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8) + ember-cli: 3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(supports-color@10.2.2) find-yarn-workspace-root: 1.2.1 is-git-url: 1.0.0 resolve: 1.22.12 @@ -35090,7 +34459,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli@3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8): + ember-cli@3.24.0(debug@4.4.3(supports-color@10.2.2))(encoding@0.1.13)(supports-color@10.2.2): dependencies: '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) @@ -35175,7 +34544,7 @@ snapshots: sort-package-json: 1.57.0 symlink-or-copy: 1.3.1 temp: 0.9.4 - testem: 3.19.1(@babel/core@7.29.7(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8) + testem: 3.19.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) tiny-lr: 2.0.0(supports-color@10.2.2) tree-sync: 2.1.0(supports-color@10.2.2) uuid: 8.3.2 @@ -35184,56 +34553,11 @@ snapshots: workerpool: 6.5.1 yam: 1.0.0 transitivePeerDependencies: - - arc-templates - - atpl - - bracket-template - bufferutil - - coffee-script - debug - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - encoding - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jazz - - jqtpl - - just - - liquid-node - - liquor - - mote - - nunjucks - - plates - - pug - - qejs - - ractive - - react - - react-dom - - slm - - supports-color - - swig - - swig-templates - - teacup - - templayed - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore + - supports-color - utf-8-validate - - vash - - velocityjs - - walrus - - whiskers ember-compatibility-helpers@1.2.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2): dependencies: @@ -36005,9 +35329,6 @@ snapshots: eol@0.9.1: {} - err-code@2.0.3: - optional: true - errno@0.1.8: dependencies: prr: 1.0.1 @@ -36428,11 +35749,11 @@ snapshots: dependencies: eslint: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) - eslint-plugin-react-refresh@0.5.3(eslint@9.39.4(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-react-refresh@0.5.4(eslint@9.39.4(jiti@1.21.7)(supports-color@10.2.2)): dependencies: eslint: 9.39.4(jiti@1.21.7)(supports-color@10.2.2) - eslint-plugin-react-refresh@0.5.3(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2)): + eslint-plugin-react-refresh@0.5.4(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2)): dependencies: eslint: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) @@ -37559,11 +36880,6 @@ snapshots: transitivePeerDependencies: - supports-color - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - optional: true - fs-mkdirp-stream@2.0.1: dependencies: graceful-fs: 4.2.11 @@ -37651,18 +36967,6 @@ snapshots: strip-ansi: 3.0.1 wide-align: 1.1.5 - gauge@4.0.4: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - optional: true - gelf-stream@1.1.1: dependencies: gelfling: 0.3.1 @@ -38401,11 +37705,6 @@ snapshots: human-signals@8.0.1: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - optional: true - husky@9.1.7: {} i18n-iso-countries@7.14.0: @@ -38635,8 +37934,6 @@ snapshots: intl-format-cache: 4.3.1 intl-messageformat-parser: 2.1.3 - intl@1.2.5: {} - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -38657,9 +37954,6 @@ snapshots: transitivePeerDependencies: - supports-color - ip-address@10.2.0: - optional: true - ip-regex@4.3.0: {} ipaddr.js@1.9.1: {} @@ -38839,9 +38133,6 @@ snapshots: dependencies: is-glob: 2.0.1 - is-lambda@1.0.1: - optional: true - is-language-code@2.0.0: {} is-map@2.0.3: {} @@ -39848,7 +39139,7 @@ snapshots: kleur@4.1.5: {} - knex-migrator@5.4.1(@types/node@22.20.1)(bluebird@3.7.2)(supports-color@10.2.2): + knex-migrator@5.4.1(@types/node@22.20.1)(supports-color@10.2.2): dependencies: '@tryghost/database-info': 0.3.35 '@tryghost/errors': 3.3.5 @@ -39857,7 +39148,7 @@ snapshots: commander: 5.1.0 compare-ver: 2.0.2 debug: 4.4.3(supports-color@10.2.2) - knex: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2) + knex: 2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2) lodash: 4.18.1 moment: 2.30.1 mysql2: 3.22.5(@types/node@22.20.1) @@ -39865,18 +39156,16 @@ snapshots: resolve: 1.22.12 optionalDependencies: better-sqlite3: 12.11.1 - sqlite3: 5.1.7(bluebird@3.7.2)(supports-color@10.2.2) transitivePeerDependencies: - '@75lb/nature' - '@types/node' - - bluebird - mysql - pg - pg-native - supports-color - tedious - knex@0.21.21(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2): + knex@0.21.21(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2): dependencies: colorette: 1.2.1 commander: 6.2.1 @@ -39892,11 +39181,10 @@ snapshots: v8flags: 3.2.0 optionalDependencies: mysql2: 3.22.5(@types/node@22.20.1) - sqlite3: 5.1.7(bluebird@3.7.2)(supports-color@10.2.2) transitivePeerDependencies: - supports-color - knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2): + knex@2.4.2(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@22.20.1))(supports-color@10.2.2): dependencies: colorette: 2.0.19 commander: 9.5.0 @@ -39915,11 +39203,10 @@ snapshots: optionalDependencies: better-sqlite3: 12.11.1 mysql2: 3.22.5(@types/node@22.20.1) - sqlite3: 5.1.7(bluebird@3.7.2)(supports-color@10.2.2) transitivePeerDependencies: - supports-color - knex@3.1.0(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@26.0.0))(sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2))(supports-color@10.2.2): + knex@3.1.0(better-sqlite3@12.11.1)(mysql2@3.22.5(@types/node@26.0.0))(supports-color@10.2.2): dependencies: colorette: 2.0.19 commander: 10.0.1 @@ -39938,7 +39225,6 @@ snapshots: optionalDependencies: better-sqlite3: 12.11.1 mysql2: 3.22.5(@types/node@26.0.0) - sqlite3: 5.1.7(bluebird@3.7.2)(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -40478,29 +39764,6 @@ snapshots: dependencies: semver: 7.8.5 - make-fetch-happen@9.1.0(bluebird@3.7.2)(supports-color@10.2.2): - dependencies: - agentkeepalive: 4.6.0 - cacache: 15.3.0(bluebird@3.7.2) - http-cache-semantics: 4.2.0 - http-proxy-agent: 4.0.1(supports-color@10.2.2) - https-proxy-agent: 5.0.1(supports-color@10.2.2) - is-lambda: 1.0.1 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 1.4.1 - minipass-flush: 1.0.7 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 6.2.1(supports-color@10.2.2) - ssri: 8.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - optional: true - make-iterator@1.0.1: dependencies: kind-of: 6.0.3 @@ -41271,55 +40534,15 @@ snapshots: minimist@1.2.8: {} - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - optional: true - - minipass-fetch@1.4.1: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - optional: true - - minipass-flush@1.0.7: - dependencies: - minipass: 3.3.6 - optional: true - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - optional: true - - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - optional: true - minipass@2.9.0: dependencies: safe-buffer: 5.2.1 yallist: 3.1.1 - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - optional: true - minipass@4.2.8: {} minipass@7.1.3: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - optional: true - minizlib@3.1.0: dependencies: minipass: 7.1.3 @@ -41413,17 +40636,15 @@ snapshots: rimraf: 2.7.1 run-queue: 1.0.3 - mppx@0.6.20(@typescript/typescript6@6.0.2)(express@4.22.2(supports-color@10.2.2))(hono@4.12.18)(viem@2.55.11(@typescript/typescript6@6.0.2)(zod@4.4.3)): + mppx@0.6.20(express@4.22.2(supports-color@10.2.2))(hono@4.12.18)(viem@2.55.11(zod@4.4.3)): dependencies: incur: 0.4.26 - ox: 0.14.20(@typescript/typescript6@6.0.2)(zod@4.4.3) - viem: 2.55.11(@typescript/typescript6@6.0.2)(zod@4.4.3) + ox: 0.14.20(zod@4.4.3) + viem: 2.55.11(zod@4.4.3) zod: 4.4.3 optionalDependencies: express: 4.22.2(supports-color@10.2.2) hono: 4.12.18 - transitivePeerDependencies: - - typescript mrmime@2.0.1: {} @@ -41624,9 +40845,6 @@ snapshots: semver: 7.8.5 optional: true - node-addon-api@7.1.1: - optional: true - node-dir@0.1.17: dependencies: minimatch: 3.1.5 @@ -41659,23 +40877,6 @@ snapshots: undici: 6.27.0 which: 7.0.0 - node-gyp@8.4.1(bluebird@3.7.2)(supports-color@10.2.2): - dependencies: - env-paths: 2.2.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - make-fetch-happen: 9.1.0(bluebird@3.7.2)(supports-color@10.2.2) - nopt: 5.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 - semver: 7.8.5 - tar: 7.5.16 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - optional: true - node-html-markdown@2.0.0: dependencies: node-html-parser: 6.1.13 @@ -41742,67 +40943,14 @@ snapshots: node@runtime:22.23.1: {} - nodemailer-mailgun-transport@2.1.5(babel-core@6.26.3(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(supports-color@10.2.2)(underscore@1.13.8): + nodemailer-mailgun-transport@2.1.5(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2): dependencies: - consolidate: 0.15.1(babel-core@6.26.3(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(underscore@1.13.8) + consolidate: 1.0.4 form-data: 4.0.6 mailgun.js: 8.2.2(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) transitivePeerDependencies: - - arc-templates - - atpl - - babel-core - - bracket-template - - coffee-script - debug - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jade - - jazz - - jqtpl - - just - - liquid-node - - liquor - - lodash - - marko - - mote - - mustache - - nunjucks - - plates - - pug - - qejs - - ractive - - razor-tmpl - - react - - react-dom - - slm - - squirrelly - - supports-color - - swig - - swig-templates - - teacup - - templayed - - then-jade - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore - - vash - - velocityjs - - walrus - - whiskers + - supports-color nodemailer-stub-transport@1.1.0: {} @@ -41831,11 +40979,6 @@ snapshots: dependencies: abbrev: 1.1.1 - nopt@5.0.0: - dependencies: - abbrev: 1.1.1 - optional: true - nopt@7.2.1: dependencies: abbrev: 2.0.0 @@ -41908,14 +41051,6 @@ snapshots: gauge: 2.7.4 set-blocking: 2.0.0 - npmlog@6.0.2: - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - optional: true - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -42239,7 +41374,7 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - ox@0.14.20(@typescript/typescript6@6.0.2)(zod@4.4.3): + ox@0.14.20(zod@4.4.3): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -42247,14 +41382,12 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.3.0(@typescript/typescript6@6.0.2)(zod@4.4.3) + abitype: 1.3.0(zod@4.4.3) eventemitter3: 5.0.1 - optionalDependencies: - typescript: '@typescript/typescript6@6.0.2' transitivePeerDependencies: - zod - ox@0.14.33(@typescript/typescript6@6.0.2)(zod@4.4.3): + ox@0.14.33(zod@4.4.3): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -42262,10 +41395,8 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.3.0(@typescript/typescript6@6.0.2)(zod@4.4.3) + abitype: 1.3.0(zod@4.4.3) eventemitter3: 5.0.1 - optionalDependencies: - typescript: '@typescript/typescript6@6.0.2' transitivePeerDependencies: - zod @@ -42395,11 +41526,6 @@ snapshots: p-map@2.1.0: {} - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - optional: true - p-map@7.0.6: {} p-reflect@2.1.0: {} @@ -43501,12 +42627,6 @@ snapshots: promise-map-series@0.3.0: {} - promise-retry@2.0.1: - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - optional: true - promise.hash.helper@1.0.8: {} prompts@2.4.2: @@ -44877,7 +43997,7 @@ snapshots: shell-quote@1.10.0: {} - shell-quote@1.8.4: {} + shell-quote@1.9.0: {} shellwords@0.1.1: {} @@ -44994,9 +44114,6 @@ snapshots: slick@1.12.2: {} - smart-buffer@4.2.0: - optional: true - smartquotes@2.3.2: {} smol-toml@1.6.1: {} @@ -45038,21 +44155,6 @@ snapshots: - supports-color - utf-8-validate - socks-proxy-agent@6.2.1(supports-color@10.2.2): - dependencies: - agent-base: 6.0.2(supports-color@10.2.2) - debug: 4.4.3(supports-color@10.2.2) - socks: 2.8.9 - transitivePeerDependencies: - - supports-color - optional: true - - socks@2.8.9: - dependencies: - ip-address: 10.2.0 - smart-buffer: 4.2.0 - optional: true - sonner@2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -45145,19 +44247,6 @@ snapshots: sql-escaper@1.3.3: {} - sqlite3@5.1.7(bluebird@3.7.2)(supports-color@10.2.2): - dependencies: - bindings: 1.5.0 - node-addon-api: 7.1.1 - prebuild-install: 7.1.3 - tar: 7.5.16 - optionalDependencies: - node-gyp: 8.4.1(bluebird@3.7.2)(supports-color@10.2.2) - transitivePeerDependencies: - - bluebird - - supports-color - optional: true - ssh2@1.17.0: dependencies: asn1: 0.2.6 @@ -45170,11 +44259,6 @@ snapshots: dependencies: figgy-pudding: 3.5.2 - ssri@8.0.1: - dependencies: - minipass: 3.3.6 - optional: true - stable@0.1.8: {} stack-utils@2.0.6: @@ -45211,7 +44295,7 @@ snapshots: '@storybook/global': 5.0.0 '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/jest-dom': 6.9.1 - '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@testing-library/user-event': 14.6.3(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 '@webcontainer/env': 1.1.1 @@ -45238,7 +44322,7 @@ snapshots: '@storybook/global': 5.0.0 '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/jest-dom': 6.9.1 - '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@testing-library/user-event': 14.6.3(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 '@webcontainer/env': 1.1.1 @@ -45870,14 +44954,14 @@ snapshots: glob: 13.0.6 minimatch: 10.2.5 - testem@3.19.1(@babel/core@7.29.7(supports-color@10.2.2))(debug@4.4.3(supports-color@10.2.2))(handlebars@4.7.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@10.2.2)(underscore@1.13.8): + testem@3.19.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2): dependencies: '@xmldom/xmldom': 0.9.10 backbone: 1.6.1 charm: 1.0.2 commander: 2.20.3 compression: 1.8.1(supports-color@10.2.2) - consolidate: 1.0.4(@babel/core@7.29.7(supports-color@10.2.2))(handlebars@4.7.9)(lodash@4.18.1)(mustache@4.2.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(underscore@1.13.8) + consolidate: 1.0.4 execa: 9.6.1 express: 4.22.2(supports-color@10.2.2) fireworm: 0.7.2 @@ -45897,56 +44981,10 @@ snapshots: tap-parser: 7.0.0 tmp: 0.2.7 transitivePeerDependencies: - - '@babel/core' - - arc-templates - - atpl - - bracket-template - bufferutil - - coffee-script - debug - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jazz - - jqtpl - - just - - liquid-node - - liquor - - mote - - nunjucks - - plates - - pug - - qejs - - ractive - - react - - react-dom - - slm - - supports-color - - swig - - swig-templates - - teacup - - templayed - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore + - supports-color - utf-8-validate - - vash - - velocityjs - - walrus - - whiskers text-decoder@1.2.7: dependencies: @@ -46757,18 +45795,16 @@ snapshots: video-extensions@2.0.0: {} - viem@2.55.11(@typescript/typescript6@6.0.2)(zod@4.4.3): + viem@2.55.11(zod@4.4.3): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.2.3(@typescript/typescript6@6.0.2)(zod@4.4.3) + abitype: 1.2.3(zod@4.4.3) isows: 1.0.7(ws@8.21.0) - ox: 0.14.33(@typescript/typescript6@6.0.2)(zod@4.4.3) + ox: 0.14.33(zod@4.4.3) ws: 8.21.0 - optionalDependencies: - typescript: '@typescript/typescript6@6.0.2' transitivePeerDependencies: - bufferutil - utf-8-validate @@ -47574,7 +46610,7 @@ snapshots: yup@0.32.9: dependencies: '@babel/runtime': 7.29.7 - '@types/lodash': 4.17.24 + '@types/lodash': 4.17.25 lodash: 4.18.1 lodash-es: 4.18.1 nanoclone: 0.2.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3a7ed41136e..191f61edb85 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -14,6 +14,11 @@ catalogMode: strict minimumReleaseAge: 4320 # 3 days in minutes; matches Renovate's minimumReleaseAge blockExoticSubdeps: true +ignoredOptionalDependencies: + # sqlite3 was replaced by better-sqlite3 so it can be ignored + # TODO: remove once knex-migrator no longer depends on sqlite3 + - sqlite3 + allowBuilds: # Permitted builds are version-scoped. Adding or updating a permitted version # requires an explicit Platform security review. @@ -33,7 +38,6 @@ allowBuilds: 'protobufjs@7.6.4': true 're2@1.25.0': true 'sharp@0.35.3': true - 'sqlite3@5.1.7': true ssh2: false catalog: @@ -72,7 +76,7 @@ catalog: '@tailwindcss/postcss': 4.2.2 '@tailwindcss/vite': 4.2.2 '@tanstack/react-query': 5.101.4 - '@tanstack/react-virtual': 3.14.6 + '@tanstack/react-virtual': 3.14.9 '@testing-library/jest-dom': 6.9.1 '@testing-library/react': 14.3.1 '@tryghost/api-framework': 3.3.5 @@ -120,12 +124,12 @@ catalog: chai: 4.5.0 chalk: 4.1.2 clsx: 2.1.1 - concurrently: 10.0.3 + concurrently: 10.0.4 country-flag-icons: 1.6.20 cross-fetch: 4.1.0 dependency-cruiser: ^18.1.1 dequal: 2.0.3 - dompurify: 3.4.11 + dompurify: 3.4.13 dotenv: 17.4.2 entities: 4.5.0 esbuild: 0.28.2 @@ -133,7 +137,7 @@ catalog: eslint-plugin-ghost: 3.5.0 eslint-plugin-react: 7.37.5 eslint-plugin-react-hooks: 5.2.0 - eslint-plugin-react-refresh: 0.5.3 + eslint-plugin-react-refresh: 0.5.4 eslint-plugin-tailwindcss: 4.0.4 fs-extra: 11.3.6 glob: 13.0.6 @@ -241,6 +245,10 @@ overrides: 'braces@<3.0.3': ^3.0.3 'clean-css@<4.1.11': ^4.1.11 'codemirror@<5.58.2': ^5.58.2 + # consolidate 0.15 pulls in a bunch of legacy dependencies that ultimately + # make their way into the Ghost docker image, forcing a 1.x upgrade trims + # the final dependency list + 'consolidate@0.15.1': ^1.0.4 'debug@>=4.0.0 <4.3.1': ^4.3.1 'debug@<2.6.9': ^2.6.9 'diff@<3.5.1': ^3.5.1