diff --git a/.changeset/new-rivers-sniff.md b/.changeset/fast-ligers-perform.md
similarity index 56%
rename from .changeset/new-rivers-sniff.md
rename to .changeset/fast-ligers-perform.md
index d6339a1..33801b7 100644
--- a/.changeset/new-rivers-sniff.md
+++ b/.changeset/fast-ligers-perform.md
@@ -1,9 +1,11 @@
---
-"@urami/demo-sveltekit": major
"@urami/core": major
+"@urami/react": major
+"@urami/solid": major
"@urami/svelte": major
"@urami/types": major
"@urami/utils": major
+"@urami/vue": major
---
-initialize as monorepo
+initialize
diff --git a/.github/workflows/changeset.yml b/.github/workflows/changeset.yml
index ba77afb..9453977 100644
--- a/.github/workflows/changeset.yml
+++ b/.github/workflows/changeset.yml
@@ -33,7 +33,7 @@ jobs:
- name: install
run: pnpm install
- name: build
- run: pnpm build
+ run: pnpm build --filter='./packages/*'
- name: changesets
id: changesets
uses: changesets/action@v1
diff --git a/README.md b/README.md
index 1302f63..bd9f51e 100644
--- a/README.md
+++ b/README.md
@@ -1,113 +1,5 @@
-# svelte-aio
+# Urami
-Automatic image optimization for SvelteKit, inspired by NextJS
+[Documentation](https://urami.dev)
-[![NPM](https://img.shields.io/npm/v/svelte-aio)](https://www.npmjs.com/package/svelte-aio)
-
-## Table of contents
-
-1. [Usage](#usage)
-2. [Configuration](#configuration)
-
-## Usage
-
-Check out full sample at [`src/routes`](./src/routes)
-
-Install dependencies
-
-```
-pnpm add svelte-aio
-```
-
-(Optional) To resolve export paths correctly in **VS Code**, we require you to set module resolution in `tsconfig.json` into `bundler` first.
-
-```json
-{
- "compilerOptions": {
- "moduleResolution": "bundler"
- }
-}
-```
-
-In `routes/api/_images`, create `+server.ts` endpoint
-
-```ts
-import { requestHandler } from 'svelte-aio/api'
-
-import type { RequestHandler } from '@sveltejs/kit'
-
-export const GET: RequestHandler = requestHandler()
-```
-
-Then use normally (almost) like `next/image`
-
-```svelte
-
-
-
-
-```
-
-## Configuration
-
-Server configrations can be specified via option params. **All parameters are optional!**
-
-```ts
-export const GET: RequestHandler = requestHandler({
- avif: false,
- remoteDomains: ['demo.rayriffy.com'],
- allowedDomains: ['svelte-aio.vercel.app'],
- ttl: 1000 * 60 * 60 * 24 * 7,
- storePath: '.svelte-kit/images',
-})
-```
-
-### avif
-
-`boolean`
-
-Enable AVIF image format. Defaults to `false`
-
-> **Warning:** optimizing image into AVIF format currently not reccomended due to high CPU and memory usage. Overall performance is not great when comparing to WebP.
-
-### remoteDomains
-
-`string[] | undefined`
-
-List of domains that API will be allowed to optimize. Defaults to _unset_
-
-From example above, `remoteDomains: ['demo.rayriffy.com'],` means that API will only be allowed to optimize images that served from `demo.rayriffy.com`.
-
-Unset this option will tell API to optimize **ALL IMAGES** from **EVERYWHERE**
-
-### allowedDomains
-
-`string[] | undefined`
-
-List of domains that allowed to use the API, this will be checked via header `Referer`
-
-Only affects on `NODE_ENV=production`. Unset this option will allow anywhere to request image from this API.
-
-### ttl
-
-`number`
-
-Time until images will become invalidated, defaults to **7 days**
-
-Values are in **milliseconds**
-
-### storePath
-
-`string`
-
-Directory path to cache optimized images. Defaults to `.svelte-kit/images`
-
-Provided paths will be relative to `process.cwd()`
+Urami, automatic image optimization for all!
diff --git a/package.json b/package.json
index ab7720b..d930051 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"build": "turbo run build",
- "dev": "turbo run dev",
+ "dev": "turbo run dev --filter=@urami/docs",
"lint": "turbo run lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\""
},
diff --git a/packages/core/README.md b/packages/core/README.md
new file mode 100644
index 0000000..a0407a4
--- /dev/null
+++ b/packages/core/README.md
@@ -0,0 +1,19 @@
+# @urami/core
+
+Server-side for Urami automatic image optimization. Please refer to [documentation](https://urami.dev/core/overview) for more details.
+
+## createRequestHandler
+
+A high-order function to ceate a request handler. Options can be specifed, please refer to [Configuration](https://urami.dev/core/configuration) page
+
+```ts
+const handler = createRequestHandler({
+ // configuration
+})
+```
+
+The handler itself is a function that accepts a `Request` object and returns a `Response` object.
+
+```ts
+export type RequestHandler = (request: Request) => Promise
+```
diff --git a/packages/core/package.json b/packages/core/package.json
index 364d70c..a8f2445 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -7,6 +7,7 @@
"email": "contact@rayriffy.com",
"url": "https://rayriffy.com"
},
+ "homepage": "https://urami.dev/",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
diff --git a/packages/core/src/@types/RequestHandler.ts b/packages/core/src/@types/RequestHandler.ts
new file mode 100644
index 0000000..0225f68
--- /dev/null
+++ b/packages/core/src/@types/RequestHandler.ts
@@ -0,0 +1 @@
+export type RequestHandler = (request: Request) => Promise
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index 533f092..0ba8590 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -21,10 +21,11 @@ import { writeImageToFileSystem } from './functions/writeImageToFileSystem.js'
import type { Config } from './@types/Config.js'
import type { ResponsePayload } from './@types/ResponsePayload.js'
+import type { RequestHandler } from './@types/RequestHandler.js'
export const createRequestHandler =
- (config: Partial = {}) =>
- async (request: Request): Promise => {
+ (config: Partial = {}): RequestHandler =>
+ async request => {
// build general config
const mergedConfig = {
...defaultConfig,
diff --git a/packages/react/README.md b/packages/react/README.md
new file mode 100644
index 0000000..b06110b
--- /dev/null
+++ b/packages/react/README.md
@@ -0,0 +1,33 @@
+# @urami/react
+
+Optimized image component for [React](https://react.dev/).
+
+[Documentation](https://urami.dev/components/react)
+
+## Usage
+
+```tsx
+import Image from '@urami/react'
+
+const Component = () => {
+ return (
+
+ )
+}
+```
+
+## Props
+
+| Name | Type | Default | Required | Description |
+| --------- | -------- | -------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------- |
+| `src` | `string` | - | ✅ | Source of the image |
+| `width` | `number` | - | ✅ | Width of the image |
+| `height` | `number` | - | ❌ | Height of the image (Specify this will results in less layout shift) |
+| `quality` | `number` | `75` | ❌ | Quality of the image |
+| `loader` | `fn` | [`defaultLoader`](https://github.com/rayriffy/urami/blob/main/packages/utils/src/defaultLoader.ts) | ❌ | Loader function, please refer to [Loader](https://urami.dev/utilities/loader) |
diff --git a/packages/react/package.json b/packages/react/package.json
new file mode 100644
index 0000000..009902e
--- /dev/null
+++ b/packages/react/package.json
@@ -0,0 +1,45 @@
+{
+ "name": "@urami/react",
+ "version": "0.0.0",
+ "description": "Automatic image optimization component for React",
+ "author": {
+ "name": "Phumrapee Limpiancop",
+ "email": "contact@rayriffy.com",
+ "url": "https://rayriffy.com"
+ },
+ "homepage": "https://urami.dev/",
+ "publishConfig": {
+ "access": "public",
+ "registry": "https://registry.npmjs.org"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/rayriffy/urami.git"
+ },
+ "type": "module",
+ "main": "./dist/index.js",
+ "module": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "files": [
+ "src",
+ "dist"
+ ],
+ "scripts": {
+ "build": "tsup src/index.tsx --format esm --dts --sourcemap",
+ "dev": "pnpm run build --watch"
+ },
+ "keywords": [],
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ },
+ "dependencies": {
+ "@urami/utils": "workspace:*"
+ },
+ "devDependencies": {
+ "@tsconfig/recommended": "^1.0.3",
+ "@types/react": "^18.2.28",
+ "@types/react-dom": "^18.2.13",
+ "@urami/types": "workspace:*"
+ }
+}
diff --git a/packages/react/src/index.tsx b/packages/react/src/index.tsx
new file mode 100644
index 0000000..711241f
--- /dev/null
+++ b/packages/react/src/index.tsx
@@ -0,0 +1,33 @@
+import { defaultLoader, buildSource } from '@urami/utils'
+
+import type { FunctionComponent, ImgHTMLAttributes } from 'react'
+import type { Loader } from '@urami/types'
+
+export interface ImageProps extends ImgHTMLAttributes {
+ src: string
+ width: number
+ quality?: number
+ loader?: Loader
+}
+
+const Image: FunctionComponent = ({
+ src,
+ width,
+ quality = 75,
+ loader = defaultLoader,
+ ...rest
+}) => {
+ const builtProps = buildSource(loader, src, width, quality)
+
+ return (
+
+ )
+}
+
+export default Image
diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json
new file mode 100644
index 0000000..e4c911d
--- /dev/null
+++ b/packages/react/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@tsconfig/recommended/tsconfig.json",
+ "compilerOptions": {
+ "module": "es2022",
+ "lib": ["es2023", "DOM"],
+ "moduleResolution": "bundler",
+ "verbatimModuleSyntax": true,
+ "noEmit": true,
+ "jsx": "react-jsx"
+ }
+}
diff --git a/packages/react/tsup.config.ts b/packages/react/tsup.config.ts
new file mode 100644
index 0000000..cb9e043
--- /dev/null
+++ b/packages/react/tsup.config.ts
@@ -0,0 +1,3 @@
+import { defineConfig } from 'tsup'
+
+export default defineConfig({})
diff --git a/packages/solid/README.md b/packages/solid/README.md
new file mode 100644
index 0000000..61265ee
--- /dev/null
+++ b/packages/solid/README.md
@@ -0,0 +1,33 @@
+# @urami/solid
+
+Optimized image component for [Solid](https://www.solidjs.com/).
+
+[Documentation](https://urami.dev/components/solid)
+
+## Usage
+
+```tsx
+import Image from '@urami/solid'
+
+const Component = () => {
+ return (
+
+ )
+}
+```
+
+## Props
+
+| Name | Type | Default | Required | Description |
+| --------- | -------- | -------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------- |
+| `src` | `string` | - | ✅ | Source of the image |
+| `width` | `number` | - | ✅ | Width of the image |
+| `height` | `number` | - | ❌ | Height of the image (Specify this will results in less layout shift) |
+| `quality` | `number` | `75` | ❌ | Quality of the image |
+| `loader` | `fn` | [`defaultLoader`](https://github.com/rayriffy/urami/blob/main/packages/utils/src/defaultLoader.ts) | ❌ | Loader function, please refer to [Loader](https://urami.dev/utilities/loader) |
diff --git a/packages/solid/package.json b/packages/solid/package.json
index 43acde1..e244e61 100644
--- a/packages/solid/package.json
+++ b/packages/solid/package.json
@@ -1,12 +1,13 @@
{
"name": "@urami/solid",
"version": "0.0.0",
- "description": "Utilities function for automatic image optimization",
+ "description": "Automatic image optimization component for Solid",
"author": {
"name": "Phumrapee Limpiancop",
"email": "contact@rayriffy.com",
"url": "https://rayriffy.com"
},
+ "homepage": "https://urami.dev/",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
@@ -19,10 +20,19 @@
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
+ "exports": {
+ "solid": "./dist/index.jsx",
+ "import": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.js"
+ }
+ },
"files": [
"src",
"dist"
],
+ "browser": {},
+ "typesVersions": {},
"scripts": {
"build": "tsup --format esm --dts --sourcemap",
"dev": "pnpm run build --watch"
@@ -39,14 +49,5 @@
"@urami/types": "workspace:*",
"solid-js": "^1.7.12",
"tsup-preset-solid": "^2.1.0"
- },
- "browser": {},
- "exports": {
- "solid": "./dist/index.jsx",
- "import": {
- "types": "./dist/index.d.ts",
- "default": "./dist/index.js"
- }
- },
- "typesVersions": {}
+ }
}
diff --git a/packages/svelte/README.md b/packages/svelte/README.md
new file mode 100644
index 0000000..831d85d
--- /dev/null
+++ b/packages/svelte/README.md
@@ -0,0 +1,31 @@
+# @urami/svelte
+
+Optimized image component for [Svelte](https://svelte.dev/).
+
+[Documentation](https://urami.dev/components/svelte)
+
+## Usage
+
+```svelte
+
+
+
+```
+
+## Props
+
+| Name | Type | Default | Required | Description |
+| --------- | -------- | -------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------- |
+| `src` | `string` | - | ✅ | Source of the image |
+| `width` | `number` | - | ✅ | Width of the image |
+| `height` | `number` | - | ❌ | Height of the image (Specify this will results in less layout shift) |
+| `quality` | `number` | `75` | ❌ | Quality of the image |
+| `loader` | `fn` | [`defaultLoader`](https://github.com/rayriffy/urami/blob/main/packages/utils/src/defaultLoader.ts) | ❌ | Loader function, please refer to [Loader](https://urami.dev/utilities/loader) |
diff --git a/packages/svelte/package.json b/packages/svelte/package.json
index 6cf2f89..8d72147 100644
--- a/packages/svelte/package.json
+++ b/packages/svelte/package.json
@@ -7,6 +7,7 @@
"email": "contact@rayriffy.com",
"url": "https://rayriffy.com"
},
+ "homepage": "https://urami.dev/",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
diff --git a/packages/types/README.md b/packages/types/README.md
new file mode 100644
index 0000000..4c077bf
--- /dev/null
+++ b/packages/types/README.md
@@ -0,0 +1,3 @@
+# @urami/types
+
+Types for [Urami](https://urami.dev) packages
diff --git a/packages/types/package.json b/packages/types/package.json
index 8e34903..db8f920 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -6,6 +6,7 @@
"email": "contact@rayriffy.com",
"url": "https://rayriffy.com"
},
+ "homepage": "https://urami.dev/",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
diff --git a/packages/utils/README.md b/packages/utils/README.md
new file mode 100644
index 0000000..1bb35c1
--- /dev/null
+++ b/packages/utils/README.md
@@ -0,0 +1,11 @@
+# @urami/utils
+
+Utility functions for [Urami](https://urami.dev) packages
+
+## defaultLoader
+
+Default loader function for [Urami](https://urami.dev) image components. Please refer to [documentation](https://urami.dev/utilities/loader) for more information.
+
+## buildSource
+
+Generate optimized URLs from original image source.
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 46e62f7..85b3a08 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -7,6 +7,7 @@
"email": "contact@rayriffy.com",
"url": "https://rayriffy.com"
},
+ "homepage": "https://urami.dev/",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
diff --git a/packages/vue/README.md b/packages/vue/README.md
new file mode 100644
index 0000000..47b2a0b
--- /dev/null
+++ b/packages/vue/README.md
@@ -0,0 +1,33 @@
+# @urami/vue
+
+Optimized image component for [Vue](https://vuejs.org/).
+
+[Documentation](https://urami.dev/components/vue)
+
+## Usage
+
+```vue
+
+
+
+
+
+```
+
+## Props
+
+| Name | Type | Default | Required | Description |
+| --------- | -------- | -------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------- |
+| `src` | `string` | - | ✅ | Source of the image |
+| `width` | `number` | - | ✅ | Width of the image |
+| `height` | `number` | - | ❌ | Height of the image (Specify this will results in less layout shift) |
+| `quality` | `number` | `75` | ❌ | Quality of the image |
+| `loader` | `fn` | [`defaultLoader`](https://github.com/rayriffy/urami/blob/main/packages/utils/src/defaultLoader.ts) | ❌ | Loader function, please refer to [Loader](https://urami.dev/utilities/loader) |
diff --git a/packages/vue/package.json b/packages/vue/package.json
new file mode 100644
index 0000000..1261a0d
--- /dev/null
+++ b/packages/vue/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "@urami/vue",
+ "version": "0.0.0",
+ "description": "Automatic image optimization component for Vue",
+ "author": {
+ "name": "Phumrapee Limpiancop",
+ "email": "contact@rayriffy.com",
+ "url": "https://rayriffy.com"
+ },
+ "homepage": "https://urami.dev/",
+ "publishConfig": {
+ "access": "public",
+ "registry": "https://registry.npmjs.org"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/rayriffy/urami.git"
+ },
+ "type": "module",
+ "main": "./dist/index.js",
+ "module": "./dist/index.js",
+ "files": [
+ "src",
+ "dist"
+ ],
+ "scripts": {
+ "build": "vite build"
+ },
+ "keywords": [],
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ },
+ "dependencies": {
+ "@urami/utils": "workspace:*"
+ },
+ "devDependencies": {
+ "@tsconfig/recommended": "^1.0.3",
+ "@urami/types": "workspace:*",
+ "@vitejs/plugin-vue": "^4.4.0",
+ "vite": "^4.4.11",
+ "vue": "^3.3.4"
+ }
+}
diff --git a/packages/vue/src/Image.vue b/packages/vue/src/Image.vue
new file mode 100644
index 0000000..e6f8923
--- /dev/null
+++ b/packages/vue/src/Image.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/packages/vue/src/index.ts b/packages/vue/src/index.ts
new file mode 100644
index 0000000..32b6d9c
--- /dev/null
+++ b/packages/vue/src/index.ts
@@ -0,0 +1,3 @@
+import Image from './Image.vue'
+
+export default Image
diff --git a/packages/vue/tsconfig.json b/packages/vue/tsconfig.json
new file mode 100644
index 0000000..cf44875
--- /dev/null
+++ b/packages/vue/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "@tsconfig/recommended/tsconfig.json",
+ "compilerOptions": {
+ "module": "es2022",
+ "lib": ["es2023", "DOM"],
+ "moduleResolution": "bundler",
+ "verbatimModuleSyntax": true,
+ "noEmit": true,
+ "jsx": "preserve"
+ }
+}
diff --git a/packages/vue/vite.config.ts b/packages/vue/vite.config.ts
new file mode 100644
index 0000000..b7b7524
--- /dev/null
+++ b/packages/vue/vite.config.ts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+export default defineConfig({
+ plugins: [vue()],
+ build: {
+ lib: {
+ entry: 'src/index.ts',
+ name: 'Image',
+ fileName: 'index',
+ },
+ rollupOptions: {
+ external: ['vue', '@urami/utils'],
+ output: {
+ globals: {
+ vue: 'Vue',
+ },
+ },
+ },
+ },
+})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1166437..432b30e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -126,6 +126,31 @@ importers:
specifier: ^0.17.1
version: 0.17.2
+ packages/react:
+ dependencies:
+ '@urami/utils':
+ specifier: workspace:*
+ version: link:../utils
+ react:
+ specifier: ^18.0.0
+ version: 18.2.0
+ react-dom:
+ specifier: ^18.0.0
+ version: 18.2.0(react@18.2.0)
+ devDependencies:
+ '@tsconfig/recommended':
+ specifier: ^1.0.3
+ version: 1.0.3
+ '@types/react':
+ specifier: ^18.2.28
+ version: 18.2.28
+ '@types/react-dom':
+ specifier: ^18.2.13
+ version: 18.2.13
+ '@urami/types':
+ specifier: workspace:*
+ version: link:../types
+
packages/solid:
dependencies:
'@urami/utils':
@@ -179,6 +204,28 @@ importers:
specifier: workspace:*
version: link:../types
+ packages/vue:
+ dependencies:
+ '@urami/utils':
+ specifier: workspace:*
+ version: link:../utils
+ devDependencies:
+ '@tsconfig/recommended':
+ specifier: ^1.0.3
+ version: 1.0.3
+ '@urami/types':
+ specifier: workspace:*
+ version: link:../types
+ '@vitejs/plugin-vue':
+ specifier: ^4.4.0
+ version: 4.4.0(vite@4.4.11)(vue@3.3.4)
+ vite:
+ specifier: ^4.4.11
+ version: 4.4.11(@types/node@18.18.5)
+ vue:
+ specifier: ^3.3.4
+ version: 3.3.4
+
packages:
/@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.9.0):
@@ -2377,13 +2424,35 @@ packages:
resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
dev: true
+ /@types/prop-types@15.7.8:
+ resolution: {integrity: sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==}
+ dev: true
+
/@types/pug@2.0.7:
resolution: {integrity: sha512-I469DU0UXNC1aHepwirWhu9YKg5fkxohZD95Ey/5A7lovC+Siu+MCLffva87lnfThaOrw9Vb1DUN5t55oULAAw==}
dev: true
+ /@types/react-dom@18.2.13:
+ resolution: {integrity: sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==}
+ dependencies:
+ '@types/react': 18.2.28
+ dev: true
+
+ /@types/react@18.2.28:
+ resolution: {integrity: sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==}
+ dependencies:
+ '@types/prop-types': 15.7.8
+ '@types/scheduler': 0.16.4
+ csstype: 3.1.2
+ dev: true
+
/@types/resolve@1.20.2:
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+ /@types/scheduler@0.16.4:
+ resolution: {integrity: sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==}
+ dev: true
+
/@types/semver@7.5.3:
resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
dev: true
@@ -2399,6 +2468,17 @@ packages:
resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==}
dev: true
+ /@vitejs/plugin-vue@4.4.0(vite@4.4.11)(vue@3.3.4):
+ resolution: {integrity: sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.0.0
+ vue: ^3.2.25
+ dependencies:
+ vite: 4.4.11(@types/node@18.18.5)
+ vue: 3.3.4
+ dev: true
+
/@vue/compiler-core@3.3.4:
resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==}
dependencies:
@@ -4470,6 +4550,13 @@ packages:
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ /loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+ dev: false
+
/lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies:
@@ -5080,6 +5167,23 @@ packages:
strip-json-comments: 2.0.1
dev: false
+ /react-dom@18.2.0(react@18.2.0):
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
+ peerDependencies:
+ react: ^18.2.0
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.2.0
+ scheduler: 0.23.0
+ dev: false
+
+ /react@18.2.0:
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ loose-envify: 1.4.0
+ dev: false
+
/read-pkg-up@7.0.1:
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
engines: {node: '>=8'}
@@ -5312,6 +5416,12 @@ packages:
rimraf: 2.7.1
dev: true
+ /scheduler@0.23.0:
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
+ dependencies:
+ loose-envify: 1.4.0
+ dev: false
+
/search-insights@2.9.0:
resolution: {integrity: sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==}
dev: true