From 2886027700ebb8ca9198109c0ffac928ff7519e8 Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Sat, 24 Aug 2024 20:42:26 +0200 Subject: [PATCH 1/8] Add QStash --- lib/config/index.ts | 8 +- lib/config/queue.ts | 39 ++ package.json | 29 +- yarn.lock | 1560 ++++++++++++++++++++++++++++++++++--------- 4 files changed, 1320 insertions(+), 316 deletions(-) create mode 100644 lib/config/queue.ts diff --git a/lib/config/index.ts b/lib/config/index.ts index c313eff0..605636d7 100644 --- a/lib/config/index.ts +++ b/lib/config/index.ts @@ -9,6 +9,7 @@ import { ResendConfig } from '../services/email/resend' import { SMTPConfig } from '../services/email/smtp' import { AuthConfig, getAuthConfig } from './auth' import { + DatabaseConfig, FirebaseDatabase, KnexBaseDatabase, getDatabaseConfig @@ -16,6 +17,7 @@ import { import { InternalApiConfig, getInternalApiConfig } from './internalApi' import { MediaStorageConfig, getMediaStorageConfig } from './mediaStorage' import { OpenTelemetryConfig, getOtelConfig } from './opentelemetry' +import { QueueConfig, getQueueConfig } from './queue' import { RedisConfig, getRedisConfig } from './redis' import { RequestConfig, getRequestConfig } from './request' @@ -24,7 +26,8 @@ const Config = z.object({ serviceName: z.string().nullish(), serviceDescription: z.string().nullish(), languages: z.string().array().default(['en']), - database: z.union([KnexBaseDatabase, FirebaseDatabase]), + database: DatabaseConfig, + queue: QueueConfig.optional(), allowEmails: z.string().array(), secretPhase: z.string(), allowMediaDomains: z.string().array().optional(), @@ -80,7 +83,8 @@ const getConfigFromEnvironment = () => { ...getRedisConfig(), ...getOtelConfig(), ...getInternalApiConfig(), - ...getRequestConfig() + ...getRequestConfig(), + ...getQueueConfig() }) } catch (error) { if (process.env.NEXT_PHASE === PHASE_PRODUCTION_BUILD) { diff --git a/lib/config/queue.ts b/lib/config/queue.ts new file mode 100644 index 00000000..85de153a --- /dev/null +++ b/lib/config/queue.ts @@ -0,0 +1,39 @@ +import { z } from 'zod' + +import { matcher } from './utils' + +const QStashConfig = z.object({ + type: z.literal('qstash'), + url: z.string().url(), + token: z.string(), + currentSigningKey: z.string(), + nextSigningKey: z.string(), + queueName: z.string() +}) +type QStashConfig = z.infer + +export const QueueConfig = QStashConfig +export type QueueConfig = z.infer + +export const getQueueConfig = (): { queue: QueueConfig } | null => { + const hasEnvironmentQueue = matcher('ACTIVITIES_QUEUE_') + if (!hasEnvironmentQueue) return null + + switch (process.env.ACTIVITIES_QUEUE_TYPE) { + case 'qstash': + return { + queue: { + type: 'qstash', + url: process.env.ACTIVITIES_QUEUE_URL as string, + token: process.env.ACTIVITIES_QUEUE_TOKEN as string, + currentSigningKey: process.env + .ACTIVITIES_QUEUE_CURRENT_SIGNING_KEY as string, + nextSigningKey: process.env + .ACTIVITIES_QUEUE_NEXT_SIGNING_KEY as string, + queueName: process.env.ACTIVITIES_QUEUE_NAME as string + } + } + default: + return null + } +} diff --git a/package.json b/package.json index 11e51295..05a748d9 100644 --- a/package.json +++ b/package.json @@ -16,18 +16,19 @@ "migrate:make": "knex migrate:make" }, "dependencies": { - "@aws-sdk/client-lambda": "^3.634.0", - "@aws-sdk/client-s3": "^3.633.0", - "@aws-sdk/s3-presigned-post": "^3.633.0", + "@aws-sdk/client-lambda": "^3.637.0", + "@aws-sdk/client-s3": "^3.637.0", + "@aws-sdk/s3-presigned-post": "^3.637.0", "@aws-sdk/util-utf8-node": "^3.259.0", "@date-fns/utc": "^1.2.0", "@google-cloud/firestore": "^7.9.0", "@jmondi/oauth2-server": "^4.0.1", - "@keyv/redis": "^2.8.5", + "@keyv/redis": "^3.0.1", "@llun/activities.schema": "^0.2.1", "@opentelemetry/api": "^1.9.0", + "@upstash/qstash": "^2.6.5", "bcrypt": "^5.1.1", - "better-sqlite3": "^11.1.2", + "better-sqlite3": "^11.2.1", "bootstrap": "^5.3.3", "bootstrap-icons": "^1.11.3", "classnames": "^2.5.1", @@ -38,12 +39,12 @@ "html-react-parser": "^5.1.12", "jsonld": "^8.3.2", "jsonwebtoken": "^9.0.2", - "keyv": "^4.5.4", + "keyv": "^5.0.1", "knex": "3.1.0", "lodash": "^4.17.21", "marked": "^14.0.0", "mime-types": "^2.1.35", - "next": "14.2.5", + "next": "14.2.6", "next-auth": "4.24.7", "nodemailer": "^6.9.14", "peggy": "^4.0.3", @@ -58,11 +59,11 @@ "zod": "^3.23.8" }, "devDependencies": { - "@next/env": "^14.2.5", + "@next/env": "^14.2.6", "@swc-node/register": "^1.10.9", - "@swc/core": "1.7.14", + "@swc/core": "1.7.18", "@swc/jest": "^0.2.36", - "@testing-library/jest-dom": "^6.4.8", + "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/bcrypt": "^5.0.2", @@ -73,9 +74,9 @@ "@types/jsonwebtoken": "^9", "@types/lodash": "^4.17.7", "@types/mime-types": "^2.1.4", - "@types/node": "^22.4.1", + "@types/node": "^22.5.0", "@types/nodemailer": "^6.4.15", - "@types/react": "18.3.3", + "@types/react": "18.3.4", "@types/react-dom": "18.3.0", "@types/react-modal": "^3.16.3", "@types/sanitize-html": "^2.13.0", @@ -83,7 +84,7 @@ "@typescript-eslint/parser": "^8.2.0", "dotenv-flow": "^4.1.0", "eslint": "^8.57.0", - "eslint-config-next": "14.2.5", + "eslint-config-next": "14.2.6", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.29.1", @@ -91,7 +92,7 @@ "eslint-plugin-n": "^17.10.2", "eslint-plugin-promise": "^7.1.0", "eslint-plugin-unused-imports": "^4.1.3", - "firebase-tools": "^13.15.2", + "firebase-tools": "^13.15.4", "jest": "^29.7.0", "jest-extended": "^4.0.2", "jest-fetch-mock": "^3.0.3", diff --git a/yarn.lock b/yarn.lock index 821fede2..b698ff5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,6 +22,13 @@ __metadata: languageName: node linkType: hard +"@antfu/utils@npm:^0.7.6": + version: 0.7.10 + resolution: "@antfu/utils@npm:0.7.10" + checksum: 10c0/98991f66a4752ef097280b4235b27d961a13a2c67ef8e5b716a120eb9823958e20566516711204e2bfb08f0b935814b715f49ecd79c3b9b93ce32747ac297752 + languageName: node + linkType: hard + "@apidevtools/json-schema-ref-parser@npm:^9.0.3": version: 9.1.2 resolution: "@apidevtools/json-schema-ref-parser@npm:9.1.2" @@ -116,27 +123,27 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-lambda@npm:^3.634.0": - version: 3.634.0 - resolution: "@aws-sdk/client-lambda@npm:3.634.0" +"@aws-sdk/client-lambda@npm:^3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/client-lambda@npm:3.637.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/client-sso-oidc": "npm:3.632.0" - "@aws-sdk/client-sts": "npm:3.632.0" - "@aws-sdk/core": "npm:3.629.0" - "@aws-sdk/credential-provider-node": "npm:3.632.0" + "@aws-sdk/client-sso-oidc": "npm:3.637.0" + "@aws-sdk/client-sts": "npm:3.637.0" + "@aws-sdk/core": "npm:3.635.0" + "@aws-sdk/credential-provider-node": "npm:3.637.0" "@aws-sdk/middleware-host-header": "npm:3.620.0" "@aws-sdk/middleware-logger": "npm:3.609.0" "@aws-sdk/middleware-recursion-detection": "npm:3.620.0" - "@aws-sdk/middleware-user-agent": "npm:3.632.0" + "@aws-sdk/middleware-user-agent": "npm:3.637.0" "@aws-sdk/region-config-resolver": "npm:3.614.0" "@aws-sdk/types": "npm:3.609.0" - "@aws-sdk/util-endpoints": "npm:3.632.0" + "@aws-sdk/util-endpoints": "npm:3.637.0" "@aws-sdk/util-user-agent-browser": "npm:3.609.0" "@aws-sdk/util-user-agent-node": "npm:3.614.0" "@smithy/config-resolver": "npm:^3.0.5" - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/eventstream-serde-browser": "npm:^3.0.6" "@smithy/eventstream-serde-config-resolver": "npm:^3.0.3" "@smithy/eventstream-serde-node": "npm:^3.0.5" @@ -145,20 +152,20 @@ __metadata: "@smithy/invalid-dependency": "npm:^3.0.3" "@smithy/middleware-content-length": "npm:^3.0.5" "@smithy/middleware-endpoint": "npm:^3.1.0" - "@smithy/middleware-retry": "npm:^3.0.14" + "@smithy/middleware-retry": "npm:^3.0.15" "@smithy/middleware-serde": "npm:^3.0.3" "@smithy/middleware-stack": "npm:^3.0.3" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/node-http-handler": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/url-parser": "npm:^3.0.3" "@smithy/util-base64": "npm:^3.0.0" "@smithy/util-body-length-browser": "npm:^3.0.0" "@smithy/util-body-length-node": "npm:^3.0.0" - "@smithy/util-defaults-mode-browser": "npm:^3.0.14" - "@smithy/util-defaults-mode-node": "npm:^3.0.14" + "@smithy/util-defaults-mode-browser": "npm:^3.0.15" + "@smithy/util-defaults-mode-node": "npm:^3.0.15" "@smithy/util-endpoints": "npm:^2.0.5" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-retry": "npm:^3.0.3" @@ -166,21 +173,21 @@ __metadata: "@smithy/util-utf8": "npm:^3.0.0" "@smithy/util-waiter": "npm:^3.1.2" tslib: "npm:^2.6.2" - checksum: 10c0/c41bcf413bcf54bccfd2af7eff5d5b00c2f33f5534d94ce4af6ce17479073e70835427651f377e8d768fda81d51923d262d859a9a7bda638d283585cf818ab8f + checksum: 10c0/bb6b398c4d8a29b9f65e72afdf0324908be29d8bb2c06253cc286703018c7247aa8d6343b446343aa9647df9cc514eeffae9d5438c33bb52f315b6e9c609b9a8 languageName: node linkType: hard -"@aws-sdk/client-s3@npm:3.633.0, @aws-sdk/client-s3@npm:^3.633.0": - version: 3.633.0 - resolution: "@aws-sdk/client-s3@npm:3.633.0" +"@aws-sdk/client-s3@npm:3.637.0, @aws-sdk/client-s3@npm:^3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/client-s3@npm:3.637.0" dependencies: "@aws-crypto/sha1-browser": "npm:5.2.0" "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/client-sso-oidc": "npm:3.632.0" - "@aws-sdk/client-sts": "npm:3.632.0" - "@aws-sdk/core": "npm:3.629.0" - "@aws-sdk/credential-provider-node": "npm:3.632.0" + "@aws-sdk/client-sso-oidc": "npm:3.637.0" + "@aws-sdk/client-sts": "npm:3.637.0" + "@aws-sdk/core": "npm:3.635.0" + "@aws-sdk/credential-provider-node": "npm:3.637.0" "@aws-sdk/middleware-bucket-endpoint": "npm:3.620.0" "@aws-sdk/middleware-expect-continue": "npm:3.620.0" "@aws-sdk/middleware-flexible-checksums": "npm:3.620.0" @@ -188,18 +195,18 @@ __metadata: "@aws-sdk/middleware-location-constraint": "npm:3.609.0" "@aws-sdk/middleware-logger": "npm:3.609.0" "@aws-sdk/middleware-recursion-detection": "npm:3.620.0" - "@aws-sdk/middleware-sdk-s3": "npm:3.633.0" + "@aws-sdk/middleware-sdk-s3": "npm:3.635.0" "@aws-sdk/middleware-ssec": "npm:3.609.0" - "@aws-sdk/middleware-user-agent": "npm:3.632.0" + "@aws-sdk/middleware-user-agent": "npm:3.637.0" "@aws-sdk/region-config-resolver": "npm:3.614.0" - "@aws-sdk/signature-v4-multi-region": "npm:3.633.0" + "@aws-sdk/signature-v4-multi-region": "npm:3.635.0" "@aws-sdk/types": "npm:3.609.0" - "@aws-sdk/util-endpoints": "npm:3.632.0" + "@aws-sdk/util-endpoints": "npm:3.637.0" "@aws-sdk/util-user-agent-browser": "npm:3.609.0" "@aws-sdk/util-user-agent-node": "npm:3.614.0" "@aws-sdk/xml-builder": "npm:3.609.0" "@smithy/config-resolver": "npm:^3.0.5" - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/eventstream-serde-browser": "npm:^3.0.6" "@smithy/eventstream-serde-config-resolver": "npm:^3.0.3" "@smithy/eventstream-serde-node": "npm:^3.0.5" @@ -211,20 +218,20 @@ __metadata: "@smithy/md5-js": "npm:^3.0.3" "@smithy/middleware-content-length": "npm:^3.0.5" "@smithy/middleware-endpoint": "npm:^3.1.0" - "@smithy/middleware-retry": "npm:^3.0.14" + "@smithy/middleware-retry": "npm:^3.0.15" "@smithy/middleware-serde": "npm:^3.0.3" "@smithy/middleware-stack": "npm:^3.0.3" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/node-http-handler": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/url-parser": "npm:^3.0.3" "@smithy/util-base64": "npm:^3.0.0" "@smithy/util-body-length-browser": "npm:^3.0.0" "@smithy/util-body-length-node": "npm:^3.0.0" - "@smithy/util-defaults-mode-browser": "npm:^3.0.14" - "@smithy/util-defaults-mode-node": "npm:^3.0.14" + "@smithy/util-defaults-mode-browser": "npm:^3.0.15" + "@smithy/util-defaults-mode-node": "npm:^3.0.15" "@smithy/util-endpoints": "npm:^2.0.5" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-retry": "npm:^3.0.3" @@ -232,168 +239,168 @@ __metadata: "@smithy/util-utf8": "npm:^3.0.0" "@smithy/util-waiter": "npm:^3.1.2" tslib: "npm:^2.6.2" - checksum: 10c0/265d736203386f934ac90c1fac9e18ca0fbd6825f68f87653cc0acd0a224f5e1bf54abf22f2edd1d133e90e980db985bc326e1d8be148f1ee804f517481da49e + checksum: 10c0/3cce8334727a673b84633d1f01a1064d289a33ea9c7a5a5c55361f48224cc83bb90c0a27587af5c3fc07d7ee2ee31a79e0573d46239e655c2786fb0a8d3d0c64 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.632.0" +"@aws-sdk/client-sso-oidc@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.637.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.629.0" - "@aws-sdk/credential-provider-node": "npm:3.632.0" + "@aws-sdk/core": "npm:3.635.0" + "@aws-sdk/credential-provider-node": "npm:3.637.0" "@aws-sdk/middleware-host-header": "npm:3.620.0" "@aws-sdk/middleware-logger": "npm:3.609.0" "@aws-sdk/middleware-recursion-detection": "npm:3.620.0" - "@aws-sdk/middleware-user-agent": "npm:3.632.0" + "@aws-sdk/middleware-user-agent": "npm:3.637.0" "@aws-sdk/region-config-resolver": "npm:3.614.0" "@aws-sdk/types": "npm:3.609.0" - "@aws-sdk/util-endpoints": "npm:3.632.0" + "@aws-sdk/util-endpoints": "npm:3.637.0" "@aws-sdk/util-user-agent-browser": "npm:3.609.0" "@aws-sdk/util-user-agent-node": "npm:3.614.0" "@smithy/config-resolver": "npm:^3.0.5" - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/fetch-http-handler": "npm:^3.2.4" "@smithy/hash-node": "npm:^3.0.3" "@smithy/invalid-dependency": "npm:^3.0.3" "@smithy/middleware-content-length": "npm:^3.0.5" "@smithy/middleware-endpoint": "npm:^3.1.0" - "@smithy/middleware-retry": "npm:^3.0.14" + "@smithy/middleware-retry": "npm:^3.0.15" "@smithy/middleware-serde": "npm:^3.0.3" "@smithy/middleware-stack": "npm:^3.0.3" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/node-http-handler": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/url-parser": "npm:^3.0.3" "@smithy/util-base64": "npm:^3.0.0" "@smithy/util-body-length-browser": "npm:^3.0.0" "@smithy/util-body-length-node": "npm:^3.0.0" - "@smithy/util-defaults-mode-browser": "npm:^3.0.14" - "@smithy/util-defaults-mode-node": "npm:^3.0.14" + "@smithy/util-defaults-mode-browser": "npm:^3.0.15" + "@smithy/util-defaults-mode-node": "npm:^3.0.15" "@smithy/util-endpoints": "npm:^2.0.5" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-retry": "npm:^3.0.3" "@smithy/util-utf8": "npm:^3.0.0" tslib: "npm:^2.6.2" peerDependencies: - "@aws-sdk/client-sts": ^3.632.0 - checksum: 10c0/3db566d0f9f10fef6267a9413dfa2056db116c781031cc9485b49432d5e43ae890d9218983f8d3ceecb6896cdcccf330753443363a168b2020d90ece9948bbf7 + "@aws-sdk/client-sts": ^3.637.0 + checksum: 10c0/eb3af482e6eb9b44549343da62dd761259afc71a8a4c7c6883f2cafadf96da2e54ac97cc1c9757ba43ea9258b4af50d114f20fb186f52109a10642178fa127a1 languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/client-sso@npm:3.632.0" +"@aws-sdk/client-sso@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/client-sso@npm:3.637.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:3.629.0" + "@aws-sdk/core": "npm:3.635.0" "@aws-sdk/middleware-host-header": "npm:3.620.0" "@aws-sdk/middleware-logger": "npm:3.609.0" "@aws-sdk/middleware-recursion-detection": "npm:3.620.0" - "@aws-sdk/middleware-user-agent": "npm:3.632.0" + "@aws-sdk/middleware-user-agent": "npm:3.637.0" "@aws-sdk/region-config-resolver": "npm:3.614.0" "@aws-sdk/types": "npm:3.609.0" - "@aws-sdk/util-endpoints": "npm:3.632.0" + "@aws-sdk/util-endpoints": "npm:3.637.0" "@aws-sdk/util-user-agent-browser": "npm:3.609.0" "@aws-sdk/util-user-agent-node": "npm:3.614.0" "@smithy/config-resolver": "npm:^3.0.5" - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/fetch-http-handler": "npm:^3.2.4" "@smithy/hash-node": "npm:^3.0.3" "@smithy/invalid-dependency": "npm:^3.0.3" "@smithy/middleware-content-length": "npm:^3.0.5" "@smithy/middleware-endpoint": "npm:^3.1.0" - "@smithy/middleware-retry": "npm:^3.0.14" + "@smithy/middleware-retry": "npm:^3.0.15" "@smithy/middleware-serde": "npm:^3.0.3" "@smithy/middleware-stack": "npm:^3.0.3" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/node-http-handler": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/url-parser": "npm:^3.0.3" "@smithy/util-base64": "npm:^3.0.0" "@smithy/util-body-length-browser": "npm:^3.0.0" "@smithy/util-body-length-node": "npm:^3.0.0" - "@smithy/util-defaults-mode-browser": "npm:^3.0.14" - "@smithy/util-defaults-mode-node": "npm:^3.0.14" + "@smithy/util-defaults-mode-browser": "npm:^3.0.15" + "@smithy/util-defaults-mode-node": "npm:^3.0.15" "@smithy/util-endpoints": "npm:^2.0.5" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-retry": "npm:^3.0.3" "@smithy/util-utf8": "npm:^3.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/7b7ac3ddbdd693147bd0a9463c8f46e5c3b11969bd4e531073feb43abd453589755305aabd87985ccd706e164dd5d72709b6acec432342a02f3efcc95cab2960 + checksum: 10c0/fff543452d559d92cc9caf45b62ef5114e0929d23a680016a25cce6f4f17cda40bee5535f9b877a76d8563de87ad582788c13e49559cff9264c90540fd5ae32a languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/client-sts@npm:3.632.0" +"@aws-sdk/client-sts@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/client-sts@npm:3.637.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/client-sso-oidc": "npm:3.632.0" - "@aws-sdk/core": "npm:3.629.0" - "@aws-sdk/credential-provider-node": "npm:3.632.0" + "@aws-sdk/client-sso-oidc": "npm:3.637.0" + "@aws-sdk/core": "npm:3.635.0" + "@aws-sdk/credential-provider-node": "npm:3.637.0" "@aws-sdk/middleware-host-header": "npm:3.620.0" "@aws-sdk/middleware-logger": "npm:3.609.0" "@aws-sdk/middleware-recursion-detection": "npm:3.620.0" - "@aws-sdk/middleware-user-agent": "npm:3.632.0" + "@aws-sdk/middleware-user-agent": "npm:3.637.0" "@aws-sdk/region-config-resolver": "npm:3.614.0" "@aws-sdk/types": "npm:3.609.0" - "@aws-sdk/util-endpoints": "npm:3.632.0" + "@aws-sdk/util-endpoints": "npm:3.637.0" "@aws-sdk/util-user-agent-browser": "npm:3.609.0" "@aws-sdk/util-user-agent-node": "npm:3.614.0" "@smithy/config-resolver": "npm:^3.0.5" - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/fetch-http-handler": "npm:^3.2.4" "@smithy/hash-node": "npm:^3.0.3" "@smithy/invalid-dependency": "npm:^3.0.3" "@smithy/middleware-content-length": "npm:^3.0.5" "@smithy/middleware-endpoint": "npm:^3.1.0" - "@smithy/middleware-retry": "npm:^3.0.14" + "@smithy/middleware-retry": "npm:^3.0.15" "@smithy/middleware-serde": "npm:^3.0.3" "@smithy/middleware-stack": "npm:^3.0.3" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/node-http-handler": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/url-parser": "npm:^3.0.3" "@smithy/util-base64": "npm:^3.0.0" "@smithy/util-body-length-browser": "npm:^3.0.0" "@smithy/util-body-length-node": "npm:^3.0.0" - "@smithy/util-defaults-mode-browser": "npm:^3.0.14" - "@smithy/util-defaults-mode-node": "npm:^3.0.14" + "@smithy/util-defaults-mode-browser": "npm:^3.0.15" + "@smithy/util-defaults-mode-node": "npm:^3.0.15" "@smithy/util-endpoints": "npm:^2.0.5" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-retry": "npm:^3.0.3" "@smithy/util-utf8": "npm:^3.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/e230ac37af0753adebb45b6dae948b12ffc841f4de1b997d41844ebbb232c989abbd094b53d7ff276fbfe3134b6dfd1b39368e82a1eff73544a67efa898b3569 + checksum: 10c0/e3d7497ed65fa8617116c65926eb864ddb826267ef7db378c75d1288b4e6454909ed2dcd5eb8e1dad274359a5e9114c2e95bb9269d0dca7fc71a617c94a50075 languageName: node linkType: hard -"@aws-sdk/core@npm:3.629.0": - version: 3.629.0 - resolution: "@aws-sdk/core@npm:3.629.0" +"@aws-sdk/core@npm:3.635.0": + version: 3.635.0 + resolution: "@aws-sdk/core@npm:3.635.0" dependencies: - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/property-provider": "npm:^3.1.3" "@smithy/protocol-http": "npm:^4.1.0" "@smithy/signature-v4": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/util-middleware": "npm:^3.0.3" fast-xml-parser: "npm:4.4.1" tslib: "npm:^2.6.2" - checksum: 10c0/2485a7074e55dd6477e3859aeb273df60c9fd87738a883a910cfeede35c15d10c27f34e6b6235227a228b2449926bed95d04f0fb8f28dfc6ce8bcd358ec196ee + checksum: 10c0/6f9a9a7dba32279a4f3970fee52845ef06509ffd414a1405c5d1a81e9b68d39dff8fe17c8f88d0e5516683c33f7a1d2b56432ebd8c540f86abfff782218e6f35 languageName: node linkType: hard @@ -409,31 +416,31 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.622.0": - version: 3.622.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.622.0" +"@aws-sdk/credential-provider-http@npm:3.635.0": + version: 3.635.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.635.0" dependencies: "@aws-sdk/types": "npm:3.609.0" "@smithy/fetch-http-handler": "npm:^3.2.4" "@smithy/node-http-handler": "npm:^3.1.4" "@smithy/property-provider": "npm:^3.1.3" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/util-stream": "npm:^3.1.3" tslib: "npm:^2.6.2" - checksum: 10c0/fa6b24991532dddcf1e688ab08fd831e5df189b4a5f2d560f41f3f870b9c940c00411a62e05f4a02e808edcab52f49b4255c8fba8fe07152224676e54eb6bbdb + checksum: 10c0/3a232fdece1cbe7e9ec740287702dfaa640392e827d31b5c8a23d59ab9dcf2424408a43a6ef2cf3c94e72ec5612f61651cb7cac92458c5b2c93754f6b7989daf languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.632.0" +"@aws-sdk/credential-provider-ini@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.637.0" dependencies: "@aws-sdk/credential-provider-env": "npm:3.620.1" - "@aws-sdk/credential-provider-http": "npm:3.622.0" + "@aws-sdk/credential-provider-http": "npm:3.635.0" "@aws-sdk/credential-provider-process": "npm:3.620.1" - "@aws-sdk/credential-provider-sso": "npm:3.632.0" + "@aws-sdk/credential-provider-sso": "npm:3.637.0" "@aws-sdk/credential-provider-web-identity": "npm:3.621.0" "@aws-sdk/types": "npm:3.609.0" "@smithy/credential-provider-imds": "npm:^3.2.0" @@ -442,20 +449,20 @@ __metadata: "@smithy/types": "npm:^3.3.0" tslib: "npm:^2.6.2" peerDependencies: - "@aws-sdk/client-sts": ^3.632.0 - checksum: 10c0/10c49fc8784862556433d0f3653ba741382363577891cd5268ef10bf7288fe9795f99a0ea069cfb7dffd53c838393a342506a3f1e14d402bb1e0ccdcca01af0f + "@aws-sdk/client-sts": ^3.637.0 + checksum: 10c0/ecabf423d448c0e0d668887b01008c99959a7e51e19a494eb1b9e8198aaffa634df063f4f9436d3f43c74e998090139de7f048946eb465d2c8188ae84838d3a2 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.632.0" +"@aws-sdk/credential-provider-node@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.637.0" dependencies: "@aws-sdk/credential-provider-env": "npm:3.620.1" - "@aws-sdk/credential-provider-http": "npm:3.622.0" - "@aws-sdk/credential-provider-ini": "npm:3.632.0" + "@aws-sdk/credential-provider-http": "npm:3.635.0" + "@aws-sdk/credential-provider-ini": "npm:3.637.0" "@aws-sdk/credential-provider-process": "npm:3.620.1" - "@aws-sdk/credential-provider-sso": "npm:3.632.0" + "@aws-sdk/credential-provider-sso": "npm:3.637.0" "@aws-sdk/credential-provider-web-identity": "npm:3.621.0" "@aws-sdk/types": "npm:3.609.0" "@smithy/credential-provider-imds": "npm:^3.2.0" @@ -463,7 +470,7 @@ __metadata: "@smithy/shared-ini-file-loader": "npm:^3.1.4" "@smithy/types": "npm:^3.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/664c98de2e385358520d2bae2410b60499dc5eecd1ea6c394c4d9975bf256c77b3f6da5f8b9ef1a88f77ace7ef9ace5171a3bb3d09b9d4fe95f296102093d68b + checksum: 10c0/ec61181866ca024c31d6316689d1df2192713b23f4b1f8aa4c8479ecc6d0ea5d025edb595d2311d328637073b2557b240be418259766cfb8da9db0acd647bb03 languageName: node linkType: hard @@ -480,18 +487,18 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.632.0" +"@aws-sdk/credential-provider-sso@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.637.0" dependencies: - "@aws-sdk/client-sso": "npm:3.632.0" + "@aws-sdk/client-sso": "npm:3.637.0" "@aws-sdk/token-providers": "npm:3.614.0" "@aws-sdk/types": "npm:3.609.0" "@smithy/property-provider": "npm:^3.1.3" "@smithy/shared-ini-file-loader": "npm:^3.1.4" "@smithy/types": "npm:^3.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/c71c7c3312bd796fe514826e56bda0627bf1a0636449e867b73ec20e3cb2f0ba7de0a9087a4836a6dc6c4e1ad85fd8fd0a5317cb3587b10f9ebb9152feb6292b + checksum: 10c0/7381f31ca6f2518c45467cd4ca036c5efc59f31905ebfed52b91ff151406972fc7968e360aa19c7978631ecf301841368f9807037b52322a7c0e7143c93d58ba languageName: node linkType: hard @@ -607,25 +614,25 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.633.0": - version: 3.633.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.633.0" +"@aws-sdk/middleware-sdk-s3@npm:3.635.0": + version: 3.635.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.635.0" dependencies: - "@aws-sdk/core": "npm:3.629.0" + "@aws-sdk/core": "npm:3.635.0" "@aws-sdk/types": "npm:3.609.0" "@aws-sdk/util-arn-parser": "npm:3.568.0" - "@smithy/core": "npm:^2.3.2" + "@smithy/core": "npm:^2.4.0" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" "@smithy/signature-v4": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/util-config-provider": "npm:^3.0.0" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-stream": "npm:^3.1.3" "@smithy/util-utf8": "npm:^3.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/a0d167c21c3ef980fad126534e4d506c917ef48ef14fd65009c69f1f99b039f86f363b93cddbcd90f4cceb48bde8bf0f8f55361e7806ade7ac9c9092d5eee1f2 + checksum: 10c0/81dd57dcb9214c1bc311546f71391132f42a9d35e857781fb1466940802a069337109cd1ff93cc64044f91f092e9e810ec6c2f140284a62ef6bda9e5b9164b6a languageName: node linkType: hard @@ -640,16 +647,16 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.632.0" +"@aws-sdk/middleware-user-agent@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.637.0" dependencies: "@aws-sdk/types": "npm:3.609.0" - "@aws-sdk/util-endpoints": "npm:3.632.0" + "@aws-sdk/util-endpoints": "npm:3.637.0" "@smithy/protocol-http": "npm:^4.1.0" "@smithy/types": "npm:^3.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/0085bb736d22270e4c4ed790017c2476f191c4d7ef00e9c620347a76f3960c8becd477745ef134b2d0693a66bd6a26958ed13324079cce787e5aaa920dba7248 + checksum: 10c0/799d5e8cedb18c4a0695fe63675f7faa493b84b1f481055218c069cfacd208f61ecb4bad811fd701c0708c33e95cc98032d17a3684bb585ad698cb7b632a3196 languageName: node linkType: hard @@ -667,11 +674,11 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/s3-presigned-post@npm:^3.633.0": - version: 3.633.0 - resolution: "@aws-sdk/s3-presigned-post@npm:3.633.0" +"@aws-sdk/s3-presigned-post@npm:^3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/s3-presigned-post@npm:3.637.0" dependencies: - "@aws-sdk/client-s3": "npm:3.633.0" + "@aws-sdk/client-s3": "npm:3.637.0" "@aws-sdk/types": "npm:3.609.0" "@aws-sdk/util-format-url": "npm:3.609.0" "@smithy/middleware-endpoint": "npm:^3.1.0" @@ -680,21 +687,21 @@ __metadata: "@smithy/util-hex-encoding": "npm:^3.0.0" "@smithy/util-utf8": "npm:^3.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/80b367fdb0827dbfe58c55d9223b424b0cf5025100f9864520e0d0e465b733f74c2dc4a0d1ec9fd56b0dde8b0f822c36115b9cfef4bd088eb606ce2e4f41e25a + checksum: 10c0/b6e4a87e771ab98ff979866daabfdbb5586b3e1a53f80134a50cc52797abfa59ae99c706a498acb704edbb0ed4d363d8b62a3c68405dfbe2a7da90f76bd81416 languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.633.0": - version: 3.633.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.633.0" +"@aws-sdk/signature-v4-multi-region@npm:3.635.0": + version: 3.635.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.635.0" dependencies: - "@aws-sdk/middleware-sdk-s3": "npm:3.633.0" + "@aws-sdk/middleware-sdk-s3": "npm:3.635.0" "@aws-sdk/types": "npm:3.609.0" "@smithy/protocol-http": "npm:^4.1.0" "@smithy/signature-v4": "npm:^4.1.0" "@smithy/types": "npm:^3.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/c67f9c5f19fcbbcec11b7bee38522780e79324b85abb51b2cd32edb5dacf41325c9f081b0a9fa5090056b297f1d46a844a38684f7270f7b0e9be737150843313 + checksum: 10c0/85c43b96d803e6fa503bbac3c07334f31b65be42f2c863e9c37411acfb6d484f464a70409585fab2c32be59b1e65ad735e2e64235f2ee33501b7d2c8f85647e9 languageName: node linkType: hard @@ -742,15 +749,15 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.632.0": - version: 3.632.0 - resolution: "@aws-sdk/util-endpoints@npm:3.632.0" +"@aws-sdk/util-endpoints@npm:3.637.0": + version: 3.637.0 + resolution: "@aws-sdk/util-endpoints@npm:3.637.0" dependencies: "@aws-sdk/types": "npm:3.609.0" "@smithy/types": "npm:^3.3.0" "@smithy/util-endpoints": "npm:^2.0.5" tslib: "npm:^2.6.2" - checksum: 10c0/2fce660a887acec61570ed13c1441487cf26e9e12f5eafffcc390b4de94169ca8ab4400e394d7e4d0e25a9e45526c50e427941ec2d04d70a67a583f1ee611e6c + checksum: 10c0/8ffdcea45fa38c00c980596f1a5a60706c1d5b61fb0f24f8aa536f66b1f50492a754757fe639076412b5bbdc90ed19ae1ca72f7d0b6df8c813e3a474acef77c7 languageName: node linkType: hard @@ -841,7 +848,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.3, @babel/core@npm:^7.23.9": version: 7.25.2 resolution: "@babel/core@npm:7.25.2" dependencies: @@ -887,6 +894,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.23.6": + version: 7.25.5 + resolution: "@babel/generator@npm:7.25.5" + dependencies: + "@babel/types": "npm:^7.25.4" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/eb8af30c39476e4f4d6b953f355fcf092258291f78d65fb759b7d5e5e6fd521b5bfee64a4e2e4290279f0dcd25ccf8c49a61807828b99b5830d2b734506da1fd + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.25.2": version: 7.25.2 resolution: "@babel/helper-compilation-targets@npm:7.25.2" @@ -928,7 +947,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": +"@babel/helper-module-imports@npm:7.18.6": + version: 7.18.6 + resolution: "@babel/helper-module-imports@npm:7.18.6" + dependencies: + "@babel/types": "npm:^7.18.6" + checksum: 10c0/a92e28fc4b5dbb0d0afd4a313efc0cf5b26ce1adc0c01fc22724c997789ac7d7f4f30bc9143d94a6ba8b0a035933cf63a727a365ce1c57dbca0935f48de96244 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" dependencies: @@ -1032,6 +1060,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.22.16, @babel/parser@npm:^7.23.5": + version: 7.25.4 + resolution: "@babel/parser@npm:7.25.4" + dependencies: + "@babel/types": "npm:^7.25.4" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/bdada5662f15d1df11a7266ec3bc9bb769bf3637ecf3d051eafcfc8f576dcf5a3ac1007c5e059db4a1e1387db9ae9caad239fc4f79e4c2200930ed610e779993 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -1087,7 +1126,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.24.7 resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" dependencies: @@ -1186,7 +1225,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.20.13": version: 7.25.0 resolution: "@babel/runtime@npm:7.25.0" dependencies: @@ -1260,6 +1299,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.18.6, @babel/types@npm:^7.22.17, @babel/types@npm:^7.23.6, @babel/types@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/types@npm:7.25.4" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/9aa25dfcd89cc4e4dde3188091c34398a005a49e2c2b069d0367b41e1122c91e80fd92998c52a90f2fb500f7e897b6090ec8be263d9cb53d0d75c756f44419f2 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2013,7 +2063,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 @@ -2044,12 +2094,21 @@ __metadata: languageName: node linkType: hard -"@keyv/redis@npm:^2.8.5": - version: 2.8.5 - resolution: "@keyv/redis@npm:2.8.5" +"@keyv/redis@npm:^3.0.1": + version: 3.0.1 + resolution: "@keyv/redis@npm:3.0.1" dependencies: ioredis: "npm:^5.4.1" - checksum: 10c0/2201eedd69871e8a82da940f5b3d3f60e3d038b29b39c74d4d0a77b31ffcf68b43ecfa93ebd5131b94eadf76cc688a32ac166c949c5694a2293c8c0ea56f001b + checksum: 10c0/d94920204211f5c6a7d59484993811cdb9066537ccc48bb4fc87909d07a99756119b337be35d08cf64cb021c6c2596269bcf3cdf42c42ad1b889591ff12e5ef0 + languageName: node + linkType: hard + +"@keyv/serialize@npm:*": + version: 1.0.1 + resolution: "@keyv/serialize@npm:1.0.1" + dependencies: + buffer: "npm:^6.0.3" + checksum: 10c0/948fadc632f6050b67cb8ea664192a98d7743015e1b449d383addacbce371414b9cd7129b33ab36d5d81b558744ab0a56c2753b287e7c4f5b2c46401c486cbd0 languageName: node linkType: hard @@ -2092,81 +2151,81 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.2.5, @next/env@npm:^14.2.5": - version: 14.2.5 - resolution: "@next/env@npm:14.2.5" - checksum: 10c0/63d8b88ac450b3c37940a9e2119a63a1074aca89908574ade6157a8aa295275dcb3ac5f69e00883fc55d0f12963b73b74e87ba32a5768a489f9609c6be57b699 +"@next/env@npm:14.2.6, @next/env@npm:^14.2.6": + version: 14.2.6 + resolution: "@next/env@npm:14.2.6" + checksum: 10c0/9217847e1beb087d4adf25052337712d29150ff7f29e31616dd059154a319c9a8170c3a6d6d273b7adadf568cc604a5c2d0379a15aa3c149c0f78441a514c31c languageName: node linkType: hard -"@next/eslint-plugin-next@npm:14.2.5": - version: 14.2.5 - resolution: "@next/eslint-plugin-next@npm:14.2.5" +"@next/eslint-plugin-next@npm:14.2.6": + version: 14.2.6 + resolution: "@next/eslint-plugin-next@npm:14.2.6" dependencies: glob: "npm:10.3.10" - checksum: 10c0/13eefc2a17e37925ded8e43ae2446a73cbc5a23ade7a73c33adb75d3d2907ec75cedd8534f89a361ce8e63b5141d7e2d38aed40abd8b4eb3e7c21ba84f6bda8a + checksum: 10c0/52ca55d98bb72a3bccaa08859036d312bc4936be00923bd8c6399472928e6d2b295f4e2f5f94bec30c8b9274f02bb170ee272b1242ca6cad3ae3d1b4a0ceb53e languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-darwin-arm64@npm:14.2.5" +"@next/swc-darwin-arm64@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-darwin-arm64@npm:14.2.6" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-darwin-x64@npm:14.2.5" +"@next/swc-darwin-x64@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-darwin-x64@npm:14.2.6" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-linux-arm64-gnu@npm:14.2.5" +"@next/swc-linux-arm64-gnu@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-linux-arm64-gnu@npm:14.2.6" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-linux-arm64-musl@npm:14.2.5" +"@next/swc-linux-arm64-musl@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-linux-arm64-musl@npm:14.2.6" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-linux-x64-gnu@npm:14.2.5" +"@next/swc-linux-x64-gnu@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-linux-x64-gnu@npm:14.2.6" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-linux-x64-musl@npm:14.2.5" +"@next/swc-linux-x64-musl@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-linux-x64-musl@npm:14.2.6" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-win32-arm64-msvc@npm:14.2.5" +"@next/swc-win32-arm64-msvc@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-win32-arm64-msvc@npm:14.2.6" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-win32-ia32-msvc@npm:14.2.5" +"@next/swc-win32-ia32-msvc@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-win32-ia32-msvc@npm:14.2.6" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:14.2.5": - version: 14.2.5 - resolution: "@next/swc-win32-x64-msvc@npm:14.2.5" +"@next/swc-win32-x64-msvc@npm:14.2.6": + version: 14.2.6 + resolution: "@next/swc-win32-x64-msvc@npm:14.2.6" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -2377,6 +2436,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.25 + resolution: "@polka/url@npm:1.0.0-next.25" + checksum: 10c0/ef61f0a0fe94bb6e1143fc5b9d5a12e6ca9dbd2c57843ebf81db432c21b9f1005c09e8a1ef8b6d5ddfa42146ca65b640feb2d353bd0d3546da46ba59e48a5349 + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -2464,6 +2530,22 @@ __metadata: languageName: node linkType: hard +"@rollup/pluginutils@npm:^5.0.5": + version: 5.1.0 + resolution: "@rollup/pluginutils@npm:5.1.0" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^2.3.1" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10c0/c7bed15711f942d6fdd3470fef4105b73991f99a478605e13d41888963330a6f9e32be37e6ddb13f012bc7673ff5e54f06f59fd47109436c1c513986a8a7612d + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.3.3": version: 1.10.4 resolution: "@rushstack/eslint-patch@npm:1.10.4" @@ -2569,19 +2651,21 @@ __metadata: languageName: node linkType: hard -"@smithy/core@npm:^2.3.2": - version: 2.3.2 - resolution: "@smithy/core@npm:2.3.2" +"@smithy/core@npm:^2.4.0": + version: 2.4.0 + resolution: "@smithy/core@npm:2.4.0" dependencies: "@smithy/middleware-endpoint": "npm:^3.1.0" - "@smithy/middleware-retry": "npm:^3.0.14" + "@smithy/middleware-retry": "npm:^3.0.15" "@smithy/middleware-serde": "npm:^3.0.3" "@smithy/protocol-http": "npm:^4.1.0" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" + "@smithy/util-body-length-browser": "npm:^3.0.0" "@smithy/util-middleware": "npm:^3.0.3" + "@smithy/util-utf8": "npm:^3.0.0" tslib: "npm:^2.6.2" - checksum: 10c0/94174b9e049568172d8d46989ecb85e16929c216259a9f185aa8eef671a381ff183979f382a308f22f44965a70930ce289cc913155672c6d4bec12751df93075 + checksum: 10c0/78ac95fa0a7bde40feef804a642d9ce4737c47660728b0a7cf3af19404492bc0a0ee9db50a2ea3195d3314aef0c9db19575f50cbe89355f60a4ffb55a4d7d4bf languageName: node linkType: hard @@ -2766,20 +2850,20 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-retry@npm:^3.0.14": - version: 3.0.14 - resolution: "@smithy/middleware-retry@npm:3.0.14" +"@smithy/middleware-retry@npm:^3.0.15": + version: 3.0.15 + resolution: "@smithy/middleware-retry@npm:3.0.15" dependencies: "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/protocol-http": "npm:^4.1.0" "@smithy/service-error-classification": "npm:^3.0.3" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" "@smithy/util-middleware": "npm:^3.0.3" "@smithy/util-retry": "npm:^3.0.3" tslib: "npm:^2.6.2" uuid: "npm:^9.0.1" - checksum: 10c0/8fc86ef6e7c455b09e8226da4e7401fd9b4248e47a20d9682ffea48db25710cc4b40978b6774405abebfaf1fbf4d8cb130c9585e53ef20edd10b37dad876e23b + checksum: 10c0/0c09e4325081305a948468aae75e9bd7645946f11c8aace9efa6c22cd286a7105b2bca9ef418bea849bbdf46cc46c295ac7b56193b8d7c7ba15597fc804b05c2 languageName: node linkType: hard @@ -2904,9 +2988,9 @@ __metadata: languageName: node linkType: hard -"@smithy/smithy-client@npm:^3.1.12": - version: 3.1.12 - resolution: "@smithy/smithy-client@npm:3.1.12" +"@smithy/smithy-client@npm:^3.2.0": + version: 3.2.0 + resolution: "@smithy/smithy-client@npm:3.2.0" dependencies: "@smithy/middleware-endpoint": "npm:^3.1.0" "@smithy/middleware-stack": "npm:^3.0.3" @@ -2914,7 +2998,7 @@ __metadata: "@smithy/types": "npm:^3.3.0" "@smithy/util-stream": "npm:^3.1.3" tslib: "npm:^2.6.2" - checksum: 10c0/da7300f35d197b16fc7d72060b40bdbfc72b3c903fc95e46c97898b6bc2a3c703618499bc7cf262971f116cc363bdfa62eac299f85f4fc078ae6f0c4353adfa3 + checksum: 10c0/e401e65de2b687fdb440d1c0535bad7a3539fda1820908bc2836abbe7c791b470c1091bf2b2bb13a3ce4a64c0fbec1df2e4c9959788e3310d410334f479a7829 languageName: node linkType: hard @@ -2996,31 +3080,31 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^3.0.14": - version: 3.0.14 - resolution: "@smithy/util-defaults-mode-browser@npm:3.0.14" +"@smithy/util-defaults-mode-browser@npm:^3.0.15": + version: 3.0.15 + resolution: "@smithy/util-defaults-mode-browser@npm:3.0.15" dependencies: "@smithy/property-provider": "npm:^3.1.3" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" bowser: "npm:^2.11.0" tslib: "npm:^2.6.2" - checksum: 10c0/d76af727a69d3c6ae7b99478c09eae25270741bcc63152dd5d9c113b79230e5ebfb83ebbb171da740e1f98c0369e76547807419042abefe86d867af5c2643b01 + checksum: 10c0/ca3e44fd9d3587861c36a12f7f5f27733f18c7b35ff335e3d12bbce4be06d140c9382e6e6496c575d55104468be267a88a9e63baab6bbc67f6343d785cd45fc1 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^3.0.14": - version: 3.0.14 - resolution: "@smithy/util-defaults-mode-node@npm:3.0.14" +"@smithy/util-defaults-mode-node@npm:^3.0.15": + version: 3.0.15 + resolution: "@smithy/util-defaults-mode-node@npm:3.0.15" dependencies: "@smithy/config-resolver": "npm:^3.0.5" "@smithy/credential-provider-imds": "npm:^3.2.0" "@smithy/node-config-provider": "npm:^3.1.4" "@smithy/property-provider": "npm:^3.1.3" - "@smithy/smithy-client": "npm:^3.1.12" + "@smithy/smithy-client": "npm:^3.2.0" "@smithy/types": "npm:^3.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/ce0091fde6d3679b9dfcd8e4cf87c51a3d11b9ab20e1ee924fa99bb4f1cccd5beaf51e5016f501b569109640ff57355b7f235f49a9c73f616d23a5fe9c9668b5 + checksum: 10c0/db935497dcd8d51ce9962051f68ea85c12f81100cffdb62816134b6ef2d92330f97eb029c1069c16678cf822a26d6bd730e9432787cc342e92eca8af85655513 languageName: node linkType: hard @@ -3121,6 +3205,55 @@ __metadata: languageName: node linkType: hard +"@solidjs/start@npm:^1.0.6": + version: 1.0.6 + resolution: "@solidjs/start@npm:1.0.6" + dependencies: + "@vinxi/plugin-directives": "npm:^0.4.1" + "@vinxi/server-components": "npm:^0.4.1" + "@vinxi/server-functions": "npm:^0.4.1" + defu: "npm:^6.1.2" + error-stack-parser: "npm:^2.1.4" + glob: "npm:^10.3.10" + html-to-image: "npm:^1.11.11" + radix3: "npm:^1.1.0" + seroval: "npm:^1.0.2" + seroval-plugins: "npm:^1.0.2" + shikiji: "npm:^0.9.12" + source-map-js: "npm:^1.0.2" + terracotta: "npm:^1.0.4" + vite-plugin-inspect: "npm:^0.7.33" + vite-plugin-solid: "npm:^2.10.2" + checksum: 10c0/209747b405d588ff5bf7726c91f1106e41ae9b6f6a938849537536999002d9e972b168a94ad7b6d3fbaae7b4ea344165aea1085cedbd66b0a6d711c07e539d47 + languageName: node + linkType: hard + +"@sveltejs/kit@npm:^2.5.18": + version: 2.5.24 + resolution: "@sveltejs/kit@npm:2.5.24" + dependencies: + "@types/cookie": "npm:^0.6.0" + cookie: "npm:^0.6.0" + devalue: "npm:^5.0.0" + esm-env: "npm:^1.0.0" + import-meta-resolve: "npm:^4.1.0" + kleur: "npm:^4.1.5" + magic-string: "npm:^0.30.5" + mrmime: "npm:^2.0.0" + sade: "npm:^1.8.1" + set-cookie-parser: "npm:^2.6.0" + sirv: "npm:^2.0.4" + tiny-glob: "npm:^0.2.9" + peerDependencies: + "@sveltejs/vite-plugin-svelte": ^3.0.0 || ^4.0.0-next.1 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + bin: + svelte-kit: svelte-kit.js + checksum: 10c0/704026c6b2d12360b9ba6fa2a704cd5bb03010af462a2bc278569f0fb900b515e063f308ca011ec071f8d7f9426777c7e04439be860ce8932525e6c526283b98 + languageName: node + linkType: hard + "@swc-node/core@npm:^1.13.3": version: 1.13.3 resolution: "@swc-node/core@npm:1.13.3" @@ -3159,90 +3292,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-darwin-arm64@npm:1.7.14" +"@swc/core-darwin-arm64@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-darwin-arm64@npm:1.7.18" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-darwin-x64@npm:1.7.14" +"@swc/core-darwin-x64@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-darwin-x64@npm:1.7.18" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.14" +"@swc/core-linux-arm-gnueabihf@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.18" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.14" +"@swc/core-linux-arm64-gnu@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.18" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.14" +"@swc/core-linux-arm64-musl@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.18" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.14" +"@swc/core-linux-x64-gnu@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.18" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-linux-x64-musl@npm:1.7.14" +"@swc/core-linux-x64-musl@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-linux-x64-musl@npm:1.7.18" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.14" +"@swc/core-win32-arm64-msvc@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.18" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.14" +"@swc/core-win32-ia32-msvc@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.18" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.14" +"@swc/core-win32-x64-msvc@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.18" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:1.7.14": - version: 1.7.14 - resolution: "@swc/core@npm:1.7.14" +"@swc/core@npm:1.7.18": + version: 1.7.18 + resolution: "@swc/core@npm:1.7.18" dependencies: - "@swc/core-darwin-arm64": "npm:1.7.14" - "@swc/core-darwin-x64": "npm:1.7.14" - "@swc/core-linux-arm-gnueabihf": "npm:1.7.14" - "@swc/core-linux-arm64-gnu": "npm:1.7.14" - "@swc/core-linux-arm64-musl": "npm:1.7.14" - "@swc/core-linux-x64-gnu": "npm:1.7.14" - "@swc/core-linux-x64-musl": "npm:1.7.14" - "@swc/core-win32-arm64-msvc": "npm:1.7.14" - "@swc/core-win32-ia32-msvc": "npm:1.7.14" - "@swc/core-win32-x64-msvc": "npm:1.7.14" + "@swc/core-darwin-arm64": "npm:1.7.18" + "@swc/core-darwin-x64": "npm:1.7.18" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.18" + "@swc/core-linux-arm64-gnu": "npm:1.7.18" + "@swc/core-linux-arm64-musl": "npm:1.7.18" + "@swc/core-linux-x64-gnu": "npm:1.7.18" + "@swc/core-linux-x64-musl": "npm:1.7.18" + "@swc/core-win32-arm64-msvc": "npm:1.7.18" + "@swc/core-win32-ia32-msvc": "npm:1.7.18" + "@swc/core-win32-x64-msvc": "npm:1.7.18" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.12" peerDependencies: @@ -3271,7 +3404,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/d98e935a376d6358f53f16a269ee0021c00e2764cc7fabbc594904f283a97200a323b802d35eea034e44af67e8158f641f8ac7a8799b15312cb952765e03ba6b + checksum: 10c0/4b81421353d2405eacb08e383e57e15cb8852b90f0b1acd799263d9073fb0e595a2d4878547ef82d95986ea39e49a7d48fee34d5b70e9b3fc7c99e64df9bc922 languageName: node linkType: hard @@ -3323,19 +3456,18 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:^6.4.8": - version: 6.4.8 - resolution: "@testing-library/jest-dom@npm:6.4.8" +"@testing-library/jest-dom@npm:^6.5.0": + version: 6.5.0 + resolution: "@testing-library/jest-dom@npm:6.5.0" dependencies: "@adobe/css-tools": "npm:^4.4.0" - "@babel/runtime": "npm:^7.9.2" aria-query: "npm:^5.0.0" chalk: "npm:^3.0.0" css.escape: "npm:^1.5.1" dom-accessibility-api: "npm:^0.6.3" lodash: "npm:^4.17.21" redent: "npm:^3.0.0" - checksum: 10c0/8eececcac1ec7728c038b9d9eabfc8b8dcf4dc1e997c959450bff16d946e3344275862b84bfe0e1d1beb3817368e782464816aca47ab5c94f0ebf66db71df55d + checksum: 10c0/fd5936a547f04608d8de15a7de3ae26516f21023f8f45169b10c8c8847015fd20ec259b7309f08aa1031bcbc37c6e5e6f532d1bb85ef8f91bad654193ec66a4c languageName: node linkType: hard @@ -3402,7 +3534,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.1.14": +"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.4": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -3466,6 +3598,20 @@ __metadata: languageName: node linkType: hard +"@types/cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "@types/cookie@npm:0.6.0" + checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149 + languageName: node + linkType: hard + +"@types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + languageName: node + linkType: hard + "@types/fluent-ffmpeg@npm:^2": version: 2.1.25 resolution: "@types/fluent-ffmpeg@npm:2.1.25" @@ -3586,12 +3732,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.4.1": - version: 22.4.1 - resolution: "@types/node@npm:22.4.1" +"@types/node@npm:^22.5.0": + version: 22.5.0 + resolution: "@types/node@npm:22.5.0" dependencies: undici-types: "npm:~6.19.2" - checksum: 10c0/e42607438fcbd3a6aebd09084868fa0b22a4b0daf9eda79ed615df7ff8ae95e35ea56e090e1f3140ebae76b640abe42d4a6d5b60c0819eadf499adca737305b6 + checksum: 10c0/45aa75c5e71645fac42dced4eff7f197c3fdfff6e8a9fdacd0eb2e748ff21ee70ffb73982f068a58e8d73b2c088a63613142c125236cdcf3c072ea97eada1559 languageName: node linkType: hard @@ -3629,7 +3775,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:18.3.3": +"@types/react@npm:*": version: 18.3.3 resolution: "@types/react@npm:18.3.3" dependencies: @@ -3639,6 +3785,16 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:18.3.4": + version: 18.3.4 + resolution: "@types/react@npm:18.3.4" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10c0/5c52e1e6f540cff21e3c2a5212066d02e005f6fb21e4a536a29097fae878db9f407cd7a4b43778f51359349c5f692e08bc77ddb5f5cecbfca9ca4d4e3c91a48e + languageName: node + linkType: hard + "@types/request@npm:^2.48.8": version: 2.48.12 resolution: "@types/request@npm:2.48.12" @@ -3944,6 +4100,72 @@ __metadata: languageName: node linkType: hard +"@upstash/qstash@npm:^2.6.5": + version: 2.6.5 + resolution: "@upstash/qstash@npm:2.6.5" + dependencies: + "@solidjs/start": "npm:^1.0.6" + "@sveltejs/kit": "npm:^2.5.18" + crypto-js: "npm:>=4.2.0" + h3: "npm:^1.12.0" + jose: "npm:^ 5.2.3" + checksum: 10c0/c66b040c18dff17c1616b27bdb451da235a9920b037f3c102f0f0dc6454b2de4dc2451fbe0c468138714428cb781cda1d52f9de81cd0e1a878c6ca441e0b37dc + languageName: node + linkType: hard + +"@vinxi/plugin-directives@npm:0.4.1, @vinxi/plugin-directives@npm:^0.4.1": + version: 0.4.1 + resolution: "@vinxi/plugin-directives@npm:0.4.1" + dependencies: + "@babel/parser": "npm:^7.23.5" + acorn: "npm:^8.10.0" + acorn-jsx: "npm:^5.3.2" + acorn-loose: "npm:^8.3.0" + acorn-typescript: "npm:^1.4.3" + astring: "npm:^1.8.6" + magicast: "npm:^0.2.10" + recast: "npm:^0.23.4" + tslib: "npm:^2.6.2" + peerDependencies: + vinxi: ^0.4.0 + checksum: 10c0/4391d213c7da2f2cb7e5e290ef1d43119c514e3d046692e9cce85b4397d8d589c01d29bd48951b5376cba43abb3eab9354c1a87eafe11855d4c7fe6aff2998a5 + languageName: node + linkType: hard + +"@vinxi/server-components@npm:^0.4.1": + version: 0.4.1 + resolution: "@vinxi/server-components@npm:0.4.1" + dependencies: + "@vinxi/plugin-directives": "npm:0.4.1" + acorn: "npm:^8.10.0" + acorn-loose: "npm:^8.3.0" + acorn-typescript: "npm:^1.4.3" + astring: "npm:^1.8.6" + magicast: "npm:^0.2.10" + recast: "npm:^0.23.4" + peerDependencies: + vinxi: ^0.4.0 + checksum: 10c0/0ab88a2cd3219ac1b04e1d10f03016521909abefd0a3c6526e74b1b26cea90b49a0d022fc891318fdae58c9eb4b3c0c269c87d1c2cee3c092347ad02b4a45ce8 + languageName: node + linkType: hard + +"@vinxi/server-functions@npm:^0.4.1": + version: 0.4.1 + resolution: "@vinxi/server-functions@npm:0.4.1" + dependencies: + "@vinxi/plugin-directives": "npm:0.4.1" + acorn: "npm:^8.10.0" + acorn-loose: "npm:^8.3.0" + acorn-typescript: "npm:^1.4.3" + astring: "npm:^1.8.6" + magicast: "npm:^0.2.10" + recast: "npm:^0.23.4" + peerDependencies: + vinxi: ^0.4.0 + checksum: 10c0/8e144b8d8fa8e1d094b31f05f31f0d32e5727dff802103a66c2b14d0175ab5215f97e92ca5ce214192fbdaf80187ad561e06954748d27c8892db28352c8810b2 + languageName: node + linkType: hard + "abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -3986,7 +4208,25 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.9.0": +"acorn-loose@npm:^8.3.0": + version: 8.4.0 + resolution: "acorn-loose@npm:8.4.0" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10c0/e62407bdc338059e4d552b9ed5ccd44f13c5a86f5304a117bb8513672f9eb976bbbde1839f540296062660cef6b162f59bdc16d9c3430b264081567ba9684699 + languageName: node + linkType: hard + +"acorn-typescript@npm:^1.4.3": + version: 1.4.13 + resolution: "acorn-typescript@npm:1.4.13" + peerDependencies: + acorn: ">=8.9.0" + checksum: 10c0/f2f17cf03379d63beeb007f0feea02cebbd9af261f6b5619ea7345b177bd7a5f99752927cbf652baa3fc97962ae4561592093ab0a1c3e00ca4f354ba23c557ae + languageName: node + linkType: hard + +"acorn@npm:^8.10.0, acorn@npm:^8.11.0, acorn@npm:^8.9.0": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -3999,21 +4239,21 @@ __metadata: version: 0.0.0-use.local resolution: "activities.next@workspace:." dependencies: - "@aws-sdk/client-lambda": "npm:^3.634.0" - "@aws-sdk/client-s3": "npm:^3.633.0" - "@aws-sdk/s3-presigned-post": "npm:^3.633.0" + "@aws-sdk/client-lambda": "npm:^3.637.0" + "@aws-sdk/client-s3": "npm:^3.637.0" + "@aws-sdk/s3-presigned-post": "npm:^3.637.0" "@aws-sdk/util-utf8-node": "npm:^3.259.0" "@date-fns/utc": "npm:^1.2.0" "@google-cloud/firestore": "npm:^7.9.0" "@jmondi/oauth2-server": "npm:^4.0.1" - "@keyv/redis": "npm:^2.8.5" + "@keyv/redis": "npm:^3.0.1" "@llun/activities.schema": "npm:^0.2.1" - "@next/env": "npm:^14.2.5" + "@next/env": "npm:^14.2.6" "@opentelemetry/api": "npm:^1.9.0" "@swc-node/register": "npm:^1.10.9" - "@swc/core": "npm:1.7.14" + "@swc/core": "npm:1.7.18" "@swc/jest": "npm:^0.2.36" - "@testing-library/jest-dom": "npm:^6.4.8" + "@testing-library/jest-dom": "npm:^6.5.0" "@testing-library/react": "npm:^16.0.0" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@types/bcrypt": "npm:^5.0.2" @@ -4024,16 +4264,17 @@ __metadata: "@types/jsonwebtoken": "npm:^9" "@types/lodash": "npm:^4.17.7" "@types/mime-types": "npm:^2.1.4" - "@types/node": "npm:^22.4.1" + "@types/node": "npm:^22.5.0" "@types/nodemailer": "npm:^6.4.15" - "@types/react": "npm:18.3.3" + "@types/react": "npm:18.3.4" "@types/react-dom": "npm:18.3.0" "@types/react-modal": "npm:^3.16.3" "@types/sanitize-html": "npm:^2.13.0" "@typescript-eslint/eslint-plugin": "npm:^8.2.0" "@typescript-eslint/parser": "npm:^8.2.0" + "@upstash/qstash": "npm:^2.6.5" bcrypt: "npm:^5.1.1" - better-sqlite3: "npm:^11.1.2" + better-sqlite3: "npm:^11.2.1" bootstrap: "npm:^5.3.3" bootstrap-icons: "npm:^1.11.3" classnames: "npm:^2.5.1" @@ -4041,7 +4282,7 @@ __metadata: date-fns: "npm:^3.6.0" dotenv-flow: "npm:^4.1.0" eslint: "npm:^8.57.0" - eslint-config-next: "npm:14.2.5" + eslint-config-next: "npm:14.2.6" eslint-config-prettier: "npm:^9.1.0" eslint-config-standard: "npm:^17.1.0" eslint-plugin-import: "npm:^2.29.1" @@ -4049,7 +4290,7 @@ __metadata: eslint-plugin-n: "npm:^17.10.2" eslint-plugin-promise: "npm:^7.1.0" eslint-plugin-unused-imports: "npm:^4.1.3" - firebase-tools: "npm:^13.15.2" + firebase-tools: "npm:^13.15.4" fluent-ffmpeg: "npm:^2.1.3" got: "npm:14.4.2" html-react-parser: "npm:^5.1.12" @@ -4058,12 +4299,12 @@ __metadata: jest-fetch-mock: "npm:^3.0.3" jsonld: "npm:^8.3.2" jsonwebtoken: "npm:^9.0.2" - keyv: "npm:^4.5.4" + keyv: "npm:^5.0.1" knex: "npm:3.1.0" lodash: "npm:^4.17.21" marked: "npm:^14.0.0" mime-types: "npm:^2.1.35" - next: "npm:14.2.5" + next: "npm:14.2.6" next-auth: "npm:4.24.7" nodemailer: "npm:^6.9.14" peggy: "npm:^4.0.3" @@ -4475,6 +4716,24 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/abcc49e42eb921a7ebc013d5bec1154651fb6dbc3f497541d488859e681256901b2990b954d530ba0da4d0851271d484f7057d5eff5e07cb73e8b10909f711bf + languageName: node + linkType: hard + +"astring@npm:^1.8.6": + version: 1.8.6 + resolution: "astring@npm:1.8.6" + bin: + astring: bin/astring + checksum: 10c0/31f09144597048c11072417959a412f208f8f95ba8dce408dfbc3367acb929f31fbcc00ed5eb61ccbf7c2f1173b9ac8bfcaaa37134a9455050c669b2b036ed88 + languageName: node + linkType: hard + "async-lock@npm:1.4.1": version: 1.4.1 resolution: "async-lock@npm:1.4.1" @@ -4593,6 +4852,21 @@ __metadata: languageName: node linkType: hard +"babel-plugin-jsx-dom-expressions@npm:^0.38.1": + version: 0.38.1 + resolution: "babel-plugin-jsx-dom-expressions@npm:0.38.1" + dependencies: + "@babel/helper-module-imports": "npm:7.18.6" + "@babel/plugin-syntax-jsx": "npm:^7.18.6" + "@babel/types": "npm:^7.20.7" + html-entities: "npm:2.3.3" + validate-html-nesting: "npm:^1.2.1" + peerDependencies: + "@babel/core": ^7.20.12 + checksum: 10c0/5d22258f5c1b857bfbee38888a46378fe05457e5deb51c684ca53ce6b5aea0d4b86b4ad87477cfae29a8dcc2d51c0943e5ffd35450c19a0306135aa4c05760fc + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -4627,6 +4901,17 @@ __metadata: languageName: node linkType: hard +"babel-preset-solid@npm:^1.8.4": + version: 1.8.19 + resolution: "babel-preset-solid@npm:1.8.19" + dependencies: + babel-plugin-jsx-dom-expressions: "npm:^0.38.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/82efc65b88727dec3ca762d8da6bb154ca9c64f8e0eec26750c5410465c57d729a274efc5fe7305924d9093a1d319cd3302ba1b1ada15735827f515a5b7a78c5 + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -4681,14 +4966,21 @@ __metadata: languageName: node linkType: hard -"better-sqlite3@npm:^11.1.2": - version: 11.1.2 - resolution: "better-sqlite3@npm:11.1.2" +"better-sqlite3@npm:^11.2.1": + version: 11.2.1 + resolution: "better-sqlite3@npm:11.2.1" dependencies: bindings: "npm:^1.5.0" node-gyp: "npm:latest" prebuild-install: "npm:^7.1.1" - checksum: 10c0/d4f4d7e56fc854fdf794781fc99fe5c0f7f373d635769d8ad1b7b22278bd91cdcdfe03360cbc63b51ab208b86a05465281a2b4c55065d6c3e911274f6f1e07cb + checksum: 10c0/bec7a28cb4053f07791f842cb9f2bd34ac694d33a61d0e1421f17a5b7c16eb6c187c5f05250e4dc1510adc096ac70bd9ce077dcb5a5c6992d424b9629c9394f7 + languageName: node + linkType: hard + +"big-integer@npm:^1.6.44": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 10c0/9604224b4c2ab3c43c075d92da15863077a9f59e5d4205f4e7e76acd0cd47e8d469ec5e5dba8d9b32aa233951893b29329ca56ac80c20ce094b4a647a66abae0 languageName: node linkType: hard @@ -4785,6 +5077,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: "npm:^1.6.44" + checksum: 10c0/ce79c69e0f6efe506281e7c84e3712f7d12978991675b6e3a58a295b16f13ca81aa9b845c335614a545e0af728c8311b6aa3142af76ba1cb616af9bbac5c4a9f + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -4877,6 +5178,15 @@ __metadata: languageName: node linkType: hard +"bundle-name@npm:^3.0.0": + version: 3.0.0 + resolution: "bundle-name@npm:3.0.0" + dependencies: + run-applescript: "npm:^5.0.0" + checksum: 10c0/57bc7f8b025d83961b04db2f1eff6a87f2363c2891f3542a4b82471ff8ebb5d484af48e9784fcdb28ef1d48bb01f03d891966dc3ef58758e46ea32d750ce40f8 + languageName: node + linkType: hard + "busboy@npm:1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -5470,6 +5780,13 @@ __metadata: languageName: node linkType: hard +"consola@npm:^3.2.3": + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 10c0/c606220524ec88a05bb1baf557e9e0e04a0c08a9c35d7a08652d99de195c4ddcb6572040a7df57a18ff38bbc13ce9880ad032d56630cef27bef72768ef0ac078 + languageName: node + linkType: hard + "console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -5500,6 +5817,13 @@ __metadata: languageName: node linkType: hard +"cookie-es@npm:^1.1.0": + version: 1.2.2 + resolution: "cookie-es@npm:1.2.2" + checksum: 10c0/210eb67cd40a53986fda99d6f47118cfc45a69c4abc03490d15ab1b83ac978d5518356aecdd7a7a4969292445e3063c2302deda4c73706a67edc008127608638 + languageName: node + linkType: hard + "cookie-signature@npm:1.0.6": version: 1.0.6 resolution: "cookie-signature@npm:1.0.6" @@ -5507,7 +5831,7 @@ __metadata: languageName: node linkType: hard -"cookie@npm:0.6.0": +"cookie@npm:0.6.0, cookie@npm:^0.6.0": version: 0.6.0 resolution: "cookie@npm:0.6.0" checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686 @@ -5619,6 +5943,25 @@ __metadata: languageName: node linkType: hard +"crossws@npm:^0.2.4": + version: 0.2.4 + resolution: "crossws@npm:0.2.4" + peerDependencies: + uWebSockets.js: "*" + peerDependenciesMeta: + uWebSockets.js: + optional: true + checksum: 10c0/b950c64d36f3f11fdb8e0faf3107598660d89d77eb860e68b535fe6acba9f0f2f0507cc7250bd219a3ef2fe08718db91b591e6912b7324fcfc8fd1b8d9f78c96 + languageName: node + linkType: hard + +"crypto-js@npm:>=4.2.0": + version: 4.2.0 + resolution: "crypto-js@npm:4.2.0" + checksum: 10c0/8fbdf9d56f47aea0794ab87b0eb9833baf80b01a7c5c1b0edc7faf25f662fb69ab18dc2199e2afcac54670ff0cd9607a9045a3f7a80336cccd18d77a55b9fdf0 + languageName: node + linkType: hard + "crypto-random-string@npm:^2.0.0": version: 2.0.0 resolution: "crypto-random-string@npm:2.0.0" @@ -5847,6 +6190,28 @@ __metadata: languageName: node linkType: hard +"default-browser-id@npm:^3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: "npm:^0.2.0" + untildify: "npm:^4.0.0" + checksum: 10c0/8db3ab882eb3e1e8b59d84c8641320e6c66d8eeb17eb4bb848b7dd549b1e6fd313988e4a13542e95fbaeff03f6e9dedc5ad191ad4df7996187753eb0d45c00b7 + languageName: node + linkType: hard + +"default-browser@npm:^4.0.0": + version: 4.0.0 + resolution: "default-browser@npm:4.0.0" + dependencies: + bundle-name: "npm:^3.0.0" + default-browser-id: "npm:^3.0.0" + execa: "npm:^7.1.1" + titleize: "npm:^3.0.0" + checksum: 10c0/7c8848badc139ecf9d878e562bc4e7ab4301e51ba120b24d8dcb14739c30152115cc612065ac3ab73c02aace4afa29db5a044257b2f0cf234f16e3a58f6c925e + languageName: node + linkType: hard + "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -5874,6 +6239,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 10c0/5ab0b2bf3fa58b3a443140bbd4cd3db1f91b985cc8a246d330b9ac3fc0b6a325a6d82bddc0b055123d745b3f9931afeea74a5ec545439a1630b9c8512b0eeb49 + languageName: node + linkType: hard + "define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" @@ -5885,6 +6257,13 @@ __metadata: languageName: node linkType: hard +"defu@npm:^6.1.2, defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 10c0/2d6cc366262dc0cb8096e429368e44052fdf43ed48e53ad84cc7c9407f890301aa5fcb80d0995abaaf842b3949f154d060be4160f7a46cb2bc2f7726c81526f5 + languageName: node + linkType: hard + "degenerator@npm:^5.0.0": version: 5.0.1 resolution: "degenerator@npm:5.0.1" @@ -5931,6 +6310,13 @@ __metadata: languageName: node linkType: hard +"destr@npm:^2.0.3": + version: 2.0.3 + resolution: "destr@npm:2.0.3" + checksum: 10c0/10e7eff5149e2839a4dd29a1e9617c3c675a3b53608d78d74fc6f4abc31daa977e6de08e0eea78965527a0d5a35467ae2f9624e0a4646d54aa1162caa094473e + languageName: node + linkType: hard + "destroy@npm:1.2.0, destroy@npm:^1.0.4": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -5952,6 +6338,13 @@ __metadata: languageName: node linkType: hard +"devalue@npm:^5.0.0": + version: 5.0.0 + resolution: "devalue@npm:5.0.0" + checksum: 10c0/d9d9ee5d23ab4de92821a5660ed8ccd5259933ad153b1b18bdb2500fd2464d08f942ecaf57fdadfff17b712d8b80514727266a2b6ce9060c5aec7b1cfc3d0838 + languageName: node + linkType: hard + "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -6226,6 +6619,22 @@ __metadata: languageName: node linkType: hard +"error-stack-parser-es@npm:^0.1.1": + version: 0.1.5 + resolution: "error-stack-parser-es@npm:0.1.5" + checksum: 10c0/60331183269d5d5f2d80ce01be58387e7f7ef86ec821db7bba3e7aad201174b3f1b561973c678af7ec945542de8f2d1d23d5152ff8adf6154080eff02cd0e0b5 + languageName: node + linkType: hard + +"error-stack-parser@npm:^2.1.4": + version: 2.1.4 + resolution: "error-stack-parser@npm:2.1.4" + dependencies: + stackframe: "npm:^1.3.4" + checksum: 10c0/7679b780043c98b01fc546725484e0cfd3071bf5c906bbe358722972f04abf4fc3f0a77988017665bab367f6ef3fc2d0185f7528f45966b83e7c99c02d5509b9 + languageName: node + linkType: hard + "es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": version: 1.23.3 resolution: "es-abstract@npm:1.23.3" @@ -6446,11 +6855,11 @@ __metadata: languageName: node linkType: hard -"eslint-config-next@npm:14.2.5": - version: 14.2.5 - resolution: "eslint-config-next@npm:14.2.5" +"eslint-config-next@npm:14.2.6": + version: 14.2.6 + resolution: "eslint-config-next@npm:14.2.6" dependencies: - "@next/eslint-plugin-next": "npm:14.2.5" + "@next/eslint-plugin-next": "npm:14.2.6" "@rushstack/eslint-patch": "npm:^1.3.3" "@typescript-eslint/parser": "npm:^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0" eslint-import-resolver-node: "npm:^0.3.6" @@ -6465,7 +6874,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a8b51095182dec7a2775e6779269cfea8ba1b668392ade93d3264c43e7a5f3f673a1bf8b7823767f4e6ca26358a431b91fab7376d2b852bcc7310b8449f2c3d3 + checksum: 10c0/3a1b46696fa70a6a8b0dfdbb528ac30f324ad548d36736ebb08b2dd96d085224c59dafcac35dbcb0148173b8cd7519126abcacfbee1ad829184581ffb20b1b8d languageName: node linkType: hard @@ -6759,6 +7168,13 @@ __metadata: languageName: node linkType: hard +"esm-env@npm:^1.0.0": + version: 1.0.0 + resolution: "esm-env@npm:1.0.0" + checksum: 10c0/6ea0001410224ebc18de4a83ce97dbdca6abc83ea4bbe91625aa3aead70793bb98dfa089f38e2cc5c13b7b025668d0649d5e25f2f9e8cca0f4aa3ad3406870d0 + languageName: node + linkType: hard + "esm@npm:^3.2.25": version: 3.2.25 resolution: "esm@npm:3.2.25" @@ -6777,7 +7193,7 @@ __metadata: languageName: node linkType: hard -"esprima@npm:^4.0.0, esprima@npm:^4.0.1": +"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -6812,6 +7228,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 10c0/53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -6864,6 +7287,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^7.1.1": + version: 7.2.0 + resolution: "execa@npm:7.2.0" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.1" + human-signals: "npm:^4.3.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^3.0.7" + strip-final-newline: "npm:^3.0.0" + checksum: 10c0/098cd6a1bc26d509e5402c43f4971736450b84d058391820c6f237aeec6436963e006fd8423c9722f148c53da86aa50045929c7278b5522197dff802d10f9885 + languageName: node + linkType: hard + "exegesis-express@npm:^4.0.0": version: 4.0.0 resolution: "exegesis-express@npm:4.0.0" @@ -7204,9 +7644,9 @@ __metadata: languageName: node linkType: hard -"firebase-tools@npm:^13.15.2": - version: 13.15.2 - resolution: "firebase-tools@npm:13.15.2" +"firebase-tools@npm:^13.15.4": + version: 13.15.4 + resolution: "firebase-tools@npm:13.15.4" dependencies: "@google-cloud/cloud-sql-connector": "npm:^1.3.3" "@google-cloud/pubsub": "npm:^4.5.0" @@ -7272,11 +7712,11 @@ __metadata: uuid: "npm:^8.3.2" winston: "npm:^3.0.0" winston-transport: "npm:^4.4.0" - ws: "npm:^7.2.3" + ws: "npm:^7.5.10" yaml: "npm:^2.4.1" bin: firebase: lib/bin/firebase.js - checksum: 10c0/b525523057027667083d07e811a6a5e9f32cbca36e9ae291959802c2cccc7f7e0976ec9e88e26f8bab425b71e6de93b5acfe3915465c9c33b6b35e1053011eb5 + checksum: 10c0/c401eff2fd8bd7eed7aa09230b7e16aa6c59c8c36346fa6d8700d06047e74648cb616f29afa69805e4a0280bea36d6ded3237b78c4091457f7d06fb83faccb27 languageName: node linkType: hard @@ -7404,7 +7844,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.2.0": +"fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" dependencies: @@ -7580,7 +8020,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^6.0.0": +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 @@ -7766,6 +8206,13 @@ __metadata: languageName: node linkType: hard +"globalyzer@npm:0.1.0": + version: 0.1.0 + resolution: "globalyzer@npm:0.1.0" + checksum: 10c0/e16e47a5835cbe8a021423d4c7fcd9f5f85815b4190a7f50c1fdb95fc559d72e4fb30be96f106c66a99413f36d72da0f8323d19d27f60a8feec9d936139ec5a8 + languageName: node + linkType: hard + "globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" @@ -7780,6 +8227,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: 10c0/a54c029520cf58bda1d8884f72bd49b4cd74e977883268d931fd83bcbd1a9eb96d57c7dbd4ad80148fb9247467ebfb9b215630b2ed7563b2a8de02e1ff7f89d1 + languageName: node + linkType: hard + "google-auth-library@npm:^9.11.0, google-auth-library@npm:^9.2.0, google-auth-library@npm:^9.3.0, google-auth-library@npm:^9.7.0": version: 9.13.0 resolution: "google-auth-library@npm:9.13.0" @@ -7887,6 +8341,24 @@ __metadata: languageName: node linkType: hard +"h3@npm:^1.12.0": + version: 1.12.0 + resolution: "h3@npm:1.12.0" + dependencies: + cookie-es: "npm:^1.1.0" + crossws: "npm:^0.2.4" + defu: "npm:^6.1.4" + destr: "npm:^2.0.3" + iron-webcrypto: "npm:^1.1.1" + ohash: "npm:^1.1.3" + radix3: "npm:^1.1.2" + ufo: "npm:^1.5.3" + uncrypto: "npm:^0.1.3" + unenv: "npm:^1.9.0" + checksum: 10c0/21ac3ee2451e96a74d6a4ec3a6e589c4725590dc4e675816436ae9d041556fc1b64052ba3775a48912f4ae98977031e1be4c57ac8a80bb4297117506b6ec7a6f + languageName: node + linkType: hard + "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -7987,6 +8459,13 @@ __metadata: languageName: node linkType: hard +"html-entities@npm:2.3.3": + version: 2.3.3 + resolution: "html-entities@npm:2.3.3" + checksum: 10c0/a76cbdbb276d9499dc7ef800d23f3964254e659f04db51c8d1ff6abfe21992c69b7217ecfd6e3c16ff0aa027ba4261d77f0dba71f55639c16a325bbdf69c535d + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -8012,6 +8491,13 @@ __metadata: languageName: node linkType: hard +"html-to-image@npm:^1.11.11": + version: 1.11.11 + resolution: "html-to-image@npm:1.11.11" + checksum: 10c0/0b6349221ad253dfca01d165c589d44341e942faf0273aab28c8b7d86ff2922d3e8e6390f57bf5ddaf6bac9a3b590a8cdaa77d52a363354796dd0e0e05eb35d2 + languageName: node + linkType: hard + "html-to-text@npm:9.0.5": version: 9.0.5 resolution: "html-to-text@npm:9.0.5" @@ -8127,6 +8613,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^4.3.0": + version: 4.3.1 + resolution: "human-signals@npm:4.3.1" + checksum: 10c0/40498b33fe139f5cc4ef5d2f95eb1803d6318ac1b1c63eaf14eeed5484d26332c828de4a5a05676b6c83d7b9e57727c59addb4b1dea19cb8d71e83689e5b336c + languageName: node + linkType: hard + "iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -8195,6 +8688,13 @@ __metadata: languageName: node linkType: hard +"import-meta-resolve@npm:^4.1.0": + version: 4.1.0 + resolution: "import-meta-resolve@npm:4.1.0" + checksum: 10c0/42f3284b0460635ddf105c4ad99c6716099c3ce76702602290ad5cbbcd295700cbc04e4bdf47bacf9e3f1a4cec2e1ff887dabc20458bef398f9de22ddff45ef5 + languageName: node + linkType: hard + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -8354,6 +8854,13 @@ __metadata: languageName: node linkType: hard +"iron-webcrypto@npm:^1.1.1": + version: 1.2.1 + resolution: "iron-webcrypto@npm:1.2.1" + checksum: 10c0/5cf27c6e2bd3ef3b4970e486235fd82491ab8229e2ed0ac23307c28d6c80d721772a86ed4e9fe2a5cabadd710c2f024b706843b40561fb83f15afee58f809f66 + languageName: node + linkType: hard + "is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -8470,6 +8977,24 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^2.0.0": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc + languageName: node + linkType: hard + +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: 10c0/d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -8518,6 +9043,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: "npm:^3.0.0" + bin: + is-inside-container: cli.js + checksum: 10c0/a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd + languageName: node + linkType: hard + "is-installed-globally@npm:^0.4.0": version: 0.4.0 resolution: "is-installed-globally@npm:0.4.0" @@ -8640,6 +9176,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 + languageName: node + linkType: hard + "is-stream@npm:^4.0.1": version: 4.0.1 resolution: "is-stream@npm:4.0.1" @@ -8721,6 +9264,13 @@ __metadata: languageName: node linkType: hard +"is-what@npm:^4.1.8": + version: 4.1.16 + resolution: "is-what@npm:4.1.16" + checksum: 10c0/611f1947776826dcf85b57cfb7bd3b3ea6f4b94a9c2f551d4a53f653cf0cb9d1e6518846648256d46ee6c91d114b6d09d2ac8a07306f7430c5900f87466aae5b + languageName: node + linkType: hard + "is-wsl@npm:^1.1.0": version: 1.1.0 resolution: "is-wsl@npm:1.1.0" @@ -8728,6 +9278,15 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e + languageName: node + linkType: hard + "is-yarn-global@npm:^0.3.0": version: 0.3.0 resolution: "is-yarn-global@npm:0.3.0" @@ -9384,6 +9943,13 @@ __metadata: languageName: node linkType: hard +"jose@npm:^ 5.2.3": + version: 5.7.0 + resolution: "jose@npm:5.7.0" + checksum: 10c0/9dd2bfa61a839d857d4c4d842ba367a48552dbc93d315cd1c775b7d7855b0b3f589d72294f348cd3161eb559d20f2708549611ea4f1a46a83d49b891749593d9 + languageName: node + linkType: hard + "jose@npm:^4.15.5": version: 4.15.9 resolution: "jose@npm:4.15.9" @@ -9654,6 +10220,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^5.0.1": + version: 5.0.1 + resolution: "keyv@npm:5.0.1" + dependencies: + "@keyv/serialize": "npm:*" + checksum: 10c0/e16a4322a21e448040ea1bb6e97b9b35c7ebedf9f9fb617ad08ac82f42e98799033cec207c767f3e71f9b59738d708cfcfa45eace64ba3c6b7b9134af87a6cc8 + languageName: node + linkType: hard + "kleur@npm:^3.0.3": version: 3.0.3 resolution: "kleur@npm:3.0.3" @@ -9661,6 +10236,13 @@ __metadata: languageName: node linkType: hard +"kleur@npm:^4.1.5": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a + languageName: node + linkType: hard + "knex@npm:3.1.0": version: 3.1.0 resolution: "knex@npm:3.1.0" @@ -10015,6 +10597,26 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.5": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + languageName: node + linkType: hard + +"magicast@npm:^0.2.10": + version: 0.2.11 + resolution: "magicast@npm:0.2.11" + dependencies: + "@babel/parser": "npm:^7.22.16" + "@babel/types": "npm:^7.22.17" + recast: "npm:^0.23.4" + checksum: 10c0/8e0685be0707a523a97d554c045f760ac984808f70852ce5c876e1494286f10ab0e5837887e778c59172bea77bd14aa3d612f8e5e50fad35283436c330ff1a84 + languageName: node + linkType: hard + "make-dir@npm:^3.0.0, make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -10103,6 +10705,15 @@ __metadata: languageName: node linkType: hard +"merge-anything@npm:^5.1.7": + version: 5.1.7 + resolution: "merge-anything@npm:5.1.7" + dependencies: + is-what: "npm:^4.1.8" + checksum: 10c0/1820c8dfa5da65de1829b5e9adb65d1685ec4bc5d358927cacd20a9917eff9448f383f937695f4dbd2162b152faf41ce24187a931621839ee8a8b3c306a65136 + languageName: node + linkType: hard + "merge-descriptors@npm:1.0.1": version: 1.0.1 resolution: "merge-descriptors@npm:1.0.1" @@ -10182,6 +10793,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -10189,6 +10809,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf + languageName: node + linkType: hard + "mimic-response@npm:^3.1.0": version: 3.1.0 resolution: "mimic-response@npm:3.1.0" @@ -10402,6 +11029,20 @@ __metadata: languageName: node linkType: hard +"mri@npm:^1.1.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 + languageName: node + linkType: hard + +"mrmime@npm:^2.0.0": + version: 2.0.0 + resolution: "mrmime@npm:2.0.0" + checksum: 10c0/312b35ed288986aec90955410b21ed7427fd1e4ee318cb5fc18765c8d029eeded9444faa46589e5b1ed6b35fb2054a802ac8dcb917ddf6b3e189cb3bf11a965c + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -10529,20 +11170,20 @@ __metadata: languageName: node linkType: hard -"next@npm:14.2.5": - version: 14.2.5 - resolution: "next@npm:14.2.5" +"next@npm:14.2.6": + version: 14.2.6 + resolution: "next@npm:14.2.6" dependencies: - "@next/env": "npm:14.2.5" - "@next/swc-darwin-arm64": "npm:14.2.5" - "@next/swc-darwin-x64": "npm:14.2.5" - "@next/swc-linux-arm64-gnu": "npm:14.2.5" - "@next/swc-linux-arm64-musl": "npm:14.2.5" - "@next/swc-linux-x64-gnu": "npm:14.2.5" - "@next/swc-linux-x64-musl": "npm:14.2.5" - "@next/swc-win32-arm64-msvc": "npm:14.2.5" - "@next/swc-win32-ia32-msvc": "npm:14.2.5" - "@next/swc-win32-x64-msvc": "npm:14.2.5" + "@next/env": "npm:14.2.6" + "@next/swc-darwin-arm64": "npm:14.2.6" + "@next/swc-darwin-x64": "npm:14.2.6" + "@next/swc-linux-arm64-gnu": "npm:14.2.6" + "@next/swc-linux-arm64-musl": "npm:14.2.6" + "@next/swc-linux-x64-gnu": "npm:14.2.6" + "@next/swc-linux-x64-musl": "npm:14.2.6" + "@next/swc-win32-arm64-msvc": "npm:14.2.6" + "@next/swc-win32-ia32-msvc": "npm:14.2.6" + "@next/swc-win32-x64-msvc": "npm:14.2.6" "@swc/helpers": "npm:0.5.5" busboy: "npm:1.6.0" caniuse-lite: "npm:^1.0.30001579" @@ -10583,7 +11224,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 10c0/8df7d8ccc1a5bab03fa50dd6656c8a6f3750e81ef0b087dc329fea9346847c3094a933a890a8e87151dc32f0bc55020b8f6386d4565856d83bcc10895d29ec08 + checksum: 10c0/262cf21a179f394aedfae36724d3ece46f717d618beebfbb75986be7f4d6093a6cf183c36871462c16d1ec490fd0a765d1944d04d30e282b4cca41b71aaf8eea languageName: node linkType: hard @@ -10631,6 +11272,13 @@ __metadata: languageName: node linkType: hard +"node-fetch-native@npm:^1.6.4": + version: 1.6.4 + resolution: "node-fetch-native@npm:1.6.4" + checksum: 10c0/78334dc6def5d1d95cfe87b33ac76c4833592c5eb84779ad2b0c23c689f9dd5d1cfc827035ada72d6b8b218f717798968c5a99aeff0a1a8bf06657e80592f9c3 + languageName: node + linkType: hard + "node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -10742,6 +11390,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba + languageName: node + linkType: hard + "npmlog@npm:^5.0.1": version: 5.0.1 resolution: "npmlog@npm:5.0.1" @@ -10863,6 +11520,13 @@ __metadata: languageName: node linkType: hard +"ohash@npm:^1.1.3": + version: 1.1.3 + resolution: "ohash@npm:1.1.3" + checksum: 10c0/928f5bdbd8cd73f90cf544c0533dbda8e0a42d9b8c7454ab89e64e4d11bc85f85242830b4e107426ce13dc4dd3013286f8f5e0c84abd8942a014b907d9692540 + languageName: node + linkType: hard + "oidc-token-hash@npm:^5.0.3": version: 5.0.3 resolution: "oidc-token-hash@npm:5.0.3" @@ -10929,6 +11593,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: "npm:^4.0.0" + checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c + languageName: node + linkType: hard + "open@npm:^6.3.0": version: 6.4.0 resolution: "open@npm:6.4.0" @@ -10938,6 +11611,18 @@ __metadata: languageName: node linkType: hard +"open@npm:^9.1.0": + version: 9.1.0 + resolution: "open@npm:9.1.0" + dependencies: + default-browser: "npm:^4.0.0" + define-lazy-prop: "npm:^3.0.0" + is-inside-container: "npm:^1.0.0" + is-wsl: "npm:^2.2.0" + checksum: 10c0/8073ec0dd8994a7a7d9bac208bd17d093993a65ce10f2eb9b62b6d3a91c9366ae903938a237c275493c130171d339f6dcbdd2a2de7e32953452c0867b97825af + languageName: node + linkType: hard + "openapi3-ts@npm:^3.1.1": version: 3.2.0 resolution: "openapi3-ts@npm:3.2.0" @@ -11241,6 +11926,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 + languageName: node + linkType: hard + "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -11281,6 +11973,13 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 + languageName: node + linkType: hard + "peberminta@npm:^0.9.0": version: 0.9.0 resolution: "peberminta@npm:0.9.0" @@ -11836,6 +12535,13 @@ __metadata: languageName: node linkType: hard +"radix3@npm:^1.1.0, radix3@npm:^1.1.2": + version: 1.1.2 + resolution: "radix3@npm:1.1.2" + checksum: 10c0/d4a295547f71af079868d2c2ed3814a9296ee026c5488212d58c106e6b4797c6eaec1259b46c9728913622f2240c9a944bfc8e2b3b5f6e4a5045338b1609f1e4 + languageName: node + linkType: hard + "railroad-diagrams@npm:^1.0.0": version: 1.0.0 resolution: "railroad-diagrams@npm:1.0.0" @@ -12043,6 +12749,19 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.23.4": + version: 0.23.9 + resolution: "recast@npm:0.23.9" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10c0/65d6e780351f0180ea4fe5c9593ac18805bf2b79977f5bedbbbf26f6d9b619ed0f6992c1bf9e06dd40fca1aea727ad6d62463cfb5d3a33342ee5a6e486305fe5 + languageName: node + linkType: hard + "rechoir@npm:^0.8.0": version: 0.8.0 resolution: "rechoir@npm:0.8.0" @@ -12344,6 +13063,15 @@ __metadata: languageName: node linkType: hard +"run-applescript@npm:^5.0.0": + version: 5.0.0 + resolution: "run-applescript@npm:5.0.0" + dependencies: + execa: "npm:^5.0.0" + checksum: 10c0/f9977db5770929f3f0db434b8e6aa266498c70dec913c84320c0a06add510cf44e3a048c44da088abee312006f9cbf572fd065cdc8f15d7682afda8755f4114c + languageName: node + linkType: hard + "run-async@npm:^2.4.0, run-async@npm:^2.4.1": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -12369,6 +13097,15 @@ __metadata: languageName: node linkType: hard +"sade@npm:^1.8.1": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: "npm:^1.1.0" + checksum: 10c0/da8a3a5d667ad5ce3bf6d4f054bbb9f711103e5df21003c5a5c1a8a77ce12b640ed4017dd423b13c2307ea7e645adee7c2ae3afe8051b9db16a6f6d3da3f90b1 + languageName: node + linkType: hard + "safe-array-concat@npm:^1.1.2": version: 1.1.2 resolution: "safe-array-concat@npm:1.1.2" @@ -12533,6 +13270,22 @@ __metadata: languageName: node linkType: hard +"seroval-plugins@npm:^1.0.2": + version: 1.1.1 + resolution: "seroval-plugins@npm:1.1.1" + peerDependencies: + seroval: ^1.0 + checksum: 10c0/69ef623f014643b709beac56a3ab018098d43ac5533a89d1435e5aa17461a1b669fbc7f34916d905454c12372a6ace3c6933fb2bf41e720638522abbfb5774e2 + languageName: node + linkType: hard + +"seroval@npm:^1.0.2": + version: 1.1.1 + resolution: "seroval@npm:1.1.1" + checksum: 10c0/bde54883a05150d63606ca9f95f72999fcec4ad2345ab45e7fe22bd9bcda98f4c36c6a1660d59b2d7e47389881aad4b1a93b6c0adbfa64bf67acd4bf7e304651 + languageName: node + linkType: hard + "serve-static@npm:1.15.0": version: 1.15.0 resolution: "serve-static@npm:1.15.0" @@ -12552,6 +13305,13 @@ __metadata: languageName: node linkType: hard +"set-cookie-parser@npm:^2.6.0": + version: 2.7.0 + resolution: "set-cookie-parser@npm:2.7.0" + checksum: 10c0/5ccb2d0389bda27631d57e44644319f0b77200e7c8bd1515824eb83dbd2d351864a29581f7e7f977a5aeb83c3ec9976e69b706a80ac654152fd26353011ffef4 + languageName: node + linkType: hard + "set-function-length@npm:^1.2.1": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" @@ -12693,6 +13453,22 @@ __metadata: languageName: node linkType: hard +"shikiji-core@npm:0.9.19": + version: 0.9.19 + resolution: "shikiji-core@npm:0.9.19" + checksum: 10c0/1032439de1da5193e8ecee0f92d550d43738c1d4f282010794c183d0dff4e9f37f5ff3156186be518ad6f8536cca6f25adbc0643ab0a3111a89e59c5f02ba439 + languageName: node + linkType: hard + +"shikiji@npm:^0.9.12": + version: 0.9.19 + resolution: "shikiji@npm:0.9.19" + dependencies: + shikiji-core: "npm:0.9.19" + checksum: 10c0/5fffe93692210466372a0613beccb066326257bcad380ccc8ac2f9d59a9fa33b47990a3e5219aa6b0ead5709fd303e828068c77fa7a6df7716aaa14600ae33e9 + languageName: node + linkType: hard + "side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": version: 1.0.6 resolution: "side-channel@npm:1.0.6" @@ -12746,6 +13522,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^2.0.3, sirv@npm:^2.0.4": + version: 2.0.4 + resolution: "sirv@npm:2.0.4" + dependencies: + "@polka/url": "npm:^1.0.0-next.24" + mrmime: "npm:^2.0.0" + totalist: "npm:^3.0.0" + checksum: 10c0/68f8ee857f6a9415e9c07a1f31c7c561df8d5f1b1ba79bee3de583fa37da8718def5309f6b1c6e2c3ef77de45d74f5e49efc7959214443aa92d42e9c99180a4e + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -12797,6 +13584,28 @@ __metadata: languageName: node linkType: hard +"solid-refresh@npm:^0.6.3": + version: 0.6.3 + resolution: "solid-refresh@npm:0.6.3" + dependencies: + "@babel/generator": "npm:^7.23.6" + "@babel/helper-module-imports": "npm:^7.22.15" + "@babel/types": "npm:^7.23.6" + peerDependencies: + solid-js: ^1.3 + checksum: 10c0/04f474704fe60e28835ece852bb6a5ce60106d1d360c2d9ed0f5740751b60672705591b5ae57a35202fd6c13c8cf4eb0e17897e954317e204c2e2bda46b8bb17 + languageName: node + linkType: hard + +"solid-use@npm:^0.8.0": + version: 0.8.0 + resolution: "solid-use@npm:0.8.0" + peerDependencies: + solid-js: ^1.7 + checksum: 10c0/611cfe6668271d02ae1da739006bfc5957fce4fd44e1cb891a9c012652549ac4972bac8f3f206486decc41834d1a634cd75619dab030b30f59c18d237bde1d7e + languageName: node + linkType: hard + "sonic-boom@npm:^4.0.1": version: 4.0.1 resolution: "sonic-boom@npm:4.0.1" @@ -12922,6 +13731,13 @@ __metadata: languageName: node linkType: hard +"stackframe@npm:^1.3.4": + version: 1.3.4 + resolution: "stackframe@npm:1.3.4" + checksum: 10c0/18410f7a1e0c5d211a4effa83bdbf24adbe8faa8c34db52e1cd3e89837518c592be60b60d8b7270ac53eeeb8b807cd11b399a41667f6c9abb41059c3ccc8a989 + languageName: node + linkType: hard + "standard-as-callback@npm:^2.1.0": version: 2.1.0 resolution: "standard-as-callback@npm:2.1.0" @@ -13169,6 +13985,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce + languageName: node + linkType: hard + "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -13403,6 +14226,17 @@ __metadata: languageName: node linkType: hard +"terracotta@npm:^1.0.4": + version: 1.0.5 + resolution: "terracotta@npm:1.0.5" + dependencies: + solid-use: "npm:^0.8.0" + peerDependencies: + solid-js: ^1.8 + checksum: 10c0/e7a803c83689691cb894b180ea2829970ace2c6d262a82a0d450eef2f06bdb3dd5f4f2cd1ecf565eab6fdc7f2d6c98d87dd9351a3b1e5fdac7d724648eabcede + languageName: node + linkType: hard + "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" @@ -13478,6 +14312,30 @@ __metadata: languageName: node linkType: hard +"tiny-glob@npm:^0.2.9": + version: 0.2.9 + resolution: "tiny-glob@npm:0.2.9" + dependencies: + globalyzer: "npm:0.1.0" + globrex: "npm:^0.1.2" + checksum: 10c0/cbe072f0d213a1395d30aa94845a051d4af18fe8ffb79c8e99ac1787cd25df69083f17791a53997cb65f469f48950cb61426ccc0683cc9df170ac2430e883702 + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.3.3": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a + languageName: node + linkType: hard + +"titleize@npm:^3.0.0": + version: 3.0.0 + resolution: "titleize@npm:3.0.0" + checksum: 10c0/5ae6084ba299b5782f95e3fe85ea9f0fa4d74b8ae722b6b3208157e975589fbb27733aeba4e5080fa9314a856044ef52caa61b87caea4b1baade951a55c06336 + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -13524,6 +14382,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 10c0/4bb1fadb69c3edbef91c73ebef9d25b33bbf69afe1e37ce544d5f7d13854cda15e47132f3e0dc4cafe300ddb8578c77c50a65004d8b6e97e77934a69aa924863 + languageName: node + linkType: hard + "toxic@npm:^1.0.0": version: 1.0.1 resolution: "toxic@npm:1.0.1" @@ -13712,6 +14577,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.5.3": + version: 1.5.4 + resolution: "ufo@npm:1.5.4" + checksum: 10c0/b5dc4dc435c49c9ef8890f1b280a19ee4d0954d1d6f9ab66ce62ce64dd04c7be476781531f952a07c678d51638d02ad4b98e16237be29149295b0f7c09cda765 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -13724,6 +14596,13 @@ __metadata: languageName: node linkType: hard +"uncrypto@npm:^0.1.3": + version: 0.1.3 + resolution: "uncrypto@npm:0.1.3" + checksum: 10c0/74a29afefd76d5b77bedc983559ceb33f5bbc8dada84ff33755d1e3355da55a4e03a10e7ce717918c436b4dfafde1782e799ebaf2aadd775612b49f7b5b2998e + languageName: node + linkType: hard + "undici-types@npm:~6.13.0": version: 6.13.0 resolution: "undici-types@npm:6.13.0" @@ -13747,6 +14626,19 @@ __metadata: languageName: node linkType: hard +"unenv@npm:^1.9.0": + version: 1.10.0 + resolution: "unenv@npm:1.10.0" + dependencies: + consola: "npm:^3.2.3" + defu: "npm:^6.1.4" + mime: "npm:^3.0.0" + node-fetch-native: "npm:^1.6.4" + pathe: "npm:^1.1.2" + checksum: 10c0/354180647e21204b6c303339e7364b920baadb2672b540a88af267bc827636593e0bf79f59753dcc6b7ab5d4c83e71d69a9171a3596befb8bf77e0bb3c7612b9 + languageName: node + linkType: hard + "unicode-emoji-modifier-base@npm:^1.0.0": version: 1.0.0 resolution: "unicode-emoji-modifier-base@npm:1.0.0" @@ -13805,6 +14697,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 10c0/d758e624c707d49f76f7511d75d09a8eda7f2020d231ec52b67ff4896bcf7013be3f9522d8375f57e586e9a2e827f5641c7e06ee46ab9c435fc2b2b2e9de517a + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.1.0": version: 1.1.0 resolution: "update-browserslist-db@npm:1.1.0" @@ -13925,6 +14824,13 @@ __metadata: languageName: node linkType: hard +"validate-html-nesting@npm:^1.2.1": + version: 1.2.2 + resolution: "validate-html-nesting@npm:1.2.2" + checksum: 10c0/4321ed3cae99a611b8d8e9b8dd7c06bd937102192b1639af362de1f5b74f199bfff5287490d31fd361a915d584efa544644edf028bcc8ac5f0993c0167531089 + languageName: node + linkType: hard + "vary@npm:^1, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -13932,6 +14838,60 @@ __metadata: languageName: node linkType: hard +"vite-plugin-inspect@npm:^0.7.33": + version: 0.7.42 + resolution: "vite-plugin-inspect@npm:0.7.42" + dependencies: + "@antfu/utils": "npm:^0.7.6" + "@rollup/pluginutils": "npm:^5.0.5" + debug: "npm:^4.3.4" + error-stack-parser-es: "npm:^0.1.1" + fs-extra: "npm:^11.1.1" + open: "npm:^9.1.0" + picocolors: "npm:^1.0.0" + sirv: "npm:^2.0.3" + peerDependencies: + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + "@nuxt/kit": + optional: true + checksum: 10c0/440df09344183507a73f2bbc7904ff78a930727845cdc56aa3f988a846465a119eccc2ca7c2a92329f257d7eb6fd2002da98049a356a92719a80309ceeb49723 + languageName: node + linkType: hard + +"vite-plugin-solid@npm:^2.10.2": + version: 2.10.2 + resolution: "vite-plugin-solid@npm:2.10.2" + dependencies: + "@babel/core": "npm:^7.23.3" + "@types/babel__core": "npm:^7.20.4" + babel-preset-solid: "npm:^1.8.4" + merge-anything: "npm:^5.1.7" + solid-refresh: "npm:^0.6.3" + vitefu: "npm:^0.2.5" + peerDependencies: + "@testing-library/jest-dom": ^5.16.6 || ^5.17.0 || ^6.* + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + "@testing-library/jest-dom": + optional: true + checksum: 10c0/872a9d63d9d1ada29921de37f7420b0636ae7bc4c596072da0f098d03d932dee38b9e5f6ce88b42b4d3b19c9f06ceffcb86a335d2752784da18ca2827bf8ee56 + languageName: node + linkType: hard + +"vitefu@npm:^0.2.5": + version: 0.2.5 + resolution: "vitefu@npm:0.2.5" + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + checksum: 10c0/5781ece3025b6be0eb87ee7d97760a7721b1c6c5ad60ede5f37c86393ece3c8fce4245472f62368eb192448034086e25bdcadf098eefc271277176ab9a430204 + languageName: node + linkType: hard + "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -14198,7 +15158,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.2.3": +"ws@npm:^7.5.10": version: 7.5.10 resolution: "ws@npm:7.5.10" peerDependencies: From 216286691ec1c30825d30e5e767d9ac09d23ec5e Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Sat, 24 Aug 2024 21:25:54 +0200 Subject: [PATCH 2/8] Prepare to use Note from share schema --- app/api/v1/queue/qstash/route.ts | 40 +++ app/api/well-known/nodeinfo/route.ts | 16 + lib/actions/createNote.ts | 2 +- lib/activities/actions/createStatus.ts | 2 +- lib/activities/entities/note.ts | 6 +- lib/config/index.ts | 7 +- lib/config/redis.ts | 6 +- lib/services/queue/qstash.ts | 1 + lib/services/queue/type.ts | 9 + lib/stub/note.ts | 1 + lib/utils/cache.ts | 7 +- lib/utils/request.ts | 6 +- lib/utils/signature.ts | 6 +- next.config.js | 4 + yarn.lock | 413 ++++++++++--------------- 15 files changed, 248 insertions(+), 278 deletions(-) create mode 100644 app/api/v1/queue/qstash/route.ts create mode 100644 app/api/well-known/nodeinfo/route.ts create mode 100644 lib/services/queue/qstash.ts create mode 100644 lib/services/queue/type.ts diff --git a/app/api/v1/queue/qstash/route.ts b/app/api/v1/queue/qstash/route.ts new file mode 100644 index 00000000..7b4fdb97 --- /dev/null +++ b/app/api/v1/queue/qstash/route.ts @@ -0,0 +1,40 @@ +import { Receiver } from '@upstash/qstash' +import { memoize } from 'lodash' +import { NextRequest } from 'next/server' + +import { Config, getConfig } from '@/lib/config' +import { headerHost } from '@/lib/services/guards/headerHost' +import { apiErrorResponse, apiResponse } from '@/lib/utils/response' + +const getReceiver = memoize( + (config: Config) => + new Receiver({ + currentSigningKey: config.queue?.currentSigningKey || '', + nextSigningKey: config.queue?.nextSigningKey || '' + }) +) + +export const POST = async (request: NextRequest) => { + const config = getConfig() + if (config.queue?.type !== 'qstash') { + return apiErrorResponse(404) + } + + const receiver = getReceiver(config) + const body = await request.text() + const signature = request.headers.get('upstash-signature') ?? '' + + try { + const isValid = await receiver.verify({ + body, + signature, + url: `https://${headerHost(request.headers)}/api/v1/queue/qstash` + }) + if (!isValid) { + return apiErrorResponse(400) + } + } catch { + return apiErrorResponse(400) + } + return apiResponse(request, ['POST'], {}) +} diff --git a/app/api/well-known/nodeinfo/route.ts b/app/api/well-known/nodeinfo/route.ts new file mode 100644 index 00000000..10b1826e --- /dev/null +++ b/app/api/well-known/nodeinfo/route.ts @@ -0,0 +1,16 @@ +import { getConfig } from '@/lib/config' + +export const dynamic = 'force-dynamic' + +export const GET = async () => { + const config = getConfig() + + return Response.json({ + links: [ + { + rel: 'http://nodeinfo.diaspora.software/ns/schema/2.0', + href: `https://${config.host}/.well-known/nodeinfo/2.0` + } + ] + }) +} diff --git a/lib/actions/createNote.ts b/lib/actions/createNote.ts index b2224a5c..aa4d1f60 100644 --- a/lib/actions/createNote.ts +++ b/lib/actions/createNote.ts @@ -1,3 +1,4 @@ +import { Note } from '@llun/activities.schema' import crypto from 'crypto' import { addStatusToTimelines } from '@/lib/services/timelines' @@ -11,7 +12,6 @@ import { import { getPublicProfile, sendNote } from '../activities' import { Mention } from '../activities/entities/mention' import { - Note, getAttachments, getContent, getSummary, diff --git a/lib/activities/actions/createStatus.ts b/lib/activities/actions/createStatus.ts index 2a940955..83e3de76 100644 --- a/lib/activities/actions/createStatus.ts +++ b/lib/activities/actions/createStatus.ts @@ -1,10 +1,10 @@ +import { Note } from '@llun/activities.schema' import * as jsonld from 'jsonld' import { getISOTimeUTC } from '@/lib/utils/getISOTimeUTC' import { Status } from '../../models/status' import { ContextEntity } from '../entities/base' -import { Note } from '../entities/note' import { Question } from '../entities/question' import { Signature } from '../types' import { BaseActivity } from './base' diff --git a/lib/activities/entities/note.ts b/lib/activities/entities/note.ts index 9a3c3e00..7f9e362c 100644 --- a/lib/activities/entities/note.ts +++ b/lib/activities/entities/note.ts @@ -12,18 +12,18 @@ export type NoteEntity = typeof NoteEntity export interface BaseNote extends ContextEntity { id: string - summary?: string | null + summary?: string summaryMap?: { [key in string]: string } inReplyTo: string | null published: string updated?: string - url?: string + url: string attributedTo: string to: string | string[] cc: string | string[] - content?: string | string[] + content?: string contentMap?: { [key in string]: string } diff --git a/lib/config/index.ts b/lib/config/index.ts index 605636d7..b081ce96 100644 --- a/lib/config/index.ts +++ b/lib/config/index.ts @@ -8,12 +8,7 @@ import { LambdaConfig } from '../services/email/lambda' import { ResendConfig } from '../services/email/resend' import { SMTPConfig } from '../services/email/smtp' import { AuthConfig, getAuthConfig } from './auth' -import { - DatabaseConfig, - FirebaseDatabase, - KnexBaseDatabase, - getDatabaseConfig -} from './database' +import { DatabaseConfig, getDatabaseConfig } from './database' import { InternalApiConfig, getInternalApiConfig } from './internalApi' import { MediaStorageConfig, getMediaStorageConfig } from './mediaStorage' import { OpenTelemetryConfig, getOtelConfig } from './opentelemetry' diff --git a/lib/config/redis.ts b/lib/config/redis.ts index fae762c5..40dad0ab 100644 --- a/lib/config/redis.ts +++ b/lib/config/redis.ts @@ -3,8 +3,7 @@ import { z } from 'zod' import { matcher } from './utils' export const RedisConfig = z.object({ - url: z.string(), - tls: z.boolean().optional() + url: z.string() }) export type RedisConfig = z.infer @@ -13,8 +12,7 @@ export const getRedisConfig = (): { redis: RedisConfig } | null => { if (!hasEnvironmentRedis) return null return { redis: { - url: process.env.ACTIVITIES_REDIS_URL as string, - tls: Boolean(process.env.ACTIVITIES_REDIS_TLS) + url: process.env.ACTIVITIES_REDIS_URL as string } } } diff --git a/lib/services/queue/qstash.ts b/lib/services/queue/qstash.ts new file mode 100644 index 00000000..4989d392 --- /dev/null +++ b/lib/services/queue/qstash.ts @@ -0,0 +1 @@ +export class QStashQueue {} diff --git a/lib/services/queue/type.ts b/lib/services/queue/type.ts new file mode 100644 index 00000000..b9443f74 --- /dev/null +++ b/lib/services/queue/type.ts @@ -0,0 +1,9 @@ +import { z } from 'zod' + +export const QueueMessage = z.object({ + job: z.string() +}) + +export interface Queue { + publish(): Promise +} diff --git a/lib/stub/note.ts b/lib/stub/note.ts index 26e12821..c1458e27 100644 --- a/lib/stub/note.ts +++ b/lib/stub/note.ts @@ -103,6 +103,7 @@ export const MockLitepubNote = ({ attachment: documents, attributedTo: from, cc, + url: id, content, context: conversation ?? diff --git a/lib/utils/cache.ts b/lib/utils/cache.ts index 9c415fb1..4c94f9a9 100644 --- a/lib/utils/cache.ts +++ b/lib/utils/cache.ts @@ -1,4 +1,4 @@ -import '@keyv/redis' +import KeyvRedis from '@keyv/redis' import Keyv from 'keyv' import { memoize } from 'lodash' @@ -10,9 +10,8 @@ const getKeyv = memoize((namespace: string) => { return null } - const { url, tls } = config.redis - const option = tls ? { tls: true } : undefined - return new Keyv(url, { ...option, namespace }) + const { url } = config.redis + return new Keyv({ store: new KeyvRedis({ uri: url }), namespace }) }) export const cache = async

( diff --git a/lib/utils/request.ts b/lib/utils/request.ts index 14afe98d..bcf9651d 100644 --- a/lib/utils/request.ts +++ b/lib/utils/request.ts @@ -1,5 +1,4 @@ import KeyvRedis from '@keyv/redis' -import { KeyvRedisOptions } from '@keyv/redis/dist/types' import got, { Headers, Method } from 'got' import { memoize } from 'lodash' @@ -24,9 +23,8 @@ export interface RequestOptions { export const getRequestCache = memoize(() => { const config = getConfig() if (config.redis) { - const { url, tls } = config.redis - const option = tls ? ({ tls: {} } as KeyvRedisOptions) : undefined - return new KeyvRedis(url, option) + const { url } = config.redis + return new KeyvRedis({ uri: url }) } return false diff --git a/lib/utils/signature.ts b/lib/utils/signature.ts index 2ded7a54..a7230a41 100644 --- a/lib/utils/signature.ts +++ b/lib/utils/signature.ts @@ -8,6 +8,8 @@ import { Actor } from '@/lib/models/actor' import { getHeadersValue } from '@/lib/services/guards/getHeaderValue' import { getSpan } from '@/lib/utils/trace' +import { FORWARDED_HOST } from '../constants' + export const SIGNATURE_GRAMMAR = ` pairs = (","? pair:pair { return pair })+ pair = key:token "=" '"' value:value '"' { return [key, value] } @@ -52,8 +54,8 @@ export async function verify( if (item === '(request-target)') { return `(request-target): ${requestTarget}` } - if (item === 'host' && getHeadersValue(headers, 'x-forwarded-host')) { - return `${item}: ${getHeadersValue(headers, 'x-forwarded-host')}` + if (item === 'host' && getHeadersValue(headers, FORWARDED_HOST)) { + return `${item}: ${getHeadersValue(headers, FORWARDED_HOST)}` } return `${item}: ${getHeadersValue(headers, item)}` }) diff --git a/next.config.js b/next.config.js index ef550c42..01c202a2 100644 --- a/next.config.js +++ b/next.config.js @@ -44,6 +44,10 @@ const nextConfig = { source: '/.well-known/:path*', destination: '/api/well-known/:path*' }, + { + source: '/.wellknown/:path*', + destination: '/api/well-known/:path*' + }, { source: '/users/:path*', destination: '/api/users/:path*' diff --git a/yarn.lock b/yarn.lock index b698ff5c..9b133f07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -842,9 +842,9 @@ __metadata: linkType: hard "@babel/compat-data@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/compat-data@npm:7.25.2" - checksum: 10c0/5bf1f14d6e5f0d37c19543e99209ff4a94bb97915e1ce01e5334a144aa08cd56b6e62ece8135dac77e126723d63d4d4b96fc603a12c43b88c28f4b5e070270c5 + version: 7.25.4 + resolution: "@babel/compat-data@npm:7.25.4" + checksum: 10c0/50d79734d584a28c69d6f5b99adfaa064d0f41609a378aef04eb06accc5b44f8520e68549eba3a082478180957b7d5783f1bfb1672e4ae8574e797ce8bae79fa languageName: node linkType: hard @@ -882,19 +882,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.7.2": - version: 7.25.0 - resolution: "@babel/generator@npm:7.25.0" - dependencies: - "@babel/types": "npm:^7.25.0" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.6": +"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.4, @babel/generator@npm:^7.7.2": version: 7.25.5 resolution: "@babel/generator@npm:7.25.5" dependencies: @@ -980,7 +968,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.24.8 resolution: "@babel/helper-plugin-utils@npm:7.24.8" checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d @@ -1049,18 +1037,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/parser@npm:7.25.3" - dependencies: - "@babel/types": "npm:^7.25.2" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e - languageName: node - linkType: hard - -"@babel/parser@npm:^7.22.16, @babel/parser@npm:^7.23.5": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.16, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4": version: 7.25.4 resolution: "@babel/parser@npm:7.25.4" dependencies: @@ -1093,7 +1070,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.8.3": +"@babel/plugin-syntax-class-properties@npm:^7.12.13": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -1104,7 +1081,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.8.3": +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: @@ -1137,7 +1136,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: @@ -1159,7 +1158,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: @@ -1203,7 +1202,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-top-level-await@npm:^7.8.3": +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": version: 7.14.5 resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" dependencies: @@ -1215,22 +1225,22 @@ __metadata: linkType: hard "@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.24.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" + version: 7.25.4 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.4" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/cdabd2e8010fb0ad15b49c2c270efc97c4bfe109ead36c7bbcf22da7a74bc3e49702fc4f22f12d2d6049e8e22a5769258df1fd05f0420ae45e11bdd5bc07805a + checksum: 10c0/199919d44c73e5edee9ffd311cf638f88d26a810189e32d338c46c7600441fd5c4a2e431f9be377707cbf318410895304e90b83bf8d9011d205150fa7f260e63 languageName: node linkType: hard "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.20.13": - version: 7.25.0 - resolution: "@babel/runtime@npm:7.25.0" + version: 7.25.4 + resolution: "@babel/runtime@npm:7.25.4" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d + checksum: 10c0/33e937e685f0bfc2d40c219261e2e50d0df7381a6e7cbf56b770e0c5d77cb0c21bf4d97da566cf0164317ed7508e992082c7b6cce7aaa3b17da5794f93fbfb46 languageName: node linkType: hard @@ -1264,17 +1274,17 @@ __metadata: linkType: hard "@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": - version: 7.25.3 - resolution: "@babel/traverse@npm:7.25.3" + version: 7.25.4 + resolution: "@babel/traverse@npm:7.25.4" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.3" + "@babel/generator": "npm:^7.25.4" + "@babel/parser": "npm:^7.25.4" "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.2" + "@babel/types": "npm:^7.25.4" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b + checksum: 10c0/37c9b49b277e051fe499ef5f6f217370c4f648d6370564d70b5e6beb2da75bfda6d7dab1d39504d89e9245448f8959bc1a5880d2238840cdc3979b35338ed0f5 languageName: node linkType: hard @@ -1288,18 +1298,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.3.3": - version: 7.25.2 - resolution: "@babel/types@npm:7.25.2" - dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 - languageName: node - linkType: hard - -"@babel/types@npm:^7.18.6, @babel/types@npm:^7.22.17, @babel/types@npm:^7.23.6, @babel/types@npm:^7.25.4": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.17, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4, @babel/types@npm:^7.3.3": version: 7.25.4 resolution: "@babel/types@npm:7.25.4" dependencies: @@ -1438,14 +1437,14 @@ __metadata: linkType: hard "@google-cloud/cloud-sql-connector@npm:^1.3.3": - version: 1.3.3 - resolution: "@google-cloud/cloud-sql-connector@npm:1.3.3" + version: 1.3.4 + resolution: "@google-cloud/cloud-sql-connector@npm:1.3.4" dependencies: "@googleapis/sqladmin": "npm:^19.0.0" gaxios: "npm:^6.1.1" google-auth-library: "npm:^9.2.0" p-throttle: "npm:^5.1.0" - checksum: 10c0/bdb342918c5771cfebbbf5846496c404f4ef6fdc7bd56362bc026eb9954c511ee6f6290ace80388aca405c306d5f6f71b5e216459a86560b73617969cd810073 + checksum: 10c0/ff19cb43f97440d09f80f54388b22e5caf2da228e3cf616958a1b2f9570a25d4222f4b868462ada39a1dcbee8bd5db3c157054b68fc075538be3fcf653b1b73b languageName: node linkType: hard @@ -1493,8 +1492,8 @@ __metadata: linkType: hard "@google-cloud/pubsub@npm:^4.5.0": - version: 4.5.0 - resolution: "@google-cloud/pubsub@npm:4.5.0" + version: 4.6.0 + resolution: "@google-cloud/pubsub@npm:4.6.0" dependencies: "@google-cloud/paginator": "npm:^5.0.0" "@google-cloud/precise-date": "npm:^4.0.0" @@ -1510,7 +1509,7 @@ __metadata: is-stream-ended: "npm:^0.1.4" lodash.snakecase: "npm:^4.1.1" p-defer: "npm:^3.0.0" - checksum: 10c0/eddc348ce9d7589a1760bd9e2ed1efd13e85c8426ee6dd9ad54063cf295b572c382657a50ff3847dd09a4819b5352f9ff7b009d1cb8c3aad07e1eb075a1c85b4 + checksum: 10c0/e434d4b4f695a1cf64adf091d06308a31c14ffae8759dafd39c6dea647520c060b331f3896f9e6c2becd8c6f413477ea8218c29365f8d576f4c430e24537860a languageName: node linkType: hard @@ -2426,13 +2425,13 @@ __metadata: linkType: hard "@pnpm/npm-conf@npm:^2.1.0": - version: 2.3.0 - resolution: "@pnpm/npm-conf@npm:2.3.0" + version: 2.3.1 + resolution: "@pnpm/npm-conf@npm:2.3.1" dependencies: "@pnpm/config.env-replace": "npm:^1.1.0" "@pnpm/network.ca-file": "npm:^1.0.1" config-chain: "npm:^1.1.11" - checksum: 10c0/605e986805b5bc46bde3d17cdc5a58f9da7da28ac331b83acde055eddefa8ca0e027844d8a97d337b8179ee6964db985214cec1206b76c29d0fcd5496c60abf2 + checksum: 10c0/778a3a34ff7d6000a2594d2a9821f873f737bc56367865718b2cf0ba5d366e49689efe7975148316d7afd8e6f1dcef7d736fbb6ea7ef55caadd1dc93a36bb302 languageName: node linkType: hard @@ -3723,16 +3722,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0": - version: 22.1.0 - resolution: "@types/node@npm:22.1.0" - dependencies: - undici-types: "npm:~6.13.0" - checksum: 10c0/553dafcb842b889c036d43b390d464e8ffcf3ca455ddd5b1a1ef98396381eafbeb0c112a15cc6bf9662b72bc25fc45efc4b6f604760e1e84c410f1b7936c488b - languageName: node - linkType: hard - -"@types/node@npm:^22.5.0": +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^22.5.0": version: 22.5.0 resolution: "@types/node@npm:22.5.0" dependencies: @@ -3775,17 +3765,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*": - version: 18.3.3 - resolution: "@types/react@npm:18.3.3" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.0.2" - checksum: 10c0/fe455f805c5da13b89964c3d68060cebd43e73ec15001a68b34634604a78140e6fc202f3f61679b9d809dde6d7a7c2cb3ed51e0fd1462557911db09879b55114 - languageName: node - linkType: hard - -"@types/react@npm:18.3.4": +"@types/react@npm:*, @types/react@npm:18.3.4": version: 18.3.4 resolution: "@types/react@npm:18.3.4" dependencies: @@ -3845,11 +3825,11 @@ __metadata: linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" dependencies: "@types/yargs-parser": "npm:*" - checksum: 10c0/2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf + checksum: 10c0/d16937d7ac30dff697801c3d6f235be2166df42e4a88bf730fa6dc09201de3727c0a9500c59a672122313341de5f24e45ee0ff579c08ce91928e519090b7906b languageName: node linkType: hard @@ -3922,16 +3902,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/scope-manager@npm:8.0.1" - dependencies: - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/visitor-keys": "npm:8.0.1" - checksum: 10c0/79c00bc726c0c14b800bbbc1c1b88978c2cbeb29d2b06b94a5773f959aafac5cfb37bdb8c3bb80b9fb07fd10440413fce9098f338dce100696a4d3dc1ea6b187 - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:8.2.0": version: 8.2.0 resolution: "@typescript-eslint/scope-manager@npm:8.2.0" @@ -3964,13 +3934,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/types@npm:8.0.1" - checksum: 10c0/e7c02d4e153a935c04bfddc0c8fc1618b1c8e9767583cff05a0e063bbacb7f3c8fac2257879c41162fe19094a0de3a567b57969177b2a0c32f39accd4c5601d5 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:8.2.0": version: 8.2.0 resolution: "@typescript-eslint/types@npm:8.2.0" @@ -3997,25 +3960,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.0.1" - dependencies: - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/visitor-keys": "npm:8.0.1" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/12507995dc634a1746b581635e0df9f986ad01e7f0b4482f1f240986e7277ebd301dfe3b59c07da6d1f3d465f9110dc2a61ce50b67a8f31188cad13f7cc3632e - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:8.2.0": version: 8.2.0 resolution: "@typescript-eslint/typescript-estree@npm:8.2.0" @@ -4035,7 +3979,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.2.0": +"@typescript-eslint/utils@npm:8.2.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.2.0 resolution: "@typescript-eslint/utils@npm:8.2.0" dependencies: @@ -4049,20 +3993,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.0.1 - resolution: "@typescript-eslint/utils@npm:8.0.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.0.1" - "@typescript-eslint/types": "npm:8.0.1" - "@typescript-eslint/typescript-estree": "npm:8.0.1" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/9ab4baee82ac74caee18fb687697698043385aea5d0ec4bb34d874a6969eaa3e48f9319ab023cbcb6114f86de17f7360a43460fb4159c61760a2d2984004dd21 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" @@ -4073,16 +4003,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.0.1": - version: 8.0.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.0.1" - dependencies: - "@typescript-eslint/types": "npm:8.0.1" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/64c12095a97808bb1e1f5709192b274cac58d6b8fbbf9ec8fafead30f7effef7f0232244ec759298d046e1cd43521b9f3ba37b80618d5184c8b22fae665a7068 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.2.0": version: 8.2.0 resolution: "@typescript-eslint/visitor-keys@npm:8.2.0" @@ -4758,9 +4678,9 @@ __metadata: linkType: hard "async@npm:^3.2.3, async@npm:^3.2.4": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 10c0/1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 languageName: node linkType: hard @@ -4868,24 +4788,27 @@ __metadata: linkType: hard "babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" dependencies: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-bigint": "npm:^7.8.3" - "@babel/plugin-syntax-class-properties": "npm:^7.8.3" - "@babel/plugin-syntax-import-meta": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-top-level-await": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/5ba39a3a0e6c37d25e56a4fb843be632dac98d54706d8a0933f9bcb1a07987a96d55c2b5a6c11788a74063fb2534fe68c1f1dbb6c93626850c785e0938495627 + checksum: 10c0/0b838d4412e3322cb4436f246e24e9c00bebcedfd8f00a2f51489db683bd35406bbd55a700759c28d26959c6e03f84dd6a1426f576f440267c1d7a73c5717281 languageName: node linkType: hard @@ -5294,9 +5217,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001649 - resolution: "caniuse-lite@npm:1.0.30001649" - checksum: 10c0/0ca2f3776324acfc36d72a575e72ffd1408b91f0ac462a6f0aa08ea24d0d16e83f85f652e19d40e6d6d82ab0fb588740f948e7c88d2818fe6bcd68f70ca33acf + version: 1.0.30001651 + resolution: "caniuse-lite@npm:1.0.30001651" + checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad languageName: node linkType: hard @@ -6506,9 +6429,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.4": - version: 1.5.4 - resolution: "electron-to-chromium@npm:1.5.4" - checksum: 10c0/139abf1b7281c2f3288819fb9b114f09d541ac38c9f0373f194ce2d483d82d118b8751f1b2a59b04ed0d8f414071b58508a40050fc0f23b5aa7e38d11d0cf30c + version: 1.5.13 + resolution: "electron-to-chromium@npm:1.5.13" + checksum: 10c0/1d88ac39447e1d718c4296f92fe89836df4688daf2d362d6c49108136795f05a56dd9c950f1c6715e0395fa037c3b5f5ea686c543fdc90e6d74a005877c45022 languageName: node linkType: hard @@ -7765,12 +7688,12 @@ __metadata: linkType: hard "foreground-child@npm:^3.1.0": - version: 3.2.1 - resolution: "foreground-child@npm:3.2.1" + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" dependencies: cross-spawn: "npm:^7.0.0" signal-exit: "npm:^4.0.1" - checksum: 10c0/9a53a33dbd87090e9576bef65fb4a71de60f6863a8062a7b11bc1cbe3cc86d428677d7c0b9ef61cdac11007ac580006f78bd5638618d564cfd5e6fd713d6878f + checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 languageName: node linkType: hard @@ -7957,15 +7880,15 @@ __metadata: linkType: hard "gaxios@npm:^6.0.0, gaxios@npm:^6.0.3, gaxios@npm:^6.1.1, gaxios@npm:^6.7.0": - version: 6.7.0 - resolution: "gaxios@npm:6.7.0" + version: 6.7.1 + resolution: "gaxios@npm:6.7.1" dependencies: extend: "npm:^3.0.2" https-proxy-agent: "npm:^7.0.1" is-stream: "npm:^2.0.0" node-fetch: "npm:^2.6.9" - uuid: "npm:^10.0.0" - checksum: 10c0/07116b29e23c00ecd820a6b55d59e03b2e555df9d4b812de59761bdb2fd1a4a29d32cd99b8a84f667cf9721020cdee7bd5bf5ead6165809691111d1b26cf7c06 + uuid: "npm:^9.0.1" + checksum: 10c0/53e92088470661c5bc493a1de29d05aff58b1f0009ec5e7903f730f892c3642a93e264e61904383741ccbab1ce6e519f12a985bba91e13527678b32ee6d7d3fd languageName: node linkType: hard @@ -8235,8 +8158,8 @@ __metadata: linkType: hard "google-auth-library@npm:^9.11.0, google-auth-library@npm:^9.2.0, google-auth-library@npm:^9.3.0, google-auth-library@npm:^9.7.0": - version: 9.13.0 - resolution: "google-auth-library@npm:9.13.0" + version: 9.14.0 + resolution: "google-auth-library@npm:9.14.0" dependencies: base64-js: "npm:^1.3.0" ecdsa-sig-formatter: "npm:^1.0.11" @@ -8244,13 +8167,13 @@ __metadata: gcp-metadata: "npm:^6.1.0" gtoken: "npm:^7.0.0" jws: "npm:^4.0.0" - checksum: 10c0/d437c5121407f6035d2c02f2d3281c14d02f976f1ba96493ef6c394abd68aff48a4520c61211eb0f9fd74808ed3318a6f30cc53670aaaf7bc4dc4ed7ab3a70db + checksum: 10c0/f421e45ca4f22f54787b9fb81b51dea77f2a8847988ed32d9d8756e0c47dcf08b6e1f7f792c9e59faccff1f4f207fbf2c3001353238dd3fbba02e21f0b3d52a4 languageName: node linkType: hard "google-gax@npm:^4.3.3": - version: 4.3.8 - resolution: "google-gax@npm:4.3.8" + version: 4.3.9 + resolution: "google-gax@npm:4.3.9" dependencies: "@grpc/grpc-js": "npm:^1.10.9" "@grpc/proto-loader": "npm:^0.7.13" @@ -8258,13 +8181,13 @@ __metadata: abort-controller: "npm:^3.0.0" duplexify: "npm:^4.0.0" google-auth-library: "npm:^9.3.0" - node-fetch: "npm:^2.6.1" + node-fetch: "npm:^2.7.0" object-hash: "npm:^3.0.0" proto3-json-serializer: "npm:^2.0.2" protobufjs: "npm:^7.3.2" retry-request: "npm:^7.0.0" uuid: "npm:^9.0.1" - checksum: 10c0/f5bcab277913ce456c101ba1bc9447866f781276e8446b5a3e06ac3ae919a8a1209bb36d78379708b85190630b5722361dcf1b18b7f364cacb23f650230ddbf8 + checksum: 10c0/3aec9ca2b0943b5a68139a43203374759cb7ba8bbb8ca8bc956629338bec9fb3eec858ebe03394a4ac13ced9d79612f1491756e38fb1d035bb2f784471d7f7d5 languageName: node linkType: hard @@ -8646,9 +8569,9 @@ __metadata: linkType: hard "ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard @@ -8951,11 +8874,11 @@ __metadata: linkType: hard "is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": - version: 2.15.0 - resolution: "is-core-module@npm:2.15.0" + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" dependencies: hasown: "npm:^2.0.2" - checksum: 10c0/da161f3d9906f459486da65609b2f1a2dfdc60887c689c234d04e88a062cb7920fa5be5fb7ab08dc43b732929653c4135ef05bf77888ae2a9040ce76815eb7b1 + checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612 languageName: node linkType: hard @@ -10362,18 +10285,18 @@ __metadata: linkType: hard "libsodium-wrappers@npm:^0.7.10": - version: 0.7.14 - resolution: "libsodium-wrappers@npm:0.7.14" + version: 0.7.15 + resolution: "libsodium-wrappers@npm:0.7.15" dependencies: - libsodium: "npm:^0.7.14" - checksum: 10c0/a0ce28968444e5d5d8d04ac08ffcb4d9709a5f7ddcc3e98f38375a80f4f35a4b990bd80b40d5a0c849c8caebdecc6a0f70c59d44275eed3c5c0d0c2f6894c4cd + libsodium: "npm:^0.7.15" + checksum: 10c0/852c4879f3b3c48332fe704454c4dfc2a1387f9f3930faf84d8626c9670f93365e56aa186d14e2995e5d352f08af07c99c06a2c26d5f44818039f1014d404171 languageName: node linkType: hard -"libsodium@npm:^0.7.14": - version: 0.7.14 - resolution: "libsodium@npm:0.7.14" - checksum: 10c0/691146a19d4047e1dc2181cd29aa572e5a1de651c4f5bc42475a0626ffc02908b437216808b59a773883567053a110b88cffe6ac47cb3a64ca99f7e68dedbcad +"libsodium@npm:^0.7.15": + version: 0.7.15 + resolution: "libsodium@npm:0.7.15" + checksum: 10c0/7bdb529681f30be0533f33921509c36823d18f6fc158d66842e50d33cd9635ebb0dd02eb1fe3b51e192996ff173949f846793e10103371c8b179e5c29525556c languageName: node linkType: hard @@ -10743,12 +10666,12 @@ __metadata: linkType: hard "micromatch@npm:^4.0.4": - version: 4.0.7 - resolution: "micromatch@npm:4.0.7" + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" dependencies: braces: "npm:^3.0.3" picomatch: "npm:^2.3.1" - checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772 + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 languageName: node linkType: hard @@ -11236,11 +11159,11 @@ __metadata: linkType: hard "node-abi@npm:^3.3.0": - version: 3.65.0 - resolution: "node-abi@npm:3.65.0" + version: 3.67.0 + resolution: "node-abi@npm:3.67.0" dependencies: semver: "npm:^7.3.5" - checksum: 10c0/112672015d8f27d6be2f18d64569f28f5d6a15a94cc510da513c69c3e3ab5df6dac196ef13ff115a8fadb69b554974c47ef89b4f6350a2b02de2bca5c23db1e5 + checksum: 10c0/72ce2edbdfb84745bc201a4e48aa7146fd88a0d2c80046b6b17f28439c9a7683eab846f40f1e819349c31f7d9331ed5c50d1e741208d938dd5f38b29cab2275e languageName: node linkType: hard @@ -11279,7 +11202,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9": +"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -11304,7 +11227,7 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^10.1.0, node-gyp@npm:latest": +"node-gyp@npm:^10.2.0, node-gyp@npm:latest": version: 10.2.0 resolution: "node-gyp@npm:10.2.0" dependencies: @@ -12238,9 +12161,9 @@ __metadata: linkType: hard "preact@npm:^10.6.3": - version: 10.23.1 - resolution: "preact@npm:10.23.1" - checksum: 10c0/f0eb37999bfa9cbc725e57e189387c77919fa05d17cdc3c4ff41660298805159867689f1d974eb8e6496288c0212760490d0e6f1c12022e0f5a74d06cc618e85 + version: 10.23.2 + resolution: "preact@npm:10.23.2" + checksum: 10c0/6e0dc1b38ead7554c99ddec9a32162b456e8f622229413b136042a777445a12d115633cd49d6df83c30b64d721a0ad4d3c71bb468edc759c15799896e96fd9f2 languageName: node linkType: hard @@ -12397,8 +12320,8 @@ __metadata: linkType: hard "protobufjs@npm:^7.2.5, protobufjs@npm:^7.2.6, protobufjs@npm:^7.3.2": - version: 7.3.2 - resolution: "protobufjs@npm:7.3.2" + version: 7.4.0 + resolution: "protobufjs@npm:7.4.0" dependencies: "@protobufjs/aspromise": "npm:^1.1.2" "@protobufjs/base64": "npm:^1.1.2" @@ -12412,7 +12335,7 @@ __metadata: "@protobufjs/utf8": "npm:^1.1.0" "@types/node": "npm:>=13.7.0" long: "npm:^5.0.0" - checksum: 10c0/b87e38fffc989793099010439a7ff45a0a57ef5b8f44b5209f06bfa5085ac96a365aa37eb3c79bd6954d6ef1b50fc69da37dae8ea2a31d90b7bc8fb2fa0e3955 + checksum: 10c0/a5460a63fe596523b9a067cbce39a6b310d1a71750fda261f076535662aada97c24450e18c5bc98a27784f70500615904ff1227e1742183509f0db4fdede669b languageName: node linkType: hard @@ -12602,13 +12525,13 @@ __metadata: linkType: hard "re2@npm:^1.17.7": - version: 1.21.3 - resolution: "re2@npm:1.21.3" + version: 1.21.4 + resolution: "re2@npm:1.21.4" dependencies: install-artifact-from-github: "npm:^1.3.5" nan: "npm:^2.20.0" - node-gyp: "npm:^10.1.0" - checksum: 10c0/e3c6c51524de93aac07bd24d7b8fa77663b02474f686cb5c035327d3126a7c4cf2214f792399270d1761f1b53f3aac84b7d3289fe49adfc32643c4f5d67234d6 + node-gyp: "npm:^10.2.0" + checksum: 10c0/729d2c190aa94d4f80e3492d259bff3fa0ec8232b78f9b5effa84d71ab734da856f2209af47dd1382bffe3720704a7de9096e3d34c88933f7d1257d5531c276e languageName: node linkType: hard @@ -13694,15 +13617,15 @@ __metadata: linkType: hard "sql-formatter@npm:^15.3.0": - version: 15.3.2 - resolution: "sql-formatter@npm:15.3.2" + version: 15.4.0 + resolution: "sql-formatter@npm:15.4.0" dependencies: argparse: "npm:^2.0.1" get-stdin: "npm:=8.0.0" nearley: "npm:^2.20.1" bin: sql-formatter: bin/sql-formatter-cli.cjs - checksum: 10c0/43c0284a1d81c621d1563db55ad02c462558881405c76bb0e195c6fc5d1021c0ae4862786f0c08934c48b6154e59a3d0c788fdaf1c7ae644aa3e941d0ed1d1de + checksum: 10c0/caa7048788296a37a521496087b52e62af2a33e056e81f3c5eed80c2616c83ccfb1bf857696c7beefe711f58dbce5f2f48d8343a90ef89606611164bb5374c14 languageName: node linkType: hard @@ -13808,8 +13731,8 @@ __metadata: linkType: hard "streamx@npm:^2.15.0": - version: 2.18.0 - resolution: "streamx@npm:2.18.0" + version: 2.19.0 + resolution: "streamx@npm:2.19.0" dependencies: bare-events: "npm:^2.2.0" fast-fifo: "npm:^1.3.2" @@ -13818,7 +13741,7 @@ __metadata: dependenciesMeta: bare-events: optional: true - checksum: 10c0/ef50f419252a73dd35abcde72329eafbf5ad9cd2e27f0cc3abebeff6e0dbea124ac6d3e16acbdf081cce41b4125393ac22f9848fcfa19e640830734883e622ba + checksum: 10c0/5833a2c1226488a015e8efde08c6cd4983d7d20098b2210d09594b23f598a8b028c083d542621e2e91ddcb33a266233c3524c60152203be40f1dd816b9ede9da languageName: node linkType: hard @@ -14123,12 +14046,12 @@ __metadata: linkType: hard "supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" + version: 3.1.0 + resolution: "supports-hyperlinks@npm:3.1.0" dependencies: has-flag: "npm:^4.0.0" supports-color: "npm:^7.0.0" - checksum: 10c0/36aaa55e67645dded8e0f846fd81d7dd05ce82ea81e62347f58d86213577eb627b2b45298656ce7a70e7155e39f071d0d3f83be91e112aed801ebaa8db1ef1d0 + checksum: 10c0/78cc3e17eb27e6846fa355a8ebf343befe36272899cd409e45317a06c1997e95c23ff99d91080a517bd8c96508d4fa456e6ceb338c02ba5d7544277dbec0f10f languageName: node linkType: hard @@ -14434,9 +14357,9 @@ __metadata: linkType: hard "tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3": - version: 2.6.3 - resolution: "tslib@npm:2.6.3" - checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 languageName: node linkType: hard @@ -14480,9 +14403,9 @@ __metadata: linkType: hard "type-fest@npm:^4.19.0": - version: 4.23.0 - resolution: "type-fest@npm:4.23.0" - checksum: 10c0/c42bb14e99329ab37983d1f188e307bf0cc705a23807d9b2268d8fb2ae781d610ac6e2058dde8f9ea2b1b8ddc77ceb578d157fa81f69f8f70aef1d42fb002996 + version: 4.25.0 + resolution: "type-fest@npm:4.25.0" + checksum: 10c0/1187b30d74e72f4b0b44a3493d2c1c2a9dc46423961c8250bd1535e976c4b8afc3916f6b4b90d7f56ed5b2f36d1645b05c318b4915fe4909a8a66890bda1d68d languageName: node linkType: hard @@ -14603,17 +14526,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.13.0": - version: 6.13.0 - resolution: "undici-types@npm:6.13.0" - checksum: 10c0/2de55181f569c77a4f08063f8bf2722fcbb6ea312a26a9e927bd1f5ea5cf3a281c5ddf23155061db083e0a25838f54813543ff13b0ac34d230d5c1205ead66c1 - languageName: node - linkType: hard - "undici-types@npm:~6.19.2": - version: 6.19.6 - resolution: "undici-types@npm:6.19.6" - checksum: 10c0/9b2264c5700e7169c6c62c643aac56cd8984c5fd7e18ed31ff11780260e137f6340dee8317a2e6e0ae3c49f5e5ef6fa577ea07193cbaa535265cba76a267cae9 + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 languageName: node linkType: hard @@ -14779,15 +14695,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^10.0.0": - version: 10.0.0 - resolution: "uuid@npm:10.0.0" - bin: - uuid: dist/bin/uuid - checksum: 10c0/eab18c27fe4ab9fb9709a5d5f40119b45f2ec8314f8d4cf12ce27e4c6f4ffa4a6321dc7db6c515068fa373c075b49691ba969f0010bf37f44c37ca40cd6bf7fe - languageName: node - linkType: hard - "uuid@npm:^8.0.0, uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -15071,8 +14978,8 @@ __metadata: linkType: hard "winston@npm:^3.0.0": - version: 3.13.1 - resolution: "winston@npm:3.13.1" + version: 3.14.2 + resolution: "winston@npm:3.14.2" dependencies: "@colors/colors": "npm:^1.6.0" "@dabh/diagnostics": "npm:^2.0.2" @@ -15085,7 +14992,7 @@ __metadata: stack-trace: "npm:0.0.x" triple-beam: "npm:^1.3.0" winston-transport: "npm:^4.7.0" - checksum: 10c0/986a542f17b71935b88c14465939bf7eaf64d8d13c18792f74b0eb19b31abdaf472df92049a1d7882405076aba95de13cdb5b3243d0c04c4f9632fac85f57788 + checksum: 10c0/3f8fe505ea18310982e60452f335dd2b22fdbc9b25839b6ad882971b2416d5adc94a1f1a46e24cb37d967ad01dfe5499adaf5e53575626b5ebb2a25ff30f4e1d languageName: node linkType: hard From 8999f092f5647b85907847de8bffe39b0997c3f3 Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Sat, 24 Aug 2024 21:32:40 +0200 Subject: [PATCH 3/8] Remove local Note --- lib/actions/like.test.ts | 2 +- lib/actions/updateNote.ts | 9 +++------ lib/activities/actions/like.ts | 3 ++- lib/activities/actions/updateStatus.ts | 3 ++- lib/activities/entities/collection.ts | 3 ++- lib/activities/entities/featuredOrderedCollection.ts | 3 ++- lib/activities/entities/note.ts | 6 ++---- lib/activities/index.ts | 2 +- lib/models/status.test.ts | 2 +- lib/models/status.ts | 3 ++- lib/stub/note.ts | 2 +- lib/utils/getNoteFromStatusData.ts | 3 ++- 12 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/actions/like.test.ts b/lib/actions/like.test.ts index 4815cf15..7d907158 100644 --- a/lib/actions/like.test.ts +++ b/lib/actions/like.test.ts @@ -1,6 +1,6 @@ +import { Note } from '@llun/activities.schema' import { enableFetchMocks } from 'jest-fetch-mock' -import { Note } from '../activities/entities/note' import { StatusType } from '../models/status' import { SqlStorage } from '../storage/sql' import { mockRequests } from '../stub/activities' diff --git a/lib/actions/updateNote.ts b/lib/actions/updateNote.ts index a3025a02..ed0e90eb 100644 --- a/lib/actions/updateNote.ts +++ b/lib/actions/updateNote.ts @@ -1,3 +1,5 @@ +import { Note } from '@llun/activities.schema' + import { compact } from '@/lib/utils/jsonld' import { ACTIVITY_STREAM_PUBLIC, @@ -6,12 +8,7 @@ import { } from '@/lib/utils/jsonld/activitystream' import { sendUpdateNote } from '../activities' -import { - Note, - NoteEntity, - getContent, - getSummary -} from '../activities/entities/note' +import { NoteEntity, getContent, getSummary } from '../activities/entities/note' import { Actor } from '../models/actor' import { StatusType } from '../models/status' import { Storage } from '../storage/types' diff --git a/lib/activities/actions/like.ts b/lib/activities/actions/like.ts index b3705587..6c518c6a 100644 --- a/lib/activities/actions/like.ts +++ b/lib/activities/actions/like.ts @@ -1,5 +1,6 @@ +import { Note } from '@llun/activities.schema' + import { ContextEntity } from '../entities/base' -import { Note } from '../entities/note' import { BaseActivity } from './base' export interface LikeStatus extends BaseActivity, ContextEntity { diff --git a/lib/activities/actions/updateStatus.ts b/lib/activities/actions/updateStatus.ts index d968d0fc..5a555307 100644 --- a/lib/activities/actions/updateStatus.ts +++ b/lib/activities/actions/updateStatus.ts @@ -1,5 +1,6 @@ +import { Note } from '@llun/activities.schema' + import { ContextEntity } from '../entities/base' -import { Note } from '../entities/note' import { Question } from '../entities/question' import { Signature } from '../types' import { BaseActivity } from './base' diff --git a/lib/activities/entities/collection.ts b/lib/activities/entities/collection.ts index 70d27a39..392069dc 100644 --- a/lib/activities/entities/collection.ts +++ b/lib/activities/entities/collection.ts @@ -1,5 +1,6 @@ +import { Note } from '@llun/activities.schema' + import { CollectionPage } from './collectionPage' -import { Note } from './note' export type Collection = | { diff --git a/lib/activities/entities/featuredOrderedCollection.ts b/lib/activities/entities/featuredOrderedCollection.ts index 32012b26..4150239f 100644 --- a/lib/activities/entities/featuredOrderedCollection.ts +++ b/lib/activities/entities/featuredOrderedCollection.ts @@ -1,5 +1,6 @@ +import { Note } from '@llun/activities.schema' + import { ContextEntity } from './base' -import { Note } from './note' export interface FeaturedOrderedCollection extends ContextEntity { id: string diff --git a/lib/activities/entities/note.ts b/lib/activities/entities/note.ts index 7f9e362c..049ca5f3 100644 --- a/lib/activities/entities/note.ts +++ b/lib/activities/entities/note.ts @@ -1,3 +1,5 @@ +import { Note } from '@llun/activities.schema' + import { ContextEntity } from './base' import { Collection } from './collection' import { Document } from './document' @@ -32,10 +34,6 @@ export interface BaseNote extends ContextEntity { replies?: Collection } -export interface Note extends BaseNote { - type: NoteEntity -} - export const getAttachments = (object: Note) => { if (!object.attachment) return [] if (Array.isArray(object.attachment)) return object.attachment diff --git a/lib/activities/index.ts b/lib/activities/index.ts index 53def68a..0c7addf7 100644 --- a/lib/activities/index.ts +++ b/lib/activities/index.ts @@ -1,3 +1,4 @@ +import { Note } from '@llun/activities.schema' import crypto from 'crypto' import { Actor, ActorProfile } from '@/lib/models/actor' @@ -38,7 +39,6 @@ import { UndoLike } from './actions/undoLike' import { UndoStatus } from './actions/undoStatus' import { UpdateStatus } from './actions/updateStatus' import { Image } from './entities/image' -import { Note } from './entities/note' import { OrderedCollection, getOrderCollectionFirstPage diff --git a/lib/models/status.test.ts b/lib/models/status.test.ts index 24f669ff..55219c6a 100644 --- a/lib/models/status.test.ts +++ b/lib/models/status.test.ts @@ -1,9 +1,9 @@ +import { Note } from '@llun/activities.schema' import fetchMock, { enableFetchMocks } from 'jest-fetch-mock' import { getISOTimeUTC } from '@/lib/utils/getISOTimeUTC' import { compact } from '@/lib/utils/jsonld' -import { Note } from '../activities/entities/note' import { SqlStorage } from '../storage/sql' import { mockRequests } from '../stub/activities' import { MockMastodonNote } from '../stub/note' diff --git a/lib/models/status.ts b/lib/models/status.ts index b582fe28..576ad76f 100644 --- a/lib/models/status.ts +++ b/lib/models/status.ts @@ -1,10 +1,11 @@ +import { Note } from '@llun/activities.schema' import { z } from 'zod' import { getISOTimeUTC } from '@/lib/utils/getISOTimeUTC' import { AnnounceStatus } from '../activities/actions/announceStatus' import { Document } from '../activities/entities/document' -import { Note, getContent, getSummary } from '../activities/entities/note' +import { getContent, getSummary } from '../activities/entities/note' import { Question, QuestionEntity } from '../activities/entities/question' import { ActorProfile } from './actor' import { Attachment, AttachmentData } from './attachment' diff --git a/lib/stub/note.ts b/lib/stub/note.ts index c1458e27..8c0225fa 100644 --- a/lib/stub/note.ts +++ b/lib/stub/note.ts @@ -1,3 +1,4 @@ +import { Note } from '@llun/activities.schema' import crypto from 'crypto' import { getISOTimeUTC } from '@/lib/utils/getISOTimeUTC' @@ -7,7 +8,6 @@ import { } from '@/lib/utils/jsonld/activitystream' import { Document } from '../activities/entities/document' -import { Note } from '../activities/entities/note' import { TEST_DOMAIN } from './const' import { ACTOR1_ID, seedActor1 } from './seed/actor1' diff --git a/lib/utils/getNoteFromStatusData.ts b/lib/utils/getNoteFromStatusData.ts index 057aa793..3acfc1b3 100644 --- a/lib/utils/getNoteFromStatusData.ts +++ b/lib/utils/getNoteFromStatusData.ts @@ -1,4 +1,5 @@ -import { Note } from '../activities/entities/note' +import { Note } from '@llun/activities.schema' + import { getConfig } from '../config' import { Attachment } from '../models/attachment' import { StatusData, StatusType } from '../models/status' From e6d0b964f8bc8d5787d7b010ad0a544c4dc59d22 Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Fri, 30 Aug 2024 19:15:02 +0200 Subject: [PATCH 4/8] Format logger output for GCP --- app/api/v1/accounts/outbox/route.ts | 5 +- app/api/v1/accounts/route.ts | 3 +- app/api/v1/queue/qstash/route.ts | 2 +- app/api/v2/media/route.ts | 5 +- app/api/well-known/node-info/2.0/route.ts | 3 +- lib/actions/createNote.ts | 11 +- lib/actions/updateNote.ts | 3 +- lib/activities/index.ts | 29 +- lib/config/index.ts | 11 +- lib/constants.ts | 2 +- lib/models/actor.ts | 3 +- lib/services/guards/OAuthGuard.ts | 4 +- lib/services/medias/localFile.ts | 5 +- lib/services/queue/qstash.ts | 43 ++- lib/services/queue/type.ts | 10 +- lib/storage/firestore.ts | 8 +- lib/utils/logger.ts | 43 ++- package.json | 35 +- yarn.lock | 425 +++++++++++++--------- 19 files changed, 414 insertions(+), 236 deletions(-) diff --git a/app/api/v1/accounts/outbox/route.ts b/app/api/v1/accounts/outbox/route.ts index 45de1aa0..098418ab 100644 --- a/app/api/v1/accounts/outbox/route.ts +++ b/app/api/v1/accounts/outbox/route.ts @@ -2,6 +2,7 @@ import { createNoteFromUserInput } from '@/lib/actions/createNote' import { deleteStatusFromUserInput } from '@/lib/actions/deleteStatus' import { AuthenticatedGuard } from '@/lib/services/guards/AuthenticatedGuard' import { HttpMethod } from '@/lib/utils/getCORSHeaders' +import { logger } from '@/lib/utils/logger' import { DEFAULT_202, apiErrorResponse, @@ -47,8 +48,8 @@ export const POST = AuthenticatedGuard(async (req, context) => { } } catch (error) { const nodeError = error as NodeJS.ErrnoException - console.error(nodeError.message) - console.error(nodeError.stack) + logger.error(nodeError.message) + logger.error(nodeError.stack) return apiErrorResponse(400) } }) diff --git a/app/api/v1/accounts/route.ts b/app/api/v1/accounts/route.ts index e8187523..3cf0ceb7 100644 --- a/app/api/v1/accounts/route.ts +++ b/app/api/v1/accounts/route.ts @@ -7,6 +7,7 @@ import { sendMail } from '@/lib/services/email' import { getRedirectUrl } from '@/lib/services/guards/getRedirectUrl' import { getStorage } from '@/lib/storage' import { HttpMethod } from '@/lib/utils/getCORSHeaders' +import { logger } from '@/lib/utils/logger' import { apiErrorResponse, apiResponse, @@ -127,7 +128,7 @@ export const POST = async (request: NextRequest) => { } }) } catch { - console.error(`Fail to send email to ${form.email}`) + logger.error(`Fail to send email to ${form.email}`) } } diff --git a/app/api/v1/queue/qstash/route.ts b/app/api/v1/queue/qstash/route.ts index 7b4fdb97..536f1352 100644 --- a/app/api/v1/queue/qstash/route.ts +++ b/app/api/v1/queue/qstash/route.ts @@ -35,6 +35,6 @@ export const POST = async (request: NextRequest) => { } } catch { return apiErrorResponse(400) - } +} return apiResponse(request, ['POST'], {}) } diff --git a/app/api/v2/media/route.ts b/app/api/v2/media/route.ts index eba812cd..e95b9157 100644 --- a/app/api/v2/media/route.ts +++ b/app/api/v2/media/route.ts @@ -1,6 +1,7 @@ import { AuthenticatedGuard } from '@/lib/services/guards/AuthenticatedGuard' import { saveMedia } from '@/lib/services/medias' import { MediaSchema } from '@/lib/services/medias/types' +import { logger } from '@/lib/utils/logger' import { apiErrorResponse } from '@/lib/utils/response' export const POST = AuthenticatedGuard(async (req, context) => { @@ -13,8 +14,8 @@ export const POST = AuthenticatedGuard(async (req, context) => { return Response.json(response) } catch (e) { const nodeErr = e as NodeJS.ErrnoException - console.error(nodeErr.message) - console.error(nodeErr.stack) + logger.error(nodeErr.message) + logger.error(nodeErr.stack) return apiErrorResponse(422) } }) diff --git a/app/api/well-known/node-info/2.0/route.ts b/app/api/well-known/node-info/2.0/route.ts index 1a3a1e41..5385e523 100644 --- a/app/api/well-known/node-info/2.0/route.ts +++ b/app/api/well-known/node-info/2.0/route.ts @@ -1,4 +1,5 @@ import { getConfig } from '@/lib/config' +import { VERSION } from '@/lib/constants' export const dynamic = 'force-dynamic' @@ -103,7 +104,7 @@ export const GET = async () => { openRegistrations: false, protocols: ['activitypub'], services: { inbound: [], outbound: [] }, - software: { name: 'mastodon', version: 'activities.next-0.1.5' }, + software: { name: 'mastodon', version: `activities.next-${VERSION}` }, usage: { localPosts: 150, users: { total: 1 } }, version: '2.0' }) diff --git a/lib/actions/createNote.ts b/lib/actions/createNote.ts index aa4d1f60..a67a3010 100644 --- a/lib/actions/createNote.ts +++ b/lib/actions/createNote.ts @@ -1,5 +1,6 @@ import { Note } from '@llun/activities.schema' import crypto from 'crypto' +import { z } from 'zod' import { addStatusToTimelines } from '@/lib/services/timelines' import { compact } from '@/lib/utils/jsonld' @@ -25,11 +26,19 @@ import { Status, StatusType } from '../models/status' import { Storage } from '../storage/types' import { invalidate } from '../utils/cache' import { getNoteFromStatusData } from '../utils/getNoteFromStatusData' +import { logger } from '../utils/logger' import { UNFOLLOW_NETWORK_ERROR_CODES } from '../utils/response' import { getMentions } from '../utils/text/getMentions' import { getSpan } from '../utils/trace' import { recordActorIfNeeded } from './utils' +export const CREATE_NOTE_JOB_NAME = 'CreateNoteJob' +export const CreateNoteJobMessage = z.object({ + name: z.literal(CREATE_NOTE_JOB_NAME), + data: Note +}) +export type CreateNoteJobMessage = z.infer + interface CreateNoteParams { note: Note storage: Storage @@ -266,7 +275,7 @@ export const createNoteFromUserInput = async ({ note: note as Note }) } catch (e) { - console.error(`Fail to send note to ${inbox}`) + logger.error(`Fail to send note to ${inbox}`) const nodeError = e as NodeJS.ErrnoException if (UNFOLLOW_NETWORK_ERROR_CODES.includes(nodeError.code ?? '')) { const follows = await storage.getLocalFollowsFromInboxUrl({ diff --git a/lib/actions/updateNote.ts b/lib/actions/updateNote.ts index ed0e90eb..c029803e 100644 --- a/lib/actions/updateNote.ts +++ b/lib/actions/updateNote.ts @@ -12,6 +12,7 @@ import { NoteEntity, getContent, getSummary } from '../activities/entities/note' import { Actor } from '../models/actor' import { StatusType } from '../models/status' import { Storage } from '../storage/types' +import { logger } from '../utils/logger' import { getSpan } from '../utils/trace' interface UpdateNoteParams { @@ -123,7 +124,7 @@ export const updateNoteFromUserInput = async ({ status: updatedStatus }) } catch { - console.error(`Fail to update note to ${inbox}`) + logger.error(`Fail to update note to ${inbox}`) } }) ]) diff --git a/lib/activities/index.ts b/lib/activities/index.ts index 0c7addf7..0edbccb0 100644 --- a/lib/activities/index.ts +++ b/lib/activities/index.ts @@ -21,6 +21,7 @@ import { signedHeaders } from '@/lib/utils/signature' import { getSpan } from '@/lib/utils/trace' import { getNoteFromStatusData } from '../utils/getNoteFromStatusData' +import { logger } from '../utils/logger' import { AcceptFollow } from './actions/acceptFollow' import { AnnounceStatus } from './actions/announceStatus' import { CreateStatus } from './actions/createStatus' @@ -73,7 +74,7 @@ export const getWebfingerSelf = async (account: string) => { } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[getWebfingerSelf] ${nodeError.message}`) + logger.error(`[getWebfingerSelf] ${nodeError.message}`) return null } finally { span.end() @@ -240,7 +241,7 @@ export const getPublicProfile = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[getPublicProfile] ${nodeError.message}`) + logger.error(`[getPublicProfile] ${nodeError.message}`) return null } finally { span.end() @@ -337,7 +338,7 @@ export const getActorPosts = async ({ postsUrl }: GetActorPostsParams) => { } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[getActorPosts] ${nodeError.message}`) + logger.error(`[getActorPosts] ${nodeError.message}`) return [] } finally { span.end() @@ -363,7 +364,7 @@ export const getStatus = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[getStatus] ${nodeError.message}`) + logger.error(`[getStatus] ${nodeError.message}`) return null } finally { span.end() @@ -408,7 +409,7 @@ export const sendNote = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[sendNote] ${nodeError.message}`) + logger.error(`[sendNote] ${nodeError.message}`) } finally { span.end() } @@ -459,7 +460,7 @@ export const sendUpdateNote = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[sendUpdateNote] ${nodeError.message}`) + logger.error(`[sendUpdateNote] ${nodeError.message}`) } finally { span.end() } @@ -507,7 +508,7 @@ export const sendAnnounce = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[sendAnnounce] ${nodeError.message}`) + logger.error(`[sendAnnounce] ${nodeError.message}`) } finally { span.end() } @@ -552,7 +553,7 @@ export const deleteStatus = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[deleteStatus] ${nodeError.message}`) + logger.error(`[deleteStatus] ${nodeError.message}`) } finally { span.end() } @@ -602,7 +603,7 @@ export const undoAnnounce = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[undoAnnounce] ${nodeError.message}`) + logger.error(`[undoAnnounce] ${nodeError.message}`) } finally { span.end() } @@ -652,7 +653,7 @@ export const follow = async ( } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[follow] ${nodeError.message}`) + logger.error(`[follow] ${nodeError.message}`) return false } finally { span.end() @@ -703,7 +704,7 @@ export const unfollow = async (currentActor: Actor, follow: Follow) => { } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[unfollow] ${nodeError.message}`) + logger.error(`[unfollow] ${nodeError.message}`) return false } finally { span.end() @@ -751,7 +752,7 @@ export const acceptFollow = async ( } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[acceptFollow] ${nodeError.message}`) + logger.error(`[acceptFollow] ${nodeError.message}`) return false } finally { span.end() @@ -799,7 +800,7 @@ export const sendLike = async ({ currentActor, status }: LikeParams) => { } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[sendLike] ${nodeError.message}`) + logger.error(`[sendLike] ${nodeError.message}`) } finally { span.end() } @@ -851,7 +852,7 @@ export const sendUndoLike = async ({ } catch (error) { const nodeError = error as NodeJS.ErrnoException span.recordException(nodeError) - console.error(`[sendUndoLike] ${nodeError.message}`) + logger.error(`[sendUndoLike] ${nodeError.message}`) } finally { span.end() } diff --git a/lib/config/index.ts b/lib/config/index.ts index b081ce96..a971c52f 100644 --- a/lib/config/index.ts +++ b/lib/config/index.ts @@ -7,6 +7,7 @@ import { z } from 'zod' import { LambdaConfig } from '../services/email/lambda' import { ResendConfig } from '../services/email/resend' import { SMTPConfig } from '../services/email/smtp' +import { logger } from '../utils/logger' import { AuthConfig, getAuthConfig } from './auth' import { DatabaseConfig, getDatabaseConfig } from './database' import { InternalApiConfig, getInternalApiConfig } from './internalApi' @@ -53,9 +54,8 @@ const getConfigFromFile = () => { return null } - console.error('Invalid file config') - console.error(nodeError.message) - console.error(nodeError.stack) + logger.error('Invalid file config') + logger.error(nodeError) return null } } @@ -87,9 +87,8 @@ const getConfigFromEnvironment = () => { } const nodeErr = error as NodeJS.ErrnoException - console.error('Invalid environment config') - console.error(nodeErr.message) - console.error(nodeErr.stack) + logger.error('Invalid environment config') + logger.error(nodeErr) return null } } diff --git a/lib/constants.ts b/lib/constants.ts index e1a80d4f..f920537e 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -5,6 +5,6 @@ export const FORWARDED_HOST = 'x-forwarded-host' export const CACHE_NAMESPACE_ACTORS = 'actors' export const CACHE_KEY_PREFIX_ACTOR = 'actor_cache' -export const VERSION = '0.1.5' +export const VERSION = '0.1.6' export const DEFAULT_OAUTH_TOKEN_LENGTH = 192 diff --git a/lib/models/actor.ts b/lib/models/actor.ts index 4f7589d7..3c727796 100644 --- a/lib/models/actor.ts +++ b/lib/models/actor.ts @@ -7,6 +7,7 @@ import { W3ID_URL } from '@/lib/utils/jsonld/w3id' import { PublicProfile } from '../activities' import { Image } from '../activities/entities/image' import { Person } from '../activities/entities/person' +import { logger } from '../utils/logger' import { Account } from './account' export const ActorProfile = z.object({ @@ -127,7 +128,7 @@ export class Actor { return `@${id}${Actor.getMentionHostnameFromId(actorId)}` } catch { - console.error(`Fail to split the actor id, (${JSON.stringify(actorId)})`) + logger.error(`Fail to split the actor id, (${JSON.stringify(actorId)})`) return actorId } } diff --git a/lib/services/guards/OAuthGuard.ts b/lib/services/guards/OAuthGuard.ts index ff9dc767..b95ce234 100644 --- a/lib/services/guards/OAuthGuard.ts +++ b/lib/services/guards/OAuthGuard.ts @@ -9,6 +9,7 @@ import { getConfig } from '@/lib/config' import { Actor } from '@/lib/models/actor' import { getStorage } from '@/lib/storage' import { Scope } from '@/lib/storage/types/oauth' +import { logger } from '@/lib/utils/logger' import { apiErrorResponse } from '@/lib/utils/response' import { AppRouterParams, AuthenticatedApiHandle } from './types' @@ -84,8 +85,7 @@ export const OAuthGuard = ) } catch (e) { const nodeErr = e as NodeJS.ErrnoException - console.error(nodeErr.message) - console.error(nodeErr.stack) + logger.error(nodeErr) return apiErrorResponse(500) } } diff --git a/lib/services/medias/localFile.ts b/lib/services/medias/localFile.ts index bf961248..704f11d4 100644 --- a/lib/services/medias/localFile.ts +++ b/lib/services/medias/localFile.ts @@ -8,6 +8,7 @@ import sharp from 'sharp' import { MediaStorageFileConfig } from '@/lib/config/mediaStorage' import { Actor } from '@/lib/models/actor' import { Storage } from '@/lib/storage/types' +import { logger } from '@/lib/utils/logger' import { MAX_HEIGHT, MAX_WIDTH } from './constants' import { extractVideoImage } from './extractVideoImage' @@ -57,8 +58,8 @@ export class LocalFileStorage implements MediaStorage { }) } catch (e) { const error = e as NodeJS.ErrnoException - console.error(error.message) - console.error(error.stack) + logger.error(error.message) + logger.error(error.stack) return null } } diff --git a/lib/services/queue/qstash.ts b/lib/services/queue/qstash.ts index 4989d392..842074de 100644 --- a/lib/services/queue/qstash.ts +++ b/lib/services/queue/qstash.ts @@ -1 +1,42 @@ -export class QStashQueue {} +import { Client } from '@upstash/qstash' + +import { CREATE_NOTE_JOB_NAME } from '@/lib/actions/createNote' +import { getConfig } from '@/lib/config' +import { logger } from '@/lib/utils/logger' + +import { JobMessage, Queue } from './type' + +export class QStashQueue implements Queue { + private _client: Client + private _url: string + + constructor() { + const config = getConfig() + if (config.queue?.type !== 'qstash') { + throw new Error('Invalid queue type') + } + + this._url = config.queue.url + this._client = new Client({ + token: config.queue.token + }) + } + + async publish(message: JobMessage): Promise { + await this._client.publishJSON({ + url: this._url, + message + }) + } + + async handle(message: JobMessage): Promise { + switch (message.name) { + case CREATE_NOTE_JOB_NAME: { + return + } + default: { + logger.error(`Unknown job name: ${message.name}`) + } + } + } +} diff --git a/lib/services/queue/type.ts b/lib/services/queue/type.ts index b9443f74..10322922 100644 --- a/lib/services/queue/type.ts +++ b/lib/services/queue/type.ts @@ -1,9 +1,11 @@ import { z } from 'zod' -export const QueueMessage = z.object({ - job: z.string() -}) +import { CreateNoteJobMessage } from '@/lib/actions/createNote' + +export const JobMessage = CreateNoteJobMessage +export type JobMessage = z.infer export interface Queue { - publish(): Promise + publish(message: JobMessage): Promise + handle(message: JobMessage): Promise } diff --git a/lib/storage/firestore.ts b/lib/storage/firestore.ts index 274521c8..dfd0f99e 100644 --- a/lib/storage/firestore.ts +++ b/lib/storage/firestore.ts @@ -26,6 +26,7 @@ import { Trace } from '@/lib/utils/trace' import { PER_PAGE_LIMIT } from '.' import { Tag, TagData } from '../models/tag' import { getISOTimeUTC } from '../utils/getISOTimeUTC' +import { logger } from '../utils/logger' import { CreateTimelineStatusParams, GetTimelineParams, Storage } from './types' import { CreateAccountParams, @@ -1275,10 +1276,7 @@ export class FirestoreStorage implements Storage { if (data.type === StatusType.enum.Announce) { if (!data.originalStatusId) { - console.error( - 'Announce status original status id is undefined', - data.id - ) + logger.error('Announce status original status id is undefined', data.id) return } @@ -1289,7 +1287,7 @@ export class FirestoreStorage implements Storage { if (!originalStatusData) return if (originalStatusData.type === StatusType.enum.Announce) { - console.error( + logger.error( 'Announce status announce another status', data.id, data.originalStatusId diff --git a/lib/utils/logger.ts b/lib/utils/logger.ts index f1032720..264d3dcf 100644 --- a/lib/utils/logger.ts +++ b/lib/utils/logger.ts @@ -1,7 +1,46 @@ -import pino from 'pino' +import pino, { Level } from 'pino' + +import { VERSION } from '../constants' + +const levelToSeverity: Record = { + trace: 'DEBUG', + debug: 'DEBUG', + info: 'INFO', + warn: 'WARNING', + error: 'ERROR', + fatal: 'CRITICAL' +} const logger = pino({ - enabled: process.env.NODE_ENV === 'production' + enabled: process.env.NODE_ENV === 'production', + base: { + serviceContext: { + service: 'activities.next', + version: VERSION + } + }, + messageKey: 'message', + formatters: { + level(label: string) { + const pinoLevel = label as Level + const severity = levelToSeverity[label] ?? 'INFO' + const typeProp = + pinoLevel === 'error' || pinoLevel === 'fatal' + ? { + '@type': + 'type.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent' + } + : {} + return { severity, ...typeProp } + }, + + log(object) { + const logObject = object as { err?: Error } + const stackTrace = logObject.err?.stack + const stackProp = stackTrace ? { stack_trace: stackTrace } : {} + return { ...object, ...stackProp } + } + } }) export { logger } diff --git a/package.json b/package.json index 05a748d9..958a66ab 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@aws-sdk/util-utf8-node": "^3.259.0", "@date-fns/utc": "^1.2.0", "@google-cloud/firestore": "^7.9.0", - "@jmondi/oauth2-server": "^4.0.1", + "@jmondi/oauth2-server": "^4.0.2", "@keyv/redis": "^3.0.1", "@llun/activities.schema": "^0.2.1", "@opentelemetry/api": "^1.9.0", @@ -36,15 +36,15 @@ "date-fns": "^3.6.0", "fluent-ffmpeg": "^2.1.3", "got": "14.4.2", - "html-react-parser": "^5.1.12", + "html-react-parser": "^5.1.15", "jsonld": "^8.3.2", "jsonwebtoken": "^9.0.2", "keyv": "^5.0.1", "knex": "3.1.0", "lodash": "^4.17.21", - "marked": "^14.0.0", + "marked": "^14.1.0", "mime-types": "^2.1.35", - "next": "14.2.6", + "next": "14.2.7", "next-auth": "4.24.7", "nodemailer": "^6.9.14", "peggy": "^4.0.3", @@ -59,12 +59,12 @@ "zod": "^3.23.8" }, "devDependencies": { - "@next/env": "^14.2.6", + "@next/env": "^14.2.7", "@swc-node/register": "^1.10.9", - "@swc/core": "1.7.18", + "@swc/core": "1.7.22", "@swc/jest": "^0.2.36", "@testing-library/jest-dom": "^6.5.0", - "@testing-library/react": "^16.0.0", + "@testing-library/react": "^16.0.1", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/bcrypt": "^5.0.2", "@types/content-type": "^1.1.8", @@ -74,25 +74,25 @@ "@types/jsonwebtoken": "^9", "@types/lodash": "^4.17.7", "@types/mime-types": "^2.1.4", - "@types/node": "^22.5.0", + "@types/node": "^22.5.1", "@types/nodemailer": "^6.4.15", - "@types/react": "18.3.4", + "@types/react": "18.3.5", "@types/react-dom": "18.3.0", "@types/react-modal": "^3.16.3", "@types/sanitize-html": "^2.13.0", - "@typescript-eslint/eslint-plugin": "^8.2.0", - "@typescript-eslint/parser": "^8.2.0", + "@typescript-eslint/eslint-plugin": "^8.3.0", + "@typescript-eslint/parser": "^8.3.0", "dotenv-flow": "^4.1.0", - "eslint": "^8.57.0", - "eslint-config-next": "14.2.6", + "eslint": "^9.9.1", + "eslint-config-next": "14.2.7", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^28.8.0", + "eslint-plugin-jest": "^28.8.1", "eslint-plugin-n": "^17.10.2", "eslint-plugin-promise": "^7.1.0", "eslint-plugin-unused-imports": "^4.1.3", - "firebase-tools": "^13.15.4", + "firebase-tools": "^13.16.0", "jest": "^29.7.0", "jest-extended": "^4.0.2", "jest-fetch-mock": "^3.0.3", @@ -100,5 +100,8 @@ "prettier": "3.3.3", "typescript": "^5.5.4" }, - "packageManager": "yarn@4.4.0" + "resolutions": { + "eslint": "^8.57.0" + }, + "packageManager": "yarn@4.4.1" } diff --git a/yarn.lock b/yarn.lock index 9b133f07..d26e1bc6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2026,14 +2026,14 @@ __metadata: languageName: node linkType: hard -"@jmondi/oauth2-server@npm:^4.0.1": - version: 4.0.1 - resolution: "@jmondi/oauth2-server@npm:4.0.1" +"@jmondi/oauth2-server@npm:^4.0.2": + version: 4.0.2 + resolution: "@jmondi/oauth2-server@npm:4.0.2" dependencies: jsonwebtoken: "npm:^9.0.2" ms: "npm:^2.1.3" uri-js: "npm:^4.4.1" - checksum: 10c0/dd59ae19a9ab12b2500d0d6b273b619168b5288ab84f807b08e4d6fac33571d6a0dcb618c6e14ef3cd96ecaee7fcb326f516120e879b4ea7822fabf828201f5a + checksum: 10c0/863be487aded03a61c9161d9fa9bd39f5b386c0f27dc00c6ac5bc2afed1f99e803fecb82bc6b6cb16dab2b250b1e38858e551d7b217c11b141201738ed1f093a languageName: node linkType: hard @@ -2150,81 +2150,81 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.2.6, @next/env@npm:^14.2.6": - version: 14.2.6 - resolution: "@next/env@npm:14.2.6" - checksum: 10c0/9217847e1beb087d4adf25052337712d29150ff7f29e31616dd059154a319c9a8170c3a6d6d273b7adadf568cc604a5c2d0379a15aa3c149c0f78441a514c31c +"@next/env@npm:14.2.7, @next/env@npm:^14.2.7": + version: 14.2.7 + resolution: "@next/env@npm:14.2.7" + checksum: 10c0/1cda023007acda4d47036a25fba0e039d9b2df9c3770651dc289207e0537506675546c02b5b574fe92bb1adc1c887d948d5cb630673aa572754278b82d150b7e languageName: node linkType: hard -"@next/eslint-plugin-next@npm:14.2.6": - version: 14.2.6 - resolution: "@next/eslint-plugin-next@npm:14.2.6" +"@next/eslint-plugin-next@npm:14.2.7": + version: 14.2.7 + resolution: "@next/eslint-plugin-next@npm:14.2.7" dependencies: glob: "npm:10.3.10" - checksum: 10c0/52ca55d98bb72a3bccaa08859036d312bc4936be00923bd8c6399472928e6d2b295f4e2f5f94bec30c8b9274f02bb170ee272b1242ca6cad3ae3d1b4a0ceb53e + checksum: 10c0/8ed20ef90e2bae29070e07bc312247b30ca1774d6d695c0f13513fda4c72a2d2a1f6fb6b277cb96a728504f7e7601157931c2e0607c15d88fa9007db4d89ca81 languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-darwin-arm64@npm:14.2.6" +"@next/swc-darwin-arm64@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-darwin-arm64@npm:14.2.7" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-darwin-x64@npm:14.2.6" +"@next/swc-darwin-x64@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-darwin-x64@npm:14.2.7" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-linux-arm64-gnu@npm:14.2.6" +"@next/swc-linux-arm64-gnu@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-linux-arm64-gnu@npm:14.2.7" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-linux-arm64-musl@npm:14.2.6" +"@next/swc-linux-arm64-musl@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-linux-arm64-musl@npm:14.2.7" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-linux-x64-gnu@npm:14.2.6" +"@next/swc-linux-x64-gnu@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-linux-x64-gnu@npm:14.2.7" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-linux-x64-musl@npm:14.2.6" +"@next/swc-linux-x64-musl@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-linux-x64-musl@npm:14.2.7" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-win32-arm64-msvc@npm:14.2.6" +"@next/swc-win32-arm64-msvc@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-win32-arm64-msvc@npm:14.2.7" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-win32-ia32-msvc@npm:14.2.6" +"@next/swc-win32-ia32-msvc@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-win32-ia32-msvc@npm:14.2.7" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:14.2.6": - version: 14.2.6 - resolution: "@next/swc-win32-x64-msvc@npm:14.2.6" +"@next/swc-win32-x64-msvc@npm:14.2.7": + version: 14.2.7 + resolution: "@next/swc-win32-x64-msvc@npm:14.2.7" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3291,90 +3291,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-darwin-arm64@npm:1.7.18" +"@swc/core-darwin-arm64@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-darwin-arm64@npm:1.7.22" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-darwin-x64@npm:1.7.18" +"@swc/core-darwin-x64@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-darwin-x64@npm:1.7.22" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.18" +"@swc/core-linux-arm-gnueabihf@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.22" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.18" +"@swc/core-linux-arm64-gnu@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.22" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.18" +"@swc/core-linux-arm64-musl@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.22" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.18" +"@swc/core-linux-x64-gnu@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.22" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-x64-musl@npm:1.7.18" +"@swc/core-linux-x64-musl@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-linux-x64-musl@npm:1.7.22" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.18" +"@swc/core-win32-arm64-msvc@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.22" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.18" +"@swc/core-win32-ia32-msvc@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.22" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.18" +"@swc/core-win32-x64-msvc@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.22" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core@npm:1.7.18" +"@swc/core@npm:1.7.22": + version: 1.7.22 + resolution: "@swc/core@npm:1.7.22" dependencies: - "@swc/core-darwin-arm64": "npm:1.7.18" - "@swc/core-darwin-x64": "npm:1.7.18" - "@swc/core-linux-arm-gnueabihf": "npm:1.7.18" - "@swc/core-linux-arm64-gnu": "npm:1.7.18" - "@swc/core-linux-arm64-musl": "npm:1.7.18" - "@swc/core-linux-x64-gnu": "npm:1.7.18" - "@swc/core-linux-x64-musl": "npm:1.7.18" - "@swc/core-win32-arm64-msvc": "npm:1.7.18" - "@swc/core-win32-ia32-msvc": "npm:1.7.18" - "@swc/core-win32-x64-msvc": "npm:1.7.18" + "@swc/core-darwin-arm64": "npm:1.7.22" + "@swc/core-darwin-x64": "npm:1.7.22" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.22" + "@swc/core-linux-arm64-gnu": "npm:1.7.22" + "@swc/core-linux-arm64-musl": "npm:1.7.22" + "@swc/core-linux-x64-gnu": "npm:1.7.22" + "@swc/core-linux-x64-musl": "npm:1.7.22" + "@swc/core-win32-arm64-msvc": "npm:1.7.22" + "@swc/core-win32-ia32-msvc": "npm:1.7.22" + "@swc/core-win32-x64-msvc": "npm:1.7.22" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.12" peerDependencies: @@ -3403,7 +3403,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/4b81421353d2405eacb08e383e57e15cb8852b90f0b1acd799263d9073fb0e595a2d4878547ef82d95986ea39e49a7d48fee34d5b70e9b3fc7c99e64df9bc922 + checksum: 10c0/9906cdfc7c3fd8a23ea561bd2eda390bb552fe689bb36e8cdef86dec30e1ca816f5ef697a1c32bfbfb21b9e10fccf5476d801e25a45f82d64427f2ab63f4ae66 languageName: node linkType: hard @@ -3470,9 +3470,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/react@npm:^16.0.0": - version: 16.0.0 - resolution: "@testing-library/react@npm:16.0.0" +"@testing-library/react@npm:^16.0.1": + version: 16.0.1 + resolution: "@testing-library/react@npm:16.0.1" dependencies: "@babel/runtime": "npm:^7.12.5" peerDependencies: @@ -3486,7 +3486,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/297f97bf4722dad05f11d9cafd47d387dbdb096fea4b79b876c7466460f0f2e345b55b81b3e37fc81ed8185c528cb53dd8455ca1b6b019b229edf6c796f11c9f + checksum: 10c0/67d05dec5ad5a2e6f92b6a3234af785435c7bb62bdbf12f3bfc89c9bca0c871a189e88c4ba023ed4cea504704c87c6ac7e86e24a3962df6c521ae89b62f48ff7 languageName: node linkType: hard @@ -3722,7 +3722,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^22.5.0": +"@types/node@npm:*, @types/node@npm:>=13.7.0": version: 22.5.0 resolution: "@types/node@npm:22.5.0" dependencies: @@ -3731,6 +3731,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.5.1": + version: 22.5.1 + resolution: "@types/node@npm:22.5.1" + dependencies: + undici-types: "npm:~6.19.2" + checksum: 10c0/35373176d8a1d4e16004a1ed303e68d39e4c6341024dc056f2577982df98c1a045a6b677f12ed557796f09bbf7d621f428f6874cc37ed28f7b336fa604b5f6a6 + languageName: node + linkType: hard + "@types/nodemailer@npm:^6.4.15": version: 6.4.15 resolution: "@types/nodemailer@npm:6.4.15" @@ -3765,7 +3774,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:18.3.4": +"@types/react@npm:*": version: 18.3.4 resolution: "@types/react@npm:18.3.4" dependencies: @@ -3775,6 +3784,16 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:18.3.5": + version: 18.3.5 + resolution: "@types/react@npm:18.3.5" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10c0/548b1d3d7c2f0242fbfdbbd658731b4ce69a134be072fa83e6ab516f2840402a3f20e3e7f72e95133b23d4880ef24a6d864050dc8e1f7c68f39fa87ca8445917 + languageName: node + linkType: hard + "@types/request@npm:^2.48.8": version: 2.48.12 resolution: "@types/request@npm:2.48.12" @@ -3833,15 +3852,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.2.0" +"@typescript-eslint/eslint-plugin@npm:^8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.3.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.2.0" - "@typescript-eslint/type-utils": "npm:8.2.0" - "@typescript-eslint/utils": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/type-utils": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -3852,7 +3871,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/17243ee1b34d78723fe3e1a308c64490eee49bd83301e3abe8a6f05bce05434d70f56caf75756b8cffa051154dc89cdf485114ede6781fc087f0aaca37a026ec + checksum: 10c0/d5242b16b8602ab5817cf04b35ac7208b6bee530730eeed6eab886667d1f2c5fac1537b3e33c453393090a1c6fcd50f727c07f5168985a00e7d23d1f99576988 languageName: node linkType: hard @@ -3874,21 +3893,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/parser@npm:8.2.0" +"@typescript-eslint/parser@npm:^8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/parser@npm:8.3.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.2.0" - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/typescript-estree": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bb4ebc0a40b5e68c5287de17af3acf3045e2ef7886ebee8d1c4a6fd07bd6d55e9fc12bc7b89d07d15a2a4182cbf6380b50ad148d4a37e93d2e54930aa386a3bf + checksum: 10c0/8185e7f1f570cded8719cfb1e8147fcbbc5b8796de628d68024d2929ce6fb02d1f6101b741161229e877be1c30c720701e1e1f7c4313dba33d4bb1190a85f705 languageName: node linkType: hard @@ -3912,18 +3931,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/type-utils@npm:8.2.0" +"@typescript-eslint/scope-manager@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/scope-manager@npm:8.3.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.2.0" - "@typescript-eslint/utils": "npm:8.2.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" + checksum: 10c0/24d093505d444a07db88f9ab44af04eb738ce523ac3f98b0a641cf3a3ee38d18aff9f72bbf2b2e2d9f45e57c973f31016f1e224cd8ab773f6e7c3477c5a09ad3 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/type-utils@npm:8.3.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/5ff387d39fec3ba47af167ca3e48a200f87e4b97b010170245f495cd3d2e30fd0a5b2a9b27aae2ae929c99f92acabcd07315944dc6f9de963bad1c61ba9ea53c + checksum: 10c0/0e4b42ff2bfcd1727893bb7fe5fcf1aa808b45b5f690c249c68ce7aff68ddfba3d8b1565de2f08972915df23fa7ab114c09f507668e9b0b63faf1e34a5091706 languageName: node linkType: hard @@ -3941,6 +3970,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/types@npm:8.3.0" + checksum: 10c0/5cd733af7ffa0cdaa5842f6c5e275b3a5c9b98dc49bf1bb9df1f0b51d346bef2a10a827d886f60492d502218a272e935cef50b4f7c69100217d5b10a2499c7b1 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" @@ -3979,7 +4015,40 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.2.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": +"@typescript-eslint/typescript-estree@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.3.0" + dependencies: + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/dd73aa1a9d7b5c7e6238e766e6ecdb6d87a9b28a24815258b7bbdc59c49fb525d3fe15d9b7c672e2220678f9d5fabdd9615e4cd5ee97a102fd46023ec0735d50 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/utils@npm:8.3.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + checksum: 10c0/e4e9e820cf4b4775bb66b2293a2a827897edaba88577b63df317b50752a01d542be521cc4842976fbbd93e08b9e273ce9d20e23768d06de68a83d68cc0f68a93 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.2.0 resolution: "@typescript-eslint/utils@npm:8.2.0" dependencies: @@ -4013,6 +4082,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.3.0" + dependencies: + "@typescript-eslint/types": "npm:8.3.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10c0/4c19216636f2cc25026fe20d2832d857f05c262eba78bc4159121c696199e44cac68443565959f9336372f7686a14b452867300cf4deb3c0507b8dbde88ac0e6 + languageName: node + linkType: hard + "@ungap/structured-clone@npm:^1.2.0": version: 1.2.0 resolution: "@ungap/structured-clone@npm:1.2.0" @@ -4165,16 +4244,16 @@ __metadata: "@aws-sdk/util-utf8-node": "npm:^3.259.0" "@date-fns/utc": "npm:^1.2.0" "@google-cloud/firestore": "npm:^7.9.0" - "@jmondi/oauth2-server": "npm:^4.0.1" + "@jmondi/oauth2-server": "npm:^4.0.2" "@keyv/redis": "npm:^3.0.1" "@llun/activities.schema": "npm:^0.2.1" - "@next/env": "npm:^14.2.6" + "@next/env": "npm:^14.2.7" "@opentelemetry/api": "npm:^1.9.0" "@swc-node/register": "npm:^1.10.9" - "@swc/core": "npm:1.7.18" + "@swc/core": "npm:1.7.22" "@swc/jest": "npm:^0.2.36" "@testing-library/jest-dom": "npm:^6.5.0" - "@testing-library/react": "npm:^16.0.0" + "@testing-library/react": "npm:^16.0.1" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@types/bcrypt": "npm:^5.0.2" "@types/content-type": "npm:^1.1.8" @@ -4184,14 +4263,14 @@ __metadata: "@types/jsonwebtoken": "npm:^9" "@types/lodash": "npm:^4.17.7" "@types/mime-types": "npm:^2.1.4" - "@types/node": "npm:^22.5.0" + "@types/node": "npm:^22.5.1" "@types/nodemailer": "npm:^6.4.15" - "@types/react": "npm:18.3.4" + "@types/react": "npm:18.3.5" "@types/react-dom": "npm:18.3.0" "@types/react-modal": "npm:^3.16.3" "@types/sanitize-html": "npm:^2.13.0" - "@typescript-eslint/eslint-plugin": "npm:^8.2.0" - "@typescript-eslint/parser": "npm:^8.2.0" + "@typescript-eslint/eslint-plugin": "npm:^8.3.0" + "@typescript-eslint/parser": "npm:^8.3.0" "@upstash/qstash": "npm:^2.6.5" bcrypt: "npm:^5.1.1" better-sqlite3: "npm:^11.2.1" @@ -4201,19 +4280,19 @@ __metadata: content-type: "npm:^1.0.5" date-fns: "npm:^3.6.0" dotenv-flow: "npm:^4.1.0" - eslint: "npm:^8.57.0" - eslint-config-next: "npm:14.2.6" + eslint: "npm:^9.9.1" + eslint-config-next: "npm:14.2.7" eslint-config-prettier: "npm:^9.1.0" eslint-config-standard: "npm:^17.1.0" eslint-plugin-import: "npm:^2.29.1" - eslint-plugin-jest: "npm:^28.8.0" + eslint-plugin-jest: "npm:^28.8.1" eslint-plugin-n: "npm:^17.10.2" eslint-plugin-promise: "npm:^7.1.0" eslint-plugin-unused-imports: "npm:^4.1.3" - firebase-tools: "npm:^13.15.4" + firebase-tools: "npm:^13.16.0" fluent-ffmpeg: "npm:^2.1.3" got: "npm:14.4.2" - html-react-parser: "npm:^5.1.12" + html-react-parser: "npm:^5.1.15" jest: "npm:^29.7.0" jest-extended: "npm:^4.0.2" jest-fetch-mock: "npm:^3.0.3" @@ -4222,9 +4301,9 @@ __metadata: keyv: "npm:^5.0.1" knex: "npm:3.1.0" lodash: "npm:^4.17.21" - marked: "npm:^14.0.0" + marked: "npm:^14.1.0" mime-types: "npm:^2.1.35" - next: "npm:14.2.6" + next: "npm:14.2.7" next-auth: "npm:4.24.7" nodemailer: "npm:^6.9.14" peggy: "npm:^4.0.3" @@ -6778,11 +6857,11 @@ __metadata: languageName: node linkType: hard -"eslint-config-next@npm:14.2.6": - version: 14.2.6 - resolution: "eslint-config-next@npm:14.2.6" +"eslint-config-next@npm:14.2.7": + version: 14.2.7 + resolution: "eslint-config-next@npm:14.2.7" dependencies: - "@next/eslint-plugin-next": "npm:14.2.6" + "@next/eslint-plugin-next": "npm:14.2.7" "@rushstack/eslint-patch": "npm:^1.3.3" "@typescript-eslint/parser": "npm:^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0" eslint-import-resolver-node: "npm:^0.3.6" @@ -6797,7 +6876,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/3a1b46696fa70a6a8b0dfdbb528ac30f324ad548d36736ebb08b2dd96d085224c59dafcac35dbcb0148173b8cd7519126abcacfbee1ad829184581ffb20b1b8d + checksum: 10c0/dace8ca808ad2aeb0254fb8ca6c4705942fc0e5de16bb5b95b4d26a7a5c26910ca8513e708420d298f184ef8f245b158d46a1e92779ccb3b33b513951207d59d languageName: node linkType: hard @@ -6905,9 +6984,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^28.8.0": - version: 28.8.0 - resolution: "eslint-plugin-jest@npm:28.8.0" +"eslint-plugin-jest@npm:^28.8.1": + version: 28.8.1 + resolution: "eslint-plugin-jest@npm:28.8.1" dependencies: "@typescript-eslint/utils": "npm:^6.0.0 || ^7.0.0 || ^8.0.0" peerDependencies: @@ -6919,7 +6998,7 @@ __metadata: optional: true jest: optional: true - checksum: 10c0/cb702701c20224d813b7d7515ed3fe4562b92cd4233db356b0948e0765a382a9887ae7dfd13191c2cabecbb4a6cbbd141f309618830b251c8f86a7f950e7f50b + checksum: 10c0/340f5021e7eadfc6f3c1ad9378fafb9b1ead10f07636ba2e9d5ec0abd2f2604b4bc301cbb9658f84534962244958ac6a037bf8a6bd64e341542e3c5dccc2bc95 languageName: node linkType: hard @@ -7380,7 +7459,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -7567,9 +7646,9 @@ __metadata: languageName: node linkType: hard -"firebase-tools@npm:^13.15.4": - version: 13.15.4 - resolution: "firebase-tools@npm:13.15.4" +"firebase-tools@npm:^13.16.0": + version: 13.16.0 + resolution: "firebase-tools@npm:13.16.0" dependencies: "@google-cloud/cloud-sql-connector": "npm:^1.3.3" "@google-cloud/pubsub": "npm:^4.5.0" @@ -7639,7 +7718,7 @@ __metadata: yaml: "npm:^2.4.1" bin: firebase: lib/bin/firebase.js - checksum: 10c0/c401eff2fd8bd7eed7aa09230b7e16aa6c59c8c36346fa6d8700d06047e74648cb616f29afa69805e4a0280bea36d6ded3237b78c4091457f7d06fb83faccb27 + checksum: 10c0/4bf61119099630f6eefbb0b24fa5a456ceff0ba6814aa7c95b5b81a02fda4d2b366882487c7e225bbfb626df8450f4fdafa5a47f44badf3b773f5f4db6c0e793 languageName: node linkType: hard @@ -8372,13 +8451,13 @@ __metadata: languageName: node linkType: hard -"html-dom-parser@npm:5.0.9": - version: 5.0.9 - resolution: "html-dom-parser@npm:5.0.9" +"html-dom-parser@npm:5.0.10": + version: 5.0.10 + resolution: "html-dom-parser@npm:5.0.10" dependencies: domhandler: "npm:5.0.3" htmlparser2: "npm:9.1.0" - checksum: 10c0/d440520dbc1b2f295af70292d409435c89f5b5cb2f0d370722e76ddad473cb3ab750c4e4db2c3625ca4e469f5638a5aef716d31874c3b001d964cdbdcf090736 + checksum: 10c0/cc81f276cd90c4583a79eca13c4c29dfe5b049c06235f8259a007855f3f69cb30c44ee8ff7f7ac64114de6c7bc4ea47c394780a61b670e4b01814822e3f69b5e languageName: node linkType: hard @@ -8396,21 +8475,21 @@ __metadata: languageName: node linkType: hard -"html-react-parser@npm:^5.1.12": - version: 5.1.12 - resolution: "html-react-parser@npm:5.1.12" +"html-react-parser@npm:^5.1.15": + version: 5.1.15 + resolution: "html-react-parser@npm:5.1.15" dependencies: domhandler: "npm:5.0.3" - html-dom-parser: "npm:5.0.9" + html-dom-parser: "npm:5.0.10" react-property: "npm:2.0.2" - style-to-js: "npm:1.1.12" + style-to-js: "npm:1.1.13" peerDependencies: "@types/react": 0.14 || 15 || 16 || 17 || 18 react: 0.14 || 15 || 16 || 17 || 18 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/2979bfb5934d65608c7ceb50325b36a7901a674ee8ac3a765b08d61d5fd396870d9061aa6c63cf44291a566fc5bc451d80a9f9d92ef89ed5fef7e0a8036be9cd + checksum: 10c0/3edd063386b935c706a6d369c051d44bc6d7b6512b3c4c004ec5487bd9bf79eabe0a681c166db2348be7e9c85ed2cfa98e1a188c393cf1b42bdde60cca705fd0 languageName: node linkType: hard @@ -10612,12 +10691,12 @@ __metadata: languageName: node linkType: hard -"marked@npm:^14.0.0": - version: 14.0.0 - resolution: "marked@npm:14.0.0" +"marked@npm:^14.1.0": + version: 14.1.0 + resolution: "marked@npm:14.1.0" bin: marked: bin/marked.js - checksum: 10c0/57a47cb110f7b1a10f398b0a7236f9183aad2dcd5345ee73f2732b6387e585d04cef472bc655d2f84c542296be9728e179aebe3ed7f2f8666b8a0a9dae592876 + checksum: 10c0/85bb74e5514975093b2772e6844503b373f422edd4e8a5382549b7c06808c5fb7422d3314846f48d30acffdc2f935196ab8f44b47c24ce0d18a62b0376e6e3f0 languageName: node linkType: hard @@ -11093,20 +11172,20 @@ __metadata: languageName: node linkType: hard -"next@npm:14.2.6": - version: 14.2.6 - resolution: "next@npm:14.2.6" +"next@npm:14.2.7": + version: 14.2.7 + resolution: "next@npm:14.2.7" dependencies: - "@next/env": "npm:14.2.6" - "@next/swc-darwin-arm64": "npm:14.2.6" - "@next/swc-darwin-x64": "npm:14.2.6" - "@next/swc-linux-arm64-gnu": "npm:14.2.6" - "@next/swc-linux-arm64-musl": "npm:14.2.6" - "@next/swc-linux-x64-gnu": "npm:14.2.6" - "@next/swc-linux-x64-musl": "npm:14.2.6" - "@next/swc-win32-arm64-msvc": "npm:14.2.6" - "@next/swc-win32-ia32-msvc": "npm:14.2.6" - "@next/swc-win32-x64-msvc": "npm:14.2.6" + "@next/env": "npm:14.2.7" + "@next/swc-darwin-arm64": "npm:14.2.7" + "@next/swc-darwin-x64": "npm:14.2.7" + "@next/swc-linux-arm64-gnu": "npm:14.2.7" + "@next/swc-linux-arm64-musl": "npm:14.2.7" + "@next/swc-linux-x64-gnu": "npm:14.2.7" + "@next/swc-linux-x64-musl": "npm:14.2.7" + "@next/swc-win32-arm64-msvc": "npm:14.2.7" + "@next/swc-win32-ia32-msvc": "npm:14.2.7" + "@next/swc-win32-x64-msvc": "npm:14.2.7" "@swc/helpers": "npm:0.5.5" busboy: "npm:1.6.0" caniuse-lite: "npm:^1.0.30001579" @@ -11147,7 +11226,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 10c0/262cf21a179f394aedfae36724d3ece46f717d618beebfbb75986be7f4d6093a6cf183c36871462c16d1ec490fd0a765d1944d04d30e282b4cca41b71aaf8eea + checksum: 10c0/661ff5196f671d68ece76f3003d049848163cb21a946fe71673225e56f82726f647a1869085f010869a778e56dd601b9065221031823562aeb92026677f8a5fd languageName: node linkType: hard @@ -13952,12 +14031,12 @@ __metadata: languageName: node linkType: hard -"style-to-js@npm:1.1.12": - version: 1.1.12 - resolution: "style-to-js@npm:1.1.12" +"style-to-js@npm:1.1.13": + version: 1.1.13 + resolution: "style-to-js@npm:1.1.13" dependencies: style-to-object: "npm:1.0.6" - checksum: 10c0/4b03ac3cec5d0e4c2578513dfbae9861eb9fb56825bccfd64bddcdf067e66805d6f160b93d2985aad4198893940fa162c4c85c3969e13ba2662a5824231c009c + checksum: 10c0/ce1254c532cf7bd8c19b691349197ea28350aabfc9d3fa2c139a16aa7e43c49cfc12ac95ad48560210ad7c8ae089be63feba9e679d23b894f745e3c42375094d languageName: node linkType: hard From c86bae73db946c75f293e6f227d412af1c1665a7 Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Fri, 30 Aug 2024 19:32:40 +0200 Subject: [PATCH 5/8] Add simple queue implementation --- app/api/inbox/route.ts | 8 ++++++-- lib/config/queue.ts | 11 +---------- lib/services/queue/index.ts | 16 ++++++++++++++++ lib/services/queue/noqueue.ts | 28 ++++++++++++++++++++++++++++ lib/services/queue/qstash.ts | 33 +++++++++++++++++++++++---------- 5 files changed, 74 insertions(+), 22 deletions(-) create mode 100644 lib/services/queue/index.ts create mode 100644 lib/services/queue/noqueue.ts diff --git a/app/api/inbox/route.ts b/app/api/inbox/route.ts index 835cdcb1..cc52f3a7 100644 --- a/app/api/inbox/route.ts +++ b/app/api/inbox/route.ts @@ -1,5 +1,5 @@ import { announce } from '@/lib/actions/announce' -import { createNote } from '@/lib/actions/createNote' +import { CREATE_NOTE_JOB_NAME } from '@/lib/actions/createNote' import { createPoll } from '@/lib/actions/createPoll' import { updateNote } from '@/lib/actions/updateNote' import { updatePoll } from '@/lib/actions/updatePoll' @@ -14,6 +14,7 @@ import { import { NoteEntity } from '@/lib/activities/entities/note' import { QuestionEntity } from '@/lib/activities/entities/question' import { ActivityPubVerifySenderGuard } from '@/lib/services/guards/ActivityPubVerifyGuard' +import { getQueue } from '@/lib/services/queue' import { HttpMethod } from '@/lib/utils/getCORSHeaders' import { compact } from '@/lib/utils/jsonld' import { @@ -35,7 +36,10 @@ export const POST = ActivityPubVerifySenderGuard(async (request, context) => { case CreateAction: { switch (activity.object.type) { case NoteEntity: { - await createNote({ storage, note: activity.object }) + await getQueue().publish({ + name: CREATE_NOTE_JOB_NAME, + data: activity.object + }) break } case QuestionEntity: { diff --git a/lib/config/queue.ts b/lib/config/queue.ts index 85de153a..ae93b80c 100644 --- a/lib/config/queue.ts +++ b/lib/config/queue.ts @@ -1,17 +1,8 @@ import { z } from 'zod' +import { QStashConfig } from '../services/queue/qstash' import { matcher } from './utils' -const QStashConfig = z.object({ - type: z.literal('qstash'), - url: z.string().url(), - token: z.string(), - currentSigningKey: z.string(), - nextSigningKey: z.string(), - queueName: z.string() -}) -type QStashConfig = z.infer - export const QueueConfig = QStashConfig export type QueueConfig = z.infer diff --git a/lib/services/queue/index.ts b/lib/services/queue/index.ts new file mode 100644 index 00000000..7b650b99 --- /dev/null +++ b/lib/services/queue/index.ts @@ -0,0 +1,16 @@ +import { getConfig } from '@/lib/config' + +import { NoQueue } from './noqueue' +import { QStashQueue } from './qstash' + +export const getQueue = () => { + const config = getConfig() + switch (config.queue?.type) { + case 'qstash': { + return new QStashQueue(config.queue) + } + default: { + return new NoQueue() + } + } +} diff --git a/lib/services/queue/noqueue.ts b/lib/services/queue/noqueue.ts new file mode 100644 index 00000000..682a7189 --- /dev/null +++ b/lib/services/queue/noqueue.ts @@ -0,0 +1,28 @@ +import { CREATE_NOTE_JOB_NAME, createNote } from '@/lib/actions/createNote' +import { getStorage } from '@/lib/storage' +import { logger } from '@/lib/utils/logger' + +import { JobMessage, Queue } from './type' + +export class NoQueue implements Queue { + async publish(message: JobMessage): Promise { + await this.handle(message) + } + + async handle(message: JobMessage): Promise { + const storage = await getStorage() + if (!storage) { + throw new Error('Storage is not available') + } + + switch (message.name) { + case CREATE_NOTE_JOB_NAME: { + await createNote({ storage, note: message.data }) + return + } + default: { + logger.error(`Unknown job name: ${message.name}`) + } + } + } +} diff --git a/lib/services/queue/qstash.ts b/lib/services/queue/qstash.ts index 842074de..4d8c558a 100644 --- a/lib/services/queue/qstash.ts +++ b/lib/services/queue/qstash.ts @@ -1,24 +1,30 @@ import { Client } from '@upstash/qstash' +import { z } from 'zod' -import { CREATE_NOTE_JOB_NAME } from '@/lib/actions/createNote' -import { getConfig } from '@/lib/config' +import { CREATE_NOTE_JOB_NAME, createNote } from '@/lib/actions/createNote' +import { getStorage } from '@/lib/storage' import { logger } from '@/lib/utils/logger' import { JobMessage, Queue } from './type' +export const QStashConfig = z.object({ + type: z.literal('qstash'), + url: z.string().url(), + token: z.string(), + currentSigningKey: z.string(), + nextSigningKey: z.string(), + queueName: z.string() +}) +export type QStashConfig = z.infer + export class QStashQueue implements Queue { private _client: Client private _url: string - constructor() { - const config = getConfig() - if (config.queue?.type !== 'qstash') { - throw new Error('Invalid queue type') - } - - this._url = config.queue.url + constructor(config: QStashConfig) { + this._url = config.url this._client = new Client({ - token: config.queue.token + token: config.token }) } @@ -30,8 +36,15 @@ export class QStashQueue implements Queue { } async handle(message: JobMessage): Promise { + logger.debug('Handling message', message) + const storage = await getStorage() + if (!storage) { + throw new Error('Storage is not available') + } + switch (message.name) { case CREATE_NOTE_JOB_NAME: { + await createNote({ storage, note: message.data }) return } default: { From 4c82ec4ac95dcafa4d068320dd9a13d6f2c9224e Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Fri, 30 Aug 2024 19:42:05 +0200 Subject: [PATCH 6/8] Update log configuration --- app/api/v1/accounts/outbox/route.ts | 3 +-- app/api/v1/accounts/route.ts | 2 +- app/api/v2/media/route.ts | 3 +-- lib/actions/createNote.ts | 2 +- lib/actions/updateNote.ts | 2 +- lib/services/medias/localFile.ts | 3 +-- lib/services/queue/noqueue.ts | 1 + lib/services/queue/qstash.ts | 2 +- lib/utils/logger.ts | 3 ++- 9 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/api/v1/accounts/outbox/route.ts b/app/api/v1/accounts/outbox/route.ts index 098418ab..a638e53b 100644 --- a/app/api/v1/accounts/outbox/route.ts +++ b/app/api/v1/accounts/outbox/route.ts @@ -48,8 +48,7 @@ export const POST = AuthenticatedGuard(async (req, context) => { } } catch (error) { const nodeError = error as NodeJS.ErrnoException - logger.error(nodeError.message) - logger.error(nodeError.stack) + logger.error(nodeError) return apiErrorResponse(400) } }) diff --git a/app/api/v1/accounts/route.ts b/app/api/v1/accounts/route.ts index 3cf0ceb7..641c8902 100644 --- a/app/api/v1/accounts/route.ts +++ b/app/api/v1/accounts/route.ts @@ -128,7 +128,7 @@ export const POST = async (request: NextRequest) => { } }) } catch { - logger.error(`Fail to send email to ${form.email}`) + logger.error({ to: form.email }, `Fail to send email`) } } diff --git a/app/api/v2/media/route.ts b/app/api/v2/media/route.ts index e95b9157..940e23bb 100644 --- a/app/api/v2/media/route.ts +++ b/app/api/v2/media/route.ts @@ -14,8 +14,7 @@ export const POST = AuthenticatedGuard(async (req, context) => { return Response.json(response) } catch (e) { const nodeErr = e as NodeJS.ErrnoException - logger.error(nodeErr.message) - logger.error(nodeErr.stack) + logger.error(nodeErr) return apiErrorResponse(422) } }) diff --git a/lib/actions/createNote.ts b/lib/actions/createNote.ts index a67a3010..148a0fba 100644 --- a/lib/actions/createNote.ts +++ b/lib/actions/createNote.ts @@ -275,7 +275,7 @@ export const createNoteFromUserInput = async ({ note: note as Note }) } catch (e) { - logger.error(`Fail to send note to ${inbox}`) + logger.error({ inbox }, `Fail to send note`) const nodeError = e as NodeJS.ErrnoException if (UNFOLLOW_NETWORK_ERROR_CODES.includes(nodeError.code ?? '')) { const follows = await storage.getLocalFollowsFromInboxUrl({ diff --git a/lib/actions/updateNote.ts b/lib/actions/updateNote.ts index c029803e..3acdc31f 100644 --- a/lib/actions/updateNote.ts +++ b/lib/actions/updateNote.ts @@ -124,7 +124,7 @@ export const updateNoteFromUserInput = async ({ status: updatedStatus }) } catch { - logger.error(`Fail to update note to ${inbox}`) + logger.error({ inbox }, `Fail to update note`) } }) ]) diff --git a/lib/services/medias/localFile.ts b/lib/services/medias/localFile.ts index 704f11d4..4864b76e 100644 --- a/lib/services/medias/localFile.ts +++ b/lib/services/medias/localFile.ts @@ -58,8 +58,7 @@ export class LocalFileStorage implements MediaStorage { }) } catch (e) { const error = e as NodeJS.ErrnoException - logger.error(error.message) - logger.error(error.stack) + logger.error(error) return null } } diff --git a/lib/services/queue/noqueue.ts b/lib/services/queue/noqueue.ts index 682a7189..70cd32dd 100644 --- a/lib/services/queue/noqueue.ts +++ b/lib/services/queue/noqueue.ts @@ -10,6 +10,7 @@ export class NoQueue implements Queue { } async handle(message: JobMessage): Promise { + logger.debug({ message }, 'NoQueue Handling message') const storage = await getStorage() if (!storage) { throw new Error('Storage is not available') diff --git a/lib/services/queue/qstash.ts b/lib/services/queue/qstash.ts index 4d8c558a..59ccc079 100644 --- a/lib/services/queue/qstash.ts +++ b/lib/services/queue/qstash.ts @@ -36,7 +36,7 @@ export class QStashQueue implements Queue { } async handle(message: JobMessage): Promise { - logger.debug('Handling message', message) + logger.debug({ message }, 'QStash Handling message') const storage = await getStorage() if (!storage) { throw new Error('Storage is not available') diff --git a/lib/utils/logger.ts b/lib/utils/logger.ts index 264d3dcf..dafa6a02 100644 --- a/lib/utils/logger.ts +++ b/lib/utils/logger.ts @@ -12,7 +12,8 @@ const levelToSeverity: Record = { } const logger = pino({ - enabled: process.env.NODE_ENV === 'production', + enabled: true, + level: process.env.LOG_LEVEL ?? 'info', base: { serviceContext: { service: 'activities.next', From ff918e3f77c9bdb897565c4aab7cdbe273fef26a Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Fri, 30 Aug 2024 19:56:07 +0200 Subject: [PATCH 7/8] qstash v1 --- app/api/v1/queue/qstash/route.ts | 11 +++++++++-- lib/services/queue/qstash.ts | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/api/v1/queue/qstash/route.ts b/app/api/v1/queue/qstash/route.ts index 536f1352..d3eac6f4 100644 --- a/app/api/v1/queue/qstash/route.ts +++ b/app/api/v1/queue/qstash/route.ts @@ -4,6 +4,8 @@ import { NextRequest } from 'next/server' import { Config, getConfig } from '@/lib/config' import { headerHost } from '@/lib/services/guards/headerHost' +import { getQueue } from '@/lib/services/queue' +import { logger } from '@/lib/utils/logger' import { apiErrorResponse, apiResponse } from '@/lib/utils/response' const getReceiver = memoize( @@ -33,8 +35,13 @@ export const POST = async (request: NextRequest) => { if (!isValid) { return apiErrorResponse(400) } - } catch { + + const jsonBody = JSON.parse(body) + logger.debug({ body: jsonBody }, 'Received message from qstash') + await getQueue().handle(jsonBody) + } catch (e) { + logger.error(e) return apiErrorResponse(400) -} + } return apiResponse(request, ['POST'], {}) } diff --git a/lib/services/queue/qstash.ts b/lib/services/queue/qstash.ts index 59ccc079..f2c86d99 100644 --- a/lib/services/queue/qstash.ts +++ b/lib/services/queue/qstash.ts @@ -17,21 +17,28 @@ export const QStashConfig = z.object({ }) export type QStashConfig = z.infer +const MAX_JOB_TIMEOUT_SECONDS = 30 +const MAX_JOB_RETRIES = 0 + export class QStashQueue implements Queue { private _client: Client private _url: string + private _queueName: string constructor(config: QStashConfig) { this._url = config.url + this._queueName = config.queueName this._client = new Client({ token: config.token }) } async publish(message: JobMessage): Promise { - await this._client.publishJSON({ + await this._client.queue({ queueName: this._queueName }).enqueueJSON({ url: this._url, - message + body: message, + timeout: MAX_JOB_TIMEOUT_SECONDS, + retries: MAX_JOB_RETRIES }) } From edbd8debf9548fb08dd458493252318bbb1878d1 Mon Sep 17 00:00:00 2001 From: Maythee Anegboonlap Date: Fri, 30 Aug 2024 21:01:08 +0200 Subject: [PATCH 8/8] Fix build because of type --- yarn.lock | 451 +++++++++++++++++++++++------------------------------- 1 file changed, 194 insertions(+), 257 deletions(-) diff --git a/yarn.lock b/yarn.lock index d26e1bc6..621f3418 100644 --- a/yarn.lock +++ b/yarn.lock @@ -882,15 +882,15 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.4, @babel/generator@npm:^7.7.2": - version: 7.25.5 - resolution: "@babel/generator@npm:7.25.5" +"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6, @babel/generator@npm:^7.7.2": + version: 7.25.6 + resolution: "@babel/generator@npm:7.25.6" dependencies: - "@babel/types": "npm:^7.25.4" + "@babel/types": "npm:^7.25.6" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^2.5.1" - checksum: 10c0/eb8af30c39476e4f4d6b953f355fcf092258291f78d65fb759b7d5e5e6fd521b5bfee64a4e2e4290279f0dcd25ccf8c49a61807828b99b5830d2b734506da1fd + checksum: 10c0/f89282cce4ddc63654470b98086994d219407d025497f483eb03ba102086e11e2b685b27122f6ff2e1d93b5b5fa0c3a6b7e974fbf2e4a75b685041a746a4291e languageName: node linkType: hard @@ -1016,12 +1016,12 @@ __metadata: linkType: hard "@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" + version: 7.25.6 + resolution: "@babel/helpers@npm:7.25.6" dependencies: "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/b7fe007fc4194268abf70aa3810365085e290e6528dcb9fbbf7a765d43c74b6369ce0f99c5ccd2d44c413853099daa449c9a0123f0b212ac8d18643f2e8174b8 + "@babel/types": "npm:^7.25.6" + checksum: 10c0/448c1cdabccca42fd97a252f73f1e4bcd93776dbf24044f3b4f49b756bf2ece73ee6df05177473bb74ea7456dddd18d6f481e4d96d2cc7839d078900d48c696c languageName: node linkType: hard @@ -1037,14 +1037,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.16, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/parser@npm:7.25.4" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.16, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": + version: 7.25.6 + resolution: "@babel/parser@npm:7.25.6" dependencies: - "@babel/types": "npm:^7.25.4" + "@babel/types": "npm:^7.25.6" bin: parser: ./bin/babel-parser.js - checksum: 10c0/bdada5662f15d1df11a7266ec3bc9bb769bf3637ecf3d051eafcfc8f576dcf5a3ac1007c5e059db4a1e1387db9ae9caad239fc4f79e4c2200930ed610e779993 + checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d languageName: node linkType: hard @@ -1093,13 +1093,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" + version: 7.25.6 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.6" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.8" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b + checksum: 10c0/0e9359cf2d117476310961dfcfd7204ed692e933707da10d6194153d3996cd2ea5b7635fc90d720dce3612083af89966bb862561064a509c350320dc98644751 languageName: node linkType: hard @@ -1236,11 +1236,11 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.20.13": - version: 7.25.4 - resolution: "@babel/runtime@npm:7.25.4" + version: 7.25.6 + resolution: "@babel/runtime@npm:7.25.6" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/33e937e685f0bfc2d40c219261e2e50d0df7381a6e7cbf56b770e0c5d77cb0c21bf4d97da566cf0164317ed7508e992082c7b6cce7aaa3b17da5794f93fbfb46 + checksum: 10c0/d6143adf5aa1ce79ed374e33fdfd74fa975055a80bc6e479672ab1eadc4e4bfd7484444e17dd063a1d180e051f3ec62b357c7a2b817e7657687b47313158c3d2 languageName: node linkType: hard @@ -1274,17 +1274,17 @@ __metadata: linkType: hard "@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/traverse@npm:7.25.4" + version: 7.25.6 + resolution: "@babel/traverse@npm:7.25.6" dependencies: "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.4" - "@babel/parser": "npm:^7.25.4" + "@babel/generator": "npm:^7.25.6" + "@babel/parser": "npm:^7.25.6" "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.4" + "@babel/types": "npm:^7.25.6" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/37c9b49b277e051fe499ef5f6f217370c4f648d6370564d70b5e6beb2da75bfda6d7dab1d39504d89e9245448f8959bc1a5880d2238840cdc3979b35338ed0f5 + checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e languageName: node linkType: hard @@ -1298,14 +1298,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.17, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4, @babel/types@npm:^7.3.3": - version: 7.25.4 - resolution: "@babel/types@npm:7.25.4" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.17, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.3.3": + version: 7.25.6 + resolution: "@babel/types@npm:7.25.6" dependencies: "@babel/helper-string-parser": "npm:^7.24.8" "@babel/helper-validator-identifier": "npm:^7.24.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/9aa25dfcd89cc4e4dde3188091c34398a005a49e2c2b069d0367b41e1122c91e80fd92998c52a90f2fb500f7e897b6090ec8be263d9cb53d0d75c756f44419f2 + checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4 languageName: node linkType: hard @@ -1492,15 +1492,15 @@ __metadata: linkType: hard "@google-cloud/pubsub@npm:^4.5.0": - version: 4.6.0 - resolution: "@google-cloud/pubsub@npm:4.6.0" + version: 4.7.0 + resolution: "@google-cloud/pubsub@npm:4.7.0" dependencies: "@google-cloud/paginator": "npm:^5.0.0" "@google-cloud/precise-date": "npm:^4.0.0" "@google-cloud/projectify": "npm:^4.0.0" "@google-cloud/promisify": "npm:^4.0.0" - "@opentelemetry/api": "npm:~1.8.0" - "@opentelemetry/semantic-conventions": "npm:~1.21.0" + "@opentelemetry/api": "npm:~1.9.0" + "@opentelemetry/semantic-conventions": "npm:~1.25.1" arrify: "npm:^2.0.0" extend: "npm:^3.0.2" google-auth-library: "npm:^9.3.0" @@ -1509,7 +1509,7 @@ __metadata: is-stream-ended: "npm:^0.1.4" lodash.snakecase: "npm:^4.1.1" p-defer: "npm:^3.0.0" - checksum: 10c0/e434d4b4f695a1cf64adf091d06308a31c14ffae8759dafd39c6dea647520c060b331f3896f9e6c2becd8c6f413477ea8218c29365f8d576f4c430e24537860a + checksum: 10c0/ddac66b93c8e9fc1a23027cd221e14b6242fdda0160f460a626e60153e0383e79d62bbf4bcdf822ab0bf7f139135b33fa1d23af90af5bc5cfcc21e53793613a2 languageName: node linkType: hard @@ -2256,6 +2256,13 @@ __metadata: languageName: node linkType: hard +"@nolyfill/is-core-module@npm:1.0.39": + version: 1.0.39 + resolution: "@nolyfill/is-core-module@npm:1.0.39" + checksum: 10c0/34ab85fdc2e0250879518841f74a30c276bca4f6c3e13526d2d1fe515e1adf6d46c25fcd5989d22ea056d76f7c39210945180b4859fc83b050e2da411aa86289 + languageName: node + linkType: hard + "@npmcli/agent@npm:^2.0.0": version: 2.2.2 resolution: "@npmcli/agent@npm:2.2.2" @@ -2285,102 +2292,95 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/api@npm:^1.9.0": +"@opentelemetry/api@npm:^1.9.0, @opentelemetry/api@npm:~1.9.0": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" checksum: 10c0/9aae2fe6e8a3a3eeb6c1fdef78e1939cf05a0f37f8a4fae4d6bf2e09eb1e06f966ece85805626e01ba5fab48072b94f19b835449e58b6d26720ee19a58298add languageName: node linkType: hard -"@opentelemetry/api@npm:~1.8.0": - version: 1.8.0 - resolution: "@opentelemetry/api@npm:1.8.0" - checksum: 10c0/66d5504bfbf9c19a14ea549f5fca975a73a5e1e8a1e40a6dc2d662893c942b9ba66c009262816dee2b9ffd0267acd707ec692eba20db11a09d4ee114c00dc161 - languageName: node - linkType: hard - -"@opentelemetry/semantic-conventions@npm:~1.21.0": - version: 1.21.0 - resolution: "@opentelemetry/semantic-conventions@npm:1.21.0" - checksum: 10c0/ba1eabdbe5cdc04cbb7ce28f2df91fc95000e14861eb93937cfc7768d29c7e57692eb4fb2645f6ba87ae046acc1d1e27e4e6415e46e03015d54a6fdaf8e9635b +"@opentelemetry/semantic-conventions@npm:~1.25.1": + version: 1.25.1 + resolution: "@opentelemetry/semantic-conventions@npm:1.25.1" + checksum: 10c0/fb1d6349e91f142c82931e89e0242215be8248e77919b6faa7e259757e499183546c9b4046de72b053b5222453bc74fff70280d2b4d1229484ba7b2c07f16a3a languageName: node linkType: hard -"@oxc-resolver/binding-darwin-arm64@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-darwin-arm64@npm:1.10.2" +"@oxc-resolver/binding-darwin-arm64@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-darwin-arm64@npm:1.11.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-darwin-x64@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-darwin-x64@npm:1.10.2" +"@oxc-resolver/binding-darwin-x64@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-darwin-x64@npm:1.11.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@oxc-resolver/binding-freebsd-x64@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-freebsd-x64@npm:1.10.2" +"@oxc-resolver/binding-freebsd-x64@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-freebsd-x64@npm:1.11.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm-gnueabihf@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:1.10.2" +"@oxc-resolver/binding-linux-arm-gnueabihf@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:1.11.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm64-gnu@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:1.10.2" +"@oxc-resolver/binding-linux-arm64-gnu@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:1.11.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm64-musl@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:1.10.2" +"@oxc-resolver/binding-linux-arm64-musl@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:1.11.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-linux-x64-gnu@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:1.10.2" +"@oxc-resolver/binding-linux-x64-gnu@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:1.11.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-x64-musl@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-linux-x64-musl@npm:1.10.2" +"@oxc-resolver/binding-linux-x64-musl@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-linux-x64-musl@npm:1.11.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-wasm32-wasi@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-wasm32-wasi@npm:1.10.2" +"@oxc-resolver/binding-wasm32-wasi@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-wasm32-wasi@npm:1.11.0" dependencies: "@napi-rs/wasm-runtime": "npm:^0.2.4" conditions: cpu=wasm32 languageName: node linkType: hard -"@oxc-resolver/binding-win32-arm64-msvc@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:1.10.2" +"@oxc-resolver/binding-win32-arm64-msvc@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:1.11.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-win32-x64-msvc@npm:1.10.2": - version: 1.10.2 - resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:1.10.2" +"@oxc-resolver/binding-win32-x64-msvc@npm:1.11.0": + version: 1.11.0 + resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:1.11.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3228,8 +3228,8 @@ __metadata: linkType: hard "@sveltejs/kit@npm:^2.5.18": - version: 2.5.24 - resolution: "@sveltejs/kit@npm:2.5.24" + version: 2.5.25 + resolution: "@sveltejs/kit@npm:2.5.25" dependencies: "@types/cookie": "npm:^0.6.0" cookie: "npm:^0.6.0" @@ -3249,7 +3249,7 @@ __metadata: vite: ^5.0.3 bin: svelte-kit: svelte-kit.js - checksum: 10c0/704026c6b2d12360b9ba6fa2a704cd5bb03010af462a2bc278569f0fb900b515e063f308ca011ec071f8d7f9426777c7e04439be860ce8932525e6c526283b98 + checksum: 10c0/6c4fb3a4d77be403ec4b4879f2ca180ae0de8889832bf083a3696832106679842cf063ce4896fe7cb815b53bb8b2e7d37703f3824041c6e75e57aceb4cdfc5e2 languageName: node linkType: hard @@ -3612,11 +3612,11 @@ __metadata: linkType: hard "@types/fluent-ffmpeg@npm:^2": - version: 2.1.25 - resolution: "@types/fluent-ffmpeg@npm:2.1.25" + version: 2.1.26 + resolution: "@types/fluent-ffmpeg@npm:2.1.26" dependencies: "@types/node": "npm:*" - checksum: 10c0/a56dc2cb641542a3e03135adb8210654cbfd251ed7cd2385f3c29eed705cc3dd518af4881bb89d56b93384dd37fda8ea5398f8e36a0552c10870da413c9618ca + checksum: 10c0/bc5a532b0fd4cab8c42e6980f1f2317c19a7be11537e5e278f8291cddcbedc54f6822770d769d6aa2630a5ec03cbe2003d57700fae191d89c5de525a3c968ced languageName: node linkType: hard @@ -3722,16 +3722,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0": - version: 22.5.0 - resolution: "@types/node@npm:22.5.0" - dependencies: - undici-types: "npm:~6.19.2" - checksum: 10c0/45aa75c5e71645fac42dced4eff7f197c3fdfff6e8a9fdacd0eb2e748ff21ee70ffb73982f068a58e8d73b2c088a63613142c125236cdcf3c072ea97eada1559 - languageName: node - linkType: hard - -"@types/node@npm:^22.5.1": +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^22.5.1": version: 22.5.1 resolution: "@types/node@npm:22.5.1" dependencies: @@ -3774,17 +3765,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*": - version: 18.3.4 - resolution: "@types/react@npm:18.3.4" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.0.2" - checksum: 10c0/5c52e1e6f540cff21e3c2a5212066d02e005f6fb21e4a536a29097fae878db9f407cd7a4b43778f51359349c5f692e08bc77ddb5f5cecbfca9ca4d4e3c91a48e - languageName: node - linkType: hard - -"@types/react@npm:18.3.5": +"@types/react@npm:*, @types/react@npm:18.3.5": version: 18.3.5 resolution: "@types/react@npm:18.3.5" dependencies: @@ -3921,16 +3902,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/scope-manager@npm:8.2.0" - dependencies: - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" - checksum: 10c0/8026e11d9cfbb674c62eb38929d08d42c4a373f3463c2591ed6603c496d3d00321f553edce47f1d7504b55fcbe9664ea2bdcaa3131c8c834bde1b1f07497af5d - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:8.3.0": version: 8.3.0 resolution: "@typescript-eslint/scope-manager@npm:8.3.0" @@ -3963,13 +3934,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/types@npm:8.2.0" - checksum: 10c0/2ffba0d0183dfdd2f859fb414013d17d009f5e886664823f973aaa1145243fceb52cfe26aa7c50208af7833b3703b7788337f1aab136c9a4eb36d905493847d1 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:8.3.0": version: 8.3.0 resolution: "@typescript-eslint/types@npm:8.3.0" @@ -3996,25 +3960,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.2.0" - dependencies: - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/visitor-keys": "npm:8.2.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/f49aabc78e396908307394812fdebc4015ca407983efc361be106d3e2d58971dec4a1a725362fcfbd637f3d8150baa0735eb5929fd170172b7f2a65e06eeb3d2 - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:8.3.0": version: 8.3.0 resolution: "@typescript-eslint/typescript-estree@npm:8.3.0" @@ -4034,7 +3979,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.3.0": +"@typescript-eslint/utils@npm:8.3.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.3.0 resolution: "@typescript-eslint/utils@npm:8.3.0" dependencies: @@ -4048,20 +3993,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.2.0 - resolution: "@typescript-eslint/utils@npm:8.2.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.2.0" - "@typescript-eslint/types": "npm:8.2.0" - "@typescript-eslint/typescript-estree": "npm:8.2.0" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/0f3d5cf804c2863ea9432ef76bfdb1cadbb244cbf8a64ac77c0e559c012a1e98382c4535354e54696c564c0abd9c10dffc78d38972c97035e963798d360d1830 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:7.2.0": version: 7.2.0 resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" @@ -4072,16 +4003,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.2.0" - dependencies: - "@typescript-eslint/types": "npm:8.2.0" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/788633bd2905c88ea2cf20d9e317a2bc992a70fcf725cb54bbe55a17c42138a6fe877c89fbda41a733e0e8ad6dce893163bada60509a1b856321f4329a316973 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.3.0": version: 8.3.0 resolution: "@typescript-eslint/visitor-keys@npm:8.3.0" @@ -4112,9 +4033,9 @@ __metadata: languageName: node linkType: hard -"@vinxi/plugin-directives@npm:0.4.1, @vinxi/plugin-directives@npm:^0.4.1": - version: 0.4.1 - resolution: "@vinxi/plugin-directives@npm:0.4.1" +"@vinxi/plugin-directives@npm:0.4.2, @vinxi/plugin-directives@npm:^0.4.1": + version: 0.4.2 + resolution: "@vinxi/plugin-directives@npm:0.4.2" dependencies: "@babel/parser": "npm:^7.23.5" acorn: "npm:^8.10.0" @@ -4126,16 +4047,16 @@ __metadata: recast: "npm:^0.23.4" tslib: "npm:^2.6.2" peerDependencies: - vinxi: ^0.4.0 - checksum: 10c0/4391d213c7da2f2cb7e5e290ef1d43119c514e3d046692e9cce85b4397d8d589c01d29bd48951b5376cba43abb3eab9354c1a87eafe11855d4c7fe6aff2998a5 + vinxi: ^0.4.2 + checksum: 10c0/64631d1b4166b90bb841cae3962cd75446f47744aadf41f2a558c2b8df9a874accf3545a89a9c54da426ee5b9a57a38d89763b046de672980a89b019fb1dc8d9 languageName: node linkType: hard "@vinxi/server-components@npm:^0.4.1": - version: 0.4.1 - resolution: "@vinxi/server-components@npm:0.4.1" + version: 0.4.2 + resolution: "@vinxi/server-components@npm:0.4.2" dependencies: - "@vinxi/plugin-directives": "npm:0.4.1" + "@vinxi/plugin-directives": "npm:0.4.2" acorn: "npm:^8.10.0" acorn-loose: "npm:^8.3.0" acorn-typescript: "npm:^1.4.3" @@ -4143,16 +4064,16 @@ __metadata: magicast: "npm:^0.2.10" recast: "npm:^0.23.4" peerDependencies: - vinxi: ^0.4.0 - checksum: 10c0/0ab88a2cd3219ac1b04e1d10f03016521909abefd0a3c6526e74b1b26cea90b49a0d022fc891318fdae58c9eb4b3c0c269c87d1c2cee3c092347ad02b4a45ce8 + vinxi: ^0.4.2 + checksum: 10c0/15805dff47cfe2e10d5d8ec8e1b0ffd64aa3f974ceac2e7e33eccb6b23c640b389d739e66979a3d982354d115207f821362e534c71f4a504da846514994d6b9b languageName: node linkType: hard "@vinxi/server-functions@npm:^0.4.1": - version: 0.4.1 - resolution: "@vinxi/server-functions@npm:0.4.1" + version: 0.4.2 + resolution: "@vinxi/server-functions@npm:0.4.2" dependencies: - "@vinxi/plugin-directives": "npm:0.4.1" + "@vinxi/plugin-directives": "npm:0.4.2" acorn: "npm:^8.10.0" acorn-loose: "npm:^8.3.0" acorn-typescript: "npm:^1.4.3" @@ -4160,8 +4081,8 @@ __metadata: magicast: "npm:^0.2.10" recast: "npm:^0.23.4" peerDependencies: - vinxi: ^0.4.0 - checksum: 10c0/8e144b8d8fa8e1d094b31f05f31f0d32e5727dff802103a66c2b14d0175ab5215f97e92ca5ce214192fbdaf80187ad561e06954748d27c8892db28352c8810b2 + vinxi: ^0.4.2 + checksum: 10c0/bfe381076d1b6ba30a111b5f642421d1d0dbb18263a164e1d623080bcd340c1bd80c7a05fa3882237b682c50add82208d51c244edaee1ed9612fef8722292904 languageName: node linkType: hard @@ -4725,11 +4646,11 @@ __metadata: linkType: hard "astring@npm:^1.8.6": - version: 1.8.6 - resolution: "astring@npm:1.8.6" + version: 1.9.0 + resolution: "astring@npm:1.9.0" bin: astring: bin/astring - checksum: 10c0/31f09144597048c11072417959a412f208f8f95ba8dce408dfbc3367acb929f31fbcc00ed5eb61ccbf7c2f1173b9ac8bfcaaa37134a9455050c669b2b036ed88 + checksum: 10c0/e7519544d9824494e80ef0e722bb3a0c543a31440d59691c13aeaceb75b14502af536b23f08db50aa6c632dafaade54caa25f0788aa7550b6b2d6e2df89e0830 languageName: node linkType: hard @@ -4851,9 +4772,9 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jsx-dom-expressions@npm:^0.38.1": - version: 0.38.1 - resolution: "babel-plugin-jsx-dom-expressions@npm:0.38.1" +"babel-plugin-jsx-dom-expressions@npm:^0.38.5": + version: 0.38.5 + resolution: "babel-plugin-jsx-dom-expressions@npm:0.38.5" dependencies: "@babel/helper-module-imports": "npm:7.18.6" "@babel/plugin-syntax-jsx": "npm:^7.18.6" @@ -4862,7 +4783,7 @@ __metadata: validate-html-nesting: "npm:^1.2.1" peerDependencies: "@babel/core": ^7.20.12 - checksum: 10c0/5d22258f5c1b857bfbee38888a46378fe05457e5deb51c684ca53ce6b5aea0d4b86b4ad87477cfae29a8dcc2d51c0943e5ffd35450c19a0306135aa4c05760fc + checksum: 10c0/f627a36ccc5b781edac3380c6a58fca07da53d788fa2315e26b74f20a1f5b91854c259d082b40e8d3d2ca7400be50130123e1e232ef3539e13663de938f48c3e languageName: node linkType: hard @@ -4904,13 +4825,13 @@ __metadata: linkType: hard "babel-preset-solid@npm:^1.8.4": - version: 1.8.19 - resolution: "babel-preset-solid@npm:1.8.19" + version: 1.8.22 + resolution: "babel-preset-solid@npm:1.8.22" dependencies: - babel-plugin-jsx-dom-expressions: "npm:^0.38.1" + babel-plugin-jsx-dom-expressions: "npm:^0.38.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/82efc65b88727dec3ca762d8da6bb154ca9c64f8e0eec26750c5410465c57d729a274efc5fe7305924d9093a1d319cd3302ba1b1ada15735827f515a5b7a78c5 + checksum: 10c0/82cf72f4c4d7409afdc90f2bdd17910c910e96cfe338bbe27a4a0731b84a86e8defc04ee61c17c214b4b79c88342eaf300da60e427f2cfe602f52ef72a2e7c97 languageName: node linkType: hard @@ -5296,9 +5217,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001651 - resolution: "caniuse-lite@npm:1.0.30001651" - checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad + version: 1.0.30001655 + resolution: "caniuse-lite@npm:1.0.30001655" + checksum: 10c0/fff0c0c3ffcba89828bfa6b99f118e82c064f46f15bb8655b9f2a352a3f552ccac0b87a9fe9532f8c5a29e284aae5579791e196480ec717d11ef1d1a1c2e3ff9 languageName: node linkType: hard @@ -5409,9 +5330,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.0.0": - version: 1.3.1 - resolution: "cjs-module-lexer@npm:1.3.1" - checksum: 10c0/cd98fbf3c7f4272fb0ebf71d08d0c54bc75ce0e30b9d186114e15b4ba791f3d310af65a339eea2a0318599af2818cdd8886d353b43dfab94468f72987397ad16 + version: 1.4.0 + resolution: "cjs-module-lexer@npm:1.4.0" + checksum: 10c0/b5ef03e10297c24f0db56b13d7d2f92e377499c83d7bf9352ec73df544b5310e024dfb1779a6b810e7a06eb18caa6a0e2da5f11df8116af73306f362e67fb61a languageName: node linkType: hard @@ -6574,7 +6495,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.12.0, enhanced-resolve@npm:^5.17.0": +"enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.17.0": version: 5.17.1 resolution: "enhanced-resolve@npm:5.17.1" dependencies: @@ -6787,9 +6708,9 @@ __metadata: linkType: hard "escalade@npm:^3.1.1, escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 languageName: node linkType: hard @@ -6915,32 +6836,39 @@ __metadata: linkType: hard "eslint-import-resolver-typescript@npm:^3.5.2": - version: 3.6.1 - resolution: "eslint-import-resolver-typescript@npm:3.6.1" + version: 3.6.3 + resolution: "eslint-import-resolver-typescript@npm:3.6.3" dependencies: - debug: "npm:^4.3.4" - enhanced-resolve: "npm:^5.12.0" - eslint-module-utils: "npm:^2.7.4" - fast-glob: "npm:^3.3.1" - get-tsconfig: "npm:^4.5.0" - is-core-module: "npm:^2.11.0" + "@nolyfill/is-core-module": "npm:1.0.39" + debug: "npm:^4.3.5" + enhanced-resolve: "npm:^5.15.0" + eslint-module-utils: "npm:^2.8.1" + fast-glob: "npm:^3.3.2" + get-tsconfig: "npm:^4.7.5" + is-bun-module: "npm:^1.0.2" is-glob: "npm:^4.0.3" peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: 10c0/cb1cb4389916fe78bf8c8567aae2f69243dbfe624bfe21078c56ad46fa1ebf0634fa7239dd3b2055ab5c27359e4b4c28b69b11fcb3a5df8a9e6f7add8e034d86 + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + checksum: 10c0/5933b00791b7b077725b9ba9a85327d2e2dc7c8944c18a868feb317a0bf0e1e77aed2254c9c5e24dcc49360d119331d2c15281837f4269592965ace380a75111 languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": - version: 2.8.1 - resolution: "eslint-module-utils@npm:2.8.1" +"eslint-module-utils@npm:^2.8.0, eslint-module-utils@npm:^2.8.1": + version: 2.8.2 + resolution: "eslint-module-utils@npm:2.8.2" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/1aeeb97bf4b688d28de136ee57c824480c37691b40fa825c711a4caf85954e94b99c06ac639d7f1f6c1d69223bd21bcb991155b3e589488e958d5b83dfd0f882 + checksum: 10c0/98c5ca95db75507b148c05d157b287116c677bfc9ca6bef4d5455c8b199eb2c35b9204a15ca7a3497085daef8ca3a3f579bd9e753ad4ad4df6256e4ef1107c51 languageName: node linkType: hard @@ -7459,7 +7387,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -8050,12 +7978,12 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.7.0": - version: 4.7.6 - resolution: "get-tsconfig@npm:4.7.6" +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.5": + version: 4.8.0 + resolution: "get-tsconfig@npm:4.8.0" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/2240e1b13e996dfbb947d177f422f83d09d1f93c9ce16959ebb3c2bdf8bdf4f04f98eba043859172da1685f9c7071091f0acfa964ebbe4780394d83b7dc3f58a + checksum: 10c0/943721c996d9a77351aa7c07956de77baece97f997bd30f3247f46907e4b743f7b9da02c7b3692a36f0884d3724271faeb88ed1c3aca3aba2afe3f27d6c4aeb3 languageName: node linkType: hard @@ -8251,8 +8179,8 @@ __metadata: linkType: hard "google-gax@npm:^4.3.3": - version: 4.3.9 - resolution: "google-gax@npm:4.3.9" + version: 4.4.0 + resolution: "google-gax@npm:4.4.0" dependencies: "@grpc/grpc-js": "npm:^1.10.9" "@grpc/proto-loader": "npm:^0.7.13" @@ -8266,7 +8194,7 @@ __metadata: protobufjs: "npm:^7.3.2" retry-request: "npm:^7.0.0" uuid: "npm:^9.0.1" - checksum: 10c0/3aec9ca2b0943b5a68139a43203374759cb7ba8bbb8ca8bc956629338bec9fb3eec858ebe03394a4ac13ced9d79612f1491756e38fb1d035bb2f784471d7f7d5 + checksum: 10c0/040b7809885980dcf11f5f3b6d31d7d602f8422f01899dbe4ff231deeb79fd5cad3ccc8ac0d78d02a47de3c4cc90d27658a70414aa38fa2644eadfcd4c19061d languageName: node linkType: hard @@ -8934,6 +8862,15 @@ __metadata: languageName: node linkType: hard +"is-bun-module@npm:^1.0.2": + version: 1.1.0 + resolution: "is-bun-module@npm:1.1.0" + dependencies: + semver: "npm:^7.6.3" + checksum: 10c0/17cae968c3fe08e2bd66f8477e4d5a166d6299b5e7ce5c7558355551c50267f77dd386297fada6b68e4a32f01ce8920b0423e4d258242ea463b45901ec474beb + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -8952,7 +8889,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": version: 2.15.1 resolution: "is-core-module@npm:2.15.1" dependencies: @@ -9946,9 +9883,9 @@ __metadata: linkType: hard "jose@npm:^ 5.2.3": - version: 5.7.0 - resolution: "jose@npm:5.7.0" - checksum: 10c0/9dd2bfa61a839d857d4c4d842ba367a48552dbc93d315cd1c775b7d7855b0b3f589d72294f348cd3161eb559d20f2708549611ea4f1a46a83d49b891749593d9 + version: 5.8.0 + resolution: "jose@npm:5.8.0" + checksum: 10c0/f4dba1bbc41c46ae549840c3f99db07e72c1a191dffeef46bbd81c5fdc01827bb4be4d9f3e77d37887ffb56c57bd276e5fde314e6e790db19809008e47004c48 languageName: node linkType: hard @@ -11685,20 +11622,20 @@ __metadata: linkType: hard "oxc-resolver@npm:^1.10.2": - version: 1.10.2 - resolution: "oxc-resolver@npm:1.10.2" - dependencies: - "@oxc-resolver/binding-darwin-arm64": "npm:1.10.2" - "@oxc-resolver/binding-darwin-x64": "npm:1.10.2" - "@oxc-resolver/binding-freebsd-x64": "npm:1.10.2" - "@oxc-resolver/binding-linux-arm-gnueabihf": "npm:1.10.2" - "@oxc-resolver/binding-linux-arm64-gnu": "npm:1.10.2" - "@oxc-resolver/binding-linux-arm64-musl": "npm:1.10.2" - "@oxc-resolver/binding-linux-x64-gnu": "npm:1.10.2" - "@oxc-resolver/binding-linux-x64-musl": "npm:1.10.2" - "@oxc-resolver/binding-wasm32-wasi": "npm:1.10.2" - "@oxc-resolver/binding-win32-arm64-msvc": "npm:1.10.2" - "@oxc-resolver/binding-win32-x64-msvc": "npm:1.10.2" + version: 1.11.0 + resolution: "oxc-resolver@npm:1.11.0" + dependencies: + "@oxc-resolver/binding-darwin-arm64": "npm:1.11.0" + "@oxc-resolver/binding-darwin-x64": "npm:1.11.0" + "@oxc-resolver/binding-freebsd-x64": "npm:1.11.0" + "@oxc-resolver/binding-linux-arm-gnueabihf": "npm:1.11.0" + "@oxc-resolver/binding-linux-arm64-gnu": "npm:1.11.0" + "@oxc-resolver/binding-linux-arm64-musl": "npm:1.11.0" + "@oxc-resolver/binding-linux-x64-gnu": "npm:1.11.0" + "@oxc-resolver/binding-linux-x64-musl": "npm:1.11.0" + "@oxc-resolver/binding-wasm32-wasi": "npm:1.11.0" + "@oxc-resolver/binding-win32-arm64-msvc": "npm:1.11.0" + "@oxc-resolver/binding-win32-x64-msvc": "npm:1.11.0" dependenciesMeta: "@oxc-resolver/binding-darwin-arm64": optional: true @@ -11722,7 +11659,7 @@ __metadata: optional: true "@oxc-resolver/binding-win32-x64-msvc": optional: true - checksum: 10c0/8e3fa7439c777a44130417612816e98cc8f71d8ed015f84588ec4fbe9ac19846c0c91e3f1a6cb0d9c1cde08afd5892f1e6abe4c4a693b2230aaafc1e884b3e31 + checksum: 10c0/371a370cb1c68d48601aab519bfa41fd36dcd28ec8c3225f934f576efb9977b16e0eb2e5ee35783bf205faa2218ae08c34ffb61b31234ec8505545715364afe4 languageName: node linkType: hard @@ -13146,9 +13083,9 @@ __metadata: linkType: hard "safe-stable-stringify@npm:^2.3.1": - version: 2.4.3 - resolution: "safe-stable-stringify@npm:2.4.3" - checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768 + version: 2.5.0 + resolution: "safe-stable-stringify@npm:2.5.0" + checksum: 10c0/baea14971858cadd65df23894a40588ed791769db21bafb7fd7608397dbdce9c5aac60748abae9995e0fc37e15f2061980501e012cd48859740796bea2987f49 languageName: node linkType: hard @@ -13696,15 +13633,15 @@ __metadata: linkType: hard "sql-formatter@npm:^15.3.0": - version: 15.4.0 - resolution: "sql-formatter@npm:15.4.0" + version: 15.4.1 + resolution: "sql-formatter@npm:15.4.1" dependencies: argparse: "npm:^2.0.1" get-stdin: "npm:=8.0.0" nearley: "npm:^2.20.1" bin: sql-formatter: bin/sql-formatter-cli.cjs - checksum: 10c0/caa7048788296a37a521496087b52e62af2a33e056e81f3c5eed80c2616c83ccfb1bf857696c7beefe711f58dbce5f2f48d8343a90ef89606611164bb5374c14 + checksum: 10c0/29edbc7496ace1be8530eee50f87a468f3ba6eac021c363e69745a4e7b37a887d33041e87fa6f94daa0c5531005a908979e997a3f4a4502f905ab88e0793681f languageName: node linkType: hard @@ -13810,8 +13747,8 @@ __metadata: linkType: hard "streamx@npm:^2.15.0": - version: 2.19.0 - resolution: "streamx@npm:2.19.0" + version: 2.19.1 + resolution: "streamx@npm:2.19.1" dependencies: bare-events: "npm:^2.2.0" fast-fifo: "npm:^1.3.2" @@ -13820,7 +13757,7 @@ __metadata: dependenciesMeta: bare-events: optional: true - checksum: 10c0/5833a2c1226488a015e8efde08c6cd4983d7d20098b2210d09594b23f598a8b028c083d542621e2e91ddcb33a266233c3524c60152203be40f1dd816b9ede9da + checksum: 10c0/bbf0a95ed129f7ff9fd8fcccaf1074e69a20dcfad6ae7f2de0ce92df049d109ca591f40f465deeb9f5fb478b659fe8cb84127e6d505c15dcac6b8ab277bdabd2 languageName: node linkType: hard @@ -14482,9 +14419,9 @@ __metadata: linkType: hard "type-fest@npm:^4.19.0": - version: 4.25.0 - resolution: "type-fest@npm:4.25.0" - checksum: 10c0/1187b30d74e72f4b0b44a3493d2c1c2a9dc46423961c8250bd1535e976c4b8afc3916f6b4b90d7f56ed5b2f36d1645b05c318b4915fe4909a8a66890bda1d68d + version: 4.26.0 + resolution: "type-fest@npm:4.26.0" + checksum: 10c0/3819b65fedd4655ed90703dad9e14248fb61f0a232dce8385e59771bdeaeca08195fe0683d892d62fcd84c0f3bb18bd4b0c3c2ba29023187d267868e75c53076 languageName: node linkType: hard