diff --git a/client.d.ts b/client.d.ts index c3ef8ee..047203f 100644 --- a/client.d.ts +++ b/client.d.ts @@ -1 +1 @@ -export * from './dist/client/index' +export * from './dist/runtime/client' diff --git a/examples/custom/.gitignore b/examples/custom/.gitignore new file mode 100644 index 0000000..d233591 --- /dev/null +++ b/examples/custom/.gitignore @@ -0,0 +1,7 @@ +node_modules +*.log* +.nuxt +.nitro +.cache +.output +.env \ No newline at end of file diff --git a/examples/custom/README.md b/examples/custom/README.md new file mode 100644 index 0000000..7257bce --- /dev/null +++ b/examples/custom/README.md @@ -0,0 +1,31 @@ +# dev playground + +## Setup + +Make sure to install the dependencies: + +```bash +pnpm install +``` + +## Development Server + +Start the development server on http://localhost:3000 + +```bash +pnpm dev +``` + +## Production + +Build the application for production: + +```bash +pnpm build +``` + +Locally preview production build: + +```bash +pnpm preview +``` diff --git a/examples/custom/app.vue b/examples/custom/app.vue new file mode 100644 index 0000000..2b1be09 --- /dev/null +++ b/examples/custom/app.vue @@ -0,0 +1,5 @@ + diff --git a/examples/custom/nuxt.config.ts b/examples/custom/nuxt.config.ts new file mode 100644 index 0000000..21768db --- /dev/null +++ b/examples/custom/nuxt.config.ts @@ -0,0 +1,7 @@ +// https://v3.nuxtjs.org/api/configuration/nuxt.config +export default defineNuxtConfig({ + modules: ['trpc-nuxt'], + trpc: { + enableFileRouting: false + } +}) diff --git a/examples/custom/package.json b/examples/custom/package.json new file mode 100644 index 0000000..8dc9eae --- /dev/null +++ b/examples/custom/package.json @@ -0,0 +1,20 @@ +{ + "name": "custom", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview" + }, + "dependencies": { + "@trpc/client": "10.0.0-rc.4", + "@trpc/server": "10.0.0-rc.4", + "superjson": "^1.11.0", + "trpc-nuxt": "workspace:*", + "zod": "^3.19.1" + }, + "devDependencies": { + "nuxt": "3.0.0-rc.13" + } +} diff --git a/examples/custom/pages/index.vue b/examples/custom/pages/index.vue new file mode 100644 index 0000000..d3c3baa --- /dev/null +++ b/examples/custom/pages/index.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/examples/custom/pages/todo/[id].vue b/examples/custom/pages/todo/[id].vue new file mode 100644 index 0000000..5c251cc --- /dev/null +++ b/examples/custom/pages/todo/[id].vue @@ -0,0 +1,19 @@ + + + diff --git a/examples/custom/plugins/trpc-client.ts b/examples/custom/plugins/trpc-client.ts new file mode 100644 index 0000000..93e715d --- /dev/null +++ b/examples/custom/plugins/trpc-client.ts @@ -0,0 +1,27 @@ +import { httpBatchLink, loggerLink } from '@trpc/client' +import { createTRPCNuxtProxyClient } from 'trpc-nuxt/client' +import superjson from 'superjson' +import { AppRouter } from '~~/server/trpc/routers' + +export default defineNuxtPlugin(() => { + const client = createTRPCNuxtProxyClient({ + transformer: superjson, + links: [ + // adds pretty logs to your console in development and logs errors in production + loggerLink({ + enabled: opts => + process.env.NODE_ENV === 'development' || + (opts.direction === 'down' && opts.result instanceof Error) + }), + httpBatchLink({ + url: 'http://localhost:3000/api/trpc' + }) + ] + }) + + return { + provide: { + client + } + } +}) diff --git a/playground/server/api/trpc/[trpc].ts b/examples/custom/server/api/trpc/[trpc].ts similarity index 90% rename from playground/server/api/trpc/[trpc].ts rename to examples/custom/server/api/trpc/[trpc].ts index 4309837..8fde704 100644 --- a/playground/server/api/trpc/[trpc].ts +++ b/examples/custom/server/api/trpc/[trpc].ts @@ -1,4 +1,4 @@ -import { createNuxtApiHandler } from 'trpc-nuxt' +import { createNuxtApiHandler } from 'trpc-nuxt/handler' import { appRouter } from '@/server/trpc/routers' import { createContext } from '@/server/trpc/context' diff --git a/examples/custom/server/trpc/context.ts b/examples/custom/server/trpc/context.ts new file mode 100644 index 0000000..cd78756 --- /dev/null +++ b/examples/custom/server/trpc/context.ts @@ -0,0 +1,17 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import type { inferAsyncReturnType } from '@trpc/server' +import type { H3Event } from 'h3' + +export type Context = inferAsyncReturnType + +/** + * Creates context for an incoming request + * @link https://trpc.io/docs/context + */ +export function createContext ( + opts: H3Event +) { + // for API-response caching see https://trpc.io/docs/caching + + return {} +} diff --git a/playground/server/trpc/routers/index.ts b/examples/custom/server/trpc/routers/index.ts similarity index 100% rename from playground/server/trpc/routers/index.ts rename to examples/custom/server/trpc/routers/index.ts diff --git a/examples/custom/server/trpc/routers/todo.ts b/examples/custom/server/trpc/routers/todo.ts new file mode 100644 index 0000000..5f6ef0e --- /dev/null +++ b/examples/custom/server/trpc/routers/todo.ts @@ -0,0 +1,33 @@ +import { z } from 'zod' +import { publicProcedure, router } from '../trpc' + +const baseURL = 'https://jsonplaceholder.typicode.com' + +const TodoShape = z.object({ + userId: z.number(), + id: z.number(), + title: z.string(), + completed: z.boolean() +}) + +export type Todo = z.infer + +export const todoRouter = router({ + getTodos: publicProcedure + .query(() => { + return $fetch(`${baseURL}/todos`) + }), + getTodo: publicProcedure + .input(z.number()) + .query((req) => { + return $fetch(`${baseURL}/todos/${req.input}`) + }), + addTodo: publicProcedure + .input(TodoShape) + .mutation((req) => { + return $fetch(`${baseURL}/todos`, { + method: 'POST', + body: req.input + }) + }) +}) diff --git a/examples/custom/server/trpc/routers/user.ts b/examples/custom/server/trpc/routers/user.ts new file mode 100644 index 0000000..b3b9486 --- /dev/null +++ b/examples/custom/server/trpc/routers/user.ts @@ -0,0 +1,33 @@ +import { z } from 'zod' +import { publicProcedure, router } from '../trpc' + +const baseURL = 'https://jsonplaceholder.typicode.com' + +const UserShape = z.object({ + id: z.number(), + name: z.string(), + username: z.string(), + email: z.string() +}) + +export type User = z.infer + +export const userRouter = router({ + getUsers: publicProcedure + .query(() => { + return $fetch(`${baseURL}/users`) + }), + getUser: publicProcedure + .input(z.number()) + .query((req) => { + return $fetch(`${baseURL}/users/${req.input}`) + }), + addUser: publicProcedure + .input(UserShape) + .mutation((req) => { + return $fetch(`${baseURL}/users`, { + method: 'POST', + body: req.input + }) + }) +}) diff --git a/playground/server/trpc/trpc.ts b/examples/custom/server/trpc/trpc.ts similarity index 100% rename from playground/server/trpc/trpc.ts rename to examples/custom/server/trpc/trpc.ts diff --git a/examples/custom/tsconfig.json b/examples/custom/tsconfig.json new file mode 100644 index 0000000..a7bfa18 --- /dev/null +++ b/examples/custom/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://v3.nuxtjs.org/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/handler.d.ts b/handler.d.ts new file mode 100644 index 0000000..1939677 --- /dev/null +++ b/handler.d.ts @@ -0,0 +1 @@ +export * from './dist/runtime/handler' diff --git a/module.mjs b/module.mjs deleted file mode 100644 index f7a4183..0000000 --- a/module.mjs +++ /dev/null @@ -1,17 +0,0 @@ -import { defineNuxtModule } from '@nuxt/kit' - -export default defineNuxtModule({ - meta: { - name: 'trpc-nuxt', - configKey: 'trpc', - compatibility: { - nuxt: '^3.0.0-rc.13', - }, - }, - async setup(_moduleOptions, nuxt) { - nuxt.options.build.transpile.push('trpc-nuxt') - nuxt.options.vite.optimizeDeps = nuxt.options.vite.optimizeDeps || {} - nuxt.options.vite.optimizeDeps.exclude = nuxt.options.vite.optimizeDeps.exclude || [] - nuxt.options.vite.optimizeDeps.exclude.push('trpc-nuxt/client') - }, -}) diff --git a/package.json b/package.json index 6d261a7..1d46629 100644 --- a/package.json +++ b/package.json @@ -5,53 +5,59 @@ "license": "MIT", "sideEffects": false, "exports": { - "./package.json": "./package.json", ".": { - "require": "./dist/index.cjs", - "import": "./dist/index.mjs" + "require": "./dist/module.cjs", + "import": "./dist/module.mjs" }, "./client": { - "require": "./dist/client/index.cjs", - "import": "./dist/client/index.mjs" + "types": "./dist/runtime/client.d.ts", + "import": "./dist/runtime/client.mjs" }, - "./module": { - "import": "./module.mjs" + "./handler": { + "types": "./dist/runtime/handler.d.ts", + "import": "./dist/runtime/handler.mjs" } }, - "main": "./dist/index.mjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "main": "./dist/module.cjs", + "types": "./dist/types.d.ts", "files": [ "dist", "client.d.ts", - "module.mjs" + "handler.d.ts" ], "scripts": { - "dev": "concurrently \"pnpm build --watch\" \"pnpm --filter playground dev\"", - "dev:prepare": "pnpm build && nuxt prepare playground", - "prepublishOnly": "pnpm build", - "build": "tsup", + "dev": "pnpm prepack && pnpm --filter playground dev", + "dev:prepare": "nuxt-module-build --stub && nuxi prepare playground", + "prepublishOnly": "pnpm prepack", + "prepack": "nuxt-module-build", "lint": "eslint .", "lint:fix": "eslint . --fix", "release": "bumpp && npm publish" }, "peerDependencies": { "@trpc/client": "^10.0.0-proxy-beta.21", - "@trpc/server": "^10.0.0-proxy-beta.21", - "nuxt": "^3.0.0-rc.13" + "@trpc/server": "^10.0.0-proxy-beta.21" }, "dependencies": { + "@nuxt/kit": "^3.0.0-rc.13", + "dedent": "^0.7.0", + "defu": "^6.1.0", + "fast-glob": "^3.2.12", "h3": "^0.8.6", + "knitwork": "^0.1.2", "nanoid": "^4.0.0", "ohash": "^0.1.5", + "pathe": "^0.3.9", "ufo": "^0.8.6" }, "devDependencies": { + "@nuxt/module-builder": "^0.2.0", + "@nuxt/schema": "^3.0.0-rc.13", "@nuxtjs/eslint-config-typescript": "^11.0.0", "@trpc/client": "10.0.0-rc.4", "@trpc/server": "10.0.0-rc.4", + "@types/dedent": "^0.7.0", "bumpp": "^8.2.1", - "concurrently": "^7.5.0", "eslint": "^8.25.0", "nuxt": "3.0.0-rc.13", "tsup": "6.4.0", diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index cfc9fba..ef2dea3 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -1,4 +1,4 @@ // https://v3.nuxtjs.org/api/configuration/nuxt.config export default defineNuxtConfig({ - modules: ['trpc-nuxt/module'] + modules: ['trpc-nuxt'] }) diff --git a/playground/package.json b/playground/package.json index a9067e0..3eecf16 100644 --- a/playground/package.json +++ b/playground/package.json @@ -5,8 +5,7 @@ "build": "nuxt build", "dev": "nuxt dev", "generate": "nuxt generate", - "preview": "nuxt preview", - "postinstall": "nuxt prepare" + "preview": "nuxt preview" }, "dependencies": { "@trpc/client": "10.0.0-rc.4", diff --git a/playground/plugins/trpc-client.ts b/playground/plugins/trpc-client.ts index b3f756c..ad4c55e 100644 --- a/playground/plugins/trpc-client.ts +++ b/playground/plugins/trpc-client.ts @@ -1,7 +1,7 @@ import { httpBatchLink, loggerLink } from '@trpc/client' import { createTRPCNuxtProxyClient } from 'trpc-nuxt/client' import superjson from 'superjson' -import type { AppRouter } from '~~/server/trpc/routers' +import type { AppRouter } from '#build/trpc/handler' export default defineNuxtPlugin(() => { const client = createTRPCNuxtProxyClient({ diff --git a/playground/server/trpc/routers/todo.ts b/playground/server/trpc/routers/todo.ts index 5f6ef0e..e626716 100644 --- a/playground/server/trpc/routers/todo.ts +++ b/playground/server/trpc/routers/todo.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import { publicProcedure, router } from '../trpc' +import { publicProcedure, router } from '#trpc/init' const baseURL = 'https://jsonplaceholder.typicode.com' @@ -12,7 +12,7 @@ const TodoShape = z.object({ export type Todo = z.infer -export const todoRouter = router({ +export default router({ getTodos: publicProcedure .query(() => { return $fetch(`${baseURL}/todos`) diff --git a/playground/server/trpc/routers/user.ts b/playground/server/trpc/routers/user.ts index b3b9486..4bde092 100644 --- a/playground/server/trpc/routers/user.ts +++ b/playground/server/trpc/routers/user.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import { publicProcedure, router } from '../trpc' +import { publicProcedure, router } from '#trpc/init' const baseURL = 'https://jsonplaceholder.typicode.com' @@ -12,7 +12,7 @@ const UserShape = z.object({ export type User = z.infer -export const userRouter = router({ +export default router({ getUsers: publicProcedure .query(() => { return $fetch(`${baseURL}/users`) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba4f5c7..e3846e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,30 +4,46 @@ importers: .: specifiers: + '@nuxt/kit': ^3.0.0-rc.13 + '@nuxt/module-builder': ^0.2.0 + '@nuxt/schema': ^3.0.0-rc.13 '@nuxtjs/eslint-config-typescript': ^11.0.0 '@trpc/client': 10.0.0-rc.4 '@trpc/server': 10.0.0-rc.4 + '@types/dedent': ^0.7.0 bumpp: ^8.2.1 - concurrently: ^7.5.0 + dedent: ^0.7.0 + defu: ^6.1.0 eslint: ^8.25.0 + fast-glob: ^3.2.12 h3: ^0.8.6 + knitwork: ^0.1.2 nanoid: ^4.0.0 nuxt: 3.0.0-rc.13 ohash: ^0.1.5 + pathe: ^0.3.9 tsup: 6.4.0 typescript: ^4.7.4 ufo: ^0.8.6 dependencies: + '@nuxt/kit': 3.0.0-rc.13 + dedent: 0.7.0 + defu: 6.1.0 + fast-glob: 3.2.12 h3: 0.8.6 + knitwork: 0.1.2 nanoid: 4.0.0 ohash: 0.1.5 + pathe: 0.3.9 ufo: 0.8.6 devDependencies: + '@nuxt/module-builder': 0.2.0 + '@nuxt/schema': 3.0.0-rc.13 '@nuxtjs/eslint-config-typescript': 11.0.0_wyqvi574yv7oiwfeinomdzmc3m '@trpc/client': 10.0.0-rc.4_@trpc+server@10.0.0-rc.4 '@trpc/server': 10.0.0-rc.4 + '@types/dedent': 0.7.0 bumpp: 8.2.1 - concurrently: 7.5.0 eslint: 8.26.0 nuxt: 3.0.0-rc.13_wyqvi574yv7oiwfeinomdzmc3m tsup: 6.4.0_typescript@4.8.4 @@ -47,6 +63,23 @@ importers: nuxt: 3.0.0-rc.13 vue-plausible: 1.3.2 + examples/custom: + specifiers: + '@trpc/client': 10.0.0-rc.4 + '@trpc/server': 10.0.0-rc.4 + nuxt: 3.0.0-rc.13 + superjson: ^1.11.0 + trpc-nuxt: workspace:* + zod: ^3.19.1 + dependencies: + '@trpc/client': 10.0.0-rc.4_@trpc+server@10.0.0-rc.4 + '@trpc/server': 10.0.0-rc.4 + superjson: 1.11.0 + trpc-nuxt: link:../.. + zod: 3.19.1 + devDependencies: + nuxt: 3.0.0-rc.13 + playground: specifiers: '@trpc/client': 10.0.0-rc.4 @@ -213,34 +246,31 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.17 - dev: true /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 - dev: true /@babel/compat-data/7.20.1: resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/core/7.19.6: - resolution: {integrity: sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==} + /@babel/core/7.20.2: + resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.1 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.6 - '@babel/helper-module-transforms': 7.19.6 + '@babel/generator': 7.20.2 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-module-transforms': 7.20.2 '@babel/helpers': 7.20.1 - '@babel/parser': 7.20.1 + '@babel/parser': 7.20.2 '@babel/template': 7.18.10 '@babel/traverse': 7.20.1 - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -248,44 +278,41 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/generator/7.20.1: - resolution: {integrity: sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==} + /@babel/generator/7.20.2: + resolution: {integrity: sha512-SD75PMIK6i9H8G/tfGvB4KKl4Nw6Ssos9nGgYwxbgyTP0iX/Z55DveoH86rmUB/YHTQQ+ZC0F7xxaY8l2OF44Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - dev: true /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-compilation-targets/7.20.0_@babel+core@7.19.6: + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2: resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.20.1 - '@babel/core': 7.19.6 + '@babel/core': 7.20.2 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 - dev: true - /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.19.6: - resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} + /@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.19.6 + '@babel/core': 7.20.2 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 @@ -300,62 +327,57 @@ packages: /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/types': 7.20.0 - dev: true + '@babel/types': 7.20.2 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 - dev: true + '@babel/types': 7.20.2 /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 - dev: true + '@babel/types': 7.20.2 - /@babel/helper-module-transforms/7.19.6: - resolution: {integrity: sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==} + /@babel/helper-module-transforms/7.20.2: + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.19.4 + '@babel/helper-simple-access': 7.20.2 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.18.10 '@babel/traverse': 7.20.1 - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-optimise-call-expression/7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 dev: true - /@babel/helper-plugin-utils/7.19.0: - resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} + /@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} dev: true @@ -367,39 +389,34 @@ packages: '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/traverse': 7.20.1 - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.19.4: - resolution: {integrity: sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==} + /@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 - dev: true + '@babel/types': 7.20.2 /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.0 - dev: true + '@babel/types': 7.20.2 /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-option/7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helpers/7.20.1: resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} @@ -407,10 +424,9 @@ packages: dependencies: '@babel/template': 7.18.10 '@babel/traverse': 7.20.1 - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -419,46 +435,44 @@ packages: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true - /@babel/parser/7.20.1: - resolution: {integrity: sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==} + /@babel/parser/7.20.2: + resolution: {integrity: sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.20.0 - dev: true + '@babel/types': 7.20.2 - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6: + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.2: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.19.6: + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.2: resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-typescript/7.20.0_@babel+core@7.19.6: - resolution: {integrity: sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==} + /@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.19.6 - '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.19.6 + '@babel/core': 7.20.2 + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -470,46 +484,42 @@ packages: regenerator-runtime: 0.13.10 dev: true - /@babel/standalone/7.20.1: - resolution: {integrity: sha512-/gWSncVyOroPfSNASCOIsR08As7UWT7bOKlTkvmprc0Q3v4s6YFxpaYP/eyAZQWbVjSnewX8bZv2In9fwXqPHQ==} + /@babel/standalone/7.20.2: + resolution: {integrity: sha512-oQX2oyEZCKzOaLImmg3NMm+1DFDm1pIkAme3xCvi170oYCzr5GazANyzFrsV4+9jup6b5uXlgIghXWGGUUEzSQ==} engines: {node: '>=6.9.0'} - dev: true /@babel/template/7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.20.1 - '@babel/types': 7.20.0 - dev: true + '@babel/parser': 7.20.2 + '@babel/types': 7.20.2 /@babel/traverse/7.20.1: resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.1 + '@babel/generator': 7.20.2 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.1 - '@babel/types': 7.20.0 + '@babel/parser': 7.20.2 + '@babel/types': 7.20.2 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/types/7.20.0: - resolution: {integrity: sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==} + /@babel/types/7.20.2: + resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - dev: true /@cloudflare/kv-asset-handler/0.2.0: resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} @@ -669,7 +679,6 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -678,17 +687,14 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/trace-mapping': 0.3.17 - dev: true /@jridgewell/resolve-uri/3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array/1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/source-map/0.3.2: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} @@ -699,14 +705,12 @@ packages: /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true /@jridgewell/trace-mapping/0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jsdevtools/ez-spawn/3.0.4: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} @@ -762,12 +766,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -775,7 +777,6 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - dev: true /@nuxt-themes/docus-edge/0.1.0-2a7c428_nuxt@3.0.0-rc.13: resolution: {integrity: sha512-KDKkvY199tTZHcgUsCmKN7W519Jhg/QyngqNlpU9EVZJtvHCwX40fZhZkdBlEK2vP7hkvzrxQgZNOrIrliYQeQ==} @@ -965,7 +966,6 @@ packages: transitivePeerDependencies: - rollup - supports-color - dev: true /@nuxt/kit/3.0.0-rc.13_rollup@2.79.1: resolution: {integrity: sha512-FYEnMRm4LvIUxygmBX/p5kykzSeBleUqCOfxervQFONkz5PVVYXEp1DDBINGR3xk01yuPElENuf+l59iEQ4q7g==} @@ -994,6 +994,19 @@ packages: - supports-color dev: true + /@nuxt/module-builder/0.2.0: + resolution: {integrity: sha512-jzQ10I5n+oAsjvY6ennqmJMU7MneYs79iGXJ6jnBbts4jFuLwWpQbIPpIFfboI4xjHeeTp1quHZyCcpFy+TjAA==} + hasBin: true + dependencies: + consola: 2.15.3 + mlly: 0.5.16 + mri: 1.2.0 + pathe: 0.3.9 + unbuild: 0.9.4 + transitivePeerDependencies: + - supports-color + dev: true + /@nuxt/postcss8/1.1.3: resolution: {integrity: sha512-CdHtErhvQwueNZPBOmlAAKrNCK7aIpZDYhtS7TzXlSgPHHox1g3cSlf+Ke9oB/8t4mNNjdB+prclme2ibuCOEA==} dependencies: @@ -1028,7 +1041,6 @@ packages: transitivePeerDependencies: - rollup - supports-color - dev: true /@nuxt/schema/3.0.0-rc.13_rollup@2.79.1: resolution: {integrity: sha512-yfNPvUkOQ1/8aKHX8OtU7stANAaZ3B8Rty7HPuo1KHv0R3wNqlRdoRXwFuf4D+jcsS+R5Kccr7i8YYD5IG56Iw==} @@ -1270,8 +1282,8 @@ packages: postcss: 8.4.18 postcss-custom-properties: 12.1.10_postcss@8.4.18 postcss-nesting: 10.2.0_postcss@8.4.18 - tailwind-config-viewer: 1.7.2_tailwindcss@3.2.1 - tailwindcss: 3.2.1 + tailwind-config-viewer: 1.7.2_tailwindcss@3.2.2 + tailwindcss: 3.2.2 ufo: 0.8.6 transitivePeerDependencies: - rollup @@ -1719,7 +1731,6 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - dev: true /@rollup/pluginutils/5.0.2_rollup@2.79.1: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} @@ -1828,9 +1839,12 @@ packages: '@types/ms': 0.7.31 dev: true + /@types/dedent/0.7.0: + resolution: {integrity: sha512-EGlKlgMhnLt/cM4DbUSafFdrkeJoC9Mvnj0PUCU7tFmTjMjNRT957kXCx0wYm3JuEq4o4ZsS5vG+NlkM2DMd2A==} + dev: true + /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: true /@types/google.maps/3.50.5: resolution: {integrity: sha512-RuZf1MJtctGlpW+Gd4a/eGtAufUDjMf+eyN1l+B3fbe2YLScJbg8KEljJfb+6vnSPFAeM1/48geVIEg3vqOkxw==} @@ -2077,9 +2091,9 @@ packages: vite: ^3.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.19.6 - '@babel/plugin-transform-typescript': 7.20.0_@babel+core@7.19.6 - '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.19.6 + '@babel/core': 7.20.2 + '@babel/plugin-transform-typescript': 7.20.2_@babel+core@7.20.2 + '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.20.2 vite: 3.2.2 vue: 3.2.41 transitivePeerDependencies: @@ -2128,14 +2142,14 @@ packages: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: true - /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.19.6: + /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.20.2: resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} dependencies: '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.6 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.2 '@babel/template': 7.18.10 '@babel/traverse': 7.20.1 - '@babel/types': 7.20.0 + '@babel/types': 7.20.2 '@vue/babel-helper-vue-transform-on': 1.0.2 camelcase: 6.3.0 html-tags: 3.2.0 @@ -2148,7 +2162,7 @@ packages: /@vue/compiler-core/3.2.41: resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} dependencies: - '@babel/parser': 7.20.1 + '@babel/parser': 7.20.2 '@vue/shared': 3.2.41 estree-walker: 2.0.2 source-map: 0.6.1 @@ -2164,7 +2178,7 @@ packages: /@vue/compiler-sfc/3.2.41: resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} dependencies: - '@babel/parser': 7.20.1 + '@babel/parser': 7.20.2 '@vue/compiler-core': 3.2.41 '@vue/compiler-dom': 3.2.41 '@vue/compiler-ssr': 3.2.41 @@ -2190,7 +2204,7 @@ packages: /@vue/reactivity-transform/3.2.41: resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} dependencies: - '@babel/parser': 7.20.1 + '@babel/parser': 7.20.2 '@vue/compiler-core': 3.2.41 '@vue/shared': 3.2.41 estree-walker: 2.0.2 @@ -2356,7 +2370,6 @@ packages: resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -2423,7 +2436,7 @@ packages: resolution: {integrity: sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==} engines: {node: '>=14.16'} dependencies: - type-fest: 3.1.0 + type-fest: 3.2.0 dev: true /ansi-regex/5.0.1: @@ -2441,7 +2454,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -2465,7 +2477,6 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /aproba/2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -2619,7 +2630,6 @@ packages: /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /bindings/1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -2665,7 +2675,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browserslist/4.21.4: resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} @@ -2676,7 +2685,6 @@ packages: electron-to-chromium: 1.4.284 node-releases: 2.0.6 update-browserslist-db: 1.0.10_browserslist@4.21.4 - dev: true /buffer-crc32/0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -2752,7 +2760,6 @@ packages: pathe: 0.3.9 pkg-types: 0.3.6 rc9: 1.2.2 - dev: true /cac/6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} @@ -2829,7 +2836,6 @@ packages: /caniuse-lite/1.0.30001430: resolution: {integrity: sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==} - dev: true /capital-case/1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -2850,7 +2856,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2915,11 +2920,9 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true /chownr/2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -3009,7 +3012,6 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -3020,7 +3022,6 @@ packages: /color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -3090,25 +3091,8 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concurrently/7.5.0: - resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} - engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} - hasBin: true - dependencies: - chalk: 4.1.2 - date-fns: 2.29.3 - lodash: 4.17.21 - rxjs: 7.5.7 - shell-quote: 1.7.4 - spawn-command: 0.0.2-1 - supports-color: 8.1.1 - tree-kill: 1.2.2 - yargs: 17.6.2 - dev: true - /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: true /console-control-strings/1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -3136,7 +3120,6 @@ packages: /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true /cookie-es/0.5.0: resolution: {integrity: sha512-RyZrFi6PNpBFbIaQjXDlFIhFVqV42QeKSZX1yQIl6ihImq6vcHNGMtqQ/QzY3RMPuYSkvsRwtnt5M9NeYxKt0g==} @@ -3158,7 +3141,6 @@ packages: /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true /cosmiconfig/7.0.1: resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} @@ -3187,7 +3169,6 @@ packages: /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -3337,11 +3318,6 @@ packages: engines: {node: '>= 12'} dev: true - /date-fns/2.29.3: - resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} - engines: {node: '>=0.11'} - dev: true - /de-indent/1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true @@ -3378,7 +3354,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /decode-named-character-reference/1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -3393,6 +3368,10 @@ packages: mimic-response: 3.1.0 dev: true + /dedent/0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: false + /deep-equal/1.0.1: resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} dev: true @@ -3440,7 +3419,6 @@ packages: /defu/6.1.0: resolution: {integrity: sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw==} - dev: true /delegates/1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} @@ -3511,7 +3489,6 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 - dev: true /dlv/1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -3579,7 +3556,6 @@ packages: /dotenv/16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dev: true /duplexer/0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -3595,7 +3571,6 @@ packages: /electron-to-chromium/1.4.284: resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} - dev: true /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3651,7 +3626,6 @@ packages: graceful-fs: 4.2.10 memory-fs: 0.5.0 tapable: 1.1.3 - dev: true /enhanced-resolve/5.10.0: resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} @@ -3670,7 +3644,6 @@ packages: hasBin: true dependencies: prr: 1.0.1 - dev: true /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -4145,7 +4118,6 @@ packages: /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-html/1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -4154,7 +4126,6 @@ packages: /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -4164,7 +4135,6 @@ packages: /escape-string-regexp/5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - dev: true /eslint-config-standard/17.0.0_pxgizx7scytnzv6tfhdgsab7u4: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} @@ -4515,11 +4485,9 @@ packages: /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true /estree-walker/3.0.1: resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} - dev: true /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -4585,7 +4553,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -4599,7 +4566,6 @@ packages: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 - dev: true /fetch-blob/3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} @@ -4633,7 +4599,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} @@ -4662,7 +4627,6 @@ packages: /flat/5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - dev: true /flatted/3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} @@ -4725,7 +4689,6 @@ packages: resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} dependencies: minipass: 2.9.0 - dev: true /fs-minipass/2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} @@ -4743,7 +4706,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: @@ -4782,7 +4744,6 @@ packages: /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -4855,14 +4816,12 @@ packages: dependencies: mkdirp: 0.5.6 tar: 4.4.19 - dev: true /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -4907,7 +4866,6 @@ packages: /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true /globals/13.17.0: resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} @@ -4941,7 +4899,6 @@ packages: ignore: 5.2.0 merge2: 1.4.1 slash: 4.0.0 - dev: true /globrex/0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -4966,7 +4923,6 @@ packages: /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -4994,7 +4950,6 @@ packages: /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -5032,7 +4987,6 @@ packages: /hash-sum/2.0.0: resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} - dev: true /hast-to-hyperscript/10.0.1: resolution: {integrity: sha512-dhIVGoKCQVewFi+vz3Vt567E4ejMppS1haBRL6TEmeLeJVB1i/FJIIg/e6s1Bwn0g5qtYojHEKvyGA+OZuyifw==} @@ -5272,7 +5226,6 @@ packages: /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} - dev: true /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -5305,7 +5258,6 @@ packages: /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -5422,7 +5374,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-boolean-object/1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -5481,7 +5432,6 @@ packages: /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -5500,7 +5450,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-hexadecimal/2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -5530,7 +5479,6 @@ packages: /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-path-inside/3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} @@ -5626,7 +5574,6 @@ packages: /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -5644,7 +5591,6 @@ packages: /jiti/1.16.0: resolution: {integrity: sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==} hasBin: true - dev: true /joycon/3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} @@ -5657,7 +5603,6 @@ packages: /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -5670,7 +5615,6 @@ packages: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: true /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -5699,11 +5643,9 @@ packages: resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} engines: {node: '>=6'} hasBin: true - dev: true /jsonc-parser/3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true /jsonfile/6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -5743,7 +5685,6 @@ packages: /knitwork/0.1.2: resolution: {integrity: sha512-2ekmY2S/VB3YGVhrIFadyJQpkjMFSf48tsXCnA+kjs4FEQIT+5FLyOF0No/X58z/2E/VaMyeJfukRoVT4gMsfQ==} - dev: true /koa-compose/4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} @@ -5863,7 +5804,6 @@ packages: /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} - dev: true /locate-path/5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -5881,7 +5821,6 @@ packages: /lodash._reinterpolate/3.0.0: resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} - dev: true /lodash.castarray/4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} @@ -5932,13 +5871,11 @@ packages: dependencies: lodash._reinterpolate: 3.0.0 lodash.templatesettings: 4.2.0 - dev: true /lodash.templatesettings/4.2.0: resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} dependencies: lodash._reinterpolate: 3.0.0 - dev: true /lodash.union/4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} @@ -5980,7 +5917,6 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true /magic-string/0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} @@ -5993,7 +5929,6 @@ packages: engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 - dev: true /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -6065,8 +6000,8 @@ packages: micromark-util-normalize-identifier: 1.0.0 dev: true - /mdast-util-gfm-strikethrough/1.0.1: - resolution: {integrity: sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==} + /mdast-util-gfm-strikethrough/1.0.2: + resolution: {integrity: sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==} dependencies: '@types/mdast': 3.0.10 mdast-util-to-markdown: 1.3.0 @@ -6096,7 +6031,7 @@ packages: mdast-util-from-markdown: 1.2.0 mdast-util-gfm-autolink-literal: 1.0.2 mdast-util-gfm-footnote: 1.0.1 - mdast-util-gfm-strikethrough: 1.0.1 + mdast-util-gfm-strikethrough: 1.0.2 mdast-util-gfm-table: 1.0.6 mdast-util-gfm-task-list-item: 1.0.1 mdast-util-to-markdown: 1.3.0 @@ -6153,7 +6088,6 @@ packages: dependencies: errno: 0.1.8 readable-stream: 2.3.7 - dev: true /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -6162,7 +6096,6 @@ packages: /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true /metadata-scraper/0.2.61: resolution: {integrity: sha512-ECV8r10nIVgn7Y5vY8lnlvi9vF1YgYBJjn2R1zrOcKRe47ra9Yg25ZE1ejL3Equqi8u2Mp346KHqIcR4PLdyTA==} @@ -6431,7 +6364,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -6509,14 +6441,12 @@ packages: /minimist/1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} - dev: true /minipass/2.9.0: resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} dependencies: safe-buffer: 5.2.1 yallist: 3.1.1 - dev: true /minipass/3.3.4: resolution: {integrity: sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==} @@ -6529,7 +6459,6 @@ packages: resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} dependencies: minipass: 2.9.0 - dev: true /minizlib/2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -6558,7 +6487,6 @@ packages: hasBin: true dependencies: minimist: 1.2.7 - dev: true /mkdirp/1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} @@ -6592,7 +6520,6 @@ packages: pathe: 0.3.9 pkg-types: 0.3.6 ufo: 0.8.6 - dev: true /mri/1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -6605,7 +6532,6 @@ packages: /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6777,7 +6703,6 @@ packages: /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} - dev: true /nopt/1.0.10: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} @@ -6806,7 +6731,6 @@ packages: /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-range/0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} @@ -7254,7 +7178,6 @@ packages: /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - dev: true /pathe/0.2.0: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} @@ -7262,7 +7185,6 @@ packages: /pathe/0.3.9: resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==} - dev: true /perfect-debounce/0.1.3: resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==} @@ -7270,12 +7192,10 @@ packages: /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify/2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -7318,7 +7238,6 @@ packages: jsonc-parser: 3.2.0 mlly: 0.5.16 pathe: 0.3.9 - dev: true /plausible-tracker/0.3.8: resolution: {integrity: sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==} @@ -7441,7 +7360,6 @@ packages: resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==} dependencies: enhanced-resolve: 4.5.0 - dev: true /postcss-import/13.0.0_postcss@8.4.18: resolution: {integrity: sha512-LPUbm3ytpYopwQQjqgUH4S3EM/Gb9QsaSPP/5vnoi+oKVy3/mIk2sc0Paqw7RL57GpScm9MdIMUypw2znWiBpg==} @@ -7870,7 +7788,6 @@ packages: /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -7890,7 +7807,6 @@ packages: /prr/1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - dev: true /pump/3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -7911,7 +7827,6 @@ packages: /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} @@ -7938,7 +7853,6 @@ packages: defu: 6.1.0 destr: 1.2.0 flat: 5.0.2 - dev: true /read-cache/1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -7975,7 +7889,6 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true /readable-stream/3.6.0: resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} @@ -7997,7 +7910,6 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /recast/0.21.5: resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} @@ -8237,7 +8149,6 @@ packages: /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -8319,7 +8230,6 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - dev: true /rxjs/7.5.7: resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} @@ -8336,11 +8246,9 @@ packages: /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true /safe-regex-test/1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} @@ -8375,7 +8283,6 @@ packages: /scule/0.3.2: resolution: {integrity: sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==} - dev: true /search-insights/2.2.1: resolution: {integrity: sha512-JDfVGZbKqTtiKVZjAVbkNw9C9f0ib80yx6Ea17M3z4RvPmuD0GYWXuFwA9++dpbreBEMH4TC3lQ29Zq7O4b5oA==} @@ -8390,7 +8297,6 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - dev: true /semver/7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} @@ -8398,7 +8304,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -8477,10 +8382,6 @@ packages: engines: {node: '>=8'} dev: true - /shell-quote/1.7.4: - resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} - dev: true - /shiki-es/0.1.2: resolution: {integrity: sha512-eqtfk8idlYlSLAn0gp0Ly2+FbKc2d78IddigHSS4iHAnpXoY2kdRzyFGZOdi6TvemYMnRhZBi1HsSqZc5eNKqg==} dev: true @@ -8509,7 +8410,6 @@ packages: /slash/4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - dev: true /slugify/1.6.5: resolution: {integrity: sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==} @@ -8578,16 +8478,11 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true /space-separated-tokens/2.0.1: resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==} dev: true - /spawn-command/0.0.2-1: - resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} - dev: true - /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: @@ -8631,7 +8526,6 @@ packages: /std-env/3.3.0: resolution: {integrity: sha512-cNNS+VYsXIs5gI6gJipO4qZ8YYT274JHvNnQ1/R/x8Q8mdP0qj0zoMchRXmBNPqp/0eOEhX+3g7g6Fgb7meLIQ==} - dev: true /storyblok-algolia-indexer/1.0.3: resolution: {integrity: sha512-mwqf1bt4/Dn+dj71ousuHWWOx+wprj21nOjsfB16322ptywdfxynru7MU0RQoKktSbzkMQhhEhGBuuUDcsJnqQ==} @@ -8699,7 +8593,6 @@ packages: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - dev: true /string_decoder/1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -8754,7 +8647,6 @@ packages: resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} dependencies: acorn: 8.8.1 - dev: true /style-dictionary-esm/1.0.15: resolution: {integrity: sha512-bPTF7Mkn/KRgFrsJL/ntRIvwUVP19CwYYHtButQwb1LjXKiiDAlS/V5juaCMoQNzCEWmrXO5V6k0TgFSAyjAog==} @@ -8816,7 +8708,6 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -8825,13 +8716,6 @@ packages: has-flag: 4.0.0 dev: true - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -8863,7 +8747,7 @@ packages: tslib: 2.4.1 dev: true - /tailwind-config-viewer/1.7.2_tailwindcss@3.2.1: + /tailwind-config-viewer/1.7.2_tailwindcss@3.2.2: resolution: {integrity: sha512-3JJCeAAlvG+i/EBj+tQb0x4weo30QjdSAo4hlcnVbtD+CkpzHi/UwU9InbPMcYH+ESActoa2kCyjpLEyjEkn0Q==} engines: {node: '>=8'} hasBin: true @@ -8878,13 +8762,13 @@ packages: open: 7.4.2 portfinder: 1.0.32 replace-in-file: 6.3.5 - tailwindcss: 3.2.1 + tailwindcss: 3.2.2 transitivePeerDependencies: - supports-color dev: true - /tailwindcss/3.2.1: - resolution: {integrity: sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==} + /tailwindcss/3.2.2: + resolution: {integrity: sha512-c2GtSdqg+harR4QeoTmex0Ngfg8IIHNeLQH5yr2B9uZbZR1Xt1rYbjWOWTcj3YLTZhrmZnPowoQDbSRFyZHQ5Q==} engines: {node: '>=12.13.0'} hasBin: true dependencies: @@ -8918,7 +8802,6 @@ packages: /tapable/1.1.3: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} engines: {node: '>=6'} - dev: true /tapable/2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -8947,7 +8830,6 @@ packages: mkdirp: 0.5.6 safe-buffer: 5.2.1 yallist: 3.1.1 - dev: true /tar/6.1.12: resolution: {integrity: sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==} @@ -9022,14 +8904,12 @@ packages: /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: true /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /toidentifier/1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} @@ -9168,8 +9048,8 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest/3.1.0: - resolution: {integrity: sha512-StmrZmK3eD9mDF9Vt7UhqthrDSk66O9iYl5t5a0TSoVkHjl0XZx/xuc/BRz4urAXXGHOY5OLsE0RdJFIApSFmw==} + /type-fest/3.2.0: + resolution: {integrity: sha512-Il3wdLRzWvbAEtocgxGQA9YOoRVeVUGOMBtel5LdEpNeEAol6GJTLw8GbX6Z8EIMfvfhoOXs2bwOijtAZdK5og==} engines: {node: '>=14.16'} dev: true @@ -9245,7 +9125,6 @@ packages: estree-walker: 3.0.1 magic-string: 0.26.7 unplugin: 0.9.6 - dev: true /undici/5.12.0: resolution: {integrity: sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==} @@ -9291,7 +9170,6 @@ packages: unplugin: 0.10.2 transitivePeerDependencies: - rollup - dev: true /unimport/0.7.0_rollup@2.79.1: resolution: {integrity: sha512-Cr0whz4toYVid3JHlni/uThwavDVVCk6Zw0Gxnol1c7DprTA+Isr4T+asO6rDGkhkgV7r3vSdSs5Ym8F15JA+w==} @@ -9376,7 +9254,6 @@ packages: chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.6 - dev: true /unplugin/0.9.6: resolution: {integrity: sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==} @@ -9385,7 +9262,6 @@ packages: chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.6 - dev: true /unstorage/0.6.0: resolution: {integrity: sha512-X05PIq28pVNA1BypX6Y00YNqAsHM25MGemvpjHeYvwJ8/wg936GoO1YD+VdWlqm3LmVX4fNJ5tlC7uhXsMPgeg==} @@ -9410,13 +9286,12 @@ packages: /untyped/0.5.0: resolution: {integrity: sha512-2Sre5A1a7G61bjaAKZnSFaVgbJMwwbbYQpJFH69hAYcDfN7kIaktlSphS02XJilz4+/jR1tsJ5MHo1oMoCezxg==} dependencies: - '@babel/core': 7.19.6 - '@babel/standalone': 7.20.1 - '@babel/types': 7.20.0 + '@babel/core': 7.20.2 + '@babel/standalone': 7.20.2 + '@babel/types': 7.20.2 scule: 0.3.2 transitivePeerDependencies: - supports-color - dev: true /update-browserslist-db/1.0.10_browserslist@4.21.4: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} @@ -9427,7 +9302,6 @@ packages: browserslist: 4.21.4 escalade: 3.1.1 picocolors: 1.0.0 - dev: true /upper-case-first/2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -9449,7 +9323,6 @@ packages: /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true /uvu/0.5.6: resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} @@ -9793,11 +9666,9 @@ packages: /webpack-sources/3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - dev: true /webpack-virtual-modules/0.4.6: resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} - dev: true /whatwg-url/5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -9919,11 +9790,9 @@ packages: /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true /yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dc60257..6806533 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - playground - docs + - examples/* diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 3718365..0000000 --- a/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './server' diff --git a/src/module.ts b/src/module.ts new file mode 100644 index 0000000..af297f8 --- /dev/null +++ b/src/module.ts @@ -0,0 +1,141 @@ +import { defineNuxtModule, addTemplate, addServerHandler } from '@nuxt/kit' +import fg from 'fast-glob' +import { resolve } from 'pathe' +import dedent from 'dedent' + +export interface ModuleOptions { + enableFileRouting: boolean +} + +export default defineNuxtModule({ + meta: { + name: 'trpc-nuxt', + configKey: 'trpc', + compatibility: { + nuxt: '^3.0.0-rc.13' + } + }, + defaults: { + enableFileRouting: true + }, + async setup (moduleOptions, nuxt) { + nuxt.options.build.transpile.push('trpc-nuxt') + nuxt.options.vite.optimizeDeps = nuxt.options.vite.optimizeDeps || {} + nuxt.options.vite.optimizeDeps.exclude = nuxt.options.vite.optimizeDeps.exclude || [] + nuxt.options.vite.optimizeDeps.exclude.push('trpc-nuxt/client', 'trpc-nuxt/handler') + + if (!moduleOptions.enableFileRouting) { + return + } + + const files: string[] = [] + const dirs = [ + resolve(nuxt.options.rootDir, 'server/trpc/routers') + ] + const extGlob = '*.{ts,js}' + + async function scanServerFunctions () { + files.length = 0 + files.push(...new Set( + (await Promise.all( + dirs.map(dir => fg(extGlob, { cwd: dir, absolute: true, onlyFiles: true }))) + ).flat() + )) + return files + } + + nuxt.hook('builder:watch', async (e, path) => { + if (e === 'change') { + return + } + const abs = resolve(nuxt.options.rootDir, path) + if (files.includes(abs) || dirs.some(dir => abs.startsWith(dir))) { + await scanServerFunctions() + await nuxt.callHook('builder:generateApp') + } + }) + + function getRouteName (routePath: string) { + const pathSplit = routePath.split('/') + return pathSplit[pathSplit.length - 1] + } + + addTemplate({ + filename: 'trpc/init.mjs', + write: true, + getContents () { + return dedent` + import { initTRPC } from '@trpc/server' + import superjson from 'superjson' + + const t = initTRPC.context().create({ + transformer: superjson, + }) + + export const router = t.router + export const defineRouter = router + export const publicProcedure = t.procedure + export const middleware = t.middleware + export const mergeRouters = t.mergeRouters + ` + } + }) + + addTemplate({ + filename: 'trpc/types.d.ts', + write: true, + getContents () { + const initFile = resolve(nuxt.options.buildDir, 'trpc/init.mjs') + return dedent` + declare module '#trpc/init' { + const router: typeof import('${initFile}').router + const defineRouter: typeof import('${initFile}').defineRouter + const publicProcedure: typeof import('${initFile}').publicProcedure + const middleware: typeof import('${initFile}').middleware + const mergeRouters: typeof import('${initFile}').mergeRouters + } + ` + } + }) + + addTemplate({ + filename: 'trpc/handler.ts', + write: true, + getContents () { + const routeFiles = files.map(i => i.replace(/\.ts$/, '')) + return dedent` + import { createNuxtApiHandler } from 'trpc-nuxt/handler' + import { router } from '${resolve(nuxt.options.buildDir, 'trpc/init.mjs')}' + ${routeFiles.map(i => `import { default as ${getRouteName(i)}Route } from '${i}'`).join('\n')} + + export const appRouter = router({ + ${routeFiles.map(i => `${getRouteName(i)}: ${getRouteName(i)}Route`).join(',\n')} + }) + + export type AppRouter = typeof appRouter + + export default createNuxtApiHandler({ + router: appRouter + }) + ` + } + }) + + addServerHandler({ + route: '/api/trpc/:trpc', + handler: resolve(nuxt.options.buildDir, 'trpc/handler.ts'), + lazy: true + }) + + nuxt.hook('nitro:config', (nitroConfig) => { + nitroConfig.alias = nitroConfig.alias || {} + nitroConfig.alias['#trpc/init'] = resolve(nuxt.options.buildDir, 'trpc/init.mjs') + }) + + nuxt.hook('prepare:types', (options) => { + options.references.push({ path: resolve(nuxt.options.buildDir, 'trpc/types.d.ts') }) + }) + + await scanServerFunctions() + } +}) diff --git a/src/client/index.ts b/src/runtime/client.ts similarity index 100% rename from src/client/index.ts rename to src/runtime/client.ts diff --git a/src/server.ts b/src/runtime/handler.ts similarity index 100% rename from src/server.ts rename to src/runtime/handler.ts index 42c2500..cfb4ffa 100644 --- a/src/server.ts +++ b/src/runtime/handler.ts @@ -1,17 +1,17 @@ -import type { ResponseMeta } from '@trpc/server/http' import { resolveHTTPResponse } from '@trpc/server/http' +import { + TRPCError +} from '@trpc/server' import type { AnyRouter, ProcedureType, inferRouterContext, inferRouterError } from '@trpc/server' -import { - TRPCError -} from '@trpc/server' -import { createURL } from 'ufo' import type { H3Event } from 'h3' +import { createURL } from 'ufo' import { createError, defineEventHandler, isMethod, readBody } from 'h3' +import type { ResponseMeta } from '@trpc/server/http' import type { TRPCResponse } from '@trpc/server/rpc' type MaybePromise = T | Promise diff --git a/src/client/types.ts b/src/runtime/types.ts similarity index 100% rename from src/client/types.ts rename to src/runtime/types.ts diff --git a/tsconfig.json b/tsconfig.json index 2f6d036..9dd826f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,16 +1,3 @@ { - "compilerOptions": { - "target": "es2020", - "module": "esnext", - "strict": true, - "esModuleInterop": true, - "moduleResolution": "node", - "skipLibCheck": true, - "noUnusedLocals": true, - "noImplicitAny": true, - "allowJs": true, - "noEmit": true, - "resolveJsonModule": true, - "skipDefaultLibCheck": true - } + "extends": "./playground/.nuxt/tsconfig.json" } diff --git a/tsup.config.ts b/tsup.config.ts deleted file mode 100644 index 6cad903..0000000 --- a/tsup.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { defineConfig } from 'tsup' - -export default defineConfig({ - entry: ['src/index.ts', 'src/client/index.ts'], - format: ['cjs', 'esm'], - splitting: false, - clean: true, - external: ['#app', '#imports'], - dts: true, - outExtension({ format }) { - return { - js: format === 'esm' ? '.mjs' : `.${format}`, - } - }, -})