diff --git a/.eslintrc.json b/.eslintrc.json
index be858c772..acbe35c2a 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,4 +1,5 @@
{
+ "root": true,
"env": {
"browser": true,
"es2021": true,
@@ -6,15 +7,27 @@
},
"extends": [
"eslint:recommended",
+ "plugin:@typescript-eslint/recommended",
"plugin:vue/vue3-recommended",
"plugin:prettier/recommended",
"prettier"
],
"parserOptions": {
+ "parser": {
+ "js": "espree",
+ "jsx": "espree",
+ "cjs": "espree",
+ "mjs": "espree",
+ "ts": "@typescript-eslint/parser"
+ },
"ecmaVersion": "latest",
- "sourceType": "module"
+ "sourceType": "module",
+ "extraFileExtensions": [".vue"],
+ "ecmaFeatures": {
+ "jsx": true
+ }
},
- "plugins": ["vue"],
+ "plugins": ["@typescript-eslint", "vue"],
"rules": {
"no-console": "off",
"vue/no-v-html": "off",
diff --git a/.npmrc b/.npmrc
index 34717ad78..fe10d3115 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,2 +1,3 @@
fetch-retry-mintimeout=20000
fetch-retry-maxtimeout=120000
+auto-install-peers=true
diff --git a/jsconfig.json b/jsconfig.json
deleted file mode 100644
index 686295e60..000000000
--- a/jsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/*": ["src/*"]
- }
- },
- "exclude": ["node_modules", "dist"]
-}
diff --git a/lib/components/index.js b/lib/components/index.js
index 67f1a74c1..31c3916e0 100644
--- a/lib/components/index.js
+++ b/lib/components/index.js
@@ -36,105 +36,105 @@ export { default as NavItem } from './nav/NavItem.vue'
export { default as NavRow } from './nav/NavRow.vue'
export { default as NavStack } from './nav/NavStack.vue'
-export { default as AlignLeftIcon } from '@/assets/icons/align-left.svg'
-export { default as ArchiveIcon } from '@/assets/icons/archive.svg'
-export { default as AsteriskIcon } from '@/assets/icons/asterisk.svg'
-export { default as BellIcon } from '@/assets/icons/bell.svg'
-export { default as BellRingIcon } from '@/assets/icons/bell-ring.svg'
-export { default as BookIcon } from '@/assets/icons/book.svg'
-export { default as BoxIcon } from '@/assets/icons/box.svg'
-export { default as CalendarIcon } from '@/assets/icons/calendar.svg'
-export { default as ChartIcon } from '@/assets/icons/chart.svg'
-export { default as CheckIcon } from '@/assets/icons/check.svg'
-export { default as CheckCircleIcon } from '@/assets/icons/check-circle.svg'
-export { default as ChevronLeftIcon } from '@/assets/icons/chevron-left.svg'
-export { default as ChevronRightIcon } from '@/assets/icons/chevron-right.svg'
-export { default as ClearIcon } from '@/assets/icons/clear.svg'
-export { default as ClientIcon } from '@/assets/icons/client.svg'
-export { default as ClipboardCopyIcon } from '@/assets/icons/clipboard-copy.svg'
-export { default as CodeIcon } from '@/assets/icons/code.svg'
-export { default as CoinsIcon } from '@/assets/icons/coins.svg'
-export { default as ContractIcon } from '@/assets/icons/contract.svg'
-export { default as CopyrightIcon } from '@/assets/icons/copyright.svg'
-export { default as CurrencyIcon } from '@/assets/icons/currency.svg'
-export { default as DashboardIcon } from '@/assets/icons/dashboard.svg'
-export { default as DownloadIcon } from '@/assets/icons/download.svg'
-export { default as DropdownIcon } from '@/assets/icons/dropdown.svg'
-export { default as EditIcon } from '@/assets/icons/edit.svg'
-export { default as ExitIcon } from '@/assets/icons/x.svg'
-export { default as ExpandIcon } from '@/assets/icons/expand.svg'
-export { default as ExternalIcon } from '@/assets/icons/external.svg'
-export { default as EyeIcon } from '@/assets/icons/eye.svg'
-export { default as EyeOffIcon } from '@/assets/icons/eye-off.svg'
-export { default as FileIcon } from '@/assets/icons/file.svg'
-export { default as FileTextIcon } from '@/assets/icons/file-text.svg'
-export { default as FilterIcon } from '@/assets/icons/filter.svg'
-export { default as FolderOpenIcon } from '@/assets/icons/folder-open.svg'
-export { default as FolderSearchIcon } from '@/assets/icons/folder-search.svg'
-export { default as GapIcon } from '@/assets/icons/gap.svg'
-export { default as GitHubIcon } from '@/assets/icons/github.svg'
-export { default as GlobeIcon } from '@/assets/icons/globe.svg'
-export { default as GridIcon } from '@/assets/icons/grid.svg'
-export { default as HamburgerIcon } from '@/assets/icons/hamburger.svg'
-export { default as HammerIcon } from '@/assets/icons/hammer.svg'
-export { default as HashIcon } from '@/assets/icons/hash.svg'
-export { default as HeartIcon } from '@/assets/icons/heart.svg'
-export { default as HeartHandshakeIcon } from '@/assets/icons/heart-handshake.svg'
-export { default as HistoryIcon } from '@/assets/icons/history.svg'
-export { default as HomeIcon } from '@/assets/icons/home.svg'
-export { default as ImageIcon } from '@/assets/icons/image.svg'
-export { default as InfoIcon } from '@/assets/icons/info.svg'
-export { default as IssuesIcon } from '@/assets/icons/issues.svg'
-export { default as LeftArrowIcon } from '@/assets/icons/left-arrow.svg'
-export { default as LibraryIcon } from '@/assets/icons/library.svg'
-export { default as LightBulbIcon } from '@/assets/icons/light-bulb.svg'
-export { default as LinkIcon } from '@/assets/icons/link.svg'
-export { default as ListIcon } from '@/assets/icons/list.svg'
-export { default as LockIcon } from '@/assets/icons/lock.svg'
-export { default as LogInIcon } from '@/assets/icons/log-in.svg'
-export { default as LogOutIcon } from '@/assets/icons/log-out.svg'
-export { default as MoonIcon } from '@/assets/icons/moon.svg'
-export { default as OmorphiaIcon } from '@/assets/icons/omorphia.svg'
-export { default as PaintBrushIcon } from '@/assets/icons/paintbrush.svg'
-export { default as PlayIcon } from '@/assets/icons/play.svg'
-export { default as PlusIcon } from '@/assets/icons/plus.svg'
-export { default as ReportIcon } from '@/assets/icons/report.svg'
-export { default as RightArrowIcon } from '@/assets/icons/right-arrow.svg'
-export { default as SaveIcon } from '@/assets/icons/save.svg'
-export { default as ScaleIcon } from '@/assets/icons/scale.svg'
-export { default as SearchIcon } from '@/assets/icons/search.svg'
-export { default as SendIcon } from '@/assets/icons/send.svg'
-export { default as ServerIcon } from '@/assets/icons/server.svg'
-export { default as SettingsIcon } from '@/assets/icons/settings.svg'
-export { default as ShieldIcon } from '@/assets/icons/shield.svg'
-export { default as SlashIcon } from '@/assets/icons/slash.svg'
-export { default as StarIcon } from '@/assets/icons/star.svg'
-export { default as StopCircleIcon } from '@/assets/icons/stop-circle.svg'
-export { default as SunIcon } from '@/assets/icons/sun.svg'
-export { default as SunriseIcon } from '@/assets/icons/sunrise.svg'
-export { default as TagIcon } from '@/assets/icons/tag.svg'
-export { default as TagsIcon } from '@/assets/icons/tags.svg'
-export { default as TerminalSquareIcon } from '@/assets/icons/terminal-square.svg'
-export { default as TransferIcon } from '@/assets/icons/transfer.svg'
-export { default as TrashIcon } from '@/assets/icons/trash.svg'
-export { default as UndoIcon } from '@/assets/icons/undo.svg'
-export { default as UnknownIcon } from '@/assets/icons/unknown.svg'
-export { default as UnknownDonationIcon } from '@/assets/icons/unknown-donation.svg'
-export { default as UpdatedIcon } from '@/assets/icons/updated.svg'
-export { default as UploadIcon } from '@/assets/icons/upload.svg'
-export { default as UserIcon } from '@/assets/icons/user.svg'
-export { default as UserPlusIcon } from '@/assets/icons/user-plus.svg'
-export { default as UserXIcon } from '@/assets/icons/user-x.svg'
-export { default as UsersIcon } from '@/assets/icons/users.svg'
-export { default as VersionIcon } from '@/assets/icons/version.svg'
-export { default as WikiIcon } from '@/assets/icons/wiki.svg'
-export { default as XIcon } from '@/assets/icons/x.svg'
-export { default as XCircleIcon } from '@/assets/icons/x-circle.svg'
-export { default as MailIcon } from '@/assets/icons/mail.svg'
-export { default as ShareIcon } from '@/assets/icons/share.svg'
+export { default as AlignLeftIcon } from '@/assets/icons/align-left.svg?component'
+export { default as ArchiveIcon } from '@/assets/icons/archive.svg?component'
+export { default as AsteriskIcon } from '@/assets/icons/asterisk.svg?component'
+export { default as BellIcon } from '@/assets/icons/bell.svg?component'
+export { default as BellRingIcon } from '@/assets/icons/bell-ring.svg?component'
+export { default as BookIcon } from '@/assets/icons/book.svg?component'
+export { default as BoxIcon } from '@/assets/icons/box.svg?component'
+export { default as CalendarIcon } from '@/assets/icons/calendar.svg?component'
+export { default as ChartIcon } from '@/assets/icons/chart.svg?component'
+export { default as CheckIcon } from '@/assets/icons/check.svg?component'
+export { default as CheckCircleIcon } from '@/assets/icons/check-circle.svg?component'
+export { default as ChevronLeftIcon } from '@/assets/icons/chevron-left.svg?component'
+export { default as ChevronRightIcon } from '@/assets/icons/chevron-right.svg?component'
+export { default as ClearIcon } from '@/assets/icons/clear.svg?component'
+export { default as ClientIcon } from '@/assets/icons/client.svg?component'
+export { default as ClipboardCopyIcon } from '@/assets/icons/clipboard-copy.svg?component'
+export { default as CodeIcon } from '@/assets/icons/code.svg?component'
+export { default as CoinsIcon } from '@/assets/icons/coins.svg?component'
+export { default as ContractIcon } from '@/assets/icons/contract.svg?component'
+export { default as CopyrightIcon } from '@/assets/icons/copyright.svg?component'
+export { default as CurrencyIcon } from '@/assets/icons/currency.svg?component'
+export { default as DashboardIcon } from '@/assets/icons/dashboard.svg?component'
+export { default as DownloadIcon } from '@/assets/icons/download.svg?component'
+export { default as DropdownIcon } from '@/assets/icons/dropdown.svg?component'
+export { default as EditIcon } from '@/assets/icons/edit.svg?component'
+export { default as ExitIcon } from '@/assets/icons/x.svg?component'
+export { default as ExpandIcon } from '@/assets/icons/expand.svg?component'
+export { default as ExternalIcon } from '@/assets/icons/external.svg?component'
+export { default as EyeIcon } from '@/assets/icons/eye.svg?component'
+export { default as EyeOffIcon } from '@/assets/icons/eye-off.svg?component'
+export { default as FileIcon } from '@/assets/icons/file.svg?component'
+export { default as FileTextIcon } from '@/assets/icons/file-text.svg?component'
+export { default as FilterIcon } from '@/assets/icons/filter.svg?component'
+export { default as FolderOpenIcon } from '@/assets/icons/folder-open.svg?component'
+export { default as FolderSearchIcon } from '@/assets/icons/folder-search.svg?component'
+export { default as GapIcon } from '@/assets/icons/gap.svg?component'
+export { default as GitHubIcon } from '@/assets/icons/github.svg?component'
+export { default as GlobeIcon } from '@/assets/icons/globe.svg?component'
+export { default as GridIcon } from '@/assets/icons/grid.svg?component'
+export { default as HamburgerIcon } from '@/assets/icons/hamburger.svg?component'
+export { default as HammerIcon } from '@/assets/icons/hammer.svg?component'
+export { default as HashIcon } from '@/assets/icons/hash.svg?component'
+export { default as HeartIcon } from '@/assets/icons/heart.svg?component'
+export { default as HeartHandshakeIcon } from '@/assets/icons/heart-handshake.svg?component'
+export { default as HistoryIcon } from '@/assets/icons/history.svg?component'
+export { default as HomeIcon } from '@/assets/icons/home.svg?component'
+export { default as ImageIcon } from '@/assets/icons/image.svg?component'
+export { default as InfoIcon } from '@/assets/icons/info.svg?component'
+export { default as IssuesIcon } from '@/assets/icons/issues.svg?component'
+export { default as LeftArrowIcon } from '@/assets/icons/left-arrow.svg?component'
+export { default as LibraryIcon } from '@/assets/icons/library.svg?component'
+export { default as LightBulbIcon } from '@/assets/icons/light-bulb.svg?component'
+export { default as LinkIcon } from '@/assets/icons/link.svg?component'
+export { default as ListIcon } from '@/assets/icons/list.svg?component'
+export { default as LockIcon } from '@/assets/icons/lock.svg?component'
+export { default as LogInIcon } from '@/assets/icons/log-in.svg?component'
+export { default as LogOutIcon } from '@/assets/icons/log-out.svg?component'
+export { default as MoonIcon } from '@/assets/icons/moon.svg?component'
+export { default as OmorphiaIcon } from '@/assets/icons/omorphia.svg?component'
+export { default as PaintBrushIcon } from '@/assets/icons/paintbrush.svg?component'
+export { default as PlayIcon } from '@/assets/icons/play.svg?component'
+export { default as PlusIcon } from '@/assets/icons/plus.svg?component'
+export { default as ReportIcon } from '@/assets/icons/report.svg?component'
+export { default as RightArrowIcon } from '@/assets/icons/right-arrow.svg?component'
+export { default as SaveIcon } from '@/assets/icons/save.svg?component'
+export { default as ScaleIcon } from '@/assets/icons/scale.svg?component'
+export { default as SearchIcon } from '@/assets/icons/search.svg?component'
+export { default as SendIcon } from '@/assets/icons/send.svg?component'
+export { default as ServerIcon } from '@/assets/icons/server.svg?component'
+export { default as SettingsIcon } from '@/assets/icons/settings.svg?component'
+export { default as ShieldIcon } from '@/assets/icons/shield.svg?component'
+export { default as SlashIcon } from '@/assets/icons/slash.svg?component'
+export { default as StarIcon } from '@/assets/icons/star.svg?component'
+export { default as StopCircleIcon } from '@/assets/icons/stop-circle.svg?component'
+export { default as SunIcon } from '@/assets/icons/sun.svg?component'
+export { default as SunriseIcon } from '@/assets/icons/sunrise.svg?component'
+export { default as TagIcon } from '@/assets/icons/tag.svg?component'
+export { default as TagsIcon } from '@/assets/icons/tags.svg?component'
+export { default as TerminalSquareIcon } from '@/assets/icons/terminal-square.svg?component'
+export { default as TransferIcon } from '@/assets/icons/transfer.svg?component'
+export { default as TrashIcon } from '@/assets/icons/trash.svg?component'
+export { default as UndoIcon } from '@/assets/icons/undo.svg?component'
+export { default as UnknownIcon } from '@/assets/icons/unknown.svg?component'
+export { default as UnknownDonationIcon } from '@/assets/icons/unknown-donation.svg?component'
+export { default as UpdatedIcon } from '@/assets/icons/updated.svg?component'
+export { default as UploadIcon } from '@/assets/icons/upload.svg?component'
+export { default as UserIcon } from '@/assets/icons/user.svg?component'
+export { default as UserPlusIcon } from '@/assets/icons/user-plus.svg?component'
+export { default as UserXIcon } from '@/assets/icons/user-x.svg?component'
+export { default as UsersIcon } from '@/assets/icons/users.svg?component'
+export { default as VersionIcon } from '@/assets/icons/version.svg?component'
+export { default as WikiIcon } from '@/assets/icons/wiki.svg?component'
+export { default as XIcon } from '@/assets/icons/x.svg?component'
+export { default as XCircleIcon } from '@/assets/icons/x-circle.svg?component'
+export { default as MailIcon } from '@/assets/icons/mail.svg?component'
+export { default as ShareIcon } from '@/assets/icons/share.svg?component'
-export { default as MastodonIcon } from '@/assets/external/mastodon.svg'
-export { default as RedditIcon } from '@/assets/external/reddit.svg'
-export { default as TwitterIcon } from '@/assets/external/twitter.svg'
+export { default as MastodonIcon } from '@/assets/external/mastodon.svg?component'
+export { default as RedditIcon } from '@/assets/external/reddit.svg?component'
+export { default as TwitterIcon } from '@/assets/external/twitter.svg?component'
-export { default as ModrinthIcon } from '@/assets/branding/logo.svg'
+export { default as ModrinthIcon } from '@/assets/branding/logo.svg?component'
diff --git a/lib/helpers/index.js b/lib/helpers/index.js
index 0e4b90e76..1ecc93168 100644
--- a/lib/helpers/index.js
+++ b/lib/helpers/index.js
@@ -1,3 +1,3 @@
-export * from './highlight'
-export * from './parse'
-export * from './utils'
+export * from './highlight.js'
+export * from './parse.js'
+export * from './utils.js'
diff --git a/lib/index.js b/lib/index.js
deleted file mode 100644
index 52cf8c3a2..000000000
--- a/lib/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import * as components from './components'
-import FloatingVue from 'floating-vue'
-
-function install(app) {
- for (const key in components) {
- app.component(key, components[key])
- }
- app.use(FloatingVue)
-}
-
-export default { install }
-export * from './components'
-export * from './helpers'
-
-import './assets/omorphia.scss'
diff --git a/lib/index.ts b/lib/index.ts
new file mode 100644
index 000000000..450660b8a
--- /dev/null
+++ b/lib/index.ts
@@ -0,0 +1,16 @@
+import * as components from './components/index.js'
+import FloatingVue from 'floating-vue'
+import { Plugin } from 'vue'
+
+const plugin: Plugin = (app) => {
+ for (const key in components) {
+ app.component(key, components[key as keyof typeof components])
+ }
+ app.use(FloatingVue)
+}
+
+export default plugin
+export * from './components/index.js'
+export * from './helpers/index.js'
+
+import './assets/omorphia.scss'
diff --git a/lib/vite-env.d.ts b/lib/vite-env.d.ts
new file mode 100644
index 000000000..8cee15171
--- /dev/null
+++ b/lib/vite-env.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/package.json b/package.json
index bd790694d..fcb830a3a 100644
--- a/package.json
+++ b/package.json
@@ -3,20 +3,20 @@
"type": "module",
"version": "0.4.40",
"files": [
- "dist",
- "lib"
+ "dist"
],
"main": "./dist/omorphia.umd.cjs",
"module": "./dist/omorphia.js",
"exports": {
".": {
+ "types": "./dist/index.d.ts",
"import": "./dist/omorphia.js",
- "require": "./dist/omorphia.umd.cjs"
+ "require": "./dist/omorphia.cjs"
},
"./dist/style.css": "./dist/style.css"
},
"scripts": {
- "build": "vite build",
+ "build": "vue-tsc && vite build",
"lint:js": "eslint --ext .js,.vue,.ts,.jsx,.tsx,.html,.vue .",
"lint": "pnpm run lint:js && prettier --check .",
"fix": "eslint --fix --ext .js,.vue,.ts,.jsx,.tsx,.html,.vue . && prettier --write .",
@@ -31,13 +31,14 @@
"highlight.js": "^11.8.0",
"markdown-it": "^13.0.1",
"qrcode.vue": "^3.4.0",
- "vue": "^3.3.4",
"vue-chartjs": "^5.2.0",
"vue-router": "^4.2.1",
"vue-select": "^4.0.0-beta.6",
"xss": "^1.0.14"
},
"devDependencies": {
+ "@typescript-eslint/eslint-plugin": "^6.7.4",
+ "@typescript-eslint/parser": "^6.7.4",
"@vitejs/plugin-vue": "^4.2.3",
"eslint": "^8.41.0",
"eslint-config-prettier": "^8.8.0",
@@ -46,12 +47,19 @@
"postcss": "^8.4.24",
"postcss-prefix-selector": "^1.16.0",
"prettier": "^2.8.8",
+ "rollup-plugin-node-externals": "^6.1.2",
"sass": "^1.62.1",
"sass-loader": "^13.3.1",
+ "typescript": "^5.2.2",
"vite": "^4.3.9",
+ "vite-plugin-dts": "^3.6.0",
"vite-plugin-eslint": "^1.8.1",
"vite-svg-loader": "^4.0.0",
- "vitepress": "^1.0.0-beta.1"
+ "vitepress": "^1.0.0-beta.1",
+ "vue-tsc": "^1.8.16"
+ },
+ "peerDependencies": {
+ "vue": "^3.3.4"
},
"packageManager": "pnpm@8.5.1"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0d92d0767..0db35ca51 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -36,6 +36,12 @@ dependencies:
version: 1.0.14
devDependencies:
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^6.7.4
+ version: 6.7.4(@typescript-eslint/parser@6.7.4)(eslint@8.41.0)(typescript@5.2.2)
+ '@typescript-eslint/parser':
+ specifier: ^6.7.4
+ version: 6.7.4(eslint@8.41.0)(typescript@5.2.2)
'@vitejs/plugin-vue':
specifier: ^4.2.3
version: 4.2.3(vite@4.3.9)(vue@3.3.4)
@@ -60,15 +66,24 @@ devDependencies:
prettier:
specifier: ^2.8.8
version: 2.8.8
+ rollup-plugin-node-externals:
+ specifier: ^6.1.2
+ version: 6.1.2(rollup@3.23.0)
sass:
specifier: ^1.62.1
version: 1.62.1
sass-loader:
specifier: ^13.3.1
version: 13.3.1(sass@1.62.1)(webpack@5.84.1)
+ typescript:
+ specifier: ^5.2.2
+ version: 5.2.2
vite:
specifier: ^4.3.9
version: 4.3.9(sass@1.62.1)
+ vite-plugin-dts:
+ specifier: ^3.6.0
+ version: 3.6.0(rollup@3.23.0)(typescript@5.2.2)(vite@4.3.9)
vite-plugin-eslint:
specifier: ^1.8.1
version: 1.8.1(eslint@8.41.0)(vite@4.3.9)
@@ -78,6 +93,9 @@ devDependencies:
vitepress:
specifier: ^1.0.0-beta.1
version: 1.0.0-beta.1(@algolia/client-search@4.17.1)(sass@1.62.1)
+ vue-tsc:
+ specifier: ^1.8.16
+ version: 1.8.16(typescript@5.2.2)
packages:
@@ -562,6 +580,49 @@ packages:
resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==}
dev: false
+ /@microsoft/api-extractor-model@7.28.2:
+ resolution: {integrity: sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig==}
+ dependencies:
+ '@microsoft/tsdoc': 0.14.2
+ '@microsoft/tsdoc-config': 0.16.2
+ '@rushstack/node-core-library': 3.61.0
+ transitivePeerDependencies:
+ - '@types/node'
+ dev: true
+
+ /@microsoft/api-extractor@7.38.0:
+ resolution: {integrity: sha512-e1LhZYnfw+JEebuY2bzhw0imDCl1nwjSThTrQqBXl40hrVo6xm3j/1EpUr89QyzgjqmAwek2ZkIVZbrhaR+cqg==}
+ hasBin: true
+ dependencies:
+ '@microsoft/api-extractor-model': 7.28.2
+ '@microsoft/tsdoc': 0.14.2
+ '@microsoft/tsdoc-config': 0.16.2
+ '@rushstack/node-core-library': 3.61.0
+ '@rushstack/rig-package': 0.5.1
+ '@rushstack/ts-command-line': 4.16.1
+ colors: 1.2.5
+ lodash: 4.17.21
+ resolve: 1.22.6
+ semver: 7.5.4
+ source-map: 0.6.1
+ typescript: 5.0.4
+ transitivePeerDependencies:
+ - '@types/node'
+ dev: true
+
+ /@microsoft/tsdoc-config@0.16.2:
+ resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+ dependencies:
+ '@microsoft/tsdoc': 0.14.2
+ ajv: 6.12.6
+ jju: 1.4.0
+ resolve: 1.19.0
+ dev: true
+
+ /@microsoft/tsdoc@0.14.2:
+ resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+ dev: true
+
/@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -591,11 +652,63 @@ packages:
picomatch: 2.3.1
dev: true
+ /@rollup/pluginutils@5.0.5(rollup@3.23.0):
+ resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.1
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ rollup: 3.23.0
+ dev: true
+
+ /@rushstack/node-core-library@3.61.0:
+ resolution: {integrity: sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==}
+ peerDependencies:
+ '@types/node': '*'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ dependencies:
+ colors: 1.2.5
+ fs-extra: 7.0.1
+ import-lazy: 4.0.0
+ jju: 1.4.0
+ resolve: 1.22.6
+ semver: 7.5.4
+ z-schema: 5.0.5
+ dev: true
+
+ /@rushstack/rig-package@0.5.1:
+ resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==}
+ dependencies:
+ resolve: 1.22.6
+ strip-json-comments: 3.1.1
+ dev: true
+
+ /@rushstack/ts-command-line@4.16.1:
+ resolution: {integrity: sha512-+OCsD553GYVLEmz12yiFjMOzuPeCiZ3f8wTiFHL30ZVXexTyPmgjwXEhg2K2P0a2lVf+8YBy7WtPoflB2Fp8/A==}
+ dependencies:
+ '@types/argparse': 1.0.38
+ argparse: 1.0.10
+ colors: 1.2.5
+ string-argv: 0.3.2
+ dev: true
+
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
dev: true
+ /@types/argparse@1.0.38:
+ resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
+ dev: true
+
/@types/eslint-scope@3.7.4:
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
dependencies:
@@ -622,10 +735,145 @@ packages:
resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==}
dev: true
+ /@types/semver@7.5.3:
+ resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
+ dev: true
+
/@types/web-bluetooth@0.0.17:
resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==}
dev: true
+ /@typescript-eslint/eslint-plugin@6.7.4(@typescript-eslint/parser@6.7.4)(eslint@8.41.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.5.1
+ '@typescript-eslint/parser': 6.7.4(eslint@8.41.0)(typescript@5.2.2)
+ '@typescript-eslint/scope-manager': 6.7.4
+ '@typescript-eslint/type-utils': 6.7.4(eslint@8.41.0)(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.7.4(eslint@8.41.0)(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.7.4
+ debug: 4.3.4
+ eslint: 8.41.0
+ graphemer: 1.4.0
+ ignore: 5.2.4
+ natural-compare: 1.4.0
+ semver: 7.5.4
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/parser@6.7.4(eslint@8.41.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 6.7.4
+ '@typescript-eslint/types': 6.7.4
+ '@typescript-eslint/typescript-estree': 6.7.4(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.7.4
+ debug: 4.3.4
+ eslint: 8.41.0
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager@6.7.4:
+ resolution: {integrity: sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.7.4
+ '@typescript-eslint/visitor-keys': 6.7.4
+ dev: true
+
+ /@typescript-eslint/type-utils@6.7.4(eslint@8.41.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 6.7.4(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.7.4(eslint@8.41.0)(typescript@5.2.2)
+ debug: 4.3.4
+ eslint: 8.41.0
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types@6.7.4:
+ resolution: {integrity: sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree@6.7.4(typescript@5.2.2):
+ resolution: {integrity: sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 6.7.4
+ '@typescript-eslint/visitor-keys': 6.7.4
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.5.4
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils@6.7.4(eslint@8.41.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0)
+ '@types/json-schema': 7.0.12
+ '@types/semver': 7.5.3
+ '@typescript-eslint/scope-manager': 6.7.4
+ '@typescript-eslint/types': 6.7.4
+ '@typescript-eslint/typescript-estree': 6.7.4(typescript@5.2.2)
+ eslint: 8.41.0
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys@6.7.4:
+ resolution: {integrity: sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.7.4
+ eslint-visitor-keys: 3.4.1
+ dev: true
+
/@vitejs/plugin-vue@4.2.3(vite@4.3.9)(vue@3.3.4):
resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -637,6 +885,24 @@ packages:
vue: 3.3.4
dev: true
+ /@volar/language-core@1.10.3:
+ resolution: {integrity: sha512-7Qgwu9bWUHN+cLrOkCbIVBkL+RVPREhvY07wY89dGxi4mY9mQCsUVRRp64F61lX7Nc27meMnvy0sWlzY0x6oQQ==}
+ dependencies:
+ '@volar/source-map': 1.10.3
+ dev: true
+
+ /@volar/source-map@1.10.3:
+ resolution: {integrity: sha512-QE9nwK3xsdBQGongHnC9SCR0itx7xUKQFsUDn5HbZY3pHpyXxdY1hSBG0eh9mE+aTKoM4KlqMvrb+19Tv9vS1Q==}
+ dependencies:
+ muggle-string: 0.3.1
+ dev: true
+
+ /@volar/typescript@1.10.3:
+ resolution: {integrity: sha512-n0ar6xGYpRoSvgGMetm/JXP0QAXx+NOUvxCaWCfCjiFivQRSLJeydYDijhoGBUl5KSKosqq9In5L3e/m2TqTcQ==}
+ dependencies:
+ '@volar/language-core': 1.10.3
+ dev: true
+
/@vue/compiler-core@3.3.4:
resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==}
dependencies:
@@ -674,6 +940,25 @@ packages:
/@vue/devtools-api@6.5.0:
resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
+ /@vue/language-core@1.8.16(typescript@5.2.2):
+ resolution: {integrity: sha512-IAONyjgR3XImwgrtyQ7CCJlSXTlLesXG6/LpPjOBaXFiwknmGf1yDAXGa9fVH0lRplcnvOA7HNDI92OwWBi9qg==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@volar/language-core': 1.10.3
+ '@volar/source-map': 1.10.3
+ '@vue/compiler-dom': 3.3.4
+ '@vue/reactivity': 3.3.4
+ '@vue/shared': 3.3.4
+ minimatch: 9.0.3
+ muggle-string: 0.3.1
+ typescript: 5.2.2
+ vue-template-compiler: 2.7.14
+ dev: true
+
/@vue/reactivity-transform@3.3.4:
resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==}
dependencies:
@@ -713,6 +998,15 @@ packages:
/@vue/shared@3.3.4:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
+ /@vue/typescript@1.8.16(typescript@5.2.2):
+ resolution: {integrity: sha512-ywbY4bS4YJw8gYyPpOhwyutqzl0lqkYI7l3waZkOcQG4ZYgiu6KyHZc3aagEbH8saFQTQxi5+I3ATUN5KwfvNw==}
+ dependencies:
+ '@volar/typescript': 1.10.3
+ '@vue/language-core': 1.8.16(typescript@5.2.2)
+ transitivePeerDependencies:
+ - typescript
+ dev: true
+
/@vueuse/core@10.1.2(vue@3.3.4):
resolution: {integrity: sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==}
dependencies:
@@ -984,9 +1278,20 @@ packages:
picomatch: 2.3.1
dev: true
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ /array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
@@ -1011,6 +1316,12 @@ packages:
concat-map: 0.0.1
dev: true
+ /brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
+
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@@ -1088,6 +1399,11 @@ packages:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
+ /colors@1.2.5:
+ resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==}
+ engines: {node: '>=0.1.90'}
+ dev: true
+
/commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -1096,6 +1412,13 @@ packages:
engines: {node: '>= 10'}
dev: true
+ /commander@9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+ requiresBuild: true
+ dev: true
+ optional: true
+
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: true
@@ -1164,6 +1487,10 @@ packages:
resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==}
dev: false
+ /de-indent@1.0.2:
+ resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+ dev: true
+
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -1180,6 +1507,13 @@ packages:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
+ /dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
/doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
@@ -1447,6 +1781,17 @@ packages:
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
dev: true
+ /fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ 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==}
dev: true
@@ -1511,6 +1856,15 @@ packages:
tabbable: 6.1.2
dev: true
+ /fs-extra@7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+ dev: true
+
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
@@ -1559,6 +1913,18 @@ packages:
type-fest: 0.20.2
dev: true
+ /globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.1
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
@@ -1572,6 +1938,16 @@ packages:
engines: {node: '>=8'}
dev: true
+ /has@1.0.4:
+ resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
+ engines: {node: '>= 0.4.0'}
+ dev: true
+
+ /he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+ dev: true
+
/highlight.js@11.8.0:
resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==}
engines: {node: '>=12.0.0'}
@@ -1594,6 +1970,11 @@ packages:
resolve-from: 4.0.0
dev: true
+ /import-lazy@4.0.0:
+ resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
+ engines: {node: '>=8'}
+ dev: true
+
/imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@@ -1617,6 +1998,12 @@ packages:
binary-extensions: 2.2.0
dev: true
+ /is-core-module@2.13.0:
+ resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
+ dependencies:
+ has: 1.0.4
+ dev: true
+
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -1652,6 +2039,10 @@ packages:
supports-color: 8.1.1
dev: true
+ /jju@1.4.0:
+ resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
+ dev: true
+
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
@@ -1675,11 +2066,21 @@ packages:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
dev: true
+ /jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: true
+
/klona@2.0.6:
resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
engines: {node: '>= 8'}
dev: true
+ /kolorist@1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ dev: true
+
/levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -1706,6 +2107,14 @@ packages:
p-locate: 5.0.0
dev: true
+ /lodash.get@4.4.2:
+ resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
+ dev: true
+
+ /lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
+ dev: true
+
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
@@ -1758,6 +2167,19 @@ packages:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
dev: true
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
/mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
@@ -1776,6 +2198,13 @@ packages:
brace-expansion: 1.1.11
dev: true
+ /minimatch@9.0.3:
+ resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
/minisearch@6.1.0:
resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==}
dev: true
@@ -1784,6 +2213,10 @@ packages:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
+ /muggle-string@0.3.1:
+ resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
+ dev: true
+
/nanoid@3.3.6:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -1866,6 +2299,15 @@ packages:
engines: {node: '>=8'}
dev: true
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@@ -1955,6 +2397,22 @@ packages:
engines: {node: '>=4'}
dev: true
+ /resolve@1.19.0:
+ resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==}
+ dependencies:
+ is-core-module: 2.13.0
+ path-parse: 1.0.7
+ dev: true
+
+ /resolve@1.22.6:
+ resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
/reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -1967,6 +2425,15 @@ packages:
glob: 7.2.3
dev: true
+ /rollup-plugin-node-externals@6.1.2(rollup@3.23.0):
+ resolution: {integrity: sha512-2TWan0u0/zHcgPrKpIPgKSY8OMqwDAYD380I0hxx7iUQw8mrN34DWwG9sQUMEo5Yy4xd6/5QEAySYgiKN9fdBQ==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ rollup: ^3.0.0 || ^4.0.0
+ dependencies:
+ rollup: 3.23.0
+ dev: true
+
/rollup@2.79.1:
resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
engines: {node: '>=10.0.0'}
@@ -2045,6 +2512,14 @@ packages:
lru-cache: 6.0.0
dev: true
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
/serialize-javascript@6.0.1:
resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
dependencies:
@@ -2072,6 +2547,11 @@ packages:
vscode-textmate: 8.0.0
dev: true
+ /slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
@@ -2088,6 +2568,15 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
+ /string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+ dev: true
+
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -2114,6 +2603,11 @@ packages:
has-flag: 4.0.0
dev: true
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
/svgo@3.0.2:
resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
engines: {node: '>=14.0.0'}
@@ -2186,6 +2680,15 @@ packages:
is-number: 7.0.0
dev: true
+ /ts-api-utils@1.0.3(typescript@5.2.2):
+ resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
+ engines: {node: '>=16.13.0'}
+ peerDependencies:
+ typescript: '>=4.2.0'
+ dependencies:
+ typescript: 5.2.2
+ dev: true
+
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -2198,10 +2701,27 @@ packages:
engines: {node: '>=10'}
dev: true
+ /typescript@5.0.4:
+ resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
+ engines: {node: '>=12.20'}
+ hasBin: true
+ dev: true
+
+ /typescript@5.2.2:
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+ dev: true
+
/uc.micro@1.0.6:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
dev: false
+ /universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+ dev: true
+
/update-browserslist-db@1.0.11(browserslist@4.21.6):
resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
hasBin: true
@@ -2223,6 +2743,35 @@ packages:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
+ /validator@13.11.0:
+ resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /vite-plugin-dts@3.6.0(rollup@3.23.0)(typescript@5.2.2)(vite@4.3.9):
+ resolution: {integrity: sha512-doxhDRFJCZD2sGjIp4V800nm8Y19GvmwckjG5vYPuiqJ7OBjc9NlW1Vp9Gkyh2aXlUs1jTDRH/lxWfcsPLOQHg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ vite: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ '@microsoft/api-extractor': 7.38.0
+ '@rollup/pluginutils': 5.0.5(rollup@3.23.0)
+ '@vue/language-core': 1.8.16(typescript@5.2.2)
+ debug: 4.3.4
+ kolorist: 1.8.0
+ typescript: 5.2.2
+ vite: 4.3.9(sass@1.62.1)
+ vue-tsc: 1.8.16(typescript@5.2.2)
+ transitivePeerDependencies:
+ - '@types/node'
+ - rollup
+ - supports-color
+ dev: true
+
/vite-plugin-eslint@1.8.1(eslint@8.41.0)(vite@4.3.9):
resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==}
peerDependencies:
@@ -2364,7 +2913,7 @@ packages:
espree: 9.5.2
esquery: 1.5.0
lodash: 4.17.21
- semver: 7.5.1
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -2394,6 +2943,25 @@ packages:
vue: 3.3.4
dev: false
+ /vue-template-compiler@2.7.14:
+ resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+ dev: true
+
+ /vue-tsc@1.8.16(typescript@5.2.2):
+ resolution: {integrity: sha512-PT2xOJNl2qkmmp8eHf4qapfzvcRTQLxQQhQAzY7sMjv0JKsud9vo+aotklh/VzM9ZfaSo1UlDGZy6zSSRc+8wA==}
+ hasBin: true
+ peerDependencies:
+ typescript: '*'
+ dependencies:
+ '@vue/language-core': 1.8.16(typescript@5.2.2)
+ '@vue/typescript': 1.8.16(typescript@5.2.2)
+ semver: 7.5.4
+ typescript: 5.2.2
+ dev: true
+
/vue@3.3.4:
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
dependencies:
@@ -2495,3 +3063,15 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
+
+ /z-schema@5.0.5:
+ resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
+ engines: {node: '>=8.0.0'}
+ hasBin: true
+ dependencies:
+ lodash.get: 4.4.2
+ lodash.isequal: 4.5.0
+ validator: 13.11.0
+ optionalDependencies:
+ commander: 9.5.0
+ dev: true
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 000000000..517d8284e
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,26 @@
+{
+ "compilerOptions": {
+ "target": "ES2022",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "preserve",
+ "allowJs": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["lib/**/*.js", "lib/**/*.ts", "lib/**/*.d.ts", "lib/**/*.tsx", "lib/**/*.vue"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/tsconfig.node.json b/tsconfig.node.json
new file mode 100644
index 000000000..42872c59f
--- /dev/null
+++ b/tsconfig.node.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "skipLibCheck": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/vite.config.js b/vite.config.ts
similarity index 74%
rename from vite.config.js
rename to vite.config.ts
index 52e06c2f4..8359a1abb 100644
--- a/vite.config.js
+++ b/vite.config.ts
@@ -3,24 +3,21 @@ import { defineConfig } from 'vite'
import svgLoader from 'vite-svg-loader'
import eslintPlugin from 'vite-plugin-eslint'
import vue from '@vitejs/plugin-vue'
+import dts from 'vite-plugin-dts'
+import nodeExternals from 'rollup-plugin-node-externals'
export default defineConfig({
build: {
+ minify: false,
lib: {
- entry: resolve(__dirname, 'lib/index.js'),
+ entry: resolve(__dirname, 'lib/index.ts'),
name: 'Omorphia',
fileName: 'omorphia',
- },
- rollupOptions: {
- external: ['vue'],
- output: {
- globals: {
- vue: 'Vue',
- },
- },
+ formats: ['es', 'cjs'],
},
},
plugins: [
+ { enforce: 'pre', ...nodeExternals() },
vue(),
svgLoader({
svgoConfig: {
@@ -37,6 +34,7 @@ export default defineConfig({
},
}),
eslintPlugin(),
+ dts(),
],
resolve: {
alias: {