- {file.name}:{file.line}
+ {file.file}:{file.line}
{file.content}
diff --git a/apps/github-scan/src/util/github-scanner.ts b/apps/github-scan/src/util/github-scanner.ts
deleted file mode 100644
index 12a0cece..00000000
--- a/apps/github-scan/src/util/github-scanner.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import secretDetector from '@keyshade/secret-scan'
-import { VulnerableFile } from './types'
-
-class GitHubScanner {
- private GITHUB_CONTENTS_URL =
- 'https://api.github.com/repos/{repo_name}/contents/{path}'
-
- private getContentUrl(repoName: string, path: string) {
- return this.GITHUB_CONTENTS_URL.replace('{repo_name}', repoName).replace(
- '{path}',
- path
- )
- }
-
- private async findSecrets(
- contentUrl: string,
- vulnerableFiles: VulnerableFile[]
- ) {
- const stack: string[] = [contentUrl]
- while (stack.length > 0) {
- const currentContent = stack.pop()
- const response = await fetch(currentContent!, {
- headers: {
- Authorization: `Bearer ${process.env.GITHUB_TOKEN}`
- }
- })
- const data = await response.json()
- for (const file of data) {
- console.log(file.path)
- if (file.type === 'file') {
- if (file.name.match(/\.(jpg|jpeg|png|gif|mp4|mkv|avi)$/)) {
- continue
- }
- const fileResponse = await fetch(file.download_url)
- const fileData = await fileResponse.text()
- const content = fileData.split(/\r?\n/)
-
- let skipNextLine = false
- if (content[0].includes('keyshade-ignore-all')) {
- continue
- }
- content.forEach((line, index) => {
- // Skip the next line if ignore comment is found in the previous line
- if (skipNextLine) {
- skipNextLine = false
- return
- }
-
- if (line.includes('keyshade-ignore')) {
- skipNextLine = true
- return
- }
- const { found, regex } = secretDetector.detect(line) as {
- found: boolean
- regex: RegExp
- }
- if (found) {
- const matched = line.match(regex)
- const highlightedLine = line.replace(regex, matched![0]).trim()
- vulnerableFiles.push({
- name: file.path,
- line: index + 1,
- content: highlightedLine
- })
- }
- })
- } else if (file.type === 'dir') {
- stack.push(file.url)
- }
- }
- }
- }
-
- public async scanRepo(githubUrl: string) {
- const repoName = githubUrl.split('https://github.com/')[1]
- console.log('Repo Name: ', repoName)
- try {
- // Check if the URL is valid
- await fetch(this.getContentUrl(repoName, ''), {
- headers: {
- Authorization: `Bearer ${process.env.GITHUB_TOKEN}`
- }
- })
- } catch {
- throw new Error('Invalid GitHub URL')
- }
-
- const vulnerableFiles: VulnerableFile[] = []
- try {
- const start = Date.now()
- await this.findSecrets(this.getContentUrl(repoName, ''), vulnerableFiles)
- const end = Date.now()
- console.log('Time taken: ', end - start)
- } catch (error) {
- throw new Error('Rate limit hit')
- }
- return vulnerableFiles
- }
-}
-
-const gitHubScanner = new GitHubScanner()
-
-export default gitHubScanner
diff --git a/apps/github-scan/src/util/types.ts b/apps/github-scan/src/util/types.ts
index 88bc6480..995cf1d7 100644
--- a/apps/github-scan/src/util/types.ts
+++ b/apps/github-scan/src/util/types.ts
@@ -1,5 +1,5 @@
-interface VulnerableFile {
- name: string
+interface ScanResult {
+ file: string
line: number
content: string
}
@@ -7,10 +7,10 @@ interface VulnerableFile {
interface ScanResponse {
data?: {
isVulnerable: boolean
- files?: VulnerableFile[]
+ files?: ScanResult[]
}
error?: string
loading?: boolean
}
-export type { VulnerableFile, ScanResponse }
+export type { ScanResult, ScanResponse }
diff --git a/package.json b/package.json
index f0926c15..1698fc7d 100644
--- a/package.json
+++ b/package.json
@@ -90,6 +90,8 @@
"dev:web": "turbo run dev --filter=web",
"dev:platform": "turbo run dev --filter=platform",
"dev:cli": "turbo run dev --filter=cli",
+ "dev:github-scan": "turbo run dev --filter=github-scan",
+ "dev:github-scan-api": "turbo run dev --filter=github-scan-api",
"add:global": "pnpm add -w",
"add:api": "pnpm add --filter=api",
"add:web": "pnpm add --filter=web",
@@ -111,11 +113,15 @@
"build:api-client": "pnpm build:schema && turbo run --filter=@keyshade/api-client build",
"build:schema": "turbo run build --filter=@keyshade/schema",
"build:secret-scan": "turbo run build --filter=@keyshade/secret-scan",
+ "build:github-scan": "turbo run build --filter=github-scan",
+ "build:github-scan-api": "turbo run build --filter=github-scan-api",
"start": "turbo run start",
"start:api": "turbo run start --filter=api",
"start:web": "turbo run start --filter=web",
"start:platform": "turbo run start --filter=platform",
"start:cli": "turbo run start --filter=cli",
+ "start:github-scan": "turbo run start --filter=github-scan",
+ "start:github-scan-api": "turbo run start --filter=github-scan-api",
"test": "turbo run test",
"test:api": "pnpm unit:api && pnpm e2e:api",
"unit:api": "pnpm run --filter=api unit",
@@ -139,7 +145,9 @@
"docker:run:api": "docker run --env-file .env --name ks-api --rm -p 4200:4200 ks-api",
"docker:build:api": "docker build -t ks-api -f apps/api/Dockerfile .",
"docker:run:platform": "docker run --env-file .env --name ks-platform --rm -p 3025:3025 ks-platform",
- "docker:build:platform": "docker build -t ks-platform -f apps/platform/Dockerfile ."
+ "docker:build:platform": "docker build -t ks-platform -f apps/platform/Dockerfile .",
+ "docker:run:github-scan-api": "docker run --rm --env-file apps/github-scan-api/.env --name ks-github-scan-api -p 8080:8080 ks-github-scan-api",
+ "docker:build:github-scan-api": "docker build -t ks-github-scan-api -f apps/github-scan-api/Dockerfile ."
},
"devDependencies": {
"@sentry/cli": "^2.28.6",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1c33e73e..b1b83234 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -133,7 +133,7 @@ importers:
specifier: ^4.2.0
version: 4.2.0
turbo:
- specifier: ^2.3.1
+ specifier: ^2.3.3
version: 2.3.3
apps/api:
@@ -174,6 +174,15 @@ importers:
'@nestjs/websockets':
specifier: ^10.3.7
version: 10.4.2(@nestjs/common@10.4.2(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.2)(@nestjs/platform-socket.io@10.4.2)(reflect-metadata@0.2.2)(rxjs@7.8.1)
+ '@react-email/components':
+ specifier: ^0.0.25
+ version: 0.0.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@react-email/preview':
+ specifier: 0.0.11
+ version: 0.0.11(react@18.3.1)
+ '@react-email/render':
+ specifier: ^1.0.1
+ version: 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@socket.io/redis-adapter':
specifier: ^8.3.0
version: 8.3.0(socket.io-adapter@2.5.5)
@@ -189,6 +198,9 @@ importers:
cookie-parser:
specifier: ^1.4.6
version: 1.4.6
+ dayjs:
+ specifier: ^1.11.11
+ version: 1.11.13
eccrypto:
specifier: ^1.1.6
version: 1.1.6
@@ -207,6 +219,9 @@ importers:
passport-google-oauth20:
specifier: ^2.0.0
version: 2.0.0
+ react:
+ specifier: ^18.3.1
+ version: 18.3.1
redis:
specifier: ^4.6.13
version: 4.7.0
@@ -244,6 +259,9 @@ importers:
'@types/multer':
specifier: ^1.4.11
version: 1.4.12
+ '@types/react':
+ specifier: ^18.3.12
+ version: 18.3.12
'@types/supertest':
specifier: ^6.0.0
version: 6.0.2
@@ -256,12 +274,15 @@ importers:
dotenv-cli:
specifier: ^7.4.2
version: 7.4.2
+ file-loader:
+ specifier: ^6.2.0
+ version: 6.2.0(webpack@5.94.0(@swc/core@1.7.26))
jest:
specifier: ^29.5.0
- version: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
+ version: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2))
jest-mock-extended:
specifier: ^3.0.5
- version: 3.0.7(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)))(typescript@5.3.3)
+ version: 3.0.7(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)))(typescript@5.3.3)
prettier:
specifier: ^3.0.0
version: 3.3.3
@@ -279,7 +300,7 @@ importers:
version: 6.3.4
ts-jest:
specifier: ^29.1.0
- version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)))(typescript@5.3.3)
+ version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)))(typescript@5.3.3)
ts-loader:
specifier: ^9.4.3
version: 9.5.1(typescript@5.3.3)(webpack@5.94.0(@swc/core@1.7.26))
@@ -374,7 +395,7 @@ importers:
version: 20.16.5
'@types/react':
specifier: ^18
- version: 18.3.6
+ version: 18.3.12
'@types/react-dom':
specifier: ^18
version: 18.3.0
@@ -394,6 +415,46 @@ importers:
specifier: ^5
version: 5.6.2
+ apps/github-scan-api:
+ dependencies:
+ '@keyshade/secret-scan':
+ specifier: workspace:*
+ version: link:../../packages/secret-scan
+ express:
+ specifier: ^4.18.3
+ version: 4.21.0
+ glob:
+ specifier: ^11.0.0
+ version: 11.0.0
+ simple-git:
+ specifier: ^3.27.0
+ version: 3.27.0
+ devDependencies:
+ '@types/cors':
+ specifier: ^2.8.17
+ version: 2.8.17
+ '@types/express':
+ specifier: ^4.17.17
+ version: 4.17.21
+ '@types/node':
+ specifier: ^20.11.24
+ version: 20.16.5
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^6.0.0
+ version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)
+ '@typescript-eslint/parser':
+ specifier: ^6.0.0
+ version: 6.21.0(eslint@8.57.1)(typescript@5.5.4)
+ eslint:
+ specifier: ^8.57.1
+ version: 8.57.1
+ nodemon:
+ specifier: ^3.1.0
+ version: 3.1.4
+ typescript:
+ specifier: 5.5.4
+ version: 5.5.4
+
apps/platform:
dependencies:
'@radix-ui/react-accordion':
@@ -432,6 +493,9 @@ importers:
'@radix-ui/react-scroll-area':
specifier: ^1.0.5
version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-select':
+ specifier: ^2.1.2
+ version: 2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-separator':
specifier: ^1.0.3
version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1789,6 +1853,12 @@ packages:
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+ '@kwsites/file-exists@1.1.1':
+ resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==}
+
+ '@kwsites/promise-deferred@1.1.1':
+ resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
+
'@ljharb/through@2.3.13':
resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==}
engines: {node: '>= 0.4'}
@@ -2186,6 +2256,9 @@ packages:
'@octokit/types@13.5.0':
resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==}
+ '@one-ini/wasm@0.1.1':
+ resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -2366,6 +2439,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-context@1.1.1':
+ resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-dialog@1.0.5':
resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==}
peerDependencies:
@@ -2427,6 +2509,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-dismissable-layer@1.1.1':
+ resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-dropdown-menu@2.1.1':
resolution: {integrity: sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==}
peerDependencies:
@@ -2458,6 +2553,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-focus-guards@1.1.1':
+ resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-focus-scope@1.0.4':
resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
peerDependencies:
@@ -2598,6 +2702,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-portal@1.1.2':
+ resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-presence@1.0.1':
resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
peerDependencies:
@@ -2676,6 +2793,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-select@2.1.2':
+ resolution: {integrity: sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-separator@1.1.0':
resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==}
peerDependencies:
@@ -2848,6 +2978,138 @@ packages:
'@radix-ui/rect@1.1.0':
resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==}
+ '@react-email/body@0.0.10':
+ resolution: {integrity: sha512-dMJyL9aU25ieatdPtVjCyQ/WHZYHwNc+Hy/XpF8Cc18gu21cUynVEeYQzFSeigDRMeBQ3PGAyjVDPIob7YlGwA==}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/button@0.0.17':
+ resolution: {integrity: sha512-ioHdsk+BpGS/PqjU6JS7tUrVy9yvbUx92Z+Cem2+MbYp55oEwQ9VHf7u4f5NoM0gdhfKSehBwRdYlHt/frEMcg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/code-block@0.0.9':
+ resolution: {integrity: sha512-Zrhc71VYrSC1fVXJuaViKoB/dBjxLw6nbE53Bm/eUuZPdnnZ1+ZUIh8jfaRKC5MzMjgnLGQTweGXVnfIrhyxtQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/code-inline@0.0.4':
+ resolution: {integrity: sha512-zj3oMQiiUCZbddSNt3k0zNfIBFK0ZNDIzzDyBaJKy6ZASTtWfB+1WFX0cpTX8q0gUiYK+A94rk5Qp68L6YXjXQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/column@0.0.12':
+ resolution: {integrity: sha512-Rsl7iSdDaeHZO938xb+0wR5ud0Z3MVfdtPbNKJNojZi2hApwLAQXmDrnn/AcPDM5Lpl331ZljJS8vHTWxxkvKw==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/components@0.0.25':
+ resolution: {integrity: sha512-lnfVVrThEcET5NPoeaXvrz9UxtWpGRcut2a07dLbyKgNbP7vj/cXTI5TuHtanCvhCddFpMDnElNRghDOfPzwUg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/container@0.0.14':
+ resolution: {integrity: sha512-NgoaJJd9tTtsrveL86Ocr/AYLkGyN3prdXKd/zm5fQpfDhy/NXezyT3iF6VlwAOEUIu64ErHpAJd+P6ygR+vjg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/font@0.0.8':
+ resolution: {integrity: sha512-fSBEqYyVPAyyACBBHcs3wEYzNknpHMuwcSAAKE8fOoDfGqURr/vSxKPdh4tOa9z7G4hlcEfgGrCYEa2iPT22cw==}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/head@0.0.11':
+ resolution: {integrity: sha512-skw5FUgyamIMK+LN+fZQ5WIKQYf0dPiRAvsUAUR2eYoZp9oRsfkIpFHr0GWPkKAYjFEj+uJjaxQ/0VzQH7svVg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/heading@0.0.14':
+ resolution: {integrity: sha512-jZM7IVuZOXa0G110ES8OkxajPTypIKlzlO1K1RIe1auk76ukQRiCg1IRV4HZlWk1GGUbec5hNxsvZa2kU8cb9w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/hr@0.0.10':
+ resolution: {integrity: sha512-3AA4Yjgl3zEid/KVx6uf6TuLJHVZvUc2cG9Wm9ZpWeAX4ODA+8g9HyuC0tfnjbRsVMhMcCGiECuWWXINi+60vA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/html@0.0.10':
+ resolution: {integrity: sha512-06uiuSKJBWQJfhCKv4MPupELei4Lepyz9Sth7Yq7Fq29CAeB1ejLgKkGqn1I+FZ72hQxPLdYF4iq4yloKv3JCg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/img@0.0.10':
+ resolution: {integrity: sha512-pJ8glJjDNaJ53qoM95pvX9SK05yh0bNQY/oyBKmxlBDdUII6ixuMc3SCwYXPMl+tgkQUyDgwEBpSTrLAnjL3hA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/link@0.0.10':
+ resolution: {integrity: sha512-tva3wvAWSR10lMJa9fVA09yRn7pbEki0ZZpHE6GD1jKbFhmzt38VgLO9B797/prqoDZdAr4rVK7LJFcdPx3GwA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/markdown@0.0.12':
+ resolution: {integrity: sha512-wsuvj1XAb6O63aizCLNEeqVgKR3oFjAwt9vjfg2y2oh4G1dZeo8zonZM2x1fmkEkBZhzwSHraNi70jSXhA3A9w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/preview@0.0.11':
+ resolution: {integrity: sha512-7O/CT4b16YlSGrj18htTPx3Vbhu2suCGv/cSe5c+fuSrIM/nMiBSZ3Js16Vj0XJbAmmmlVmYFZw9L20wXJ+LjQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/render@1.0.1':
+ resolution: {integrity: sha512-W3gTrcmLOVYnG80QuUp22ReIT/xfLsVJ+n7ghSlG2BITB8evNABn1AO2rGQoXuK84zKtDAlxCdm3hRyIpZdGSA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/render@1.0.2':
+ resolution: {integrity: sha512-q82eBd39TepzA/xjlm8szqJlrQk/gh7mgtxXMGlJ4dcdx89go1m9YBDpZY98SFy+2r2KAOd5A1mxvUbsPwoATg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/row@0.0.10':
+ resolution: {integrity: sha512-jPyEhG3gsLX+Eb9U+A30fh0gK6hXJwF4ghJ+ZtFQtlKAKqHX+eCpWlqB3Xschd/ARJLod8WAswg0FB+JD9d0/A==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/section@0.0.14':
+ resolution: {integrity: sha512-+fYWLb4tPU1A/+GE5J1+SEMA7/wR3V30lQ+OR9t2kAJqNrARDbMx0bLnYnR1QL5TiFRz0pCF05SQUobk6gHEDQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/tailwind@0.1.0':
+ resolution: {integrity: sha512-qysVUEY+M3SKUvu35XDpzn7yokhqFOT3tPU6Mj/pgc62TL5tQFj6msEbBtwoKs2qO3WZvai0DIHdLhaOxBQSow==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
+ '@react-email/text@0.0.10':
+ resolution: {integrity: sha512-wNAnxeEAiFs6N+SxS0y6wTJWfewEzUETuyS2aZmT00xk50VijwyFRuhm4sYSjusMyshevomFwz5jNISCxRsGWw==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^18.0 || ^19.0 || ^19.0.0-rc
+
'@redis/bloom@1.2.0':
resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==}
peerDependencies:
@@ -2975,6 +3237,9 @@ packages:
'@sec-ant/readable-stream@0.4.1':
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+ '@selderee/plugin-htmlparser2@0.11.0':
+ resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
+
'@semantic-release/changelog@6.0.3':
resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==}
engines: {node: '>=14.17'}
@@ -3628,8 +3893,8 @@ packages:
'@types/react-dom@18.3.0':
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
- '@types/react@18.3.6':
- resolution: {integrity: sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==}
+ '@types/react@18.3.12':
+ resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
'@types/react@18.3.6':
resolution: {integrity: sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==}
@@ -3840,9 +4105,9 @@ packages:
resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
hasBin: true
- abort-controller@3.0.0:
- resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
- engines: {node: '>=6.5'}
+ abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
@@ -4152,6 +4417,9 @@ packages:
before-after-hook@3.0.2:
resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==}
+ big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
bin-check@4.1.0:
resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==}
engines: {node: '>=4'}
@@ -4481,6 +4749,10 @@ packages:
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+ commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+
commander@12.1.0:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
@@ -4906,6 +5178,11 @@ packages:
ecdsa-sig-formatter@1.0.11:
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
+ editorconfig@1.0.4:
+ resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
+ engines: {node: '>=14'}
+ hasBin: true
+
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -4933,6 +5210,10 @@ packages:
emojilib@2.4.0:
resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==}
+ emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+
encodeurl@1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
@@ -5411,6 +5692,9 @@ packages:
fast-decode-uri-component@1.0.1:
resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==}
+ fast-deep-equal@2.0.1:
+ resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -5483,6 +5767,12 @@ packages:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
+ file-loader@6.2.0:
+ resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ webpack: ^4.0.0 || ^5.0.0
+
file-type@17.1.6:
resolution: {integrity: sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -5873,6 +6163,13 @@ packages:
html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+ html-to-text@9.0.5:
+ resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==}
+ engines: {node: '>=14'}
+
+ htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+
http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
@@ -6426,6 +6723,11 @@ packages:
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
engines: {node: '>=10'}
+ js-beautify@1.15.1:
+ resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==}
+ engines: {node: '>=14'}
+ hasBin: true
+
js-cookie@3.0.5:
resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
engines: {node: '>=14'}
@@ -6530,6 +6832,9 @@ packages:
resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
engines: {node: '>=0.10'}
+ leac@0.6.0:
+ resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==}
+
leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@@ -6573,6 +6878,10 @@ packages:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
+ loader-utils@2.0.4:
+ resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
+ engines: {node: '>=8.9.0'}
+
localforage@1.10.0:
resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==}
@@ -6705,6 +7014,16 @@ packages:
engines: {node: '>= 18'}
hasBin: true
+ marked@7.0.4:
+ resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==}
+ engines: {node: '>= 16'}
+ hasBin: true
+
+ md-to-react-email@5.0.2:
+ resolution: {integrity: sha512-x6kkpdzIzUhecda/yahltfEl53mH26QdWu4abUF9+S0Jgam8P//Ciro8cdhyMHnT5MQUJYrIbO6ORM2UxPiNNA==}
+ peerDependencies:
+ react: 18.x
+
md5.js@1.3.5:
resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
@@ -6935,6 +7254,10 @@ packages:
resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
engines: {node: '>=16 || 14 >=14.17'}
+ minimatch@9.0.1:
+ resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -7104,6 +7427,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ nopt@7.2.1:
+ resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
+
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -7399,6 +7727,9 @@ packages:
parse5@6.0.1:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+ parseley@0.12.1:
+ resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
+
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -7482,6 +7813,9 @@ packages:
pause@0.0.1:
resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==}
+ peberminta@0.9.0:
+ resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==}
+
peek-readable@5.2.0:
resolution: {integrity: sha512-U94a+eXHzct7vAd19GH3UQ2dH4Satbng0MyYTMaQatL0pvYYL5CTPR25HBhKtecl+4bfu1/i3vC6k0hydO5Vcw==}
engines: {node: '>=14.16'}
@@ -7694,6 +8028,10 @@ packages:
engines: {node: '>=16.13'}
hasBin: true
+ prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -7799,6 +8137,9 @@ packages:
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+ react-promise-suspense@0.3.4:
+ resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==}
+
react-remove-scroll-bar@2.3.6:
resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
engines: {node: '>=10'}
@@ -7829,6 +8170,16 @@ packages:
'@types/react':
optional: true
+ react-remove-scroll@2.6.0:
+ resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
react-style-singleton@2.2.1:
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
engines: {node: '>=10'}
@@ -8080,6 +8431,9 @@ packages:
secure-json-parse@2.7.0:
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
+ selderee@0.11.0:
+ resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
+
semantic-release@24.1.1:
resolution: {integrity: sha512-4Ax2GxD411jUe9IdhOjMLuN+6wAj+aKjvOGngByrpD/iKL+UKN/2puQglhyI4gxNyy9XzEBMzBwbqpnEwbXGEg==}
engines: {node: '>=20.8.1'}
@@ -8174,6 +8528,9 @@ packages:
resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==}
engines: {node: '>=6'}
+ simple-git@3.27.0:
+ resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
+
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
@@ -8854,6 +9211,11 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ typescript@5.5.4:
+ resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
typescript@5.6.2:
resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
engines: {node: '>=14.17'}
@@ -10408,41 +10770,6 @@ snapshots:
jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))':
- dependencies:
- '@jest/console': 29.7.0
- '@jest/reporters': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.16.5
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- ci-info: 3.9.0
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- jest-haste-map: 29.7.0
- jest-message-util: 29.7.0
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-resolve-dependencies: 29.7.0
- jest-runner: 29.7.0
- jest-runtime: 29.7.0
- jest-snapshot: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- jest-watcher: 29.7.0
- micromatch: 4.0.8
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-ansi: 6.0.1
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
- - ts-node
-
'@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2))':
dependencies:
'@jest/console': 29.7.0
@@ -10623,6 +10950,14 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
+ '@kwsites/file-exists@1.1.1':
+ dependencies:
+ debug: 4.3.7(supports-color@5.5.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@kwsites/promise-deferred@1.1.1': {}
+
'@ljharb/through@2.3.13':
dependencies:
call-bind: 1.0.7
@@ -11029,6 +11364,8 @@ snapshots:
dependencies:
'@octokit/openapi-types': 22.2.0
+ '@one-ini/wasm@0.1.1': {}
+
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -11201,6 +11538,12 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.6
+ '@radix-ui/react-context@1.1.1(@types/react@18.3.6)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.6
+
'@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.6
@@ -11279,22 +11622,35 @@ snapshots:
'@types/react': 18.3.6
'@types/react-dom': 18.3.0
- '@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/primitive': 1.1.0
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.6)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.6)(react@18.3.1)
- '@radix-ui/react-id': 1.1.0(@types/react@18.3.6)(react@18.3.1)
- '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.6)(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.6
'@types/react-dom': 18.3.0
- '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.6)(react@18.3.1)':
+ '@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.6
+ '@types/react-dom': 18.3.0
+
+ '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.6)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.6
react: 18.3.1
@@ -11307,6 +11663,12 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.6
+ '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.6)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 18.3.6
+
'@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.6
@@ -11463,6 +11825,16 @@ snapshots:
'@types/react': 18.3.6
'@types/react-dom': 18.3.0
+ '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.6
+ '@types/react-dom': 18.3.0
+
'@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.6
@@ -11537,6 +11909,35 @@ snapshots:
'@types/react': 18.3.6
'@types/react-dom': 18.3.0
+ '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/number': 1.1.0
+ '@radix-ui/primitive': 1.1.0
+ '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.1(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.6)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ aria-hidden: 1.2.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.6.0(@types/react@18.3.6)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.6
+ '@types/react-dom': 18.3.0
+
'@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -11683,6 +12084,126 @@ snapshots:
'@radix-ui/rect@1.1.0': {}
+ '@react-email/body@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/button@0.0.17(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/code-block@0.0.9(react@18.3.1)':
+ dependencies:
+ prismjs: 1.29.0
+ react: 18.3.1
+
+ '@react-email/code-inline@0.0.4(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/column@0.0.12(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/components@0.0.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@react-email/body': 0.0.10(react@18.3.1)
+ '@react-email/button': 0.0.17(react@18.3.1)
+ '@react-email/code-block': 0.0.9(react@18.3.1)
+ '@react-email/code-inline': 0.0.4(react@18.3.1)
+ '@react-email/column': 0.0.12(react@18.3.1)
+ '@react-email/container': 0.0.14(react@18.3.1)
+ '@react-email/font': 0.0.8(react@18.3.1)
+ '@react-email/head': 0.0.11(react@18.3.1)
+ '@react-email/heading': 0.0.14(react@18.3.1)
+ '@react-email/hr': 0.0.10(react@18.3.1)
+ '@react-email/html': 0.0.10(react@18.3.1)
+ '@react-email/img': 0.0.10(react@18.3.1)
+ '@react-email/link': 0.0.10(react@18.3.1)
+ '@react-email/markdown': 0.0.12(react@18.3.1)
+ '@react-email/preview': 0.0.11(react@18.3.1)
+ '@react-email/render': 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@react-email/row': 0.0.10(react@18.3.1)
+ '@react-email/section': 0.0.14(react@18.3.1)
+ '@react-email/tailwind': 0.1.0(react@18.3.1)
+ '@react-email/text': 0.0.10(react@18.3.1)
+ react: 18.3.1
+ transitivePeerDependencies:
+ - react-dom
+
+ '@react-email/container@0.0.14(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/font@0.0.8(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/head@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/heading@0.0.14(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/hr@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/html@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/img@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/link@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/markdown@0.0.12(react@18.3.1)':
+ dependencies:
+ md-to-react-email: 5.0.2(react@18.3.1)
+ react: 18.3.1
+
+ '@react-email/preview@0.0.11(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/render@1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ html-to-text: 9.0.5
+ js-beautify: 1.15.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-promise-suspense: 0.3.4
+
+ '@react-email/render@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ html-to-text: 9.0.5
+ js-beautify: 1.15.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-promise-suspense: 0.3.4
+
+ '@react-email/row@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/section@0.0.14(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/tailwind@0.1.0(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@react-email/text@0.0.10(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
'@redis/bloom@1.2.0(@redis/client@1.6.0)':
dependencies:
'@redis/client': 1.6.0
@@ -11771,6 +12292,11 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
+ '@selderee/plugin-htmlparser2@0.11.0':
+ dependencies:
+ domhandler: 5.0.3
+ selderee: 0.11.0
+
'@semantic-release/changelog@6.0.3(semantic-release@24.1.1(typescript@5.6.2))':
dependencies:
'@semantic-release/error': 3.0.0
@@ -12584,7 +13110,12 @@ snapshots:
'@types/react-dom@18.3.0':
dependencies:
- '@types/react': 18.3.6
+ '@types/react': 18.3.12
+
+ '@types/react@18.3.12':
+ dependencies:
+ '@types/prop-types': 15.7.12
+ csstype: 3.1.3
'@types/react@18.3.6':
dependencies:
@@ -12660,6 +13191,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)':
+ dependencies:
+ '@eslint-community/regexpp': 4.11.1
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.5.4)
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.5.4)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.5.4)
+ '@typescript-eslint/visitor-keys': 6.21.0
+ debug: 4.3.7(supports-color@5.5.0)
+ eslint: 8.57.1
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ semver: 7.6.3
+ ts-api-utils: 1.3.0(typescript@5.5.4)
+ optionalDependencies:
+ typescript: 5.5.4
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)':
dependencies:
'@eslint-community/regexpp': 4.11.1
@@ -12693,6 +13244,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
+ '@typescript-eslint/visitor-keys': 6.21.0
+ debug: 4.3.7(supports-color@5.5.0)
+ eslint: 8.57.1
+ optionalDependencies:
+ typescript: 5.5.4
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.2)':
dependencies:
'@typescript-eslint/scope-manager': 6.21.0
@@ -12728,6 +13292,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.5.4)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.5.4)
+ debug: 4.3.7(supports-color@5.5.0)
+ eslint: 8.57.1
+ ts-api-utils: 1.3.0(typescript@5.5.4)
+ optionalDependencies:
+ typescript: 5.5.4
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.6.2)':
dependencies:
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.2)
@@ -12773,6 +13349,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4)':
+ dependencies:
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/visitor-keys': 6.21.0
+ debug: 4.3.7(supports-color@5.5.0)
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.3
+ semver: 7.6.3
+ ts-api-utils: 1.3.0(typescript@5.5.4)
+ optionalDependencies:
+ typescript: 5.5.4
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.2)':
dependencies:
'@typescript-eslint/types': 6.21.0
@@ -12817,6 +13408,20 @@ snapshots:
- supports-color
- typescript
+ '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.5.4)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.8
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4)
+ eslint: 8.57.1
+ semver: 7.6.3
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
'@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
@@ -12964,9 +13569,7 @@ snapshots:
jsonparse: 1.3.1
through: 2.3.8
- abort-controller@3.0.0:
- dependencies:
- event-target-shim: 5.0.1
+ abbrev@2.0.0: {}
abort-controller@3.0.0:
dependencies:
@@ -13325,6 +13928,8 @@ snapshots:
before-after-hook@3.0.2: {}
+ big.js@5.2.2: {}
+
bin-check@4.1.0:
dependencies:
execa: 0.7.0
@@ -13672,6 +14277,8 @@ snapshots:
comma-separated-tokens@2.0.3: {}
+ commander@10.0.1: {}
+
commander@12.1.0: {}
commander@2.20.3: {}
@@ -13834,21 +14441,6 @@ snapshots:
sha.js: 2.4.11
optional: true
- create-jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)):
- dependencies:
- '@jest/types': 29.6.3
- chalk: 4.1.2
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- jest-util: 29.7.0
- prompts: 2.4.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
create-jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)):
dependencies:
'@jest/types': 29.6.3
@@ -14127,6 +14719,13 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
+ editorconfig@1.0.4:
+ dependencies:
+ '@one-ini/wasm': 0.1.1
+ commander: 10.0.1
+ minimatch: 9.0.1
+ semver: 7.6.3
+
ee-first@1.1.1: {}
ejs@3.1.10:
@@ -14153,6 +14752,8 @@ snapshots:
emojilib@2.4.0: {}
+ emojis-list@3.0.0: {}
+
encodeurl@1.0.2: {}
encodeurl@2.0.0: {}
@@ -14952,6 +15553,8 @@ snapshots:
fast-decode-uri-component@1.0.1: {}
+ fast-deep-equal@2.0.1: {}
+
fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {}
@@ -15041,6 +15644,12 @@ snapshots:
dependencies:
flat-cache: 3.2.0
+ file-loader@6.2.0(webpack@5.94.0(@swc/core@1.7.26)):
+ dependencies:
+ loader-utils: 2.0.4
+ schema-utils: 3.3.0
+ webpack: 5.94.0(@swc/core@1.7.26)
+
file-type@17.1.6:
dependencies:
readable-web-to-node-stream: 3.0.2
@@ -15521,6 +16130,21 @@ snapshots:
html-escaper@2.0.2: {}
+ html-to-text@9.0.5:
+ dependencies:
+ '@selderee/plugin-htmlparser2': 0.11.0
+ deepmerge: 4.3.1
+ dom-serializer: 2.0.0
+ htmlparser2: 8.0.2
+ selderee: 0.11.0
+
+ htmlparser2@8.0.2:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ entities: 4.5.0
+
http-cache-semantics@4.1.1: {}
http-errors@2.0.0:
@@ -15957,25 +16581,6 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)):
- dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- exit: 0.1.2
- import-local: 3.2.0
- jest-config: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- jest-util: 29.7.0
- jest-validate: 29.7.0
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
jest-cli@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)):
dependencies:
'@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2))
@@ -15995,37 +16600,6 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)):
- dependencies:
- '@babel/core': 7.25.2
- '@jest/test-sequencer': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.25.2)
- chalk: 4.1.2
- ci-info: 3.9.0
- deepmerge: 4.3.1
- glob: 7.2.3
- graceful-fs: 4.2.11
- jest-circus: 29.7.0
- jest-environment-node: 29.7.0
- jest-get-type: 29.6.3
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-runner: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 20.16.5
- ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
jest-config@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)):
dependencies:
'@babel/core': 7.25.2
@@ -16127,9 +16701,9 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
- jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)))(typescript@5.3.3):
+ jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)))(typescript@5.3.3):
dependencies:
- jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
+ jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2))
ts-essentials: 10.0.2(typescript@5.3.3)
typescript: 5.3.3
@@ -16284,18 +16858,6 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)):
- dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- '@jest/types': 29.6.3
- import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)):
dependencies:
'@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2))
@@ -16319,6 +16881,14 @@ snapshots:
joycon@3.1.1: {}
+ js-beautify@1.15.1:
+ dependencies:
+ config-chain: 1.1.13
+ editorconfig: 1.0.4
+ glob: 10.4.5
+ js-cookie: 3.0.5
+ nopt: 7.2.1
+
js-cookie@3.0.5: {}
js-tokens@4.0.0: {}
@@ -16417,6 +16987,8 @@ snapshots:
dependencies:
language-subtag-registry: 0.3.23
+ leac@0.6.0: {}
+
leven@3.1.0: {}
levn@0.4.1:
@@ -16459,6 +17031,12 @@ snapshots:
loader-runner@4.3.0: {}
+ loader-utils@2.0.4:
+ dependencies:
+ big.js: 5.2.2
+ emojis-list: 3.0.0
+ json5: 2.2.3
+
localforage@1.10.0:
dependencies:
lie: 3.1.1
@@ -16572,6 +17150,13 @@ snapshots:
marked@12.0.2: {}
+ marked@7.0.4: {}
+
+ md-to-react-email@5.0.2(react@18.3.1):
+ dependencies:
+ marked: 7.0.4
+ react: 18.3.1
+
md5.js@1.3.5:
dependencies:
hash-base: 3.1.0
@@ -16971,6 +17556,10 @@ snapshots:
dependencies:
brace-expansion: 2.0.1
+ minimatch@9.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@9.0.3:
dependencies:
brace-expansion: 2.0.1
@@ -17162,6 +17751,10 @@ snapshots:
touch: 3.1.1
undefsafe: 2.0.5
+ nopt@7.2.1:
+ dependencies:
+ abbrev: 2.0.0
+
normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
@@ -17388,6 +17981,11 @@ snapshots:
parse5@6.0.1: {}
+ parseley@0.12.1:
+ dependencies:
+ leac: 0.6.0
+ peberminta: 0.9.0
+
parseurl@1.3.3: {}
passport-github2@0.1.12:
@@ -17454,6 +18052,8 @@ snapshots:
pause@0.0.1: {}
+ peberminta@0.9.0: {}
+
peek-readable@5.2.0: {}
periscopic@3.1.0:
@@ -17604,6 +18204,8 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ prismjs@1.29.0: {}
+
process-nextick-args@2.0.1: {}
process-warning@3.0.0: {}
@@ -17703,6 +18305,10 @@ snapshots:
react-is@18.3.1: {}
+ react-promise-suspense@0.3.4:
+ dependencies:
+ fast-deep-equal: 2.0.1
+
react-remove-scroll-bar@2.3.6(@types/react@18.3.6)(react@18.3.1):
dependencies:
react: 18.3.1
@@ -17733,6 +18339,17 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.6
+ react-remove-scroll@2.6.0(@types/react@18.3.6)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.6(@types/react@18.3.6)(react@18.3.1)
+ react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1)
+ tslib: 2.7.0
+ use-callback-ref: 1.3.2(@types/react@18.3.6)(react@18.3.1)
+ use-sidecar: 1.1.2(@types/react@18.3.6)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.6
+
react-style-singleton@2.2.1(@types/react@18.3.6)(react@18.3.1):
dependencies:
get-nonce: 1.0.1
@@ -18049,6 +18666,10 @@ snapshots:
secure-json-parse@2.7.0: {}
+ selderee@0.11.0:
+ dependencies:
+ parseley: 0.12.1
+
semantic-release@24.1.1(typescript@5.6.2):
dependencies:
'@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.1.1(typescript@5.6.2))
@@ -18212,6 +18833,14 @@ snapshots:
figures: 2.0.0
pkg-conf: 2.1.0
+ simple-git@3.27.0:
+ dependencies:
+ '@kwsites/file-exists': 1.1.1
+ '@kwsites/promise-deferred': 1.1.1
+ debug: 4.3.7(supports-color@5.5.0)
+ transitivePeerDependencies:
+ - supports-color
+
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
@@ -18728,6 +19357,10 @@ snapshots:
dependencies:
typescript: 4.9.5
+ ts-api-utils@1.3.0(typescript@5.5.4):
+ dependencies:
+ typescript: 5.5.4
+
ts-api-utils@1.3.0(typescript@5.6.2):
dependencies:
typescript: 5.6.2
@@ -18738,12 +19371,12 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3)))(typescript@5.3.3):
+ ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2)))(typescript@5.3.3):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3))
+ jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2))
jest-util: 29.7.0
json5: 2.2.3
lodash.memoize: 4.1.2
@@ -18786,27 +19419,6 @@ snapshots:
typescript: 5.3.3
webpack: 5.94.0(@swc/core@1.7.26)
- ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.3.3):
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.11
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 20.16.5
- acorn: 8.12.1
- acorn-walk: 8.3.4
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.3.3
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- optionalDependencies:
- '@swc/core': 1.7.26(@swc/helpers@0.5.5)
- optional: true
-
ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.6.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
@@ -18994,6 +19606,8 @@ snapshots:
typescript@5.3.3: {}
+ typescript@5.5.4: {}
+
typescript@5.6.2: {}
uglify-js@3.19.3: