fix long loading time, fix typescript errors

This commit is contained in:
Matthias Nannt
2023-08-26 10:42:21 +02:00
parent 4734a1d369
commit 8e1018dd6a
11 changed files with 206 additions and 180 deletions

View File

@@ -59,7 +59,7 @@ function useVisibleSections(sectionStore: StoreApi<SectionState>) {
useEffect(() => {
function checkVisibleSections() {
let { innerHeight, scrollY } = window;
let newVisibleSections = [];
let newVisibleSections: string[] = []; // Explicitly type the array here
for (let sectionIndex = 0; sectionIndex < sections.length; sectionIndex++) {
let { id, headingRef, offsetRem = 0 } = sections[sectionIndex];

View File

@@ -19,11 +19,11 @@ export function cleanHtml(str: string): string {
* Remove <script> elements
* @param {Node} html The HTML
*/
function removeScripts(html) {
function removeScripts(html: Element) {
let scripts = html.querySelectorAll("script");
for (let script of scripts) {
scripts.forEach((script) => {
script.remove();
}
});
}
/**
@@ -32,23 +32,33 @@ export function cleanHtml(str: string): string {
* @param {String} value The attribute value
* @return {Boolean} If true, the attribute is potentially dangerous
*/
function isPossiblyDangerous(name, value) {
/**
* Check if the attribute is potentially dangerous
*/
function isPossiblyDangerous(name: string, value: string): boolean {
let val = value.replace(/\s+/g, "").toLowerCase();
if (["src", "href", "xlink:href"].includes(name)) {
if (val.includes("javascript:") || val.includes("data:")) return true;
if (
["src", "href", "xlink:href"].includes(name) &&
(val.includes("javascript:") || val.includes("data:"))
) {
return true;
}
if (name.startsWith("on")) return true;
if (name.startsWith("on")) {
return true;
}
return false;
}
/**
* Remove potentially dangerous attributes from an element
* @param {Node} elem The element
*/
function removeAttributes(elem) {
function removeAttributes(elem: Element) {
// Loop through each attribute
// If it's dangerous, remove it
let atts = elem.attributes;
for (let { name, value } of atts) {
for (let i = 0; i < atts.length; i++) {
let { name, value } = atts[i];
if (!isPossiblyDangerous(name, value)) continue;
elem.removeAttribute(name);
}
@@ -58,8 +68,12 @@ export function cleanHtml(str: string): string {
* Remove dangerous stuff from the HTML document's nodes
* @param {Node} html The HTML document
*/
function clean(html) {
let nodes = html.children;
/**
* Clean the HTML nodes recursively
* @param {Element} html The HTML element
*/
function clean(html: Element) {
let nodes = Array.from(html.children);
for (let node of nodes) {
removeAttributes(node);
clean(node);

View File

@@ -1,4 +1,4 @@
export const handleFeedbackSubmit = async (YesNo, pageUrl) => {
export const handleFeedbackSubmit = async (YesNo: string, pageUrl: string | null) => {
const response_data = {
data: {
isHelpful: YesNo,
@@ -34,7 +34,7 @@ export const handleFeedbackSubmit = async (YesNo, pageUrl) => {
}
};
export const updateFeedback = async (freeText, responseId) => {
export const updateFeedback = async (freeText: string, responseId: string) => {
if (!responseId) {
console.error("No response ID available");
return;

View File

@@ -29,8 +29,6 @@
"@sindresorhus/slugify": "^2.2.1",
"@tailwindcss/typography": "^0.5.9",
"@types/node": "20.5.6",
"@types/react": "18.2.21",
"@types/react-dom": "18.2.7",
"@types/react-highlight-words": "^0.16.4",
"acorn": "^8.10.0",
"autoprefixer": "^10.4.15",
@@ -62,14 +60,12 @@
"shiki": "^0.14.3",
"simple-functional-loader": "^1.2.1",
"tailwindcss": "^3.3.3",
"typescript": "5.2.2",
"unist-util-filter": "^5.0.0",
"unist-util-visit": "^5.0.0",
"zustand": "^4.4.1"
},
"devDependencies": {
"@formbricks/tsconfig": "workspace:*",
"eslint-config-formbricks": "workspace:*",
"sharp": "^0.32.5"
"eslint-config-formbricks": "workspace:*"
}
}

View File

@@ -65,7 +65,7 @@ export async function getStaticPaths() {
const articles = (await response.json()) as ArticleResponse;
const paths = articles.data.map((article) => ({
params: { slug: article.attributes.slug },
params: { slug: article.attributes?.slug },
}));
return { paths, fallback: true };
@@ -103,23 +103,23 @@ export default function ArticlePage({ article = {} }: ArticlePageProps) {
author,
publishedAt,
text,
faq,
faq = [],
meta: {
title,
description,
section,
title = "",
description = "",
section = "",
tags = [], // default empty array if tags are not provided
} = {}, // default empty object if meta is not provided
} = {}, // default empty object if attributes are not provided
} = article;
const metaTags = tags.map((tag) => tag.tag);
const metaTags = tags.map((tag) => tag.tag || "").filter((t) => t !== "");
const meta = {
title,
description,
publishedTime: publishedAt,
authors: [author],
publishedTime: publishedAt || Date.now().toString(),
authors: [author || "Formbricks"],
section,
tags: metaTags,
};
@@ -133,7 +133,7 @@ export default function ArticlePage({ article = {} }: ArticlePageProps) {
return (
<LayoutMdx meta={meta}>
<>
<ReactMarkdown components={renderers}>{text}</ReactMarkdown>
<ReactMarkdown components={renderers}>{text as any}</ReactMarkdown>
<FAQPageJsonLd mainEntity={faqEntities} />
</>
</LayoutMdx>

View File

@@ -1,31 +1,44 @@
import headlessuiPlugin from "@headlessui/tailwindcss";
import typographyPlugin from "@tailwindcss/typography";
import { type Config } from "tailwindcss";
import defaultTheme from "tailwindcss/defaultTheme";
import typographyStyles from "./typography";
const defaultTheme = require("tailwindcss/defaultTheme");
export default {
content: ["./**/*.{js,mjs,jsx,ts,tsx,mdx}"],
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
"../../packages/ui/components/**/*.{js,ts,jsx,tsx}",
],
darkMode: "class",
theme: {
fontSize: {
"2xs": ["0.75rem", { lineHeight: "1.25rem" }],
xs: ["0.8125rem", { lineHeight: "1.5rem" }],
xs: ["0.75rem", { lineHeight: "1rem" }],
sm: ["0.875rem", { lineHeight: "1.5rem" }],
base: ["1rem", { lineHeight: "1.75rem" }],
base: ["1rem", { lineHeight: "2rem" }],
lg: ["1.125rem", { lineHeight: "1.75rem" }],
xl: ["1.25rem", { lineHeight: "1.75rem" }],
"2xl": ["1.5rem", { lineHeight: "2rem" }],
"3xl": ["1.875rem", { lineHeight: "2.25rem" }],
"4xl": ["2.25rem", { lineHeight: "2.5rem" }],
"5xl": ["3rem", { lineHeight: "1" }],
xl: ["1.25rem", { lineHeight: "2rem" }],
"2xl": ["1.5rem", { lineHeight: "2.5rem" }],
"3xl": ["2rem", { lineHeight: "2.5rem" }],
"4xl": ["2.5rem", { lineHeight: "3rem" }],
"5xl": ["3rem", { lineHeight: "3.5rem" }],
"6xl": ["3.75rem", { lineHeight: "1" }],
"7xl": ["4.5rem", { lineHeight: "1" }],
"8xl": ["6rem", { lineHeight: "1" }],
"9xl": ["8rem", { lineHeight: "1" }],
},
typography: typographyStyles,
extend: {
boxShadow: {
glow: "0 0 4px rgb(0 0 0 / 0.1)",
},
dropShadow: {
card: "0px 4px 12px rgba(0, 0, 0, 0.5);",
},
maxWidth: {
lg: "33rem",
"2xl": "40rem",
"3xl": "50rem",
"5xl": "66rem",
"8xl": "88rem",
},
colors: {
brand: {
DEFAULT: "#00C4B8",
@@ -44,16 +57,6 @@ export default {
screens: {
xs: "430px",
},
dropShadow: {
card: "0px 4px 12px rgba(0, 0, 0, 0.5);",
},
maxWidth: {
lg: "33rem",
"2xl": "40rem",
"3xl": "50rem",
"5xl": "66rem",
"8xl": "88rem",
},
opacity: {
1: "0.01",
2.5: "0.025",
@@ -62,5 +65,9 @@ export default {
},
},
},
plugins: [typographyPlugin, headlessuiPlugin],
} satisfies Config;
plugins: [
require("@tailwindcss/typography"),
require("@tailwindcss/forms"),
require("@headlessui/tailwindcss"),
],
};

View File

@@ -1,28 +1,24 @@
{
"extends": "@formbricks/tsconfig/nextjs.json",
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"../../packages/types/*.d.ts"
],
"compilerOptions": {
"target": "es6",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"baseUrl": ".",
"paths": {
"@/*": ["./*"]
}
"@/*": [
"./*"
]
},
"strictNullChecks": true
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"plugins": [
{
"name": "next"
}
]
}

View File

@@ -19,7 +19,7 @@ export function cleanHtml(str: string): string {
* Remove <script> elements
* @param {Node} html The HTML
*/
function removeScripts(html) {
function removeScripts(html: Element) {
let scripts = html.querySelectorAll("script");
for (let script of scripts) {
script.remove();
@@ -32,19 +32,28 @@ export function cleanHtml(str: string): string {
* @param {String} value The attribute value
* @return {Boolean} If true, the attribute is potentially dangerous
*/
function isPossiblyDangerous(name, value) {
/**
* Check if the attribute is potentially dangerous
*/
function isPossiblyDangerous(name: string, value: string): boolean {
let val = value.replace(/\s+/g, "").toLowerCase();
if (["src", "href", "xlink:href"].includes(name)) {
if (val.includes("javascript:") || val.includes("data:")) return true;
if (
["src", "href", "xlink:href"].includes(name) &&
(val.includes("javascript:") || val.includes("data:"))
) {
return true;
}
if (name.startsWith("on")) return true;
if (name.startsWith("on")) {
return true;
}
return false;
}
/**
* Remove potentially dangerous attributes from an element
* @param {Node} elem The element
*/
function removeAttributes(elem) {
function removeAttributes(elem: Element) {
// Loop through each attribute
// If it's dangerous, remove it
let atts = elem.attributes;
@@ -58,7 +67,11 @@ export function cleanHtml(str: string): string {
* Remove dangerous stuff from the HTML document's nodes
* @param {Node} html The HTML document
*/
function clean(html) {
/**
* Clean the HTML nodes recursively
* @param {Element} html The HTML element
*/
function clean(html: Element) {
let nodes = html.children;
for (let node of nodes) {
removeAttributes(node);

View File

@@ -19,11 +19,11 @@ export function cleanHtml(str: string): string {
* Remove <script> elements
* @param {Node} html The HTML
*/
function removeScripts(html) {
function removeScripts(html: Element) {
let scripts = html.querySelectorAll("script");
for (let script of scripts) {
scripts.forEach((script) => {
script.remove();
}
});
}
/**
@@ -32,23 +32,33 @@ export function cleanHtml(str: string): string {
* @param {String} value The attribute value
* @return {Boolean} If true, the attribute is potentially dangerous
*/
function isPossiblyDangerous(name, value) {
/**
* Check if the attribute is potentially dangerous
*/
function isPossiblyDangerous(name: string, value: string): boolean {
let val = value.replace(/\s+/g, "").toLowerCase();
if (["src", "href", "xlink:href"].includes(name)) {
if (val.includes("javascript:") || val.includes("data:")) return true;
if (
["src", "href", "xlink:href"].includes(name) &&
(val.includes("javascript:") || val.includes("data:"))
) {
return true;
}
if (name.startsWith("on")) return true;
if (name.startsWith("on")) {
return true;
}
return false;
}
/**
* Remove potentially dangerous attributes from an element
* @param {Node} elem The element
*/
function removeAttributes(elem) {
function removeAttributes(elem: Element) {
// Loop through each attribute
// If it's dangerous, remove it
let atts = elem.attributes;
for (let { name, value } of atts) {
for (let i = 0; i < atts.length; i++) {
let { name, value } = atts[i];
if (!isPossiblyDangerous(name, value)) continue;
elem.removeAttribute(name);
}
@@ -58,8 +68,12 @@ export function cleanHtml(str: string): string {
* Remove dangerous stuff from the HTML document's nodes
* @param {Node} html The HTML document
*/
function clean(html) {
let nodes = html.children;
/**
* Clean the HTML nodes recursively
* @param {Element} html The HTML element
*/
function clean(html: Element) {
let nodes = Array.from(html.children);
for (let node of nodes) {
removeAttributes(node);
clean(node);

View File

@@ -18,4 +18,4 @@
},
"include": ["src", "next-env.d.ts"],
"exclude": ["node_modules"]
}
}

152
pnpm-lock.yaml generated
View File

@@ -96,12 +96,6 @@ importers:
'@types/node':
specifier: 20.5.6
version: 20.5.6
'@types/react':
specifier: 18.2.21
version: 18.2.21
'@types/react-dom':
specifier: 18.2.7
version: 18.2.7
'@types/react-highlight-words':
specifier: ^0.16.4
version: 0.16.4
@@ -195,9 +189,6 @@ importers:
tailwindcss:
specifier: ^3.3.3
version: 3.3.3
typescript:
specifier: 5.2.2
version: 5.2.2
unist-util-filter:
specifier: ^5.0.0
version: 5.0.0
@@ -264,13 +255,13 @@ importers:
version: 7.61.0(next@13.4.10)(react@18.2.0)
'@t3-oss/env-nextjs':
specifier: ^0.6.0
version: 0.6.0(typescript@5.2.2)(zod@3.21.4)
version: 0.6.0(typescript@5.1.6)(zod@3.21.4)
bcryptjs:
specifier: ^2.4.3
version: 2.4.3
eslint-config-next:
specifier: ^13.4.12
version: 13.4.12(eslint@8.46.0)(typescript@5.2.2)
version: 13.4.12(eslint@8.46.0)(typescript@5.1.6)
jsonwebtoken:
specifier: ^9.0.1
version: 9.0.1
@@ -430,7 +421,7 @@ importers:
version: 8.46.0
eslint-config-next:
specifier: ^13.4.12
version: 13.4.12(eslint@8.46.0)(typescript@5.2.2)
version: 13.4.12(eslint@8.46.0)(typescript@5.1.6)
eslint-config-prettier:
specifier: ^8.10.0
version: 8.10.0(eslint@8.46.0)
@@ -463,10 +454,10 @@ importers:
version: 29.5.3
'@typescript-eslint/eslint-plugin':
specifier: ^6.2.1
version: 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.2.2)
version: 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6)
'@typescript-eslint/parser':
specifier: ^6.2.1
version: 6.2.1(eslint@8.46.0)(typescript@5.2.2)
version: 6.2.1(eslint@8.46.0)(typescript@5.1.6)
autoprefixer:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.27)
@@ -481,7 +472,7 @@ importers:
version: link:../eslint-config-formbricks
eslint-config-preact:
specifier: ^1.3.0
version: 1.3.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.2.2)
version: 1.3.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6)
isomorphic-fetch:
specifier: ^3.0.0
version: 3.0.0
@@ -505,7 +496,7 @@ importers:
version: 10.16.0
preact-cli:
specifier: ^3.5.0
version: 3.5.0(eslint@8.46.0)(preact-render-to-string@6.2.0)(preact@10.16.0)(typescript@5.2.2)
version: 3.5.0(eslint@8.46.0)(preact-render-to-string@6.2.0)(preact@10.16.0)(typescript@5.1.6)
preact-render-to-string:
specifier: ^6.2.0
version: 6.2.0(preact@10.16.0)
@@ -5634,24 +5625,24 @@ packages:
dependencies:
defer-to-connect: 1.1.3
/@t3-oss/env-core@0.6.0(typescript@5.2.2)(zod@3.21.4):
/@t3-oss/env-core@0.6.0(typescript@5.1.6)(zod@3.21.4):
resolution: {integrity: sha512-3FkPAba069WRZVVab/sB1m3eSGn/rZeypx5k+sWEu1d+k0OQdRDnvFS+7MtxYgqVrwaRk3b7yVnX2dgSPVmWPQ==}
peerDependencies:
typescript: '>=4.7.2'
zod: ^3.0.0
dependencies:
typescript: 5.2.2
typescript: 5.1.6
zod: 3.21.4
dev: false
/@t3-oss/env-nextjs@0.6.0(typescript@5.2.2)(zod@3.21.4):
/@t3-oss/env-nextjs@0.6.0(typescript@5.1.6)(zod@3.21.4):
resolution: {integrity: sha512-SpzcGNIbUYcQw4zPPFeRJqCC1560zL7QmB0puIqOnuCsmykPkqHPX+n9CNZLXVQerboHzfvb7Kd+jAdouk72Vw==}
peerDependencies:
typescript: '>=4.7.2'
zod: ^3.0.0
dependencies:
'@t3-oss/env-core': 0.6.0(typescript@5.2.2)(zod@3.21.4)
typescript: 5.2.2
'@t3-oss/env-core': 0.6.0(typescript@5.1.6)(zod@3.21.4)
typescript: 5.1.6
zod: 3.21.4
dev: false
@@ -5989,6 +5980,7 @@ packages:
resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==}
dependencies:
'@types/react': 18.2.21
dev: true
/@types/react-highlight-words@0.16.4:
resolution: {integrity: sha512-KITBX3xzheQLu2s3bUgLmRE7ekmhc52zRjRTwkKayQARh30L4fjEGzGm7ULK9TuX2LgxWWavZqyQGDGjAHbL3w==}
@@ -6130,7 +6122,7 @@ packages:
'@types/yargs-parser': 21.0.0
dev: true
/@typescript-eslint/eslint-plugin@6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/eslint-plugin@6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -6142,10 +6134,10 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.6.2
'@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
'@typescript-eslint/scope-manager': 6.2.1
'@typescript-eslint/type-utils': 6.2.1(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/type-utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
'@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
'@typescript-eslint/visitor-keys': 6.2.1
debug: 4.3.4
eslint: 8.46.0
@@ -6154,26 +6146,26 @@ packages:
natural-compare: 1.4.0
natural-compare-lite: 1.4.0
semver: 7.5.4
ts-api-utils: 1.0.1(typescript@5.2.2)
typescript: 5.2.2
ts-api-utils: 1.0.1(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/experimental-utils@5.54.0(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/experimental-utils@5.54.0(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-rRYECOTh5V3iWsrOzXi7h1jp3Bi9OkJHrb3wECi3DVqMGTilo9wAYmCbT+6cGdrzUY3MWcAa2mESM6FMik6tVw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@typescript-eslint/utils': 5.54.0(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/utils': 5.54.0(eslint@8.46.0)(typescript@5.1.6)
eslint: 8.46.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/@typescript-eslint/parser@5.59.9(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/parser@5.59.9(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -6185,14 +6177,14 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.59.9
'@typescript-eslint/types': 5.59.9
'@typescript-eslint/typescript-estree': 5.59.9(typescript@5.2.2)
'@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.6)
debug: 4.3.4
eslint: 8.46.0
typescript: 5.2.2
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
/@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -6204,11 +6196,11 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 6.2.1
'@typescript-eslint/types': 6.2.1
'@typescript-eslint/typescript-estree': 6.2.1(typescript@5.2.2)
'@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6)
'@typescript-eslint/visitor-keys': 6.2.1
debug: 4.3.4
eslint: 8.46.0
typescript: 5.2.2
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
@@ -6236,7 +6228,7 @@ packages:
'@typescript-eslint/visitor-keys': 6.2.1
dev: true
/@typescript-eslint/type-utils@6.2.1(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/type-utils@6.2.1(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -6246,12 +6238,12 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 6.2.1(typescript@5.2.2)
'@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6)
'@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6)
debug: 4.3.4
eslint: 8.46.0
ts-api-utils: 1.0.1(typescript@5.2.2)
typescript: 5.2.2
ts-api-utils: 1.0.1(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
@@ -6270,7 +6262,7 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
/@typescript-eslint/typescript-estree@5.54.0(typescript@5.2.2):
/@typescript-eslint/typescript-estree@5.54.0(typescript@5.1.6):
resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -6285,13 +6277,13 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
tsutils: 3.21.0(typescript@5.2.2)
typescript: 5.2.2
tsutils: 3.21.0(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/typescript-estree@5.59.9(typescript@5.2.2):
/@typescript-eslint/typescript-estree@5.59.9(typescript@5.1.6):
resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -6306,12 +6298,12 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
tsutils: 3.21.0(typescript@5.2.2)
typescript: 5.2.2
tsutils: 3.21.0(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
/@typescript-eslint/typescript-estree@6.2.1(typescript@5.2.2):
/@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6):
resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -6326,13 +6318,13 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
ts-api-utils: 1.0.1(typescript@5.2.2)
typescript: 5.2.2
ts-api-utils: 1.0.1(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/utils@5.54.0(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/utils@5.54.0(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -6342,7 +6334,7 @@ packages:
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.54.0
'@typescript-eslint/types': 5.54.0
'@typescript-eslint/typescript-estree': 5.54.0(typescript@5.2.2)
'@typescript-eslint/typescript-estree': 5.54.0(typescript@5.1.6)
eslint: 8.46.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.46.0)
@@ -6352,7 +6344,7 @@ packages:
- typescript
dev: true
/@typescript-eslint/utils@6.2.1(eslint@8.46.0)(typescript@5.2.2):
/@typescript-eslint/utils@6.2.1(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -6363,7 +6355,7 @@ packages:
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 6.2.1
'@typescript-eslint/types': 6.2.1
'@typescript-eslint/typescript-estree': 6.2.1(typescript@5.2.2)
'@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6)
eslint: 8.46.0
semver: 7.5.4
transitivePeerDependencies:
@@ -10065,7 +10057,7 @@ packages:
source-map: 0.6.1
dev: true
/eslint-config-next@13.4.12(eslint@8.46.0)(typescript@5.2.2):
/eslint-config-next@13.4.12(eslint@8.46.0)(typescript@5.1.6):
resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
@@ -10076,7 +10068,7 @@ packages:
dependencies:
'@next/eslint-plugin-next': 13.4.12
'@rushstack/eslint-patch': 1.2.0
'@typescript-eslint/parser': 5.59.9(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/parser': 5.59.9(eslint@8.46.0)(typescript@5.1.6)
eslint: 8.46.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.46.0)
@@ -10084,12 +10076,12 @@ packages:
eslint-plugin-jsx-a11y: 6.6.1(eslint@8.46.0)
eslint-plugin-react: 7.33.1(eslint@8.46.0)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.46.0)
typescript: 5.2.2
typescript: 5.1.6
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
/eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.2.2):
/eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6):
resolution: {integrity: sha512-yHYXg5qNzEJd3D/30AmsIW0W8MuY858KpApXp7xxBF08IYUljSKCOqMx+dVucXHQnAm7+11wOnMkgVHIBAechw==}
peerDependencies:
eslint: 6.x || 7.x || 8.x
@@ -10101,7 +10093,7 @@ packages:
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.9)
eslint: 8.46.0
eslint-plugin-compat: 4.1.2(eslint@8.46.0)
eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.2.2)
eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6)
eslint-plugin-react: 7.33.1(eslint@8.46.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.46.0)
transitivePeerDependencies:
@@ -10177,7 +10169,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.59.9(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/parser': 5.59.9(eslint@8.46.0)(typescript@5.1.6)
debug: 3.2.7
eslint: 8.46.0
eslint-import-resolver-node: 0.3.6
@@ -10211,7 +10203,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.59.9(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/parser': 5.59.9(eslint@8.46.0)(typescript@5.1.6)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
debug: 2.6.9
@@ -10231,7 +10223,7 @@ packages:
- eslint-import-resolver-webpack
- supports-color
/eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.2.2):
/eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0)(jest@29.6.2)(typescript@5.1.6):
resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
peerDependencies:
@@ -10244,8 +10236,8 @@ packages:
jest:
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/experimental-utils': 5.54.0(eslint@8.46.0)(typescript@5.2.2)
'@typescript-eslint/eslint-plugin': 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6)
'@typescript-eslint/experimental-utils': 5.54.0(eslint@8.46.0)(typescript@5.1.6)
eslint: 8.46.0
jest: 29.6.2
transitivePeerDependencies:
@@ -10928,7 +10920,7 @@ packages:
resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
dev: true
/fork-ts-checker-webpack-plugin@4.1.6(eslint@8.46.0)(typescript@5.2.2)(webpack@4.46.0):
/fork-ts-checker-webpack-plugin@4.1.6(eslint@8.46.0)(typescript@5.1.6)(webpack@4.46.0):
resolution: {integrity: sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==}
engines: {node: '>=6.11.5', yarn: '>=1.0.0'}
peerDependencies:
@@ -10949,7 +10941,7 @@ packages:
minimatch: 3.1.2
semver: 5.7.1
tapable: 1.1.3
typescript: 5.2.2
typescript: 5.1.6
webpack: 4.46.0
worker-rpc: 0.1.1
transitivePeerDependencies:
@@ -15934,11 +15926,11 @@ packages:
resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==}
dev: true
/pnp-webpack-plugin@1.7.0(typescript@5.2.2):
/pnp-webpack-plugin@1.7.0(typescript@5.1.6):
resolution: {integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==}
engines: {node: '>=6'}
dependencies:
ts-pnp: 1.2.0(typescript@5.2.2)
ts-pnp: 1.2.0(typescript@5.1.6)
transitivePeerDependencies:
- typescript
dev: true
@@ -17030,7 +17022,7 @@ packages:
- debug
dev: false
/preact-cli@3.5.0(eslint@8.46.0)(preact-render-to-string@6.2.0)(preact@10.16.0)(typescript@5.2.2):
/preact-cli@3.5.0(eslint@8.46.0)(preact-render-to-string@6.2.0)(preact@10.16.0)(typescript@5.1.6):
resolution: {integrity: sha512-x6B3p4aTzI9T1nWrMlXe0itfzJ2h8oC8S5kTJydzikcW/0ORDBSX1M8vT1FmjeLPDlyGvqlrRx1RI17XuxWIOA==}
engines: {node: '>=12'}
hasBin: true
@@ -17081,7 +17073,7 @@ packages:
envinfo: 7.8.1
esm: 3.2.25
file-loader: 6.2.0(webpack@4.46.0)
fork-ts-checker-webpack-plugin: 4.1.6(eslint@8.46.0)(typescript@5.2.2)(webpack@4.46.0)
fork-ts-checker-webpack-plugin: 4.1.6(eslint@8.46.0)(typescript@5.1.6)(webpack@4.46.0)
get-port: 5.1.1
gittar: 0.1.1
glob: 8.1.0
@@ -17096,7 +17088,7 @@ packages:
native-url: 0.3.4
optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.46.0)
ora: 5.4.1
pnp-webpack-plugin: 1.7.0(typescript@5.2.2)
pnp-webpack-plugin: 1.7.0(typescript@5.1.6)
postcss: 8.4.27
postcss-load-config: 3.1.4(postcss@8.4.27)
postcss-loader: 4.3.0(postcss@8.4.27)(webpack@4.46.0)
@@ -17115,7 +17107,7 @@ packages:
stack-trace: 0.0.10
style-loader: 2.0.0(webpack@4.46.0)
terser-webpack-plugin: 4.2.3(webpack@4.46.0)
typescript: 5.2.2
typescript: 5.1.6
update-notifier: 5.1.0
url-loader: 4.1.1(file-loader@6.2.0)(webpack@4.46.0)
validate-npm-package-name: 4.0.0
@@ -20155,13 +20147,13 @@ packages:
resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
dev: false
/ts-api-utils@1.0.1(typescript@5.2.2):
/ts-api-utils@1.0.1(typescript@5.1.6):
resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
engines: {node: '>=16.13.0'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
typescript: 5.2.2
typescript: 5.1.6
dev: true
/ts-easing@0.2.0:
@@ -20182,7 +20174,7 @@ packages:
resolution: {integrity: sha512-sFHQYD4KoysBi7e7a2mzDPvRBeqA4w+vEyRE+P5MU9VLq8eEYxgKCgD9RNEAT+itGRWUTYN+hry94GDPLb1/Yw==}
dev: true
/ts-pnp@1.2.0(typescript@5.2.2):
/ts-pnp@1.2.0(typescript@5.1.6):
resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==}
engines: {node: '>=6'}
peerDependencies:
@@ -20191,7 +20183,7 @@ packages:
typescript:
optional: true
dependencies:
typescript: 5.2.2
typescript: 5.1.6
dev: true
/tsconfig-paths@3.14.1:
@@ -20246,14 +20238,14 @@ packages:
- ts-node
dev: true
/tsutils@3.21.0(typescript@5.2.2):
/tsutils@3.21.0(typescript@5.1.6):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 5.2.2
typescript: 5.1.6
/tsx@3.12.7:
resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==}
@@ -20440,12 +20432,6 @@ packages:
resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
/typescript@5.2.2:
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
engines: {node: '>=14.17'}
hasBin: true
/ua-parser-js@1.0.35:
resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==}