diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..6617ed2 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,26 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + root: true, + 'extends': [ + 'plugin:vue/vue3-essential', + 'eslint:recommended', + '@vue/eslint-config-typescript', + '@vue/eslint-config-prettier/skip-formatting' + ], + overrides: [ + { + files: [ + 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}', + 'cypress/support/**/*.{js,ts,jsx,tsx}' + ], + 'extends': [ + 'plugin:cypress/recommended' + ] + } + ], + parserOptions: { + ecmaVersion: 'latest' + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d74b9e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo + +nuntia +wwwroot + diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..66e2335 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "tabWidth": 2, + "singleQuote": true, + "printWidth": 100, + "trailingComma": "none" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e7656c5 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# StructorVerborum + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Type Support for `.vue` Imports in TS + +TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +npm run build +``` + +### Run Unit Tests with [Vitest](https://vitest.dev/) + +```sh +npm run test:unit +``` + +### Run End-to-End Tests with [Cypress](https://www.cypress.io/) + +```sh +npm run test:e2e:dev +``` + +This runs the end-to-end tests against the Vite development server. +It is much faster than the production build. + +But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments): + +```sh +npm run build +npm run test:e2e +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +npm run lint +``` diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 0000000..0f66080 --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'cypress' + +export default defineConfig({ + e2e: { + specPattern: 'cypress/e2e/**/*.{cy,spec}.{js,jsx,ts,tsx}', + baseUrl: 'http://localhost:4173' + } +}) diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e3b40c4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9381 @@ +{ + "name": "structorverborum", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "structorverborum", + "version": "0.0.0", + "dependencies": { + "@neoncitylights/sets": "^1.1.0", + "@types/deep-equal": "^1.0.4", + "@types/file-fetch": "^1.6.6", + "@types/js-roman-numerals": "^1.1.3", + "comma-separated-values": "^3.6.4", + "list-files-in-dir": "^0.1.5", + "new-tab-opener": "^1.0.2", + "pinia": "^2.1.7", + "pleasejs": "^0.4.2", + "tslib": "^2.6.3", + "turbo-ts": "^7.3.1", + "vue": "^3.4.21", + "vuetify": "^3.6.9", + "winston": "^3.13.0", + "winston-daily-rotate-file": "^5.0.0" + }, + "devDependencies": { + "@eslint-types/prettier": "^5.1.3", + "@rushstack/eslint-patch": "^1.8.0", + "@tsconfig/node20": "^20.1.4", + "@types/jsdom": "^21.1.6", + "@types/node": "^20.12.5", + "@types/pleasejs": "^0.0.33", + "@vitejs/plugin-vue": "^5.0.4", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "^2.4.5", + "@vue/tsconfig": "^0.5.1", + "@vueuse/core": "^10.11.0", + "codeql-agent": "^0.3.4", + "cypress": "^13.7.2", + "eslint": "^8.57.0", + "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-vue": "^9.23.0", + "jsdom": "^24.0.0", + "npm-run-all2": "^6.1.2", + "prettier": "^3.3.2", + "start-server-and-test": "^2.0.3", + "tsconfig-paths": "^4.2.0", + "typescript": "~5.4.0", + "typescript-cookie": "^1.0.6", + "vite": "^5.2.8", + "vite-plugin-vue-devtools": "^7.0.25", + "vitest": "^1.4.0", + "vue-tsc": "^2.0.11" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@discordjs/builders": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.16.0.tgz", + "integrity": "sha512-9/NCiZrLivgRub2/kBc0Vm5pMBE5AUdYbdXsLu/yg9ANgvnaJ0bZKTY8yYnLbsEc/LYUP79lEIdC73qEYhWq7A==", + "deprecated": "no longer supported", + "dev": true, + "dependencies": { + "@sapphire/shapeshift": "^3.5.1", + "discord-api-types": "^0.36.2", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/collection": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", + "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==", + "deprecated": "no longer supported", + "dev": true, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.5.0.tgz", + "integrity": "sha512-S4E1YNz1UxgUfMPpMeqzPPkCfXE877zOsvKM5WEmwIhcpz1PQV7lzqlEOuz194UuwOJLLjQFBgQELnQfCX9UfA==", + "deprecated": "no longer supported", + "dev": true, + "dependencies": { + "@discordjs/collection": "^0.7.0", + "@sapphire/async-queue": "^1.3.1", + "@sapphire/snowflake": "^3.2.2", + "discord-api-types": "^0.33.3", + "tslib": "^2.4.0", + "undici": "^5.4.0" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest/node_modules/discord-api-types": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", + "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==", + "dev": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint-types/prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@eslint-types/prettier/-/prettier-5.1.3.tgz", + "integrity": "sha512-jJHwCAdqj+iw2ahrFrA9FSDrYJSAEShWS6s/X/6fmD8xpdaKUpFqG/ecTnUlO6Iyxhkt3lj79Nfu4MWUpo7k6Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@neoncitylights/sets": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@neoncitylights/sets/-/sets-1.1.0.tgz", + "integrity": "sha512-Ou3bLvERC/sICRVrdFO63UrJPV081Nt5l36+gPLOgi1VHsuMG0IMZmGT9qFPsCV41V5qGuxIT+eNETM1Xynpbg==", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/neoncitylights" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", + "dev": true + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.2.tgz", + "integrity": "sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==", + "dev": true, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz", + "integrity": "sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v16" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz", + "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==", + "dev": true, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true + }, + "node_modules/@types/deep-equal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.4.tgz", + "integrity": "sha512-tqdiS4otQP4KmY0PR3u6KbZ5EWvhNdUoS/jc93UuK23C220lOZ/9TvjfxdPcKvqwwDVtmtSCrnr0p/2dirAxkA==" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/file-fetch": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@types/file-fetch/-/file-fetch-1.6.6.tgz", + "integrity": "sha512-DvVqgVRx5+Fcy9VfOA0+bNuDSmcyN9ahN3Wms83szdqYQeDQIerTxdaoVo4Ghnnm1kdUsYRVy23LMfzhkOuIZA==", + "dependencies": { + "@types/node-fetch": "*" + } + }, + "node_modules/@types/js-roman-numerals": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/js-roman-numerals/-/js-roman-numerals-1.1.3.tgz", + "integrity": "sha512-iF/pPujpCHRkREdqpJuuexzzVh1pRzc/yUg/3cQ5dMF+aSSJscpm3EzZUoY7f+LFB1ImCS0BiQAUoWUhaU4AzQ==" + }, + "node_modules/@types/jsdom": { + "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/pleasejs": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/pleasejs/-/pleasejs-0.0.33.tgz", + "integrity": "sha512-KWyfyYQlx65ixvFW8LdkQxxEY5zbpQeGwcEixWG4O1e/5CRJ5XsEkQYooK3perQPGiE2qR67ZIECduQ1EPzbbw==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz", + "integrity": "sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.13.0", + "@typescript-eslint/type-utils": "7.13.0", + "@typescript-eslint/utils": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.0.tgz", + "integrity": "sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.13.0", + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/typescript-estree": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz", + "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz", + "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.13.0", + "@typescript-eslint/utils": "7.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", + "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz", + "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/visitor-keys": "7.13.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz", + "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.13.0", + "@typescript-eslint/types": "7.13.0", + "@typescript-eslint/typescript-estree": "7.13.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz", + "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", + "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.0.tgz", + "integrity": "sha512-pvhL24WUh3VDnv7Yw5N1sjhPtdx7q9g+Wl3tggmnkMcyK8GcCNElF2zHiKznryn0DiUGk+eez/p2qQhz+puuHw==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.3.0" + } + }, + "node_modules/@volar/source-map": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.0.tgz", + "integrity": "sha512-G/228aZjAOGhDjhlyZ++nDbKrS9uk+5DMaEstjvzglaAw7nqtDyhnQAsYzUg6BMP9BtwZ59RIw5HGePrutn00Q==", + "dev": true, + "dependencies": { + "muggle-string": "^0.4.0" + } + }, + "node_modules/@volar/typescript": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.0.tgz", + "integrity": "sha512-PtUwMM87WsKVeLJN33GSTUjBexlKfKgouWlOUIv7pjrOnTwhXHZNSmpc312xgXdTjQPpToK6KXSIcKu9sBQ5LQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.3.0", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", + "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.29", + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" + }, + "node_modules/@vue/devtools-core": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.3.0.tgz", + "integrity": "sha512-J5nmaYadJvDgH9zsQI9vSLlWjfZn/TdKWEKMcc9xjbF3OvdhQwRrojvFax1G+WPoQ/X67EZKeUVY/ovCCyLo7A==", + "dev": true, + "dependencies": { + "@vue/devtools-kit": "^7.3.0", + "@vue/devtools-shared": "^7.3.0", + "mitt": "^3.0.1", + "nanoid": "^3.3.4", + "pathe": "^1.1.2", + "vite-hot-client": "^0.2.3" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.0.tgz", + "integrity": "sha512-J9C+ue3Ka8cumQY/hMsNTcbb1tczqVBBXFMw4isa5YvPjyIBgEtJBfDSUVIK3nE+YWk7UNliUuCcE1GHEKaGcw==", + "dev": true, + "dependencies": { + "@vue/devtools-shared": "^7.3.0", + "birpc": "^0.2.17", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.0.tgz", + "integrity": "sha512-bYw4BtZclxzVrYBeYYHzNOcLlvVZbe9tutwtrixTtdgynHvuSJa5KI2MqWiumpGYm2feFI5sHlC8Vt61v4z18g==", + "dev": true, + "dependencies": { + "rfdc": "^1.3.1" + } + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz", + "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", + "vue-eslint-parser": "^9.3.1" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": ">=4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.21.tgz", + "integrity": "sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.3.0-alpha.15", + "@vue/compiler-dom": "^3.4.0", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==", + "dev": true, + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" + } + }, + "node_modules/@vue/tsconfig": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz", + "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", + "dev": true + }, + "node_modules/@vueuse/core": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", + "dev": true, + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "dev": true, + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", + "dev": true + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.17.tgz", + "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001636", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clear": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz", + "integrity": "sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codeql-agent": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/codeql-agent/-/codeql-agent-0.3.4.tgz", + "integrity": "sha512-xmuXn6JjCb1g3OtvzOGLE+4VZDkDAcF5Lk6oPyGy/Q0XCqzmlTeBhboRMOmFZEAjXeFt0q56Z7gNN4ygjxtz7g==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "clear": "^0.1.0", + "commander": "^10.0.0", + "figlet": "^1.5.2", + "linguist-js": "^2.5.4", + "p-limit": "^3.1.0", + "path": "^0.12.7", + "which": "^3.0.0", + "winston": "^3.8.2", + "winston-daily-rotate-file": "^4.7.1", + "winston-transport-discord": "^1.0.3" + }, + "bin": { + "codeql-agent": "cli.js" + } + }, + "node_modules/codeql-agent/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/codeql-agent/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/codeql-agent/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/codeql-agent/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/codeql-agent/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/codeql-agent/node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/codeql-agent/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/codeql-agent/node_modules/winston-daily-rotate-file": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz", + "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==", + "dev": true, + "dependencies": { + "file-stream-rotator": "^0.6.1", + "object-hash": "^2.0.1", + "triple-beam": "^1.3.0", + "winston-transport": "^4.4.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "winston": "^3" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-values": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/comma-separated-values/-/comma-separated-values-3.6.4.tgz", + "integrity": "sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ==" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/cypress": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.11.0.tgz", + "integrity": "sha512-NXXogbAxVlVje4XHX+Cx5eMFZv4Dho/2rIcdBHg9CNPFUGZdM4cRdgIgM7USmNYsC12XY0bZENEQ+KBk72fl+A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cypress/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==", + "dev": true + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discord-api-types": { + "version": "0.36.3", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.3.tgz", + "integrity": "sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==", + "dev": true + }, + "node_modules/discord.js": { + "version": "13.17.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.17.1.tgz", + "integrity": "sha512-h13kUf+7ZaP5ZWggzooCxFutvJJvugcAO54oTEIdVr3zQWi0Sf/61S1kETtuY9nVAyYebXR/Ey4C+oWbsgEkew==", + "dev": true, + "dependencies": { + "@discordjs/builders": "^0.16.0", + "@discordjs/collection": "^0.7.0", + "@sapphire/async-queue": "^1.5.0", + "@types/node-fetch": "^2.6.3", + "@types/ws": "^8.5.4", + "discord-api-types": "^0.33.5", + "form-data": "^4.0.0", + "node-fetch": "^2.6.7", + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/discord-api-types": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz", + "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/editorconfig/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.803", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", + "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.4.tgz", + "integrity": "sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-cypress": { + "version": "2.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz", + "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==", + "dev": true, + "dependencies": { + "globals": "^13.20.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-cypress/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz", + "integrity": "sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.2", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/figlet": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==", + "dev": true, + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-stream-rotator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz", + "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==", + "dependencies": { + "moment": "^2.29.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/joi": { + "version": "17.13.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", + "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-beautify": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz", + "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.3.3", + "js-cookie": "^3.0.5", + "nopt": "^7.2.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsdom": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz", + "integrity": "sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==", + "dev": true, + "dependencies": { + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.10", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.4", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.17.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linguist-js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/linguist-js/-/linguist-js-2.7.1.tgz", + "integrity": "sha512-MlkT7rcRxpDYV+JAG0jFPOrSKaygAzQ8kNT1mI9kYECSs2jU3CKmpqdQdEv/sumL8CxtA4DYYe/yLS852i1Elg==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.2.0 <3", + "commander": "^9.5.0 <10", + "common-path-prefix": "^3.0.0", + "cross-fetch": "^3.1.8 <4", + "ignore": "^5.3.1", + "isbinaryfile": "^4.0.10 <5", + "js-yaml": "^4.1.0", + "node-cache": "^5.1.2" + }, + "bin": { + "linguist": "bin/index.js", + "linguist-js": "bin/index.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/linguist-js/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/list-files-in-dir": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/list-files-in-dir/-/list-files-in-dir-0.1.5.tgz", + "integrity": "sha512-DRSxn9ckPWIDnEvw5TJZGnqq2WjP+FTwdcFolRV6dTr0d2k6C0r++QnUJg+FBtLoQhzlCs+IqfXYf+HlbFtIBA==", + "dependencies": { + "@types/node": "^10.0.0" + } + }, + "node_modules/list-files-in-dir/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/listr2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/new-tab-opener": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/new-tab-opener/-/new-tab-opener-1.0.2.tgz", + "integrity": "sha512-hMKU1n8HuauAaqdH3JW1WPXCEPxfCIEGEWoChR2A9So1GO+CjGOMEhTHcsFpOxH3pqzHdRY/+9VnY4qnWQYQZw==", + "dependencies": { + "detect-browser": "5.3.0" + } + }, + "node_modules/node-cache": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", + "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "dev": true, + "dependencies": { + "clone": "2.x" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-all2": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.0.tgz", + "integrity": "sha512-wA7yVIkthe6qJBfiJ2g6aweaaRlw72itsFGF6HuwCHKwtwAx/4BY1vVpk6bw6lS8RLMsexoasOkd0aYOmsFG7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.3", + "memorystream": "^0.3.1", + "minimatch": "^9.0.0", + "pidtree": "^0.6.0", + "read-package-json-fast": "^3.0.2", + "shell-quote": "^1.7.3" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "npm-run-all2": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0", + "npm": ">= 8" + } + }, + "node_modules/npm-run-all2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dev": true, + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", + "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/pleasejs": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/pleasejs/-/pleasejs-0.4.2.tgz", + "integrity": "sha512-nHsHKvdOiKgFrYXp3bBIHpiSLf723Ra36HRI1Y7shY5utkTmvlRzZCnDtFUbiAWCIIZN6hHm+ximnyOJgeGwXA==" + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "dependencies": { + "event-stream": "=3.3.4" + }, + "bin": { + "ps-tree": "bin/ps-tree.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/start-server-and-test": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.4.tgz", + "integrity": "sha512-CKNeBTcP0hVqIlNismHMudb9q3lLdAjcVPO13/7gfI66fcJpeIb/o4NzQd1JK/CD+lfWVqr10ZH9Y14+OwlJuw==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "bluebird": "3.7.2", + "check-more-types": "2.24.0", + "debug": "4.3.5", + "execa": "5.1.1", + "lazy-ass": "1.6.0", + "ps-tree": "1.2.0", + "wait-on": "7.2.0" + }, + "bin": { + "server-test": "src/bin/start.js", + "start-server-and-test": "src/bin/start.js", + "start-test": "src/bin/start.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/start-server-and-test/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/start-server-and-test/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/start-server-and-test/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dev": true, + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + }, + "node_modules/superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", + "dev": true, + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", + "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/turbo-ts": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/turbo-ts/-/turbo-ts-7.3.1.tgz", + "integrity": "sha512-7juyj7A3jYv1/h/G55SMU8ohNcqggjeY8bXUpd9aaNgPzc1ms1wsziYXqUNNuDuwk3wOReEd+xO7EPDqoW3aRQ==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-cookie": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typescript-cookie/-/typescript-cookie-1.0.6.tgz", + "integrity": "sha512-s+BZr7/9BUG6Kg7jGGcOY/4XJcP+iZRFdF3q4FPTfRSP83ivLWF94OcH8PrzGmnS8Ab9qP7ENu/ikLwNFsIafA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vite": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-0.2.3.tgz", + "integrity": "sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.4.tgz", + "integrity": "sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.7", + "@rollup/pluginutils": "^5.1.0", + "debug": "^4.3.4", + "error-stack-parser-es": "^0.1.1", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.0.0", + "sirv": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.3.0.tgz", + "integrity": "sha512-XnxQzTloGkQUTpsRdWVsEBzyh9F6i8NBmuPo8lotx4lSUnWYJ+jUlXvfftzmOf14hFgsTOySLJCr9nhaqOzgOA==", + "dev": true, + "dependencies": { + "@vue/devtools-core": "^7.3.0", + "@vue/devtools-kit": "^7.3.0", + "@vue/devtools-shared": "^7.3.0", + "execa": "^8.0.1", + "sirv": "^2.0.4", + "vite-plugin-inspect": "^0.8.4", + "vite-plugin-vue-inspector": "^5.1.2" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.1.2.tgz", + "integrity": "sha512-M+yH2LlQtVNzJAljQM+61CqDXBvHim8dU5ImGaQuwlo13tMDHue5D7IC20YwDJuWDODiYc/cZBUYspVlyPf2vQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-type-helpers": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.0.21.tgz", + "integrity": "sha512-3NaicyZ7N4B6cft4bfb7dOnPbE9CjLcx+6wZWAg5zwszfO4qXRh+U52dN5r5ZZfc6iMaxKCEcoH9CmxxoFZHLg==", + "dev": true + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.21.tgz", + "integrity": "sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==", + "dev": true, + "dependencies": { + "@volar/typescript": "~2.3.0-alpha.15", + "@vue/language-core": "2.0.21", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vuetify": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.6.9.tgz", + "integrity": "sha512-LVIZL0OCwzg3Aw2F8nT1rK/renpTPOcDEPe5E002Vj+VjXwsCNqwwxNteGfrcNlp0vgIJ8WusMvaxp69UJ3NJg==", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": ">=1.0.0", + "vue": "^3.3.0", + "vue-i18n": "^9.0.0", + "webpack-plugin-vuetify": ">=2.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/wait-on": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "dev": true, + "dependencies": { + "axios": "^1.6.1", + "joi": "^17.11.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dev": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz", + "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-daily-rotate-file": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-5.0.0.tgz", + "integrity": "sha512-JDjiXXkM5qvwY06733vf09I2wnMXpZEhxEVOSPenZMii+g7pcDcTBt2MRugnoi8BwVSuCT2jfRXBUy+n1Zz/Yw==", + "dependencies": { + "file-stream-rotator": "^0.6.1", + "object-hash": "^3.0.0", + "triple-beam": "^1.4.1", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "winston": "^3" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport-discord": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/winston-transport-discord/-/winston-transport-discord-1.0.3.tgz", + "integrity": "sha512-pKF3Sie6haNk+MjyF60nkex1AdskJ6Ep2Oxym1oh1Te1Vgs162qoVg91W9Tb4doHivYBmPJZ90z7gHXarRxd2A==", + "dev": true, + "dependencies": { + "@discordjs/rest": "^0.5.0", + "discord-api-types": "^0.36.1", + "discord.js": "^13.8.1", + "triple-beam": "^1.3.0", + "tslib": "^2.4.0", + "winston-transport": "^4.5.0" + } + }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c96e005 --- /dev/null +++ b/package.json @@ -0,0 +1,66 @@ +{ + "name": "structorverborum", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "test:unit": "vitest", + "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'", + "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'", + "build-only": "vite build", + "type-check": "vue-tsc --build --force", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "format": "prettier --write src/" + }, + "dependencies": { + "@neoncitylights/sets": "^1.1.0", + "@types/deep-equal": "^1.0.4", + "@types/file-fetch": "^1.6.6", + "@types/js-roman-numerals": "^1.1.3", + "comma-separated-values": "^3.6.4", + "list-files-in-dir": "^0.1.5", + "new-tab-opener": "^1.0.2", + "pinia": "^2.1.7", + "pleasejs": "^0.4.2", + "tslib": "^2.6.3", + "turbo-ts": "^7.3.1", + "vue": "^3.4.21", + "vuetify": "^3.6.9", + "winston": "^3.13.0", + "winston-daily-rotate-file": "^5.0.0" + }, + "devDependencies": { + "@eslint-types/prettier": "^5.1.3", + "@rushstack/eslint-patch": "^1.8.0", + "@tsconfig/node20": "^20.1.4", + "@types/jsdom": "^21.1.6", + "@types/node": "^20.12.5", + "@types/pleasejs": "^0.0.33", + "@vitejs/plugin-vue": "^5.0.4", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "^2.4.5", + "@vue/tsconfig": "^0.5.1", + "@vueuse/core": "^10.11.0", + "codeql-agent": "^0.3.4", + "cypress": "^13.7.2", + "eslint": "^8.57.0", + "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-vue": "^9.23.0", + "jsdom": "^24.0.0", + "npm-run-all2": "^6.1.2", + "prettier": "^3.3.2", + "start-server-and-test": "^2.0.3", + "tsconfig-paths": "^4.2.0", + "typescript": "~5.4.0", + "typescript-cookie": "^1.0.6", + "vite": "^5.2.8", + "vite-plugin-vue-devtools": "^7.0.25", + "vitest": "^1.4.0", + "vue-tsc": "^2.0.11" + } +} diff --git "a/res/lemmae/actus/adip\304\253sc\304\253.csv" "b/res/lemmae/actus/adip\304\253sc\304\253.csv" new file mode 100644 index 0000000..54b397a --- /dev/null +++ "b/res/lemmae/actus/adip\304\253sc\304\253.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +adipīscī,,adeptus,terti//deponens diff --git "a/res/lemmae/actus/am\304\201re.csv" "b/res/lemmae/actus/am\304\201re.csv" new file mode 100644 index 0000000..16cbf3a --- /dev/null +++ "b/res/lemmae/actus/am\304\201re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +amāre,amāvisse,amātum,prima diff --git "a/res/lemmae/actus/c\304\223ns\304\223re.csv" "b/res/lemmae/actus/c\304\223ns\304\223re.csv" new file mode 100644 index 0000000..0e0ae8b --- /dev/null +++ "b/res/lemmae/actus/c\304\223ns\304\223re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +cēnsēre,cēnsēvisse,cēnsētum,secunda diff --git "a/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" "b/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" new file mode 100644 index 0000000..7a15613 --- /dev/null +++ "b/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +cōnsectārī,,cōnsectātum,prima//deponens diff --git "a/res/lemmae/actus/d\304\223l\304\223re.csv" "b/res/lemmae/actus/d\304\223l\304\223re.csv" new file mode 100644 index 0000000..dc887af --- /dev/null +++ "b/res/lemmae/actus/d\304\223l\304\223re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +dēlēre,dēlēvisse,dēlētum,secunda diff --git a/res/lemmae/actus/incidere.csv b/res/lemmae/actus/incidere.csv new file mode 100644 index 0000000..ba004f7 --- /dev/null +++ b/res/lemmae/actus/incidere.csv @@ -0,0 +1,2 @@ +infinitivus,perfectus,supinus,versio +incidere,incidisse,incāsum,tertius/semideponens diff --git "a/res/lemmae/actus/plac\304\223re.csv" "b/res/lemmae/actus/plac\304\223re.csv" new file mode 100644 index 0000000..676a48f --- /dev/null +++ "b/res/lemmae/actus/plac\304\223re.csv" @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +placēre,placuisse,placitum,secunda diff --git a/res/lemmae/actus/quaerere.csv b/res/lemmae/actus/quaerere.csv new file mode 100644 index 0000000..93feb05 --- /dev/null +++ b/res/lemmae/actus/quaerere.csv @@ -0,0 +1,2 @@ +infinitivus,perfectum,supinum,versio +quaerere,quaesīvisse,quaesītum,tertia diff --git "a/res/lemmae/adiectiva/Lat\304\253num.csv" "b/res/lemmae/adiectiva/Lat\304\253num.csv" new file mode 100644 index 0000000..9fa9530 --- /dev/null +++ "b/res/lemmae/adiectiva/Lat\304\253num.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +Latīnum,Latīnius,Latīnissimum,positivusAutPrimusAutSecundus diff --git a/res/lemmae/adiectiva/bonum.csv b/res/lemmae/adiectiva/bonum.csv new file mode 100644 index 0000000..dbbb34a --- /dev/null +++ b/res/lemmae/adiectiva/bonum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +bonum,melius,optimum,positivusAutPrimusAutSecundus diff --git a/res/lemmae/adiectiva/centum.csv b/res/lemmae/adiectiva/centum.csv new file mode 100644 index 0000000..8d42c92 --- /dev/null +++ b/res/lemmae/adiectiva/centum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +centum,,indeclinabilis diff --git a/res/lemmae/adiectiva/decem.csv b/res/lemmae/adiectiva/decem.csv new file mode 100644 index 0000000..aa082ce --- /dev/null +++ b/res/lemmae/adiectiva/decem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +decem,,indeclinabilis diff --git a/res/lemmae/adiectiva/duodecim.csv b/res/lemmae/adiectiva/duodecim.csv new file mode 100644 index 0000000..a530fc1 --- /dev/null +++ b/res/lemmae/adiectiva/duodecim.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" new file mode 100644 index 0000000..fa9be15 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēnōnāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" new file mode 100644 index 0000000..074b53d --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēoctōgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" new file mode 100644 index 0000000..a08f10b --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēquadrāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" new file mode 100644 index 0000000..b82c9b5 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēquīnquāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" new file mode 100644 index 0000000..a139f12 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēseptuāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" new file mode 100644 index 0000000..2673793 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēsexāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" new file mode 100644 index 0000000..7a33fcf --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodētrīgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" new file mode 100644 index 0000000..a9e03e6 --- /dev/null +++ "b/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +duodēvīgintī,,indeclinabilis diff --git a/res/lemmae/adiectiva/incomparabilia/alterum.csv b/res/lemmae/adiectiva/incomparabilia/alterum.csv new file mode 100644 index 0000000..d1aebfe --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/alterum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +alterum,alterī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/centuplex.csv b/res/lemmae/adiectiva/incomparabilia/centuplex.csv new file mode 100644 index 0000000..0aecc9c --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/centuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +centuplex,centuplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" "b/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" new file mode 100644 index 0000000..b771a41 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +centūplum,centūplī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/decemplex.csv b/res/lemmae/adiectiva/incomparabilia/decemplex.csv new file mode 100644 index 0000000..9693720 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/decemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decemplex,decemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/decimplex.csv b/res/lemmae/adiectiva/incomparabilia/decimplex.csv new file mode 100644 index 0000000..a2caa20 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/decimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decimplex,decimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/decuplex.csv b/res/lemmae/adiectiva/incomparabilia/decuplex.csv new file mode 100644 index 0000000..c501ead --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/decuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decuplex,decuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/ducenta.csv b/res/lemmae/adiectiva/incomparabilia/ducenta.csv new file mode 100644 index 0000000..9f33aa6 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/ducenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ducenta,ducentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv new file mode 100644 index 0000000..676383f --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecemplex,duodecemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv new file mode 100644 index 0000000..3cc964e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecemplum,duodecemplī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv new file mode 100644 index 0000000..b467b5d --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecimplex,duodecimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv new file mode 100644 index 0000000..91baf7c --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecimplum,duodecimplī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv new file mode 100644 index 0000000..a63be51 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecuplex,duodecuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv new file mode 100644 index 0000000..67d3d47 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodecuplum,duodecuplī,autPrimusAutSecundus diff --git "a/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" "b/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" new file mode 100644 index 0000000..b963c59 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duodēcentum,duodēcentī,autPrimusAutSecundus diff --git a/res/lemmae/adiectiva/incomparabilia/duplex.csv b/res/lemmae/adiectiva/incomparabilia/duplex.csv new file mode 100644 index 0000000..2964031 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/duplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +duplex,duplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/meum.csv b/res/lemmae/adiectiva/incomparabilia/meum.csv new file mode 100644 index 0000000..4be7ca3 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/meum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +meum,meī,autPrimusAutSecundus diff --git "a/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" "b/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" new file mode 100644 index 0000000..5cc97f6 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +milliō,milliōnis,tertius/nominativusDirectus/cumTruncoVario diff --git a/res/lemmae/adiectiva/incomparabilia/neutrum.csv b/res/lemmae/adiectiva/incomparabilia/neutrum.csv new file mode 100644 index 0000000..30fecfe --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/neutrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +neutrum,neutrī,pronominalis/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/noncuplex.csv b/res/lemmae/adiectiva/incomparabilia/noncuplex.csv new file mode 100644 index 0000000..17d7486 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/noncuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +noncuplex,noncuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/nostrum.csv b/res/lemmae/adiectiva/incomparabilia/nostrum.csv new file mode 100644 index 0000000..5d212da --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/nostrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nostrum,nostrī,autPrimusAutSecundus/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv b/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv new file mode 100644 index 0000000..5bfbf3e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +novemcuplex,novemcuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/novemplex.csv b/res/lemmae/adiectiva/incomparabilia/novemplex.csv new file mode 100644 index 0000000..e543195 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/novemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +novemplex,novemplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" new file mode 100644 index 0000000..dfe44bb --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nōngenta,nōngentōrum,autPrimusAutSecundus//pluralis diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" new file mode 100644 index 0000000..ab8650a --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nōnuplex,nōnuplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" new file mode 100644 index 0000000..b76e135 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nūllum,nūllī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/octingenta.csv b/res/lemmae/adiectiva/incomparabilia/octingenta.csv new file mode 100644 index 0000000..a0aa85d --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/octingenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +octingenta,octingentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/octuplex.csv b/res/lemmae/adiectiva/incomparabilia/octuplex.csv new file mode 100644 index 0000000..064522c --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/octuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +octuplex,octuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/quadruplex.csv b/res/lemmae/adiectiva/incomparabilia/quadruplex.csv new file mode 100644 index 0000000..ef4cc69 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/quadruplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quadruplex,quadruplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" new file mode 100644 index 0000000..7def27c --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīngenta,quīngentōrum,autPrimusAutSecundus//pluralis diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" new file mode 100644 index 0000000..29f9405 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīnquiplex,quīnquiplicis,tertia diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" new file mode 100644 index 0000000..0c1fcd1 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīntuplex,quīntuplex,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/seplex.csv b/res/lemmae/adiectiva/incomparabilia/seplex.csv new file mode 100644 index 0000000..36c7801 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/seplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +seplex,seplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/septemplex.csv b/res/lemmae/adiectiva/incomparabilia/septemplex.csv new file mode 100644 index 0000000..0f917c1 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/septemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septemplex,septemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/septimplex.csv b/res/lemmae/adiectiva/incomparabilia/septimplex.csv new file mode 100644 index 0000000..16f4012 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/septimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septimplex,septimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/septingenta.csv b/res/lemmae/adiectiva/incomparabilia/septingenta.csv new file mode 100644 index 0000000..0099a50 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/septingenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septingenta,septingentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/sescenta.csv b/res/lemmae/adiectiva/incomparabilia/sescenta.csv new file mode 100644 index 0000000..2c4136f --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sescenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sescenta,sescentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/sexcenta.csv b/res/lemmae/adiectiva/incomparabilia/sexcenta.csv new file mode 100644 index 0000000..ef3d247 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sexcenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sexcenta,sexcentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/sextuplex.csv b/res/lemmae/adiectiva/incomparabilia/sextuplex.csv new file mode 100644 index 0000000..1c9e9c7 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sextuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sextuplex,sextuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/sexuplex.csv b/res/lemmae/adiectiva/incomparabilia/sexuplex.csv new file mode 100644 index 0000000..8566bfd --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/sexuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sexuplex,sexuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/simplum.csv b/res/lemmae/adiectiva/incomparabilia/simplum.csv new file mode 100644 index 0000000..fe88418 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/simplum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +simplum,simplī,autPrimusAutSecundus/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/suum.csv b/res/lemmae/adiectiva/incomparabilia/suum.csv new file mode 100644 index 0000000..26c7329 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/suum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +suum,suī,autPrimusAutSecundus/cumLitteraR diff --git "a/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" "b/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" new file mode 100644 index 0000000..ab9fc4a --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sōlum,sōlī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv b/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv new file mode 100644 index 0000000..33be76d --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +terdecuplex,terdecuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/ternum.csv b/res/lemmae/adiectiva/incomparabilia/ternum.csv new file mode 100644 index 0000000..4a671af --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/ternum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ternum,ternī,autPrimusAutSecundus/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/trecenta.csv b/res/lemmae/adiectiva/incomparabilia/trecenta.csv new file mode 100644 index 0000000..08aae91 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/trecenta.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +trecenta,trecentōrum,autPrimusAutSecundus//pluralis diff --git a/res/lemmae/adiectiva/incomparabilia/triplex.csv b/res/lemmae/adiectiva/incomparabilia/triplex.csv new file mode 100644 index 0000000..fd2255e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/triplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +triplex,triplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/tuum.csv b/res/lemmae/adiectiva/incomparabilia/tuum.csv new file mode 100644 index 0000000..556ab4b --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/tuum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +tuum,tuī,autPrimusAutSecundus/cumLitteraR diff --git "a/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" "b/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" new file mode 100644 index 0000000..7bf9b26 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +tōtum,tōtī,pronominalis/nominativusDirectus diff --git a/res/lemmae/adiectiva/incomparabilia/ultrum.csv b/res/lemmae/adiectiva/incomparabilia/ultrum.csv new file mode 100644 index 0000000..2ce2242 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/ultrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ultrum,ultrī,pronominalis/cumLitteraR diff --git a/res/lemmae/adiectiva/incomparabilia/undecemplex.csv b/res/lemmae/adiectiva/incomparabilia/undecemplex.csv new file mode 100644 index 0000000..0f7473e --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/undecemplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +undecemplex,undecemplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/undecimplex.csv b/res/lemmae/adiectiva/incomparabilia/undecimplex.csv new file mode 100644 index 0000000..4d03368 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/undecimplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +undecimplex,undecimplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/undecuplex.csv b/res/lemmae/adiectiva/incomparabilia/undecuplex.csv new file mode 100644 index 0000000..3130c66 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/undecuplex.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +undecuplex,undecuplicis,tertia diff --git a/res/lemmae/adiectiva/incomparabilia/vestrum.csv b/res/lemmae/adiectiva/incomparabilia/vestrum.csv new file mode 100644 index 0000000..506eea8 --- /dev/null +++ b/res/lemmae/adiectiva/incomparabilia/vestrum.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vestrum,vestrī,autPrimusAutSecundus/cumLitteraR diff --git "a/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" "b/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" new file mode 100644 index 0000000..acc2391 --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūllum,ūllī,pronominalis/nominativusDirectus diff --git "a/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" "b/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" new file mode 100644 index 0000000..ce7514c --- /dev/null +++ "b/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūnum,ūnī,pronominalis diff --git a/res/lemmae/adiectiva/magnum.csv b/res/lemmae/adiectiva/magnum.csv new file mode 100644 index 0000000..44e8cee --- /dev/null +++ b/res/lemmae/adiectiva/magnum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +magnum,maius,maximum,positivusAutPrimusAutSecundus diff --git a/res/lemmae/adiectiva/novem.csv b/res/lemmae/adiectiva/novem.csv new file mode 100644 index 0000000..cf14ad5 --- /dev/null +++ b/res/lemmae/adiectiva/novem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +novem,,indeclinabilis diff --git "a/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" new file mode 100644 index 0000000..97a704c --- /dev/null +++ "b/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +nōnāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/oct\305\215.csv" "b/res/lemmae/adiectiva/oct\305\215.csv" new file mode 100644 index 0000000..e1c5ba8 --- /dev/null +++ "b/res/lemmae/adiectiva/oct\305\215.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +octō,,indeclinabilis diff --git "a/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" new file mode 100644 index 0000000..d948a17 --- /dev/null +++ "b/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +octōgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/quadrigenta.csv b/res/lemmae/adiectiva/quadrigenta.csv new file mode 100644 index 0000000..6992467 --- /dev/null +++ b/res/lemmae/adiectiva/quadrigenta.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quadrigenta,,indeclinabilis diff --git "a/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" new file mode 100644 index 0000000..739a4c1 --- /dev/null +++ "b/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quadrāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/quattuor.csv b/res/lemmae/adiectiva/quattuor.csv new file mode 100644 index 0000000..794d881 --- /dev/null +++ b/res/lemmae/adiectiva/quattuor.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quattuor,,indeclinabilis diff --git a/res/lemmae/adiectiva/quattuordecim.csv b/res/lemmae/adiectiva/quattuordecim.csv new file mode 100644 index 0000000..8bc93db --- /dev/null +++ b/res/lemmae/adiectiva/quattuordecim.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quattuordecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/qu\304\253ndecim.csv" "b/res/lemmae/adiectiva/qu\304\253ndecim.csv" new file mode 100644 index 0000000..04250c5 --- /dev/null +++ "b/res/lemmae/adiectiva/qu\304\253ndecim.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quīndecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/qu\304\253nque.csv" "b/res/lemmae/adiectiva/qu\304\253nque.csv" new file mode 100644 index 0000000..40d1734 --- /dev/null +++ "b/res/lemmae/adiectiva/qu\304\253nque.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quīnque,,indeclinabilis diff --git "a/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" new file mode 100644 index 0000000..d3cf384 --- /dev/null +++ "b/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +quīnquāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/septem.csv b/res/lemmae/adiectiva/septem.csv new file mode 100644 index 0000000..d36cb2f --- /dev/null +++ b/res/lemmae/adiectiva/septem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +septem,,indeclinabilis diff --git a/res/lemmae/adiectiva/septemdecem.csv b/res/lemmae/adiectiva/septemdecem.csv new file mode 100644 index 0000000..52a972a --- /dev/null +++ b/res/lemmae/adiectiva/septemdecem.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +septemdecem,,indeclinabilis diff --git "a/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" new file mode 100644 index 0000000..4c895b7 --- /dev/null +++ "b/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +septuāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/sex.csv b/res/lemmae/adiectiva/sex.csv new file mode 100644 index 0000000..72b30e3 --- /dev/null +++ b/res/lemmae/adiectiva/sex.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +sex,,indeclinabilis diff --git "a/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" new file mode 100644 index 0000000..c3d0802 --- /dev/null +++ "b/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +sexāgintā,,indeclinabilis diff --git a/res/lemmae/adiectiva/simplex.csv b/res/lemmae/adiectiva/simplex.csv new file mode 100644 index 0000000..fa0566e --- /dev/null +++ b/res/lemmae/adiectiva/simplex.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +simplex,simplicius,simplicissimus,postivusTertius diff --git "a/res/lemmae/adiectiva/s\304\223decim.csv" "b/res/lemmae/adiectiva/s\304\223decim.csv" new file mode 100644 index 0000000..7e8bcdc --- /dev/null +++ "b/res/lemmae/adiectiva/s\304\223decim.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +sēdecim,,indeclinabilis diff --git a/res/lemmae/adiectiva/trecentum.csv b/res/lemmae/adiectiva/trecentum.csv new file mode 100644 index 0000000..6823ef3 --- /dev/null +++ b/res/lemmae/adiectiva/trecentum.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +trecentum,,indeclinabilis diff --git a/res/lemmae/adiectiva/tredecim.csv b/res/lemmae/adiectiva/tredecim.csv new file mode 100644 index 0000000..1246c28 --- /dev/null +++ b/res/lemmae/adiectiva/tredecim.csv @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +tredecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" new file mode 100644 index 0000000..79646ab --- /dev/null +++ "b/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +trīgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/v\304\253gint\304\253.csv" new file mode 100644 index 0000000..a5bb9b0 --- /dev/null +++ "b/res/lemmae/adiectiva/v\304\253gint\304\253.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +vīgintī,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253ndecim.csv" "b/res/lemmae/adiectiva/\305\253ndecim.csv" new file mode 100644 index 0000000..01b16f8 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253ndecim.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndecim,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" new file mode 100644 index 0000000..a052768 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēcentum,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" new file mode 100644 index 0000000..27075c8 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēnōnāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" new file mode 100644 index 0000000..96e0e33 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēoctōgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" new file mode 100644 index 0000000..241518b --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēquadrāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" new file mode 100644 index 0000000..9b608b5 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēquīnquāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" new file mode 100644 index 0000000..3e6c10e --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēsexāgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" new file mode 100644 index 0000000..d485a44 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndētrīgintā,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" new file mode 100644 index 0000000..a4327f0 --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūndēvīgintī,,indeclinabilis diff --git "a/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" new file mode 100644 index 0000000..854be3b --- /dev/null +++ "b/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" @@ -0,0 +1,2 @@ +postivus,comparativus,superlativus,versio +ūnseptuāgintā,,indeclinabilis diff --git a/res/lemmae/adverbia/bis.csv b/res/lemmae/adverbia/bis.csv new file mode 100644 index 0000000..563e130 --- /dev/null +++ b/res/lemmae/adverbia/bis.csv @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,bis \ No newline at end of file diff --git "a/res/lemmae/adverbia/centi\304\223ns.csv" "b/res/lemmae/adverbia/centi\304\223ns.csv" new file mode 100644 index 0000000..c869a29 --- /dev/null +++ "b/res/lemmae/adverbia/centi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,centiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/centi\304\223s.csv" "b/res/lemmae/adverbia/centi\304\223s.csv" new file mode 100644 index 0000000..d9991fd --- /dev/null +++ "b/res/lemmae/adverbia/centi\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,centiēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/c\304\223terum.csv" "b/res/lemmae/adverbia/c\304\223terum.csv" new file mode 100644 index 0000000..81bb235 --- /dev/null +++ "b/res/lemmae/adverbia/c\304\223terum.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,cēterum \ No newline at end of file diff --git "a/res/lemmae/adverbia/deci\304\223ns.csv" "b/res/lemmae/adverbia/deci\304\223ns.csv" new file mode 100644 index 0000000..b0b927d --- /dev/null +++ "b/res/lemmae/adverbia/deci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,deciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/deci\304\223s.csv" "b/res/lemmae/adverbia/deci\304\223s.csv" new file mode 100644 index 0000000..4d59335 --- /dev/null +++ "b/res/lemmae/adverbia/deci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,deciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/duodeci\304\223ns.csv" "b/res/lemmae/adverbia/duodeci\304\223ns.csv" new file mode 100644 index 0000000..3e77d0f --- /dev/null +++ "b/res/lemmae/adverbia/duodeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,duodeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/duodeci\304\223s.csv" "b/res/lemmae/adverbia/duodeci\304\223s.csv" new file mode 100644 index 0000000..cb53ef9 --- /dev/null +++ "b/res/lemmae/adverbia/duodeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,duodeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" "b/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" new file mode 100644 index 0000000..b5a1e91 --- /dev/null +++ "b/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,duodētrīgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" "b/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" new file mode 100644 index 0000000..6f1c981 --- /dev/null +++ "b/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,mīlliēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/m\304\253lli\304\223s.csv" "b/res/lemmae/adverbia/m\304\253lli\304\223s.csv" new file mode 100644 index 0000000..860f477 --- /dev/null +++ "b/res/lemmae/adverbia/m\304\253lli\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,mīlliēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215n.csv" "b/res/lemmae/adverbia/n\305\215n.csv" new file mode 100644 index 0000000..65f927c --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215n.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōn \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" "b/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" new file mode 100644 index 0000000..9d8a7e5 --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōniēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215ni\304\223s.csv" "b/res/lemmae/adverbia/n\305\215ni\304\223s.csv" new file mode 100644 index 0000000..a0a31ad --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215ni\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōniēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215nnumquam.csv" "b/res/lemmae/adverbia/n\305\215nnumquam.csv" new file mode 100644 index 0000000..95d1d82 --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215nnumquam.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōnnumquam \ No newline at end of file diff --git "a/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..64def6a --- /dev/null +++ "b/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,nōnāgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/octi\304\223ns.csv" "b/res/lemmae/adverbia/octi\304\223ns.csv" new file mode 100644 index 0000000..d971f87 --- /dev/null +++ "b/res/lemmae/adverbia/octi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,octiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" "b/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" new file mode 100644 index 0000000..5ba7287 --- /dev/null +++ "b/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,octōgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/ovi\304\223ns.csv" "b/res/lemmae/adverbia/ovi\304\223ns.csv" new file mode 100644 index 0000000..8640b5e --- /dev/null +++ "b/res/lemmae/adverbia/ovi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,oviēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..349aff9 --- /dev/null +++ "b/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,quadrāgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" "b/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" new file mode 100644 index 0000000..e51663c --- /dev/null +++ "b/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,quīnquiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/septi\304\223ns.csv" "b/res/lemmae/adverbia/septi\304\223ns.csv" new file mode 100644 index 0000000..5efac7c --- /dev/null +++ "b/res/lemmae/adverbia/septi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,septiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/sexi\304\223ns.csv" "b/res/lemmae/adverbia/sexi\304\223ns.csv" new file mode 100644 index 0000000..6df6909 --- /dev/null +++ "b/res/lemmae/adverbia/sexi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,sexiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..f0a539a --- /dev/null +++ "b/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,sexāgiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/terdeci\304\223ns.csv" "b/res/lemmae/adverbia/terdeci\304\223ns.csv" new file mode 100644 index 0000000..8aeb3da --- /dev/null +++ "b/res/lemmae/adverbia/terdeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,terdeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/terdeci\304\223s.csv" "b/res/lemmae/adverbia/terdeci\304\223s.csv" new file mode 100644 index 0000000..9958a20 --- /dev/null +++ "b/res/lemmae/adverbia/terdeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,terdeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/trecenti\304\223ns.csv" "b/res/lemmae/adverbia/trecenti\304\223ns.csv" new file mode 100644 index 0000000..bf2c8ac --- /dev/null +++ "b/res/lemmae/adverbia/trecenti\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,trecentiēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/trecenti\304\223s.csv" "b/res/lemmae/adverbia/trecenti\304\223s.csv" new file mode 100644 index 0000000..27e985d --- /dev/null +++ "b/res/lemmae/adverbia/trecenti\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,trecentiēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/tredeci\304\223ns.csv" "b/res/lemmae/adverbia/tredeci\304\223ns.csv" new file mode 100644 index 0000000..068d8d6 --- /dev/null +++ "b/res/lemmae/adverbia/tredeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,tredeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/tredeci\304\223s.csv" "b/res/lemmae/adverbia/tredeci\304\223s.csv" new file mode 100644 index 0000000..ce11a98 --- /dev/null +++ "b/res/lemmae/adverbia/tredeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,tredeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" "b/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" new file mode 100644 index 0000000..4326d2a --- /dev/null +++ "b/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,trīciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" "b/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" new file mode 100644 index 0000000..e79be10 --- /dev/null +++ "b/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,vīciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" "b/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" new file mode 100644 index 0000000..2436c4f --- /dev/null +++ "b/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,ūndeciēns \ No newline at end of file diff --git "a/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" "b/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" new file mode 100644 index 0000000..259e6d9 --- /dev/null +++ "b/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,ūndeciēs \ No newline at end of file diff --git "a/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" new file mode 100644 index 0000000..f01ee7a --- /dev/null +++ "b/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" @@ -0,0 +1,2 @@ +gradus,scriptum +positivus,ūndēquadrāgiēns \ No newline at end of file diff --git "a/res/lemmae/nomina/Carth\304\201g\305\215.csv" "b/res/lemmae/nomina/Carth\304\201g\305\215.csv" new file mode 100644 index 0000000..33676e5 --- /dev/null +++ "b/res/lemmae/nomina/Carth\304\201g\305\215.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +Carthāgō,Carthāginis,tertiaAnimata//singularis diff --git a/res/lemmae/nomina/adeptor.csv b/res/lemmae/nomina/adeptor.csv new file mode 100644 index 0000000..501f2fd --- /dev/null +++ b/res/lemmae/nomina/adeptor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +adeptor,adeptōris,tertiaAnimata diff --git "a/res/lemmae/nomina/adeptr\304\253x.csv" "b/res/lemmae/nomina/adeptr\304\253x.csv" new file mode 100644 index 0000000..a63ae61 --- /dev/null +++ "b/res/lemmae/nomina/adeptr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +adeptrīx,adeptrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/am\304\201tor.csv" "b/res/lemmae/nomina/am\304\201tor.csv" new file mode 100644 index 0000000..8c51f50 --- /dev/null +++ "b/res/lemmae/nomina/am\304\201tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +amātor,amātōris,tertiaAnimata diff --git "a/res/lemmae/nomina/am\304\201tr\304\253x.csv" "b/res/lemmae/nomina/am\304\201tr\304\253x.csv" new file mode 100644 index 0000000..97573df --- /dev/null +++ "b/res/lemmae/nomina/am\304\201tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +amātrīx,amātrīcis,tertiaAnimata diff --git a/res/lemmae/nomina/bes.csv b/res/lemmae/nomina/bes.csv new file mode 100644 index 0000000..9eda0c7 --- /dev/null +++ b/res/lemmae/nomina/bes.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +bes,bessis,tertiaAnimata diff --git "a/res/lemmae/nomina/cent\304\223simus.csv" "b/res/lemmae/nomina/cent\304\223simus.csv" new file mode 100644 index 0000000..e4a2c77 --- /dev/null +++ "b/res/lemmae/nomina/cent\304\223simus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +centēsimus,centēsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/c\304\223nsor.csv" "b/res/lemmae/nomina/c\304\223nsor.csv" new file mode 100644 index 0000000..cf2bdb5 --- /dev/null +++ "b/res/lemmae/nomina/c\304\223nsor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cēnsor,cēnsōris,tertiaAnimata diff --git "a/res/lemmae/nomina/c\304\223nstr\304\253x.csv" "b/res/lemmae/nomina/c\304\223nstr\304\253x.csv" new file mode 100644 index 0000000..860c06b --- /dev/null +++ "b/res/lemmae/nomina/c\304\223nstr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cēnstrīx,cēnstrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" "b/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" new file mode 100644 index 0000000..2b2fab0 --- /dev/null +++ "b/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cōnsectātor,cōnsectātōris,tertiaAnimata diff --git "a/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" "b/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" new file mode 100644 index 0000000..684f475 --- /dev/null +++ "b/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +cōnsectātrīx,cōnsectātrīcis,tertiaAnimata diff --git a/res/lemmae/nomina/decima.csv b/res/lemmae/nomina/decima.csv new file mode 100644 index 0000000..725e990 --- /dev/null +++ b/res/lemmae/nomina/decima.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decima,decimae,prima diff --git a/res/lemmae/nomina/decimus.csv b/res/lemmae/nomina/decimus.csv new file mode 100644 index 0000000..4ffb0cf --- /dev/null +++ b/res/lemmae/nomina/decimus.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decimus,decimī,secundusMasculinus diff --git a/res/lemmae/nomina/decunx.csv b/res/lemmae/nomina/decunx.csv new file mode 100644 index 0000000..feb1413 --- /dev/null +++ b/res/lemmae/nomina/decunx.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +decunx,decuncis,tertiaAnimata diff --git a/res/lemmae/nomina/deunx.csv b/res/lemmae/nomina/deunx.csv new file mode 100644 index 0000000..4e8ef1c --- /dev/null +++ b/res/lemmae/nomina/deunx.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +deunx,deuncis,tertiaAnimata diff --git a/res/lemmae/nomina/dolor.csv b/res/lemmae/nomina/dolor.csv new file mode 100644 index 0000000..12595b9 --- /dev/null +++ b/res/lemmae/nomina/dolor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dolor,dolōris,tertiaAnimata diff --git "a/res/lemmae/nomina/d\304\223l\304\223tor.csv" "b/res/lemmae/nomina/d\304\223l\304\223tor.csv" new file mode 100644 index 0000000..8ed8fac --- /dev/null +++ "b/res/lemmae/nomina/d\304\223l\304\223tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dēlētor,dēlētōris,tertiaAnimata diff --git "a/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" "b/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" new file mode 100644 index 0000000..c9b16fd --- /dev/null +++ "b/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dēlētrīx,dēlētrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/d\304\253midius.csv" "b/res/lemmae/nomina/d\304\253midius.csv" new file mode 100644 index 0000000..ab9121f --- /dev/null +++ "b/res/lemmae/nomina/d\304\253midius.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dīmidius,dīmidiī,secundusMasculinus diff --git "a/res/lemmae/nomina/d\305\215dr\304\201ns.csv" "b/res/lemmae/nomina/d\305\215dr\304\201ns.csv" new file mode 100644 index 0000000..fa36bba --- /dev/null +++ "b/res/lemmae/nomina/d\305\215dr\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +dōdrāns,dōdrantis,tertiaAnimata diff --git a/res/lemmae/nomina/labor.csv b/res/lemmae/nomina/labor.csv new file mode 100644 index 0000000..30e49c4 --- /dev/null +++ b/res/lemmae/nomina/labor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +labor,labōris,tertiaAnimata diff --git a/res/lemmae/nomina/lingua.csv b/res/lemmae/nomina/lingua.csv new file mode 100644 index 0000000..debef65 --- /dev/null +++ b/res/lemmae/nomina/lingua.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +lingua,linguae,prima diff --git a/res/lemmae/nomina/nihil.csv b/res/lemmae/nomina/nihil.csv new file mode 100644 index 0000000..48ecd40 --- /dev/null +++ b/res/lemmae/nomina/nihil.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nihil,,indeclinabilis diff --git "a/res/lemmae/nomina/n\305\215nus.csv" "b/res/lemmae/nomina/n\305\215nus.csv" new file mode 100644 index 0000000..eabbf56 --- /dev/null +++ "b/res/lemmae/nomina/n\305\215nus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +nōnus,nōnī,secundusMasculinus diff --git "a/res/lemmae/nomina/oct\304\201ns.csv" "b/res/lemmae/nomina/oct\304\201ns.csv" new file mode 100644 index 0000000..b33ff97 --- /dev/null +++ "b/res/lemmae/nomina/oct\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +octāns,octantis,tertiaAnimata diff --git a/res/lemmae/nomina/placitor.csv b/res/lemmae/nomina/placitor.csv new file mode 100644 index 0000000..c02da8f --- /dev/null +++ b/res/lemmae/nomina/placitor.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +placitor,placitōris,tertiaAnimata diff --git "a/res/lemmae/nomina/placitr\304\253x.csv" "b/res/lemmae/nomina/placitr\304\253x.csv" new file mode 100644 index 0000000..3382819 --- /dev/null +++ "b/res/lemmae/nomina/placitr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +placitrīx,placitrīcis,tertiaAnimata diff --git a/res/lemmae/nomina/puer.csv b/res/lemmae/nomina/puer.csv new file mode 100644 index 0000000..07e6b69 --- /dev/null +++ b/res/lemmae/nomina/puer.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +puer,puerī,secundusMasculinus/nominativusDirectus diff --git "a/res/lemmae/nomina/quadr\304\201ns.csv" "b/res/lemmae/nomina/quadr\304\201ns.csv" new file mode 100644 index 0000000..32f8eff --- /dev/null +++ "b/res/lemmae/nomina/quadr\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quadrāns,quadrantis,tertiaAnimata diff --git "a/res/lemmae/nomina/quaes\304\253tor.csv" "b/res/lemmae/nomina/quaes\304\253tor.csv" new file mode 100644 index 0000000..ac09c6a --- /dev/null +++ "b/res/lemmae/nomina/quaes\304\253tor.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quaesītor,quaesītōris,tertiaAnimata diff --git "a/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" "b/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" new file mode 100644 index 0000000..144ca56 --- /dev/null +++ "b/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quaesītrīx,quaesītrīcis,tertiaAnimata diff --git "a/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" "b/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" new file mode 100644 index 0000000..daafcb0 --- /dev/null +++ "b/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +quīntāns,quīntantis,tertiaAnimata diff --git a/res/lemmae/nomina/septunx.csv b/res/lemmae/nomina/septunx.csv new file mode 100644 index 0000000..83a7c80 --- /dev/null +++ b/res/lemmae/nomina/septunx.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septunx,septuncis,tertiaAnimata diff --git "a/res/lemmae/nomina/sept\304\201ns.csv" "b/res/lemmae/nomina/sept\304\201ns.csv" new file mode 100644 index 0000000..9ad57ce --- /dev/null +++ "b/res/lemmae/nomina/sept\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sextāns,sextantis,tertiaAnimata diff --git "a/res/lemmae/nomina/sext\304\201ns.csv" "b/res/lemmae/nomina/sext\304\201ns.csv" new file mode 100644 index 0000000..b544f70 --- /dev/null +++ "b/res/lemmae/nomina/sext\304\201ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +septāns,septantis,tertiaAnimata diff --git "a/res/lemmae/nomina/s\304\223mis.csv" "b/res/lemmae/nomina/s\304\223mis.csv" new file mode 100644 index 0000000..79ee0cc --- /dev/null +++ "b/res/lemmae/nomina/s\304\223mis.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +sēmis,sēmissis,tertiaAnimata diff --git a/res/lemmae/nomina/tempus.csv b/res/lemmae/nomina/tempus.csv new file mode 100644 index 0000000..3173cd7 --- /dev/null +++ b/res/lemmae/nomina/tempus.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +tempus,temporis,tertiaNeutra diff --git "a/res/lemmae/nomina/tri\304\223ns.csv" "b/res/lemmae/nomina/tri\304\223ns.csv" new file mode 100644 index 0000000..0d22761 --- /dev/null +++ "b/res/lemmae/nomina/tri\304\223ns.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +triēns,trientis,tertiaAnimata diff --git "a/res/lemmae/nomina/vic\304\223nsimus.csv" "b/res/lemmae/nomina/vic\304\223nsimus.csv" new file mode 100644 index 0000000..b040805 --- /dev/null +++ "b/res/lemmae/nomina/vic\304\223nsimus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vicēnsimus,vicēnsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/vic\304\223nsumus.csv" "b/res/lemmae/nomina/vic\304\223nsumus.csv" new file mode 100644 index 0000000..dafd29e --- /dev/null +++ "b/res/lemmae/nomina/vic\304\223nsumus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vicēnsumus,vicēnsumī,secundusMasculinus diff --git "a/res/lemmae/nomina/vic\304\223simus.csv" "b/res/lemmae/nomina/vic\304\223simus.csv" new file mode 100644 index 0000000..0ac4946 --- /dev/null +++ "b/res/lemmae/nomina/vic\304\223simus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vicēsimus,vicēsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/vig\304\223nsimus.csv" "b/res/lemmae/nomina/vig\304\223nsimus.csv" new file mode 100644 index 0000000..bb1fd1f --- /dev/null +++ "b/res/lemmae/nomina/vig\304\223nsimus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vigēnsimus,vigēnsimī,secundusMasculinus diff --git "a/res/lemmae/nomina/vig\304\223simus.csv" "b/res/lemmae/nomina/vig\304\223simus.csv" new file mode 100644 index 0000000..dd719d2 --- /dev/null +++ "b/res/lemmae/nomina/vig\304\223simus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vigēsimus,vigēsimī,secundusMasculinus diff --git a/res/lemmae/nomina/vir.csv b/res/lemmae/nomina/vir.csv new file mode 100644 index 0000000..5231b4e --- /dev/null +++ b/res/lemmae/nomina/vir.csv @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +vir,virī,secundusMasculinus diff --git "a/res/lemmae/nomina/volupt\304\201s.csv" "b/res/lemmae/nomina/volupt\304\201s.csv" new file mode 100644 index 0000000..6256da8 --- /dev/null +++ "b/res/lemmae/nomina/volupt\304\201s.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +voluptās,voluptatis,tertiaAnimata diff --git "a/res/lemmae/nomina/\304\200d\304\201m.csv" "b/res/lemmae/nomina/\304\200d\304\201m.csv" new file mode 100644 index 0000000..de3978d --- /dev/null +++ "b/res/lemmae/nomina/\304\200d\304\201m.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +Ādām,,indeclinabilis diff --git "a/res/lemmae/nomina/\305\253ndecimus.csv" "b/res/lemmae/nomina/\305\253ndecimus.csv" new file mode 100644 index 0000000..94ca1c9 --- /dev/null +++ "b/res/lemmae/nomina/\305\253ndecimus.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūndecimus,ūndecimī,secundusMasculinus diff --git "a/res/lemmae/nomina/\305\253nica.csv" "b/res/lemmae/nomina/\305\253nica.csv" new file mode 100644 index 0000000..3735a88 --- /dev/null +++ "b/res/lemmae/nomina/\305\253nica.csv" @@ -0,0 +1,2 @@ +nominativus,genitivus,versio +ūnica,ūnicae,prima diff --git a/res/lemmae/numeramina/C.csv b/res/lemmae/numeramina/C.csv new file mode 100644 index 0000000..3edbf6c --- /dev/null +++ b/res/lemmae/numeramina/C.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +C,centum,centēsimum,centiēs,centēnum,centuplex,centēsimus diff --git a/res/lemmae/numeramina/CC.csv b/res/lemmae/numeramina/CC.csv new file mode 100644 index 0000000..c3c0a52 --- /dev/null +++ b/res/lemmae/numeramina/CC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +CC,ducenta,ducentēsimum,,ducēnum,, diff --git a/res/lemmae/numeramina/CCC.csv b/res/lemmae/numeramina/CCC.csv new file mode 100644 index 0000000..b7a4366 --- /dev/null +++ b/res/lemmae/numeramina/CCC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +CCC,trecenta,trecentēsimum,,trecēnum,, diff --git a/res/lemmae/numeramina/CD.csv b/res/lemmae/numeramina/CD.csv new file mode 100644 index 0000000..b50ca36 --- /dev/null +++ b/res/lemmae/numeramina/CD.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +CD,quadringenta,quadringentēsimum,,quadringentēnum,, diff --git a/res/lemmae/numeramina/CM.csv b/res/lemmae/numeramina/CM.csv new file mode 100644 index 0000000..ea47f36 --- /dev/null +++ b/res/lemmae/numeramina/CM.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum, multiplicativum,fractionale +CM,nōngenta,nōngentēsimum,,nōngēnum,, diff --git a/res/lemmae/numeramina/D.csv b/res/lemmae/numeramina/D.csv new file mode 100644 index 0000000..681aa34 --- /dev/null +++ b/res/lemmae/numeramina/D.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +D,quīngenta,quīngentēsimum,,quīngēnum,, diff --git a/res/lemmae/numeramina/DC.csv b/res/lemmae/numeramina/DC.csv new file mode 100644 index 0000000..937d505 --- /dev/null +++ b/res/lemmae/numeramina/DC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +DC,sescenta,sescentēsimum,,sescēnum,, diff --git a/res/lemmae/numeramina/DCC.csv b/res/lemmae/numeramina/DCC.csv new file mode 100644 index 0000000..5f0ec6f --- /dev/null +++ b/res/lemmae/numeramina/DCC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +DCC,septingenta,septingentēsimum,,septingēnum,, diff --git a/res/lemmae/numeramina/DCCC.csv b/res/lemmae/numeramina/DCCC.csv new file mode 100644 index 0000000..ac9b029 --- /dev/null +++ b/res/lemmae/numeramina/DCCC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum, fractionale +DCCC,octogenta,octingentēsimum,,octingēnum,, diff --git a/res/lemmae/numeramina/I.csv b/res/lemmae/numeramina/I.csv new file mode 100644 index 0000000..46b773f --- /dev/null +++ b/res/lemmae/numeramina/I.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +I,ūnum,prīmum,semel,singulum,simplex, diff --git a/res/lemmae/numeramina/II.csv b/res/lemmae/numeramina/II.csv new file mode 100644 index 0000000..951e6bc --- /dev/null +++ b/res/lemmae/numeramina/II.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +II,duo,secundum,bis,bīnum,duplex,sēmis diff --git a/res/lemmae/numeramina/III.csv b/res/lemmae/numeramina/III.csv new file mode 100644 index 0000000..6d6be1d --- /dev/null +++ b/res/lemmae/numeramina/III.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distrivutivum,multiplicativum,fractionale +III,tria,tertium,ter,ternum,triplex,triēns diff --git a/res/lemmae/numeramina/IV.csv b/res/lemmae/numeramina/IV.csv new file mode 100644 index 0000000..8ad0d94 --- /dev/null +++ b/res/lemmae/numeramina/IV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +IV,quattuor,quārtum,quater,quaternum,quadruplex,quadrāns diff --git a/res/lemmae/numeramina/IX.csv b/res/lemmae/numeramina/IX.csv new file mode 100644 index 0000000..25815b8 --- /dev/null +++ b/res/lemmae/numeramina/IX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +IX,novem,nōnum,noviēns,novēnum,novemplex,nōnus diff --git a/res/lemmae/numeramina/L.csv b/res/lemmae/numeramina/L.csv new file mode 100644 index 0000000..9439794 --- /dev/null +++ b/res/lemmae/numeramina/L.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +L,quīnquāgintā,quīnquāgēsimum,quīnquāgiēs,quīnquāgēnum,, diff --git a/res/lemmae/numeramina/LIX.csv b/res/lemmae/numeramina/LIX.csv new file mode 100644 index 0000000..529db57 --- /dev/null +++ b/res/lemmae/numeramina/LIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LIX,ūndēsexāgintā,ūndēsexāgēsimum,,,, diff --git a/res/lemmae/numeramina/LVIII.csv b/res/lemmae/numeramina/LVIII.csv new file mode 100644 index 0000000..c540608 --- /dev/null +++ b/res/lemmae/numeramina/LVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LVIII,duodēsexāgintā,duodēsexāgēsimum,,,, diff --git a/res/lemmae/numeramina/LX.csv b/res/lemmae/numeramina/LX.csv new file mode 100644 index 0000000..d0314ce --- /dev/null +++ b/res/lemmae/numeramina/LX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LX,sexāgintā,sexāgēsimum,sexāgiēs,sexāgēnum,, diff --git a/res/lemmae/numeramina/LXVIII.csv b/res/lemmae/numeramina/LXVIII.csv new file mode 100644 index 0000000..88c2cbb --- /dev/null +++ b/res/lemmae/numeramina/LXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,adverbium,distributivum,multiplicativum,fractionale +LXVIII,duodēseptuāgintā,duodēseptuāgēsimum,,,, diff --git a/res/lemmae/numeramina/LXX.csv b/res/lemmae/numeramina/LXX.csv new file mode 100644 index 0000000..a0414f6 --- /dev/null +++ b/res/lemmae/numeramina/LXX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXX,septuāgintā,septuāgēsimum,septuāgiēs,septuāgēnum,, diff --git a/res/lemmae/numeramina/LXXIX.csv b/res/lemmae/numeramina/LXXIX.csv new file mode 100644 index 0000000..8883fd6 --- /dev/null +++ b/res/lemmae/numeramina/LXXIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXIX,ūndeoctōgintā,,,,, diff --git a/res/lemmae/numeramina/LXXVIII.csv b/res/lemmae/numeramina/LXXVIII.csv new file mode 100644 index 0000000..62d51ce --- /dev/null +++ b/res/lemmae/numeramina/LXXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXVIII,duodeoctōginta,,,,, diff --git a/res/lemmae/numeramina/LXXX.csv b/res/lemmae/numeramina/LXXX.csv new file mode 100644 index 0000000..aa7edfa --- /dev/null +++ b/res/lemmae/numeramina/LXXX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXX,octōgintā,octōgēsimum,octōgiēs,octōgēnum,, diff --git a/res/lemmae/numeramina/LXXXIX.csv b/res/lemmae/numeramina/LXXXIX.csv new file mode 100644 index 0000000..022dccf --- /dev/null +++ b/res/lemmae/numeramina/LXXXIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXXIX,ūndēnōnāgintā,,,,, diff --git a/res/lemmae/numeramina/LXXXVIII.csv b/res/lemmae/numeramina/LXXXVIII.csv new file mode 100644 index 0000000..9ff3525 --- /dev/null +++ b/res/lemmae/numeramina/LXXXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +LXXXVIII,duodēnōnāginta,,,,, diff --git a/res/lemmae/numeramina/M.csv b/res/lemmae/numeramina/M.csv new file mode 100644 index 0000000..ba0ddc5 --- /dev/null +++ b/res/lemmae/numeramina/M.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +M,mīlle,mīllēsimum,mīlliēs,mīllēnum,, diff --git a/res/lemmae/numeramina/N.csv b/res/lemmae/numeramina/N.csv new file mode 100644 index 0000000..40165b5 --- /dev/null +++ b/res/lemmae/numeramina/N.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +N,nūllum,nōn,,,nihil diff --git a/res/lemmae/numeramina/V.csv b/res/lemmae/numeramina/V.csv new file mode 100644 index 0000000..3446045 --- /dev/null +++ b/res/lemmae/numeramina/V.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +V,quīnque,quīntum,quīnquiēs,quīnum,quīnquiplex,quīntāns diff --git a/res/lemmae/numeramina/VI.csv b/res/lemmae/numeramina/VI.csv new file mode 100644 index 0000000..8944dd8 --- /dev/null +++ b/res/lemmae/numeramina/VI.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +VI,sex,sextum,sexiēs,sēnum,sexuplex,sextāns diff --git a/res/lemmae/numeramina/VII.csv b/res/lemmae/numeramina/VII.csv new file mode 100644 index 0000000..b009158 --- /dev/null +++ b/res/lemmae/numeramina/VII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +VII,septem,septeimum,septiēs,septēnum,septuplex,septāns diff --git a/res/lemmae/numeramina/VIII.csv b/res/lemmae/numeramina/VIII.csv new file mode 100644 index 0000000..c9c9a0c --- /dev/null +++ b/res/lemmae/numeramina/VIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +VIII,octō,octāvum,octiēs,octōnum,octuplex,octāns diff --git a/res/lemmae/numeramina/X.csv b/res/lemmae/numeramina/X.csv new file mode 100644 index 0000000..58d993a --- /dev/null +++ b/res/lemmae/numeramina/X.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +X,decem,decimum,deciēs,dēnum,decemplex,decima diff --git a/res/lemmae/numeramina/XC.csv b/res/lemmae/numeramina/XC.csv new file mode 100644 index 0000000..54c9544 --- /dev/null +++ b/res/lemmae/numeramina/XC.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XC,nōnāgintā,nōnāgēsimum,nōnāgiēns,nōnāgēnum,, diff --git a/res/lemmae/numeramina/XCIX.csv b/res/lemmae/numeramina/XCIX.csv new file mode 100644 index 0000000..c949122 --- /dev/null +++ b/res/lemmae/numeramina/XCIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XCIX,ūndēcentum,ūndēcentēsimum,,,, diff --git a/res/lemmae/numeramina/XCVIII.csv b/res/lemmae/numeramina/XCVIII.csv new file mode 100644 index 0000000..9d064af --- /dev/null +++ b/res/lemmae/numeramina/XCVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XCVIII,duodēcentum,duodēcentēsimum,,,, diff --git a/res/lemmae/numeramina/XI.csv b/res/lemmae/numeramina/XI.csv new file mode 100644 index 0000000..5fe73d9 --- /dev/null +++ b/res/lemmae/numeramina/XI.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XI,ūndecim,ūndecimum,ūndeciēs,ūndēnum,ūndecemplex,ūndecimus diff --git a/res/lemmae/numeramina/XII.csv b/res/lemmae/numeramina/XII.csv new file mode 100644 index 0000000..1a4f038 --- /dev/null +++ b/res/lemmae/numeramina/XII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XII,duodecim,duodecimum,duodeciēs,duodēnum,duodecimplex,uncia diff --git a/res/lemmae/numeramina/XIII.csv b/res/lemmae/numeramina/XIII.csv new file mode 100644 index 0000000..2cf7f3c --- /dev/null +++ b/res/lemmae/numeramina/XIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XIII,tredecim,tertiumdecimum,terdeciēs,terdēnum,terdecemplex,tertiusdecimus diff --git a/res/lemmae/numeramina/XIV.csv b/res/lemmae/numeramina/XIV.csv new file mode 100644 index 0000000..0ecabc1 --- /dev/null +++ b/res/lemmae/numeramina/XIV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XIV,quattuordecim,quārtumdecimum,,,, diff --git a/res/lemmae/numeramina/XIX.csv b/res/lemmae/numeramina/XIX.csv new file mode 100644 index 0000000..3b5fecc --- /dev/null +++ b/res/lemmae/numeramina/XIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XIX,ūndēvīgintī,ūndēvīcēsimum,,,, diff --git a/res/lemmae/numeramina/XL.csv b/res/lemmae/numeramina/XL.csv new file mode 100644 index 0000000..21cefc4 --- /dev/null +++ b/res/lemmae/numeramina/XL.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XL,quadrāgintā,quadrāgēsimum,quadrāgiēs,quadrāgēnum,, diff --git a/res/lemmae/numeramina/XLIX.csv b/res/lemmae/numeramina/XLIX.csv new file mode 100644 index 0000000..e5c73e6 --- /dev/null +++ b/res/lemmae/numeramina/XLIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XLIX,ūndēquīnquāgintā,ūndēquīnquāgēsimum,,,, diff --git a/res/lemmae/numeramina/XLVIII.csv b/res/lemmae/numeramina/XLVIII.csv new file mode 100644 index 0000000..fc7dd76 --- /dev/null +++ b/res/lemmae/numeramina/XLVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XLVIII,duodēquīnquāgintā,duodēquīnquāgēsimum,,duodēquīnquāgēnum,, diff --git a/res/lemmae/numeramina/XV.csv b/res/lemmae/numeramina/XV.csv new file mode 100644 index 0000000..aa689d8 --- /dev/null +++ b/res/lemmae/numeramina/XV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XV,quīndecim,quīntumdecimum,,,, diff --git a/res/lemmae/numeramina/XVI.csv b/res/lemmae/numeramina/XVI.csv new file mode 100644 index 0000000..89940ae --- /dev/null +++ b/res/lemmae/numeramina/XVI.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XVI,sēdecim,sextumdecimum,,,, diff --git a/res/lemmae/numeramina/XVII.csv b/res/lemmae/numeramina/XVII.csv new file mode 100644 index 0000000..5a8f6eb --- /dev/null +++ b/res/lemmae/numeramina/XVII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XVII,septemdecem,septimumdecimum,,,, diff --git a/res/lemmae/numeramina/XVIII.csv b/res/lemmae/numeramina/XVIII.csv new file mode 100644 index 0000000..38a4939 --- /dev/null +++ b/res/lemmae/numeramina/XVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XVIII,duodēvīgintī,duodēvīcēsimum,,duodēvīcēnum,, diff --git a/res/lemmae/numeramina/XX.csv b/res/lemmae/numeramina/XX.csv new file mode 100644 index 0000000..ccb2a82 --- /dev/null +++ b/res/lemmae/numeramina/XX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XX,vīgintī,vīgēsimum,vīciēs,vīgēnum,,vīgēsimus diff --git a/res/lemmae/numeramina/XXIX.csv b/res/lemmae/numeramina/XXIX.csv new file mode 100644 index 0000000..ce5fa53 --- /dev/null +++ b/res/lemmae/numeramina/XXIX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXIX,ūndētrīgintā,ūndētrīcēsimum,,,, diff --git a/res/lemmae/numeramina/XXVIII.csv b/res/lemmae/numeramina/XXVIII.csv new file mode 100644 index 0000000..d19b3d1 --- /dev/null +++ b/res/lemmae/numeramina/XXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXVIII,duodētrīgintā,duodētrīgēsimum,duodētrīgiēns,,, diff --git a/res/lemmae/numeramina/XXX.csv b/res/lemmae/numeramina/XXX.csv new file mode 100644 index 0000000..e6661fe --- /dev/null +++ b/res/lemmae/numeramina/XXX.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXX,trīgintā,trīcēsimum,trīciēs,trīgēnum,, diff --git a/res/lemmae/numeramina/XXXIV.csv b/res/lemmae/numeramina/XXXIV.csv new file mode 100644 index 0000000..1cd7078 --- /dev/null +++ b/res/lemmae/numeramina/XXXIV.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXXIX,ūndēquadrāgintā,ūndēquadrāgēsimum,ūndēquadrāgiēns,,, diff --git a/res/lemmae/numeramina/XXXVIII.csv b/res/lemmae/numeramina/XXXVIII.csv new file mode 100644 index 0000000..9b20471 --- /dev/null +++ b/res/lemmae/numeramina/XXXVIII.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +XXXVIII,duodēquadrāgintā,duodēquadrāgēsimum,,duodēquādrāgēnum,, diff --git a/res/lemmae/numeramina/|M|.csv b/res/lemmae/numeramina/|M|.csv new file mode 100644 index 0000000..0df5f3f --- /dev/null +++ b/res/lemmae/numeramina/|M|.csv @@ -0,0 +1,2 @@ +numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale +|M|,milliō,milliōnēsimum diff --git a/res/lemmae/verba/abante.csv b/res/lemmae/verba/abante.csv new file mode 100644 index 0000000..d4c9d44 --- /dev/null +++ b/res/lemmae/verba/abante.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,abante diff --git a/res/lemmae/verba/absque.csv b/res/lemmae/verba/absque.csv new file mode 100644 index 0000000..0c7c1ff --- /dev/null +++ b/res/lemmae/verba/absque.csv @@ -0,0 +1,3 @@ +categoria,scriptum +praepositio,absque + diff --git a/res/lemmae/verba/abusque.csv b/res/lemmae/verba/abusque.csv new file mode 100644 index 0000000..5fdd5b3 --- /dev/null +++ b/res/lemmae/verba/abusque.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,abusque diff --git a/res/lemmae/verba/ad.csv b/res/lemmae/verba/ad.csv new file mode 100644 index 0000000..42c400c --- /dev/null +++ b/res/lemmae/verba/ad.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ad diff --git a/res/lemmae/verba/ante.csv b/res/lemmae/verba/ante.csv new file mode 100644 index 0000000..0dc12f5 --- /dev/null +++ b/res/lemmae/verba/ante.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ante diff --git a/res/lemmae/verba/apud.csv b/res/lemmae/verba/apud.csv new file mode 100644 index 0000000..72f9b51 --- /dev/null +++ b/res/lemmae/verba/apud.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,apud diff --git a/res/lemmae/verba/cata.csv b/res/lemmae/verba/cata.csv new file mode 100644 index 0000000..489d951 --- /dev/null +++ b/res/lemmae/verba/cata.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cata diff --git a/res/lemmae/verba/circiter.csv b/res/lemmae/verba/circiter.csv new file mode 100644 index 0000000..eb7b4c8 --- /dev/null +++ b/res/lemmae/verba/circiter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,circiter diff --git a/res/lemmae/verba/circum.csv b/res/lemmae/verba/circum.csv new file mode 100644 index 0000000..3b5e9ea --- /dev/null +++ b/res/lemmae/verba/circum.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,circum diff --git a/res/lemmae/verba/cis.csv b/res/lemmae/verba/cis.csv new file mode 100644 index 0000000..bfea144 --- /dev/null +++ b/res/lemmae/verba/cis.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cis diff --git a/res/lemmae/verba/clam.csv b/res/lemmae/verba/clam.csv new file mode 100644 index 0000000..37cb1fc --- /dev/null +++ b/res/lemmae/verba/clam.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,clam diff --git a/res/lemmae/verba/cum.csv b/res/lemmae/verba/cum.csv new file mode 100644 index 0000000..1250f4b --- /dev/null +++ b/res/lemmae/verba/cum.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cum diff --git "a/res/lemmae/verba/c\305\215ram.csv" "b/res/lemmae/verba/c\305\215ram.csv" new file mode 100644 index 0000000..7991996 --- /dev/null +++ "b/res/lemmae/verba/c\305\215ram.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,cōram \ No newline at end of file diff --git "a/res/lemmae/verba/d\304\223.csv" "b/res/lemmae/verba/d\304\223.csv" new file mode 100644 index 0000000..513a76d --- /dev/null +++ "b/res/lemmae/verba/d\304\223.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,dē \ No newline at end of file diff --git a/res/lemmae/verba/ecce.csv b/res/lemmae/verba/ecce.csv new file mode 100644 index 0000000..67d5cfc --- /dev/null +++ b/res/lemmae/verba/ecce.csv @@ -0,0 +1,2 @@ +categoria,scriptum +interiectio,ecce diff --git "a/res/lemmae/verba/erg\304\201.csv" "b/res/lemmae/verba/erg\304\201.csv" new file mode 100644 index 0000000..e476690 --- /dev/null +++ "b/res/lemmae/verba/erg\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +contiunctio,ergā diff --git "a/res/lemmae/verba/erg\305\215.csv" "b/res/lemmae/verba/erg\305\215.csv" new file mode 100644 index 0000000..98110f9 --- /dev/null +++ "b/res/lemmae/verba/erg\305\215.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +contiunctio,ergō diff --git a/res/lemmae/verba/et.csv b/res/lemmae/verba/et.csv new file mode 100644 index 0000000..8a12e62 --- /dev/null +++ b/res/lemmae/verba/et.csv @@ -0,0 +1,2 @@ +categoria,scriptum +coniunctio,et diff --git "a/res/lemmae/verba/extr\304\201.csv" "b/res/lemmae/verba/extr\304\201.csv" new file mode 100644 index 0000000..b206176 --- /dev/null +++ "b/res/lemmae/verba/extr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,extrā \ No newline at end of file diff --git a/res/lemmae/verba/in.csv b/res/lemmae/verba/in.csv new file mode 100644 index 0000000..f12736e --- /dev/null +++ b/res/lemmae/verba/in.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,in diff --git a/res/lemmae/verba/inter.csv b/res/lemmae/verba/inter.csv new file mode 100644 index 0000000..aabd9d3 --- /dev/null +++ b/res/lemmae/verba/inter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,inter diff --git "a/res/lemmae/verba/intr\304\201.csv" "b/res/lemmae/verba/intr\304\201.csv" new file mode 100644 index 0000000..839965c --- /dev/null +++ "b/res/lemmae/verba/intr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,intrā \ No newline at end of file diff --git "a/res/lemmae/verba/i\305\253xt\304\201.csv" "b/res/lemmae/verba/i\305\253xt\304\201.csv" new file mode 100644 index 0000000..bd2455c --- /dev/null +++ "b/res/lemmae/verba/i\305\253xt\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,iūxtā \ No newline at end of file diff --git a/res/lemmae/verba/ly.csv b/res/lemmae/verba/ly.csv new file mode 100644 index 0000000..3f32972 --- /dev/null +++ b/res/lemmae/verba/ly.csv @@ -0,0 +1,2 @@ +categoria,scriptum +articulum,ly diff --git a/res/lemmae/verba/ob.csv b/res/lemmae/verba/ob.csv new file mode 100644 index 0000000..771a3f7 --- /dev/null +++ b/res/lemmae/verba/ob.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ob diff --git a/res/lemmae/verba/palam.csv b/res/lemmae/verba/palam.csv new file mode 100644 index 0000000..0382cb7 --- /dev/null +++ b/res/lemmae/verba/palam.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,palam diff --git a/res/lemmae/verba/penes.csv b/res/lemmae/verba/penes.csv new file mode 100644 index 0000000..796fa64 --- /dev/null +++ b/res/lemmae/verba/penes.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,penes diff --git a/res/lemmae/verba/per.csv b/res/lemmae/verba/per.csv new file mode 100644 index 0000000..de6bfbf --- /dev/null +++ b/res/lemmae/verba/per.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,per diff --git a/res/lemmae/verba/post.csv b/res/lemmae/verba/post.csv new file mode 100644 index 0000000..2e367f9 --- /dev/null +++ b/res/lemmae/verba/post.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,post diff --git a/res/lemmae/verba/prae.csv b/res/lemmae/verba/prae.csv new file mode 100644 index 0000000..73eb390 --- /dev/null +++ b/res/lemmae/verba/prae.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,prae diff --git a/res/lemmae/verba/prope.csv b/res/lemmae/verba/prope.csv new file mode 100644 index 0000000..fe6ce64 --- /dev/null +++ b/res/lemmae/verba/prope.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,prope diff --git a/res/lemmae/verba/propter.csv b/res/lemmae/verba/propter.csv new file mode 100644 index 0000000..d8091d6 --- /dev/null +++ b/res/lemmae/verba/propter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,propter diff --git "a/res/lemmae/verba/pr\305\215.csv" "b/res/lemmae/verba/pr\305\215.csv" new file mode 100644 index 0000000..532044d --- /dev/null +++ "b/res/lemmae/verba/pr\305\215.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,prō \ No newline at end of file diff --git "a/res/lemmae/verba/p\305\215ne.csv" "b/res/lemmae/verba/p\305\215ne.csv" new file mode 100644 index 0000000..6bbea0d --- /dev/null +++ "b/res/lemmae/verba/p\305\215ne.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,pōne \ No newline at end of file diff --git a/res/lemmae/verba/quia.csv b/res/lemmae/verba/quia.csv new file mode 100644 index 0000000..8a4bad6 --- /dev/null +++ b/res/lemmae/verba/quia.csv @@ -0,0 +1,2 @@ +categoria,scriptum +coniunctio,quia diff --git a/res/lemmae/verba/secundum.csv b/res/lemmae/verba/secundum.csv new file mode 100644 index 0000000..ebc8160 --- /dev/null +++ b/res/lemmae/verba/secundum.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,secundum diff --git a/res/lemmae/verba/sed.csv b/res/lemmae/verba/sed.csv new file mode 100644 index 0000000..04a79a5 --- /dev/null +++ b/res/lemmae/verba/sed.csv @@ -0,0 +1,2 @@ +categoria,scriptum +coniunctio,sed diff --git a/res/lemmae/verba/sine.csv b/res/lemmae/verba/sine.csv new file mode 100644 index 0000000..7a82e4d --- /dev/null +++ b/res/lemmae/verba/sine.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,sine diff --git a/res/lemmae/verba/sub.csv b/res/lemmae/verba/sub.csv new file mode 100644 index 0000000..4f84c05 --- /dev/null +++ b/res/lemmae/verba/sub.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,sub diff --git a/res/lemmae/verba/subter.csv b/res/lemmae/verba/subter.csv new file mode 100644 index 0000000..9861cbd --- /dev/null +++ b/res/lemmae/verba/subter.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,subter diff --git a/res/lemmae/verba/super.csv b/res/lemmae/verba/super.csv new file mode 100644 index 0000000..e0fc2a9 --- /dev/null +++ b/res/lemmae/verba/super.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,super diff --git "a/res/lemmae/verba/supr\304\201.csv" "b/res/lemmae/verba/supr\304\201.csv" new file mode 100644 index 0000000..cb53a59 --- /dev/null +++ "b/res/lemmae/verba/supr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,suprā \ No newline at end of file diff --git a/res/lemmae/verba/tenus.csv b/res/lemmae/verba/tenus.csv new file mode 100644 index 0000000..7115203 --- /dev/null +++ b/res/lemmae/verba/tenus.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,tenus diff --git "a/res/lemmae/verba/tr\304\201ns.csv" "b/res/lemmae/verba/tr\304\201ns.csv" new file mode 100644 index 0000000..70f97b4 --- /dev/null +++ "b/res/lemmae/verba/tr\304\201ns.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,trāns \ No newline at end of file diff --git "a/res/lemmae/verba/ultr\304\201.csv" "b/res/lemmae/verba/ultr\304\201.csv" new file mode 100644 index 0000000..edb136a --- /dev/null +++ "b/res/lemmae/verba/ultr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ultrā \ No newline at end of file diff --git a/res/lemmae/verba/versus.csv b/res/lemmae/verba/versus.csv new file mode 100644 index 0000000..f879751 --- /dev/null +++ b/res/lemmae/verba/versus.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,versus \ No newline at end of file diff --git a/res/lemmae/verba/vice.csv b/res/lemmae/verba/vice.csv new file mode 100644 index 0000000..10f230e --- /dev/null +++ b/res/lemmae/verba/vice.csv @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,vice \ No newline at end of file diff --git "a/res/lemmae/verba/\304\201.csv" "b/res/lemmae/verba/\304\201.csv" new file mode 100644 index 0000000..c9451f9 --- /dev/null +++ "b/res/lemmae/verba/\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ā \ No newline at end of file diff --git "a/res/lemmae/verba/\304\223.csv" "b/res/lemmae/verba/\304\223.csv" new file mode 100644 index 0000000..a7dc460 --- /dev/null +++ "b/res/lemmae/verba/\304\223.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ē \ No newline at end of file diff --git "a/res/lemmae/verba/\304\253nfr\304\201.csv" "b/res/lemmae/verba/\304\253nfr\304\201.csv" new file mode 100644 index 0000000..f3d1341 --- /dev/null +++ "b/res/lemmae/verba/\304\253nfr\304\201.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,īnfrā \ No newline at end of file diff --git "a/res/lemmae/verba/\305\215.csv" "b/res/lemmae/verba/\305\215.csv" new file mode 100644 index 0000000..79eba96 --- /dev/null +++ "b/res/lemmae/verba/\305\215.csv" @@ -0,0 +1,2 @@ +categoria,scriptum +praepositio,ō \ No newline at end of file diff --git a/res/picta/favicon.png b/res/picta/favicon.png new file mode 100644 index 0000000..683e189 Binary files /dev/null and b/res/picta/favicon.png differ diff --git a/res/picta/spqr.png b/res/picta/spqr.png new file mode 100644 index 0000000..e633bbb Binary files /dev/null and b/res/picta/spqr.png differ diff --git a/res/picta/uk.png b/res/picta/uk.png new file mode 100644 index 0000000..d041eca Binary files /dev/null and b/res/picta/uk.png differ diff --git a/res/scapales/actus/aiere.csv b/res/scapales/actus/aiere.csv new file mode 100644 index 0000000..13c6ea0 --- /dev/null +++ b/res/scapales/actus/aiere.csv @@ -0,0 +1,19 @@ +modus,vox,tempus,numeralis,persona,scriptum +infintivus,,,,,aiere +imperativus,,,,,ai +participalis,,,,,aiēns +subiunctivus,,,,secunda,aiās +subiunctivus,,,singularis,tertia,aiat +subiunctivus,,,pluralis,tertia,aiant +indicativus,,perfectum,,secunda,aistī +indicativus,,perfectum,,tertia,ait +indicativus,,praesens,,prima,aiō +indicativus,,praesens,,secunda,ais +indicativus,,praesens,singularis,tertia,ait +indicativus,,praesens,pluralis,tertia,aiunt +indicativus,,infectum,singularis,prima,aiēbam +indicativus,,infectum,singularis,secunda,aiēbās +indicativus,,infectum,singularis,tertia,aiēbat +indicativus,,infectum,pluralis,prima,aiēbāmus +indicativus,,infectum,pluralis,secunda,aiēbātis +indicativus,,infectum,pluralis,tertia,aiēbant diff --git a/res/scapales/actus/coepisse.csv b/res/scapales/actus/coepisse.csv new file mode 100644 index 0000000..9ec7705 --- /dev/null +++ b/res/scapales/actus/coepisse.csv @@ -0,0 +1,3 @@ +modus,vox,tempus,numeralis,persona,scriptum +participalis,,perfectum,,coeptum +participalis,,futurum,,coeptūrum diff --git a/res/scapales/actus/dare.csv b/res/scapales/actus/dare.csv new file mode 100644 index 0000000..00c3a7c --- /dev/null +++ b/res/scapales/actus/dare.csv @@ -0,0 +1,52 @@ +modus,vox,tempus,numeralis,persona,scriptum +infinitivus,activa,praesens,,,dare +infinitivus,passiva,praesens,,,darī +imperativus,activa,praesens,pluralis,,date +imperativus,activa,futurum,singularis,,datō +imperativus,activa,futurum,pluralis,,datōte +imperativus,passiva,praesens,singularis,,dare +imperativus,passiva,praesens,pluralis,,daminī +imperativus,passiva,futurum,singularis,,dator +imperativus,passiva,futurum,pluralis,,dantor +indicativus,activa,praesens,pluralis,prima,damus +indicativus,activa,praesens,pluralis,secunda,datis +indicativus,activa,infectum,singularis,prima,dabam +indicativus,activa,infectum,singularis,secunda,dabās +indicativus,activa,infectum,singularis,tertia,dabat +indicativus,activa,infectum,pluralis,prima,dabāmus +indicativus,activa,infectum,pluralis,secunda,dabātis +indicativus,activa,infectum,pluralis,tertia,dabant +indicativus,activa,futurum,singularis,prima,dabō +indicativus,activa,infectum,singularis,secunda,dabis +indicativus,activa,infectum,singularis,tertia,dabit +indicativus,activa,infectum,pluralis,prima,dabimus +indicativus,activa,infectum,pluralis,secunda,dabitis +indicativus,activa,infectum,pluralis,tertia,dabunt +indicativus,passiva,praesens,singularis,secunda,daris +indicativus,passiva,praesens,singularis,tertia,datur +indicativus,passiva,praesens,pluralis,prima,damur +indicativus,passiva,praesens,pluralis,secunda,daminī +indicativus,passiva,infectum,singularis,prima,dabar +indicativus,passiva,infectum,singularis,secunda,dabāris +indicativus,passiva,infectum,singularis,tertia,dabātur +indicativus,passiva,infectum,pluralis,prima,dabāmur +indicativus,passiva,infectum,pluralis,secunda,dabāminī +indicativus,passiva,infectum,pluralis,tertia,dabantur +indicativus,passiva,futurum,singularis,prima,dabor +indicativus,passiva,futurum,singularis,secunda,daberis +indicativus,passiva,futurum,singularis,tertia,dabitur +indicativus,passiva,futurum,pluralis,prima,dabimur +indicativus,passiva,futurum,pluralis,secunda,dabiminī +indicativus,passiva,futurum,pluralis,tertia,dabuntur +subiunctivus,activa,infectum,singularis,prima,darem +subiunctivus,activa,infectum,singularis,secunda,darēs +subiunctivus,activa,infectum,singularis,secunda,daret +subiunctivus,activa,infectum,pluralis,prima,darēmus +subiunctivus,activa,infectum,pluralis,secunda,darētis +subiunctivus,activa,infectum,pluralis,tertia,darent +subiunctivus,passiva,infectum,singularis,prima,darer +subiunctivus,passiva,infectum,singularis,secunda,darēris +subiunctivus,passiva,infectum,singularis,tertia,darētur +subiunctivus,passiva,infectum,pluralis,prima,darēmur +subiunctivus,passiva,infectum,pluralis,secunda,darēminī +subiunctivus,passiva,infectum,pluralis,tertia,darentur diff --git a/res/scapales/actus/esse.csv b/res/scapales/actus/esse.csv new file mode 100644 index 0000000..dfeaa4a --- /dev/null +++ b/res/scapales/actus/esse.csv @@ -0,0 +1,61 @@ +modus,vox,tempus,numeralis,persona,scriptum +particpalis,,,,,futūrum +infinitivus,,praesens,,,esse +infinitivus,,perfectum,,,fuisse +imperativus,,,singularis,,estō +imperativus,,,pluralis,,estōte +indicativus,,praesens,singularis,prima,sum +indicativus,,praesens,singularis,secunda,es +indicativus,,praesens,singularis,tertia,est +indicativus,,praesens,pluralis,prima,sumus +indicativus,,praesens,pluralis,secunda,estis +indicativus,,praesens,pluralis,tertia,sunt +indicativus,,infectum,singularis,prima,eram +indicativus,,infectum,singularis,secunda,erās +indicativus,,infectum,singularis,tertia,erat +indicativus,,infectum,pluralis,prima,erāmus +indicativus,,infectum,pluralis,secunda,erātis +indicativus,,infectum,pluralis,tertia,erant +indicativus,,futurum,singularis,prima,,erō +indicativus,,futurum,singularis,secunda,eris +indicativus,,futurum,singularis,tertia,erit +indicativus,,futurum,pluralis,prima,erimus +indicativus,,futurum,pluralis,secunda,eritis +indicativus,,futurum,pluralis,tertia,erunt +indicativus,,perfectum,singularis,prima,fuī +indicativus,,perfectum,singularis,secunda,fuistī +indicativus,,perfectum,singularis,tertia,fuit +indicativus,,perfectum,pluralis,prima,fuimus +indicativus,,perfectum,pluralis,secunda,fuitis +indicativus,,perfectum,pluralis,tertia,fuērunt +indicativus,,pluperfectum,singularis,prima,fueram +indicativus,,pluperfectum,singularis,secunda,fuerās +indicativus,,pluperfectum,singularis,tertia,fuerat +indicativus,,pluperfectum,pluralis,prima,fuerāmus +indicativus,,pluperfectum,pluralis,secunda,fuerātis +indicativus,,pluperfectum,pluralis,tertia,fuerant +indicativus,,exigendum,singularis,prima,,fuerō +indicativus,,exigendum,singularis,secunda,fueris +indicativus,,exigendum,singularis,tertia,fuerit +indicativus,,exigendum,pluralis,prima,fuerimus +indicativus,,exigendum,pluralis,secunda,fueritis +indicativus,,exigendum,pluralis,tertia,fuerint +subiunctivus,,praesens,singularis,prima,sim +subiunctivus,,praesens,singularis,secunda,sīs +subiunctivus,,praesens,singularis,tertia,sit +subiunctivus,,praesens,pluralis,prima,sīmus +subiunctivus,,praesens,pluralis,secunda,sītis +subiunctivus,,praesens,pluralis,tertia,sint +subiunctivus,,infectum,singularis,prima,essem +subiunctivus,,infectum,singularis,secunda,essēs +subiunctivus,,infectum,singularis,tertia,esset +subiunctivus,,infectum,pluralis,prima,essēmus +subiunctivus,,infectum,pluralis,secunda,essētis +subiunctivus,,infectum,pluralis,tertia,essent +subiunctivus,,perfectum,singularis,prima,fuerim +subiunctivus,,perfectum,singularis,secunda,fuerīs +subiunctivus,,perfectum,singularis,tertia,fuerit +subiunctivus,,perfectum,pluralis,prima,fuerīmus +subiunctivus,,perfectum,pluralis,secunda,fuerītis +subiunctivus,,perfectum,pluralis,tertia,fuerint + diff --git a/res/scapales/actus/facere.csv b/res/scapales/actus/facere.csv new file mode 100644 index 0000000..557ab00 --- /dev/null +++ b/res/scapales/actus/facere.csv @@ -0,0 +1,37 @@ +modus,vox,tempus,numeralis,persona,scriptum +infinitivus,passiva,,,,fierī +participalis,passiva,,,,factum +imperativus,passiva,praesens,singularis,,fī +imperativus,passiva,praesens,pluralis,,fīte +imperativus,passiva,futurum,singularis,,fītō +imperativus,passiva,futurum,pluralis,,fītōte +indicativus,passiva,praesens,singularis,prima,fīō +indicativus,passiva,praesens,singularis,secunda,fīs +indicativus,passiva,praesens,singularis,tertia,fit +indicativus,passiva,praesens,pluralis,prima,fīmus +indicativus,passiva,praesens,pluralis,secunda,fītis +indicativus,passiva,praesens,pluralis,tertia,fīunt +indicativus,passiva,infectum,singularis,prima,fīēbam +indicativus,passiva,infectum,singularis,secunda,fīēbās +indicativus,passiva,infectum,singularis,tertia,fīēbat +indicativus,passiva,infectum,pluralis,prima,fīēbāmus +indicativus,passiva,infectum,pluralis,secunda,fīēbātis +indicativus,passiva,infectum,pluralis,tertia,fīēbant +indicativus,passiva,futurum,singularis,prima,fīam +indicativus,passiva,futurum,singularis,secunda,fīēs +indicativus,passiva,futurum,singularis,tertia,fīet +indicativus,passiva,futurum,pluralis,prima,fīēmus +indicativus,passiva,futurum,pluralis,secunda,fīēis +indicativus,passiva,futurum,pluralis,tertia,fīent +subiunctivus,passiva,praesens,singularis,prima,fīam +subiunctivus,passiva,praesens,singularis,secunda,fīās +subiunctivus,passiva,praesens,singularis,tertia,fīat +subiunctivus,passiva,praesens,pluralis,prima,fīāmus +subiunctivus,passiva,praesens,pluralis,secunda,fīātis +subiunctivus,passiva,praesens,pluralis,tertia,fīant +subiunctivus,passiva,infectum,singularis,prima,fīerem +subiunctivus,passiva,infectum,singularis,secunda,fīerēs +subiunctivus,passiva,infectum,singularis,tertia,fīeret +subiunctivus,passiva,infectum,pluralis,prima,fīerēmus +subiunctivus,passiva,infectum,pluralis,secunda,fīerētis +subiunctivus,passiva,infectum,pluralis,tertia,fīerent diff --git "a/res/scapales/actus/fier\304\253.csv" "b/res/scapales/actus/fier\304\253.csv" new file mode 100644 index 0000000..2639c8d --- /dev/null +++ "b/res/scapales/actus/fier\304\253.csv" @@ -0,0 +1,37 @@ +modus,vox,tempus,numeralis,persona,scriptum +infinitivus,,,,,fierī +participalis,,,,,factum +imperativus,,praesens,singularis,,fī +imperativus,,praesens,pluralis,,fīte +imperativus,,futurum,singularis,,fītō +imperativus,,futurum,pluralis,,fītōte +indicativus,,praesens,singularis,prima,fīō +indicativus,,praesens,singularis,secunda,fīs +indicativus,,praesens,singularis,tertia,fit +indicativus,,praesens,pluralis,prima,fīmus +indicativus,,praesens,pluralis,secunda,fītis +indicativus,,praesens,pluralis,tertia,fīunt +indicativus,,infectum,singularis,prima,fīēbam +indicativus,,infectum,singularis,secunda,fīēbās +indicativus,,infectum,singularis,tertia,fīēbat +indicativus,,infectum,pluralis,prima,fīēbāmus +indicativus,,infectum,pluralis,secunda,fīēbātis +indicativus,,infectum,pluralis,tertia,fīēbant +indicativus,,futurum,singularis,prima,fīam +indicativus,,futurum,singularis,secunda,fīēs +indicativus,,futurum,singularis,tertia,fīet +indicativus,,futurum,pluralis,prima,fīēmus +indicativus,,futurum,pluralis,secunda,fīēis +indicativus,,futurum,pluralis,tertia,fīent +subiunctivus,,praesens,singularis,prima,fīam +subiunctivus,,praesens,singularis,secunda,fīās +subiunctivus,,praesens,singularis,tertia,fīat +subiunctivus,,praesens,pluralis,prima,fīāmus +subiunctivus,,praesens,pluralis,secunda,fīātis +subiunctivus,,praesens,pluralis,tertia,fīant +subiunctivus,,infectum,singularis,prima,fīerem +subiunctivus,,infectum,singularis,secunda,fīerēs +subiunctivus,,infectum,singularis,tertia,fīeret +subiunctivus,,infectum,pluralis,prima,fīerēmus +subiunctivus,,infectum,pluralis,secunda,fīerētis +subiunctivus,,infectum,pluralis,tertia,fīerent diff --git "a/res/scapales/actus/inqui\304\253.csv" "b/res/scapales/actus/inqui\304\253.csv" new file mode 100644 index 0000000..a631b14 --- /dev/null +++ "b/res/scapales/actus/inqui\304\253.csv" @@ -0,0 +1,18 @@ +modus,vox,tempus,numeralis,persona,scriptum +infintivus,,,,,inquiī +particpalis,,,,,inquiēns +subiunctivus,,,,,inquiat +imperativus,,praesens,,,inquie +imperativus,,futurum,,,inquitō +indicativus,,infectum,,,inquiēbat +indicativus,,futurum,,secunda,inquiēs +indicativus,,futurum,,tertia,inquiet +indicativus,,perfectum,,prima,inquiī +indicativus,,perfectum,,secunda,inquistī +indicativus,,perfectum,,tertia,inquit +indicativus,,praesens,singularis,prima,inquam +indicativus,,praesens,singularis,secunda,inquis +indicativus,,praesens,singularis,tertia,inquitō +indicativus,,praesens,pluralis,prima,inquimus +indicativus,,praesens,pluralis,secunda,inquitis +indicativus,,praesens,pluralis,tertia,inquiunt diff --git a/res/scapales/actus/meminisse.csv b/res/scapales/actus/meminisse.csv new file mode 100644 index 0000000..b5f0e0a --- /dev/null +++ b/res/scapales/actus/meminisse.csv @@ -0,0 +1,3 @@ +modus,vox,tempus,numeralis,persona,scriptum +imperativus,,,singularis,,mementō +imperativus,,,pluralis,,mementōte diff --git "a/res/scapales/actus/m\304\201lle.csv" "b/res/scapales/actus/m\304\201lle.csv" new file mode 100644 index 0000000..8a4eff2 --- /dev/null +++ "b/res/scapales/actus/m\304\201lle.csv" @@ -0,0 +1,5 @@ +modus,vox,tempus,numeralis,persona,scriptum +indicativus,,praesens,singularis,secunda,māvīs +indicativus,,praesens,singularis,tertia,māvult +indicativus,,praesens,pluralis,prima,mālumus +indicativus,,praesens,pluralis,secunda,māvultis diff --git "a/res/scapales/actus/n\305\215lle.csv" "b/res/scapales/actus/n\305\215lle.csv" new file mode 100644 index 0000000..0789ffc --- /dev/null +++ "b/res/scapales/actus/n\305\215lle.csv" @@ -0,0 +1,5 @@ +modus,vox,tempus,numeralis,persona,scriptum +imperativus,,praesens,singularis,,nōlī +imperativus,,praesens,pluralis,,nōlīte +imperativus,,futurum,singularis,,nōlitō +imperativus,,futurum,pluralis,,nōlitōte diff --git a/res/scapales/actus/velle.csv b/res/scapales/actus/velle.csv new file mode 100644 index 0000000..88d078a --- /dev/null +++ b/res/scapales/actus/velle.csv @@ -0,0 +1,10 @@ +modus,vox,tempus,numeralis,persona,scriptum +participalis,,,,,volēns +infinitivus,,praesens,,,velle +infinitivus,,perfectum,,,voluisse +indicativus,,praesens,singularis,prima,volō +indicativus,,praesens,singularis,secunda,vīs +indicativus,,praesens,singularis,terta,vult +indicativus,,praesens,singularis,prima,volumus +indicativus,,praesens,singularis,secunda,vultis +indicativus,,praesens,singularis,terta,volunt diff --git "a/res/scapales/actus/\304\253nfier\304\253.csv" "b/res/scapales/actus/\304\253nfier\304\253.csv" new file mode 100644 index 0000000..8e5128f --- /dev/null +++ "b/res/scapales/actus/\304\253nfier\304\253.csv" @@ -0,0 +1,8 @@ +modus,vox,tempus,numeralis,persona,scriptum +infinitivus,,,,,īnfierī +imperativus,,,,,īnfītō +participalis,,,,,īnfiendum +indicativus,,praesens,,,īnfit +indicativus,,infectum,,,īnfīēbat +subiunctivus,,praesens,,,īnfīat +subiunctivus,,infectum,,,īnfieret diff --git "a/res/scapales/actus/\305\215disse.csv" "b/res/scapales/actus/\305\215disse.csv" new file mode 100644 index 0000000..ec4ed5a --- /dev/null +++ "b/res/scapales/actus/\305\215disse.csv" @@ -0,0 +1,2 @@ +modus,vox,tempus,numeralis,persona,scriptum +participalis,,futurum,,ōsūrum diff --git a/res/scapales/adiectiva/aliud.csv b/res/scapales/adiectiva/aliud.csv new file mode 100644 index 0000000..34271ce --- /dev/null +++ b/res/scapales/adiectiva/aliud.csv @@ -0,0 +1,2 @@ +genus,gradus,numeralis,casus,scriptum +neutrum,,singularis,nominatvus,aliud diff --git "a/res/scapales/adiectiva/amb\305\215.csv" "b/res/scapales/adiectiva/amb\305\215.csv" new file mode 100644 index 0000000..162a091 --- /dev/null +++ "b/res/scapales/adiectiva/amb\305\215.csv" @@ -0,0 +1,15 @@ +genus,gradus,numeralis,casus,scriptum +masculinus,,,nominativus,ambō +masculinus,,,vocativus,ambō +neutrum,,,nominativus,ambō +neutrum,,,accusativus,ambō +neutrum,,,vocativus,ambō +masculinus,,,dativus,ambōbus +masculinus,,,ablativus,ambōbus +masculinus,,,locativus,ambōbus +neutrum,,,dativus,ambōbus +neutrum,,,ablativus,ambōbus +neutrum,,,locativus,ambōbus +feminum,,,dativus,ambābus +feminum,,,ablativus,ambābus +feminum,,,locativus,ambābus diff --git "a/res/scapales/adiectiva/fr\305\253g\304\253.csv" "b/res/scapales/adiectiva/fr\305\253g\304\253.csv" new file mode 100644 index 0000000..088fb91 --- /dev/null +++ "b/res/scapales/adiectiva/fr\305\253g\304\253.csv" @@ -0,0 +1,4 @@ +genus,gradus,numeralis,casus,scriptum +positivus,,,,frūgī +comparativus,,,,frūgālior +superlativus,,,,frūgālissimus diff --git a/res/scapales/adiectiva/meum.csv b/res/scapales/adiectiva/meum.csv new file mode 100644 index 0000000..615c8e7 --- /dev/null +++ b/res/scapales/adiectiva/meum.csv @@ -0,0 +1,2 @@ +genus,gradus,numeralis,casus,scriptum +masculinus,,singularis,vocativus,mī diff --git a/res/scapales/adiectiva/multum.csv b/res/scapales/adiectiva/multum.csv new file mode 100644 index 0000000..095c2b8 --- /dev/null +++ b/res/scapales/adiectiva/multum.csv @@ -0,0 +1,18 @@ +gradus,genus,numeralis,casus,scriptum +comparativus,,singularis,nominativus,plūs +comparativus,,singularis,genitivus,plūrium +comparativus,,singularis,accusativus,plūs +comparativus,,singularis,vocativus,plūs +comparativus,,pluralis,dativus,plūribus +comparativus,,pluralis,ablativus,plūribus +comparativus,,pluralis,locativus,plūribus +comparativus,,pluralis,genitivus,plūris +comparativus,neutrum,pluralis,nominativus,plūra +comparativus,neutrum,pluralis,accusativus,plūra +comparativus,neutrum,pluralis,vocativus,plūra +comparativus,masculinum,pluralis,nominativus,plūrēs +comparativus,masculinum,pluralis,accusativus,plūrēs +comparativus,masculinum,pluralis,vocativus,plūrēs +comparativus,femininum,pluralis,nominativus,plūrēs +comparativus,femininum,pluralis,accusativus,plūrēs +comparativus,femininum,pluralis,vocativus,plūrēs diff --git "a/res/scapales/adiectiva/m\304\253lle.csv" "b/res/scapales/adiectiva/m\304\253lle.csv" new file mode 100644 index 0000000..bd0cae4 --- /dev/null +++ "b/res/scapales/adiectiva/m\304\253lle.csv" @@ -0,0 +1,8 @@ +numeralis,genus,gradus,casus,scriptum +singularis,,,,mīlle +pluralis,,,nominativus,mīlia +pluralis,,,genitivus,mīlium +pluralis,,,dativus,mīlibus +pluralis,,,accusativus,mīlia +pluralis,,,ablativus,mīlibus +pluralis,,,locativus,mīlibus diff --git "a/res/scapales/adiectiva/n\304\223quam.csv" "b/res/scapales/adiectiva/n\304\223quam.csv" new file mode 100644 index 0000000..80f3a13 --- /dev/null +++ "b/res/scapales/adiectiva/n\304\223quam.csv" @@ -0,0 +1,4 @@ +genus,gradus,numeralis,casus,scriptum +positivus,,,,nēquam +comparativus,,,,nēquior +superlativus,,,,nēquissimus diff --git a/res/scapales/adiectiva/satis.csv b/res/scapales/adiectiva/satis.csv new file mode 100644 index 0000000..5322d2c --- /dev/null +++ b/res/scapales/adiectiva/satis.csv @@ -0,0 +1,3 @@ +genus,gradus,numeralis,casus,scriptum +positivus,,,,satis +comparativus,,,,satius diff --git "a/res/scapales/nomina/Ath\305\215s.csv" "b/res/scapales/nomina/Ath\305\215s.csv" new file mode 100644 index 0000000..fe9d60b --- /dev/null +++ "b/res/scapales/nomina/Ath\305\215s.csv" @@ -0,0 +1,8 @@ +casus,numeralis,scriptum +nominativus,,Athōs +genitivus,,Athō +dativus,,Athō +accusativus,,Athōn +ablativus,,Athō +locativus,,Athō +vocativus,,Athō diff --git "a/res/scapales/nomina/I\304\223s\305\253s.csv" "b/res/scapales/nomina/I\304\223s\305\253s.csv" new file mode 100644 index 0000000..0664a1c --- /dev/null +++ "b/res/scapales/nomina/I\304\223s\305\253s.csv" @@ -0,0 +1,8 @@ +casus,numeralis,scriptum +nominativus,,Iēsūs +genitivus,,Iēsū +dativus,,Iēsū +accusativus,,Iēsūm +ablativus,,Iēsū +locativus,,Iēsū +vocativus,,Iēsū diff --git a/res/scapales/nomina/dare.csv b/res/scapales/nomina/dare.csv new file mode 100644 index 0000000..54f0bc7 --- /dev/null +++ b/res/scapales/nomina/dare.csv @@ -0,0 +1,2 @@ +factum,casus,scriptum +infinituvum,,dare diff --git a/res/scapales/nomina/dea.csv b/res/scapales/nomina/dea.csv new file mode 100644 index 0000000..785d7e1 --- /dev/null +++ b/res/scapales/nomina/dea.csv @@ -0,0 +1,4 @@ +numeralis,casus,scriptum +pluralis,dativus,deābus +pluralis,ablativus,deābus +pluralis,locativus,deābus diff --git a/res/scapales/nomina/domus.csv b/res/scapales/nomina/domus.csv new file mode 100644 index 0000000..1951a12 --- /dev/null +++ b/res/scapales/nomina/domus.csv @@ -0,0 +1,5 @@ +numeralis,casus,scriptum +singularis,ablativus,domō +singularis,locativus,domī +pluralis,genitivus,domōrum +pluralis,accusativus,domōs diff --git "a/res/scapales/nomina/i\305\253gerum.csv" "b/res/scapales/nomina/i\305\253gerum.csv" new file mode 100644 index 0000000..bad8d79 --- /dev/null +++ "b/res/scapales/nomina/i\305\253gerum.csv" @@ -0,0 +1,4 @@ +numeralis,casus,scriptum +pluralis,dativus,iūgeribus +pluralis,ablativus,iūgeribus +pluralis,locativus,iūgeribus diff --git a/res/scapales/nomina/lexis.csv b/res/scapales/nomina/lexis.csv new file mode 100644 index 0000000..b70b4fc --- /dev/null +++ b/res/scapales/nomina/lexis.csv @@ -0,0 +1,4 @@ +casus,numeralis,scriptum +nominativus,,lexis +genitivus,,lexeōs +accusativus,,lexīs diff --git "a/res/scapales/nomina/vic\304\223s.csv" "b/res/scapales/nomina/vic\304\223s.csv" new file mode 100644 index 0000000..aa3df0b --- /dev/null +++ "b/res/scapales/nomina/vic\304\223s.csv" @@ -0,0 +1,9 @@ +numeralis,casus,scriptum +singularis,genitivus,vicis +singularis,dativus,vicī +singularis,accusativus,vicem +singularis,ablativus,vice +pluralis,nominativus,vicēs +pluralis,dativus,vicibus +pluralis,accusativus,vicēs +pluralis,ablativus,viribus diff --git "a/res/scapales/nomina/v\304\253s.csv" "b/res/scapales/nomina/v\304\253s.csv" new file mode 100644 index 0000000..71f1abc --- /dev/null +++ "b/res/scapales/nomina/v\304\253s.csv" @@ -0,0 +1,11 @@ +numeralis,casus,scriptum +singular,nominativus,vīs +singular,accusativus,vim +singular,ablativus,vī +singular,vocativus,vīs +pluralis,nominativus,vīrēs +pluralis,genitivus,virium +pluralis,dativus,viribus +pluralis,accusativus,vīrēs +pluralis,ablativus,viribus +pluralis,vocativus,vīs diff --git "a/res/scapales/nomina/\304\253re.csv" "b/res/scapales/nomina/\304\253re.csv" new file mode 100644 index 0000000..a06cc90 --- /dev/null +++ "b/res/scapales/nomina/\304\253re.csv" @@ -0,0 +1,8 @@ +factum,casus,scriptum +infinituvum,,īre +gerundium,genitivus,eundī +gerundium,dativus,eundō +gerundium,accusativus,eundum +gerundium,ablativus,eundō +supinum,accusativus,itum +supinum,ablativus,itū diff --git a/res/scapales/pronomina/ego.csv b/res/scapales/pronomina/ego.csv new file mode 100644 index 0000000..1fc537f --- /dev/null +++ b/res/scapales/pronomina/ego.csv @@ -0,0 +1,11 @@ +casus,genus,numeralis,scriptum +nominativus,,singularis,ego +genitivus,,singularis,meī +dativus,,singularis,mihi +accusativus,,singularis,mē +ablativus,,singularis,mē +nominativus,,pluralis,nōs +genitivus,,pluralis,nostrum +dativus,,pluralis,nōbīs +accusativus,,pluralis,nōs +ablativus,,pluralis,nōbīs diff --git a/res/scapales/pronomina/hoc.csv b/res/scapales/pronomina/hoc.csv new file mode 100644 index 0000000..c90ad4a --- /dev/null +++ b/res/scapales/pronomina/hoc.csv @@ -0,0 +1,33 @@ +numeralis,genus,casus,scriptum +singularis,,genitivus,huius +singularis,,dativus,huic +pluralis,,dativus,hīs +pluralis,,ablativus,hīs +pluralis,,locativus,hīs +singularis,neutrum,nominativus,hoc +singularis,neutrum,accusativus,hoc +singularis,neutrum,ablativus,hōc +singularis,neutrum,locativus,hōc +singularis,neutrum,vocativus,hoc +pluralis,neutrum,nominativus,haec +pluralis,neutrum,genitivus,hōrum +pluralis,neutrum,accusativus,haec +pluralis,neutrum,vocativus,haec +singularis,masculinum,nominativus,hic +singularis,masculinum,accusativus,hunc +singularis,masculinum,ablativus,hōc +singularis,masculinum,locativus,hōc +singularis,masculinum,vocativus,hic +pluralis,masculinum,nominativus,hī +pluralis,masculinum,genitivus,hōrum +pluralis,masculinum,accusativus,hōs +pluralis,masculinum,vocativus,hī +singularis,femininum,nominativus,haec +singularis,femininum,accusativus,hanc +singularis,femininum,ablativus,hāc +singularis,femininum,locativus,hāc +singularis,femininum,vocativus,haec +pluralis,femininum,nominativus,haec +pluralis,femininum,genitivus,hārum +pluralis,femininum,accusativus,hās +pluralis,femininum,vocativus,haec diff --git a/res/scapales/pronomina/id.csv b/res/scapales/pronomina/id.csv new file mode 100644 index 0000000..96d9bb5 --- /dev/null +++ b/res/scapales/pronomina/id.csv @@ -0,0 +1,33 @@ +numeralis,genus,casus,scriptum +singularis,,genitivus,eius +singularis,,dativus,eī +pluralis,,dativus,eīs +pluralis,,ablativus,eīs +pluralis,,locativus,eīs +singularis,neutrum,nominativus,id +singularis,neutrum,accusativus,id +singularis,neutrum,ablativus,eō +singularis,neutrum,locativus,eō +singularis,neutrum,vocativus,id +pluralis,neutrum,nominativus,ea +pluralis,neutrum,genitivus,eōrum +pluralis,neutrum,accusativus,ea +pluralis,neutrum,vocativus,ea +singularis,masculinum,nominativus,is +singularis,masculinum,accusativus,eum +singularis,masculinum,ablativus,eō +singularis,masculinum,locativus,eō +singularis,masculinum,vocativus,is +pluralis,masculinum,nominativus,eī +pluralis,masculinum,genitivus,eōrum +pluralis,masculinum,accusativus,eōs +pluralis,masculinum,vocativus,eī +singularis,femininum,nominativus,eae +singularis,femininum,accusativus,eam +singularis,femininum,ablativus,eā +singularis,femininum,locativus,eā +singularis,femininum,vocativus,ea +pluralis,femininum,nominativus,eae +pluralis,femininum,genitivus,eārum +pluralis,femininum,accusativus,eās +pluralis,femininum,vocativus,eae diff --git a/res/scapales/pronomina/illud.csv b/res/scapales/pronomina/illud.csv new file mode 100644 index 0000000..87f9ace --- /dev/null +++ b/res/scapales/pronomina/illud.csv @@ -0,0 +1,33 @@ +numeralis,genus,casus,scriptum +singularis,,genitivus,illīus +singularis,,dativus,illī +pluralis,,dativus,illīs +pluralis,,ablativus,illīs +pluralis,,locativus,illīs +singularis,neutrum,nominativus,illud +singularis,neutrum,accusativus,illud +singularis,neutrum,ablativus,illō +singularis,neutrum,locativus,illō +singularis,neutrum,vocativus,illud +pluralis,neutrum,nominativus,illa +pluralis,neutrum,genitivus,illōrum +pluralis,neutrum,accusativus,illa +pluralis,neutrum,vocativus,illa +singularis,masculinum,nominativus,ille +singularis,masculinum,accusativus,illum +singularis,masculinum,ablativus,illō +singularis,masculinum,locativus,illō +singularis,masculinum,vocativus,ille +pluralis,masculinum,nominativus,illī +pluralis,masculinum,genitivus,illōrum +pluralis,masculinum,accusativus,illōs +pluralis,masculinum,vocativus,illī +singularis,femininum,nominativus,illa +singularis,femininum,accusativus,illam +singularis,femininum,ablativus,illā +singularis,femininum,locativus,illā +singularis,femininum,vocativus,illa +pluralis,femininum,nominativus,illae +pluralis,femininum,genitivus,illārum +pluralis,femininum,accusativus,illās +pluralis,femininum,vocativus,illae diff --git a/res/scapales/pronomina/ipsum.csv b/res/scapales/pronomina/ipsum.csv new file mode 100644 index 0000000..ac99579 --- /dev/null +++ b/res/scapales/pronomina/ipsum.csv @@ -0,0 +1,6 @@ +genus,numeralis,casus,scriptum +masculinum,singularis,nominativus,ipse +masculinum,singularis,vocativus,ipse +neutrum,singularis,nominativus,ipsum +neutrum,singularis,accusativus,ipsum +neutrum,singularis,vocativus,ipsum diff --git "a/res/scapales/pronomina/s\304\223.csv" "b/res/scapales/pronomina/s\304\223.csv" new file mode 100644 index 0000000..e5fe5fc --- /dev/null +++ "b/res/scapales/pronomina/s\304\223.csv" @@ -0,0 +1,5 @@ +casus,genus,numeralis,scriptum +genitivus,,,suī +dativus,,,sibi +accusativus,,,sē +ablativus,,,sē diff --git "a/res/scapales/pronomina/t\305\253.csv" "b/res/scapales/pronomina/t\305\253.csv" new file mode 100644 index 0000000..ecd0660 --- /dev/null +++ "b/res/scapales/pronomina/t\305\253.csv" @@ -0,0 +1,11 @@ +casus,genus,numeralis,scriptum +nominativus,,singularis,tū +genitivus,,singularis,tuī +dativus,,singularis,tibi +accusativus,,singularis,tē +ablativus,,singularis,tē +nominativus,,pluralis,vōs +genitivus,,pluralis,vestrum +dativus,,pluralis,vōbīs +accusativus,,pluralis,vōs +ablativus,,pluralis,vōbīs diff --git a/res/tabula/actus/primus.csv b/res/tabula/actus/primus.csv new file mode 100644 index 0000000..d18b33d --- /dev/null +++ b/res/tabula/actus/primus.csv @@ -0,0 +1,106 @@ +modus,vox,tempus,numeralis,persona,scriptum +infinitivus,activa,praesens,,,āre +infinitivus,activa,perfectum,,,isse +infinitivus,passiva,praesens,,,ārī +participalis,activa,praesens,,,āns +participalis,passiva,perfectum,,,um +participalis,passiva,futurum,,,andum +participalis,activa,futurum,,,ūrum +imperativus,activa,praesens,singularis,ā +imperativus,activa,praesens,pluralis,āte +imperativus,activa,futurum,singularis,ātō +imperativus,activa,futurum,pluralis,ātōte +imperativus,passiva,praesens,singularis,āre +imperativus,passiva,praesens,pluralis,āminī +imperativus,passiva,futurum,singularis,ātor +imperativus,passiva,futurum,pluralis,antor +indicativus,activa,praesens,singularis,prima,ō +indicativus,activa,praesens,singularis,secunda,ās +indicativus,activa,praesens,singularis,tertia,at +indicativus,activa,praesens,pluralis,prima,āmus +indicativus,activa,praesens,pluralis,secunda,ātis +indicativus,activa,praesens,pluralis,tertia,ant +indicativus,activa,infectum,singularis,prima,ābam +indicativus,activa,infectum,singularis,secunda,ābās +indicativus,activa,infectum,singularis,tertia,ābat +indicativus,activa,infectum,pluralis,prima,ābāmus +indicativus,activa,infectum,pluralis,secunda,ābātis +indicativus,activa,infectum,pluralis,tertia,ābant +indicativus,activa,futurum,singularis,prima,ābō +indicativus,activa,futurum,singularis,secunda,ābis +indicativus,activa,futurum,singularis,tertia,ābit +indicativus,activa,futurum,pluralis,prima,ābimus +indicativus,activa,futurum,pluralis,secunda,ābitis +indicativus,activa,futurum,pluralis,tertia,ābunt +indicativus,activa,perfectum,singularis,prima,ī +indicativus,activa,perfectum,singularis,secunda,istī +indicativus,activa,perfectum,singularis,tertia,it +indicativus,activa,perfectum,pluralis,prima,imus +indicativus,activa,perfectum,pluralis,secunda,itis +indicativus,activa,perfectum,pluralis,tertia,ērunt +indicativus,activa,pluperfectum,singularis,prima,eram +indicativus,activa,pluperfectum,singularis,secunda,erās +indicativus,activa,pluperfectum,singularis,tertia,erat +indicativus,activa,pluperfectum,pluralis,prima,erāmus +indicativus,activa,pluperfectum,pluralis,secunda,erātis +indicativus,activa,pluperfectum,pluralis,tertia,ērant +indicativus,activa,exigendum,singularis,prima,erō +indicativus,activa,exigendum,singularis,secunda,erim +indicativus,activa,exigendum,singularis,tertia,erit +indicativus,activa,exigendum,pluralis,prima,erimus +indicativus,activa,exigendum,pluralis,secunda,eritis +indicativus,activa,exigendum,pluralis,tertia,ērint +indicativus,perfectum,praesens,singularis,prima,or +indicativus,perfectum,praesens,singularis,secunda,āris +indicativus,perfectum,praesens,singularis,tertia,ātur +indicativus,perfectum,praesens,pluralis,prima,āmur +indicativus,perfectum,praesens,pluralis,secunda,āminī +indicativus,perfectum,praesens,pluralis,tertia,antur +indicativus,perfectum,infectum,singularis,prima,ābar +indicativus,perfectum,infectum,singularis,secunda,ābāris +indicativus,perfectum,infectum,singularis,tertia,ābātur +indicativus,perfectum,infectum,pluralis,prima,ābāmur +indicativus,perfectum,infectum,pluralis,secunda,ābāminī +indicativus,perfectum,infectum,pluralis,tertia,ābantur +indicativus,perfectum,futurum,singularis,prima,ābor +indicativus,perfectum,futurum,singularis,secunda,āberis +indicativus,perfectum,futurum,singularis,tertia,ābitur +indicativus,perfectum,futurum,pluralis,prima,ābimur +indicativus,perfectum,futurum,pluralis,secunda,ābiminī +indicativus,perfectum,futurum,pluralis,tertia,ābuntur +subiunctivus,activa,praesens,singularis,prima,em +subiunctivus,activa,praesens,singularis,secunda,ēs +subiunctivus,activa,praesens,singularis,tertia,et +subiunctivus,activa,praesens,pluralis,prima,ēmus +subiunctivus,activa,praesens,pluralis,secunda,ētis +subiunctivus,activa,praesens,pluralis,tertia,ent +subiunctivus,activa,infectum,singularis,prima,ārem +subiunctivus,activa,infectum,singularis,secunda,ārēs +subiunctivus,activa,infectum,singularis,tertia,āret +subiunctivus,activa,infectum,pluralis,prima,ārēmus +subiunctivus,activa,infectum,pluralis,secunda,ārētis +subiunctivus,activa,infectum,pluralis,tertia,ārent +subiunctivus,activa,perfectum,singularis,prima,erim +subiunctivus,activa,perfectum,singularis,secunda,erīs +subiunctivus,activa,perfectum,singularis,tertia,erit +subiunctivus,activa,perfectum,pluralis,prima,erīmus +subiunctivus,activa,perfectum,pluralis,secunda,erītis +subiunctivus,activa,perfectum,pluralis,tertia,erint +subiunctivus,activa,pluperfectum,singularis,prima,issem +subiunctivus,activa,pluperfectum,singularis,secunda,issēs +subiunctivus,activa,pluperfectum,singularis,tertia,isset +subiunctivus,activa,pluperfectum,pluralis,prima,issēmus +subiunctivus,activa,pluperfectum,pluralis,secunda,issētis +subiunctivus,activa,pluperfectum,pluralis,tertia,issent +subiunctivus,passiva,praesens,singularis,prima,er +subiunctivus,passiva,praesens,singularis,secunda,ēris +subiunctivus,passiva,praesens,singularis,tertia,ētur +subiunctivus,passiva,praesens,pluralis,prima,ēmur +subiunctivus,passiva,praesens,pluralis,secunda,ēminī +subiunctivus,passiva,praesens,pluralis,tertia,entur +subiunctivus,passiva,infectum,singularis,prima,ārer +subiunctivus,passiva,infectum,singularis,secunda,ārēris +subiunctivus,passiva,infectum,singularis,tertia,ārētur +subiunctivus,passiva,infectum,pluralis,prima,ārēmur +subiunctivus,passiva,infectum,pluralis,secunda,ārēminī +subiunctivus,passiva,infectum,pluralis,tertia,ārentur diff --git a/res/tabula/actus/quartus.csv b/res/tabula/actus/quartus.csv new file mode 100644 index 0000000..132ffa8 --- /dev/null +++ b/res/tabula/actus/quartus.csv @@ -0,0 +1,106 @@ +modus ,vox ,tempus ,numeralis ,persona ,scriptum +infinitivus ,activa ,praesens , , ,īre +infinitivus ,activa ,perfectum , , ,isse +infinitivus ,passiva ,praesens , , ,īrī +participalis ,activa ,praesens , , ,iēns +participalis ,passiva ,perfectum , , ,um +participalis ,passiva ,futurum , , ,iendum +participalis ,activa ,futurum , , ,ūrum +imperativus ,activa ,praesens ,singularis , ,ī +imperativus ,activa ,praesens ,pluralis , ,īte +imperativus ,activa ,futurum ,singularis , ,ītō +imperativus ,activa ,futurum ,pluralis , ,ītōte +imperativus ,passiva ,praesens ,singularis , ,īre +imperativus ,passiva ,praesens ,pluralis , ,īminī +imperativus ,passiva ,futurum ,singularis , ,ītor +imperativus ,passiva ,futurum ,pluralis , ,iuntor +indicativus ,activa ,praesens ,singularis ,prima ,iō +indicativus ,activa ,praesens ,singularis ,secunda ,īs +indicativus ,activa ,praesens ,singularis ,tertia ,it +indicativus ,activa ,praesens ,pluralis ,prima ,īmus +indicativus ,activa ,praesens ,pluralis ,secunda ,ītis +indicativus ,activa ,praesens ,pluralis ,tertia ,iunt +indicativus ,activa ,infectum ,singularis ,prima ,iēbam +indicativus ,activa ,infectum ,singularis ,secunda ,iēbās +indicativus ,activa ,infectum ,singularis ,tertia ,iēbat +indicativus ,activa ,infectum ,pluralis ,prima ,iēbāmus +indicativus ,activa ,infectum ,pluralis ,secunda ,iēbātis +indicativus ,activa ,infectum ,pluralis ,tertia ,iēbant +indicativus ,activa ,futurum ,singularis ,prima ,iam +indicativus ,activa ,futurum ,singularis ,secunda ,iēs +indicativus ,activa ,futurum ,singularis ,tertia ,iet +indicativus ,activa ,futurum ,pluralis ,prima ,iēmus +indicativus ,activa ,futurum ,pluralis ,secunda ,iētis +indicativus ,activa ,futurum ,pluralis ,tertia ,ient +indicativus ,activa ,perfectum ,singularis ,prima ,ī +indicativus ,activa ,perfectum ,singularis ,secunda ,istī +indicativus ,activa ,perfectum ,singularis ,tertia ,it +indicativus ,activa ,perfectum ,pluralis ,prima ,imus +indicativus ,activa ,perfectum ,pluralis ,secunda ,istis +indicativus ,activa ,perfectum ,pluralis ,tertia ,ērunt +indicativus ,activa ,pluperfectum ,singularis ,prima ,eram +indicativus ,activa ,pluperfectum ,singularis ,secunda ,erās +indicativus ,activa ,pluperfectum ,singularis ,tertia ,erat +indicativus ,activa ,pluperfectum ,pluralis ,prima ,erāmus +indicativus ,activa ,pluperfectum ,pluralis ,secunda ,erāstis +indicativus ,activa ,pluperfectum ,pluralis ,tertia ,erant +indicativus ,activa ,exigendum ,singularis ,prima ,erō +indicativus ,activa ,exigendum ,singularis ,secunda ,eris +indicativus ,activa ,exigendum ,singularis ,tertia ,erit +indicativus ,activa ,exigendum ,pluralis ,prima ,erimus +indicativus ,activa ,exigendum ,pluralis ,secunda ,eristis +indicativus ,activa ,exigendum ,pluralis ,tertia ,erint +indicativus ,passiva ,praesens ,singularis ,prima ,ior +indicativus ,passiva ,praesens ,singularis ,secunda ,eris +indicativus ,passiva ,praesens ,singularis ,tertia ,ītur +indicativus ,passiva ,praesens ,pluralis ,prima ,īmur +indicativus ,passiva ,praesens ,pluralis ,secunda ,iminī +indicativus ,passiva ,praesens ,pluralis ,tertia ,iuntur +indicativus ,passiva ,infectum ,singularis ,prima ,iēbar +indicativus ,passiva ,infectum ,singularis ,secunda ,iēbāris +indicativus ,passiva ,infectum ,singularis ,tertia ,iēbātur +indicativus ,passiva ,infectum ,pluralis ,prima ,iēbāmur +indicativus ,passiva ,infectum ,pluralis ,secunda ,iēbāminī +indicativus ,passiva ,infectum ,pluralis ,tertia ,iēbantur +indicativus ,passiva ,futurum ,singularis ,prima ,iar +indicativus ,passiva ,futurum ,singularis ,secunda ,iēris +indicativus ,passiva ,futurum ,singularis ,tertia ,iētur +indicativus ,passiva ,futurum ,pluralis ,prima ,iēmur +indicativus ,passiva ,futurum ,pluralis ,secunda ,iēminī +indicativus ,passiva ,futurum ,pluralis ,tertia ,ientur +subiunctivus ,activa ,praesens ,singularis ,prima ,iam +subiunctivus ,activa ,praesens ,singularis ,secunda ,iās +subiunctivus ,activa ,praesens ,singularis ,tertia ,iat +subiunctivus ,activa ,praesens ,pluralis ,prima ,iāmus +subiunctivus ,activa ,praesens ,pluralis ,secunda ,iātis +subiunctivus ,activa ,praesens ,pluralis ,tertia ,iant +subiunctivus ,activa ,infectum ,singularis ,prima ,īrem +subiunctivus ,activa ,infectum ,singularis ,secunda ,īrēs +subiunctivus ,activa ,infectum ,singularis ,tertia ,īret +subiunctivus ,activa ,infectum ,pluralis ,prima ,īrēmus +subiunctivus ,activa ,infectum ,singularis ,secunda ,īrētis +subiunctivus ,activa ,infectum ,pluralis ,tertia ,īrent +subiunctivus ,activa ,perfectum ,singularis ,prima ,erim +subiunctivus ,activa ,perfectum ,singularis ,secunda ,erīs +subiunctivus ,activa ,perfectum ,singularis ,tertia ,erit +subiunctivus ,activa ,perfectum ,pluralis ,prima ,erīmus +subiunctivus ,activa ,perfectum ,singularis ,secunda ,erītis +subiunctivus ,activa ,perfectum ,pluralis ,tertia ,erint +subiunctivus ,activa ,pluperfectum ,singularis ,prima ,issem +subiunctivus ,activa ,pluperfectum ,singularis ,secunda ,issēs +subiunctivus ,activa ,pluperfectum ,singularis ,tertia ,isset +subiunctivus ,activa ,pluperfectum ,pluralis ,prima ,issēmus +subiunctivus ,activa ,pluperfectum ,pluralis ,secunda ,issētis +subiunctivus ,activa ,pluperfectum ,pluralis ,tertia ,issent +subiunctivus ,passiva ,praesens ,singularis ,prima ,iar +subiunctivus ,passiva ,praesens ,singularis ,secunda ,iāris +subiunctivus ,passiva ,praesens ,singularis ,tertia ,iātur +subiunctivus ,passiva ,praesens ,pluralis ,prima ,iāmur +subiunctivus ,passiva ,praesens ,pluralis ,secunda ,iāminī +subiunctivus ,passiva ,praesens ,pluralis ,tertia ,iantur +subiunctivus ,passiva ,infectum ,singularis ,prima ,īrer +subiunctivus ,passiva ,infectum ,singularis ,secunda ,īrēris +subiunctivus ,passiva ,infectum ,singularis ,tertia ,īrētur +subiunctivus ,passiva ,infectum ,pluralis ,prima ,īrēmur +subiunctivus ,passiva ,infectum ,pluralis ,secunda ,īrēminī +subiunctivus ,passiva ,infectum ,pluralis ,tertia ,īrentur diff --git a/res/tabula/actus/secundus.csv b/res/tabula/actus/secundus.csv new file mode 100644 index 0000000..e036489 --- /dev/null +++ b/res/tabula/actus/secundus.csv @@ -0,0 +1,106 @@ +modus,vox,tempus,numeralis,persona,scriptum +infinitivus,activa,praesens,,,ēre +infinitivus,activa,perfectum,,,ēvissem +infinitivus,passiva,praesens,,,ērī +participalis,activa,praesens,,,ēns +participalis,passiva,perfectum,,,um +participalis,passiva,futurum,,,endum +participalis,activa,futurum,,,ūrum +imperativus,activa,praesens,singularis,ē +imperativus,activa,praesens,pluralis,ēte +imperativus,activa,futurum,singularis,ētō +imperativus,activa,futurum,pluralis,ētōte +imperativus,passiva,praesens,singularis,ēre +imperativus,passiva,praesens,pluralis,ēminī +imperativus,passiva,futurum,singularis,ētor +imperativus,passiva,futurum,pluralis,entor +indicativus,activa,praesens,singularis,prima,eō +indicativus,activa,praesens,singularis,secunda,ēs +indicativus,activa,praesens,singularis,tertia,et +indicativus,activa,praesens,pluralis,prima,ēmus +indicativus,activa,praesens,pluralis,secunda,ētis +indicativus,activa,praesens,pluralis,tertia,ent +indicativus,activa,infectum,singularis,prima,ēbam +indicativus,activa,infectum,singularis,secunda,ēbās +indicativus,activa,infectum,singularis,tertia,ēbat +indicativus,activa,infectum,pluralis,prima,ēbāmus +indicativus,activa,infectum,pluralis,secunda,ēbātis +indicativus,activa,infectum,pluralis,tertia,ēbant +indicativus,activa,futurum,singularis,prima,ēbō +indicativus,activa,futurum,singularis,secunda,ēbis +indicativus,activa,futurum,singularis,tertia,ēbit +indicativus,activa,futurum,pluralis,prima,ēbimus +indicativus,activa,futurum,pluralis,secunda,ēbitis +indicativus,activa,futurum,pluralis,tertia,ēbunt +indicativus,activa,perfectum,singularis,prima,ī +indicativus,activa,perfectum,singularis,secunda,istī +indicativus,activa,perfectum,singularis,tertia,it +indicativus,activa,perfectum,pluralis,prima,imus +indicativus,activa,perfectum,pluralis,secunda,itis +indicativus,activa,perfectum,pluralis,tertia,ērunt +indicativus,activa,pluperfectum,singularis,prima,eram +indicativus,activa,pluperfectum,singularis,secunda,erās +indicativus,activa,pluperfectum,singularis,tertia,erat +indicativus,activa,pluperfectum,pluralis,prima,erāmus +indicativus,activa,pluperfectum,pluralis,secunda,erātis +indicativus,activa,pluperfectum,pluralis,tertia,ērant +indicativus,activa,exigendum,singularis,prima,erō +indicativus,activa,exigendum,singularis,secunda,erim +indicativus,activa,exigendum,singularis,tertia,erit +indicativus,activa,exigendum,pluralis,prima,erimus +indicativus,activa,exigendum,pluralis,secunda,eritis +indicativus,activa,exigendum,pluralis,tertia,ērint +indicativus,perfectum,praesens,singularis,prima,eor +indicativus,perfectum,praesens,singularis,secunda,ēris +indicativus,perfectum,praesens,singularis,tertia,ētur +indicativus,perfectum,praesens,pluralis,prima,ēmur +indicativus,perfectum,praesens,pluralis,secunda,ēminī +indicativus,perfectum,praesens,pluralis,tertia,entur +indicativus,perfectum,infectum,singularis,prima,ēbar +indicativus,perfectum,infectum,singularis,secunda,ēbāris +indicativus,perfectum,infectum,singularis,tertia,ēbātur +indicativus,perfectum,infectum,pluralis,prima,ēbāmur +indicativus,perfectum,infectum,pluralis,secunda,ēbāminī +indicativus,perfectum,infectum,pluralis,tertia,ēbantur +indicativus,perfectum,futurum,singularis,prima,ēbor +indicativus,perfectum,futurum,singularis,secunda,ēberis +indicativus,perfectum,futurum,singularis,tertia,ēbitur +indicativus,perfectum,futurum,pluralis,prima,ēbimur +indicativus,perfectum,futurum,pluralis,secunda,ēbiminī +indicativus,perfectum,futurum,pluralis,tertia,ēbuntur +subiunctivus,activa,praesens,singularis,prima,eam +subiunctivus,activa,praesens,singularis,secunda,eās +subiunctivus,activa,praesens,singularis,tertia,eat +subiunctivus,activa,praesens,pluralis,prima,eāmus +subiunctivus,activa,praesens,pluralis,secunda,eātis +subiunctivus,activa,praesens,pluralis,tertia,eant +subiunctivus,activa,infectum,singularis,prima,ērem +subiunctivus,activa,infectum,singularis,secunda,ērēs +subiunctivus,activa,infectum,singularis,tertia,ēret +subiunctivus,activa,infectum,pluralis,prima,ērēmus +subiunctivus,activa,infectum,pluralis,secunda,ērētis +subiunctivus,activa,infectum,pluralis,tertia,ērent +subiunctivus,activa,perfectum,singularis,prima,erim +subiunctivus,activa,perfectum,singularis,secunda,erīs +subiunctivus,activa,perfectum,singularis,tertia,erit +subiunctivus,activa,perfectum,pluralis,prima,erīmus +subiunctivus,activa,perfectum,pluralis,secunda,erītis +subiunctivus,activa,perfectum,pluralis,tertia,erint +subiunctivus,activa,pluperfectum,singularis,prima,issem +subiunctivus,activa,pluperfectum,singularis,secunda,issēs +subiunctivus,activa,pluperfectum,singularis,tertia,isset +subiunctivus,activa,pluperfectum,pluralis,prima,issēmus +subiunctivus,activa,pluperfectum,pluralis,secunda,issētis +subiunctivus,activa,pluperfectum,pluralis,tertia,issent +subiunctivus,passiva,praesens,singularis,prima,ear +subiunctivus,passiva,praesens,singularis,secunda,eāris +subiunctivus,passiva,praesens,singularis,tertia,eātur +subiunctivus,passiva,praesens,pluralis,prima,eāmur +subiunctivus,passiva,praesens,pluralis,secunda,eāminī +subiunctivus,passiva,praesens,pluralis,tertia,eantur +subiunctivus,passiva,infectum,singularis,prima,ērer +subiunctivus,passiva,infectum,singularis,secunda,ērēris +subiunctivus,passiva,infectum,singularis,tertia,ērētur +subiunctivus,passiva,infectum,pluralis,prima,ērēmur +subiunctivus,passiva,infectum,pluralis,secunda,ērēminī +subiunctivus,passiva,infectum,pluralis,tertia,ērentur diff --git a/res/tabula/actus/tertius.csv b/res/tabula/actus/tertius.csv new file mode 100644 index 0000000..e4b99dd --- /dev/null +++ b/res/tabula/actus/tertius.csv @@ -0,0 +1,106 @@ +modus,vox,tempus,numeralis,persona,scriptum +indicativus,activa,praesens,,,ere +indicativus,activa,perfectum,,,isse +infinitivus,passiva,praesens,,,ī +participalis,activa,praesens,,,iēns +participalis,activa,perfectum,um +participalis,activa,futurum,,,endum +participalis,passiva,futurum,,,ūrum +imperativus,activa,praesens,singularis,,e +imperativus,activa,praesens,pluralis,,ite +imperativus,activa,futurum,singularis,,itō +imperativus,activa,futurum,pluralis,,itōte +imperativus,passiva,praesens,singularis,,ere +imperativus,passiva,praesens,pluralis,,iminī +imperativus,passiva,futurum,singularis,,itor +imperativus,passiva,futurum,pluralis,,untor +indicativus,activa,praesens,singularis,prima,ō +indicativus,activa,praesens,singularis,secunda,is +indicativus,activa,praesens,singularis,tertia,it +indicativus,activa,praesens,pluralis,prima,imus +indicativus,activa,praesens,pluralis,secunda,itis +indicativus,activa,praesens,pluralis,tertia,unt +indicativus,activa,infectum,singularis,prima,ēbam +indicativus,activa,infectum,singularis,secunda,ēbās +indicativus,activa,infectum,singularis,tertia,ēbat +indicativus,activa,infectum,pluralis,prima,ēbāmus +indicativus,activa,infectum,pluralis,secunda,ēbātis +indicativus,activa,infectum,pluralis,tertia,ēbant +indicativus,activa,futurum,singularis,prima,am +indicativus,activa,futurum,singularis,secunda,ēs +indicativus,activa,futurum,singularis,tertia,et +indicativus,activa,futurum,pluralis,prima,ēmus +indicativus,activa,futurum,pluralis,secunda,ētis +indicativus,activa,futurum,pluralis,tertia,ent +indicativus,activa,perfectum,singularis,prima,ī +indicativus,activa,perfectum,singularis,secunda,istī +indicativus,activa,perfectum,singularis,tertia,it +indicativus,activa,perfectum,pluralis,prima,imus +indicativus,activa,perfectum,pluralis,secunda,istis +indicativus,activa,perfectum,pluralis,tertia,ērunt +indicativus,activa,pluperfectum,singularis,prima,eram +indicativus,activa,pluperfectum,singularis,secunda,erās +indicativus,activa,pluperfectum,singularis,tertia,erat +indicativus,activa,pluperfectum,pluralis,prima,erāmus +indicativus,activa,pluperfectum,pluralis,secunda,erātis +indicativus,activa,pluperfectum,pluralis,tertia,erant +indicativus,activa,exigendum,singularis,prima,erō +indicativus,activa,exigendum,singularis,secunda,eris +indicativus,activa,exigendum,singularis,tertia,erit +indicativus,activa,exigendum,pluralis,prima,erimus +indicativus,activa,exigendum,pluralis,secunda,eritis +indicativus,activa,exigendum,pluralis,tertia,erint +indicativus,passiva,praesens,singularis,prima,or +indicativus,passiva,praesens,singularis,secunda,eris +indicativus,passiva,praesens,singularis,tertia,itur +indicativus,passiva,praesens,pluralis,prima,imur +indicativus,passiva,praesens,pluralis,secunda,iminī +indicativus,passiva,praesens,pluralis,tertia,untur +indicativus,passiva,infectum,singularis,prima,ēbar +indicativus,passiva,infectum,singularis,secunda,ēbāris +indicativus,passiva,infectum,singularis,tertia,ēbātur +indicativus,passiva,infectum,pluralis,prima,ēbāmur +indicativus,passiva,infectum,pluralis,secunda,ēbāminī +indicativus,passiva,infectum,pluralis,tertia,ēbantur +indicativus,passiva,futurum,singularis,prima,ar +indicativus,passiva,futurum,singularis,secunda,ēris +indicativus,passiva,futurum,singularis,tertia,ētur +indicativus,passiva,futurum,pluralis,prima,ēmur +indicativus,passiva,futurum,pluralis,secunda,ēminī +indicativus,passiva,futurum,pluralis,tertia,entur +subiunctivus,activa,praesens,singularis,prima,am +subiunctivus,activa,praesens,singularis,secunda,ās +subiunctivus,activa,praesens,singularis,tertia,at +subiunctivus,activa,praesens,pluralis,prima,āmus +subiunctivus,activa,praesens,pluralis,secunda,ātis +subiunctivus,activa,praesens,pluralis,tertia,ant +subiunctivus,activa,infectum,singularis,prima,erem +subiunctivus,activa,infectum,singularis,secunda,erēs +subiunctivus,activa,infectum,singularis,tertia,eret +subiunctivus,activa,infectum,pluralis,prima,erēmus +subiunctivus,activa,infectum,pluralis,secunda,erētis +subiunctivus,activa,infectum,pluralis,tertia,erent +subiunctivus,activa,perfectum,singularis,prima,erim +subiunctivus,activa,perfectum,singularis,secunda,erīs +subiunctivus,activa,perfectum,singularis,tertia,erit +subiunctivus,activa,perfectum,pluralis,prima,erīmus +subiunctivus,activa,perfectum,pluralis,secunda,erītis +subiunctivus,activa,perfectum,pluralis,tertia,erint +subiunctivus,activa,pluperfectum,singularis,prima,issem +subiunctivus,activa,pluperfectum,singularis,secunda,issēs +subiunctivus,activa,pluperfectum,singularis,tertia,isset +subiunctivus,activa,pluperfectum,pluralis,prima,issēmus +subiunctivus,activa,pluperfectum,pluralis,secunda,issētis +subiunctivus,activa,pluperfectum,pluralis,tertia,issent +subiunctivus,passiva,praesens,singularis,prima,ar +subiunctivus,passiva,praesens,singularis,secunda,āris +subiunctivus,passiva,praesens,singularis,tertia,ātur +subiunctivus,passiva,praesens,pluralis,prima,āmur +subiunctivus,passiva,praesens,pluralis,secunda,āminī +subiunctivus,passiva,praesens,pluralis,tertia,antur +subiunctivus,passiva,infectum,singularis,prima,erer +subiunctivus,passiva,infectum,singularis,secunda,erēris +subiunctivus,passiva,infectum,singularis,tertia,erētur +subiunctivus,passiva,infectum,pluralis,prima,erēmur +subiunctivus,passiva,infectum,pluralis,secunda,erēminī +subiunctivus,passiva,infectum,pluralis,tertia,erentur diff --git a/res/tabula/actus/tertiusVarius.csv b/res/tabula/actus/tertiusVarius.csv new file mode 100644 index 0000000..19cfe0c --- /dev/null +++ b/res/tabula/actus/tertiusVarius.csv @@ -0,0 +1,106 @@ +modus,vox,tempus,numeralis,persona,scriptum +indicativus,activa,praesens,,,ere +indicativus,activa,perfectum,,,isse +infinitivus,passiva,praesens,,,ī +participalis,activa,praesens,,,iēns +participalis,activa,perfectum,um +participalis,activa,futurum,,,iendum +participalis,passiva,futurum,,,ūrum +imperativus,activa,praesens,singularis,,e +imperativus,activa,praesens,pluralis,,ite +imperativus,activa,futurum,singularis,,itō +imperativus,activa,futurum,pluralis,,itōte +imperativus,passiva,praesens,singularis,,ere +imperativus,passiva,praesens,pluralis,,iminī +imperativus,passiva,futurum,singularis,,itor +imperativus,passiva,futurum,pluralis,,iuntor +indicativus,activa,praesens,singularis,prima,iō +indicativus,activa,praesens,singularis,secunda,is +indicativus,activa,praesens,singularis,tertia,it +indicativus,activa,praesens,pluralis,prima,imus +indicativus,activa,praesens,pluralis,secunda,itis +indicativus,activa,praesens,pluralis,tertia,iunt +indicativus,activa,infectum,singularis,prima,iēbam +indicativus,activa,infectum,singularis,secunda,iēbās +indicativus,activa,infectum,singularis,tertia,iēbat +indicativus,activa,infectum,pluralis,prima,iēbāmus +indicativus,activa,infectum,pluralis,secunda,iēbātis +indicativus,activa,infectum,pluralis,tertia,iēbant +indicativus,activa,futurum,singularis,prima,iam +indicativus,activa,futurum,singularis,secunda,iēs +indicativus,activa,futurum,singularis,tertia,iet +indicativus,activa,futurum,pluralis,prima,iēmus +indicativus,activa,futurum,pluralis,secunda,iētis +indicativus,activa,futurum,pluralis,tertia,ient +indicativus,activa,perfectum,singularis,prima,ī +indicativus,activa,perfectum,singularis,secunda,istī +indicativus,activa,perfectum,singularis,tertia,it +indicativus,activa,perfectum,pluralis,prima,imus +indicativus,activa,perfectum,pluralis,secunda,istis +indicativus,activa,perfectum,pluralis,tertia,ērunt +indicativus,activa,pluperfectum,singularis,prima,eram +indicativus,activa,pluperfectum,singularis,secunda,erās +indicativus,activa,pluperfectum,singularis,tertia,erat +indicativus,activa,pluperfectum,pluralis,prima,erāmus +indicativus,activa,pluperfectum,pluralis,secunda,erātis +indicativus,activa,pluperfectum,pluralis,tertia,erant +indicativus,activa,exigendum,singularis,prima,erō +indicativus,activa,exigendum,singularis,secunda,eris +indicativus,activa,exigendum,singularis,tertia,erit +indicativus,activa,exigendum,pluralis,prima,erimus +indicativus,activa,exigendum,pluralis,secunda,eritis +indicativus,activa,exigendum,pluralis,tertia,erint +indicativus,passiva,praesens,singularis,prima,ior +indicativus,passiva,praesens,singularis,secunda,eris +indicativus,passiva,praesens,singularis,tertia,itur +indicativus,passiva,praesens,pluralis,prima,imur +indicativus,passiva,praesens,pluralis,secunda,iminī +indicativus,passiva,praesens,pluralis,tertia,untur +indicativus,passiva,infectum,singularis,prima,iēbar +indicativus,passiva,infectum,singularis,secunda,iēbāris +indicativus,passiva,infectum,singularis,tertia,iēbātur +indicativus,passiva,infectum,pluralis,prima,iēbāmur +indicativus,passiva,infectum,pluralis,secunda,iēbāminī +indicativus,passiva,infectum,pluralis,tertia,iēbantur +indicativus,passiva,futurum,singularis,prima,iar +indicativus,passiva,futurum,singularis,secunda,iēris +indicativus,passiva,futurum,singularis,tertia,iētur +indicativus,passiva,futurum,pluralis,prima,iēmur +indicativus,passiva,futurum,pluralis,secunda,iēminī +indicativus,passiva,futurum,pluralis,tertia,ientur +subiunctivus,activa,praesens,singularis,prima,iam +subiunctivus,activa,praesens,singularis,secunda,iās +subiunctivus,activa,praesens,singularis,tertia,iat +subiunctivus,activa,praesens,pluralis,prima,iāmus +subiunctivus,activa,praesens,pluralis,secunda,iātis +subiunctivus,activa,praesens,pluralis,tertia,iant +subiunctivus,activa,infectum,singularis,prima,erem +subiunctivus,activa,infectum,singularis,secunda,erēs +subiunctivus,activa,infectum,singularis,tertia,eret +subiunctivus,activa,infectum,pluralis,prima,erēmus +subiunctivus,activa,infectum,pluralis,secunda,erētis +subiunctivus,activa,infectum,pluralis,tertia,erent +subiunctivus,activa,perfectum,singularis,prima,erim +subiunctivus,activa,perfectum,singularis,secunda,erīs +subiunctivus,activa,perfectum,singularis,tertia,erit +subiunctivus,activa,perfectum,pluralis,prima,erīmus +subiunctivus,activa,perfectum,pluralis,secunda,erītis +subiunctivus,activa,perfectum,pluralis,tertia,erint +subiunctivus,activa,pluperfectum,singularis,prima,issem +subiunctivus,activa,pluperfectum,singularis,secunda,issēs +subiunctivus,activa,pluperfectum,singularis,tertia,isset +subiunctivus,activa,pluperfectum,pluralis,prima,issēmus +subiunctivus,activa,pluperfectum,pluralis,secunda,issētis +subiunctivus,activa,pluperfectum,pluralis,tertia,issent +subiunctivus,passiva,praesens,singularis,prima,iar +subiunctivus,passiva,praesens,singularis,secunda,iāris +subiunctivus,passiva,praesens,singularis,tertia,iātur +subiunctivus,passiva,praesens,pluralis,prima,iāmur +subiunctivus,passiva,praesens,pluralis,secunda,iāminī +subiunctivus,passiva,praesens,pluralis,tertia,iantur +subiunctivus,passiva,infectum,singularis,prima,erer +subiunctivus,passiva,infectum,singularis,secunda,erēris +subiunctivus,passiva,infectum,singularis,tertia,erētur +subiunctivus,passiva,infectum,pluralis,prima,erēmur +subiunctivus,passiva,infectum,pluralis,secunda,erēminī +subiunctivus,passiva,infectum,pluralis,tertia,erentur diff --git a/res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv b/res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv new file mode 100644 index 0000000..a574a25 --- /dev/null +++ b/res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv @@ -0,0 +1,37 @@ +numeralis,gradus,genus,casus,scriptum +pluralis,,,dativus,īs +pluralis,,,ablativus,īs +pluralis,,,locativus,īs +singularis,,neutrum,nominativus,um +singularis,,neutrum,genitivus,ī +singularis,,neutrum,dativus,ō +singularis,,neutrum,accusativus,um +singularis,,neutrum,ablativus,ō +singularis,,neutrum,locativus,ō +singularis,,neutrum,vocativus,um +pluralis,,neutrum,nominativus,a +pluralis,,neutrum,genitivus,ōrum +pluralis,,neutrum,accusativus,a +pluralis,,neutrum,vocativus,a +singularis,,masculinum,nominativus,us +singularis,,masculinum,genitivus,ī +singularis,,masculinum,dativus,ō +singularis,,masculinum,accusativus,um +singularis,,masculinum,ablativus,ō +singularis,,masculinum,locativus,ō +singularis,,masculinum,vocativus,e +pluralis,,masculinum,nominativus,ī +pluralis,,masculinum,genitivus,ōrum +pluralis,,masculinum,accusativus,ōs +pluralis,,masculinum,vocativus,ī +singularis,,femininum,nominativus,a +singularis,,femininum,genitivus,ae +singularis,,femininum,dativus,ae +singularis,,femininum,accusativus,am +singularis,,femininum,ablativus,ā +singularis,,femininum,locativus,ā +singularis,,femininum,vocativus,a +pluralis,,femininum,nominativus,ae +pluralis,,femininum,genitivus,ārum +pluralis,,femininum,accusativus,ās +pluralis,,femininum,vocativus,ae diff --git a/res/tabula/adiectiva/incomparabilia/pronominalis.csv b/res/tabula/adiectiva/incomparabilia/pronominalis.csv new file mode 100644 index 0000000..78d2547 --- /dev/null +++ b/res/tabula/adiectiva/incomparabilia/pronominalis.csv @@ -0,0 +1,33 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,genitivus,īus +singularis,,,dativus,ī +pluralis,,,dativus,īs +pluralis,,,ablativus,īs +pluralis,,,locaivus,īs +singularis,,neutrum,nominativus,um +singularis,,neutrum,accusativus,um +singularis,,neutrum,ablativus,ō +singularis,,neutrum,locaivus,ō +singularis,,neutrum,vocativus,um +pluralis,,neutrum,nominativus,a +pluralis,,neutrum,genitivus,ōrum +pluralis,,neutrum,accusativus,a +pluralis,,neutrum,vocativus,a +singularis,,masculinum,nominativus,us +singularis,,masculinum,accusativus,um +singularis,,masculinum,ablativus,ō +singularis,,masculinum,locaivus,ō +singularis,,masculinum,vocativus,e +pluralis,,masculinum,nominativus,ī +pluralis,,masculinum,genitivus,ōrum +pluralis,,masculinum,accusativus,ōs +pluralis,,masculinum,vocativus,ī +singularis,,femininum,nominativus,a +singularis,,femininum,accusativus,am +singularis,,femininum,ablativus,ā +singularis,,femininum,locaivus,ā +singularis,,femininum,vocativus,a +pluralis,,femininum,nominativus,ae +pluralis,,femininum,genitivus,ārum +pluralis,,femininum,accusativus,ās +pluralis,,femininum,vocativus,ae diff --git a/res/tabula/adiectiva/incomparabilia/tertius.csv b/res/tabula/adiectiva/incomparabilia/tertius.csv new file mode 100644 index 0000000..5b60917 --- /dev/null +++ b/res/tabula/adiectiva/incomparabilia/tertius.csv @@ -0,0 +1,27 @@ +numeralis,genus,gradus,casus,scriptum +singularis,,,genitivus,is +singularis,,,dativus,ī +singularis,,,ablativus,e +singularis,,,locaivus,e +pluralis,,,genitivus,um +pluralis,,,dativus,ibus +pluralis,,,ablativus,ibus +pluralis,,,locaivus,ibus +singularis,neutrum,,nominativus,e +singularis,neutrum,,accusativus,e +singularis,neutrum,,vocativus,e +pluralis,neutrum,,nominativus,a +pluralis,neutrum,,accusativus,a +pluralis,neutrum,,vocativus,a +,singularis,masculinum,,nominativus, +singularis,masculinum,,accusativus,em +singularis,masculinum,,vocativus, +pluralis,masculinum,,nominativus,ēs +pluralis,masculinum,,accusativus,ēs +pluralis,masculinum,,vocativus, +singularis,femininum,,nominativus, +singularis,femininum,,accusativus,em +singularis,femininum,,vocativus, +pluralis,femininum,,nominativus,ēs +pluralis,femininum,,accusativus,ēs +pluralis,femininum,,vocativus, diff --git a/res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv b/res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv new file mode 100644 index 0000000..520977e --- /dev/null +++ b/res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv @@ -0,0 +1,127 @@ +gradus ,genus ,numeralis ,casus ,scriptum +positivus ,neutrum ,singularis ,nominativus ,um +positivus ,neutrum ,singularis ,genitivus ,ī +positivus ,neutrum ,singularis ,dativus ,ō +positivus ,neutrum ,singularis ,accusativus ,um +positivus ,neutrum ,singularis ,ablativus ,ō +positivus ,neutrum ,singularis ,locaivus ,ō +positivus ,neutrum ,singularis ,vocativus ,um +positivus ,neutrum ,pluralis ,nominativus ,a +positivus ,neutrum ,pluralis ,genitivus ,ōrum +positivus ,neutrum ,pluralis ,dativus ,īs +positivus ,neutrum ,pluralis ,accusativus ,a +positivus ,neutrum ,pluralis ,ablativus ,īs +positivus ,neutrum ,pluralis ,locaivus ,īs +positivus ,neutrum ,pluralis ,vocativus ,a +positivus ,masculinum ,singularis ,nominativus ,us +positivus ,masculinum ,singularis ,genitivus ,ī +positivus ,masculinum ,singularis ,dativus ,ō +positivus ,masculinum ,singularis ,accusativus ,um +positivus ,masculinum ,singularis ,ablativus ,ō +positivus ,masculinum ,singularis ,locaivus ,ō +positivus ,masculinum ,singularis ,vocativus ,e +positivus ,masculinum ,pluralis ,nominativus ,ī +positivus ,masculinum ,pluralis ,genitivus ,ōrum +positivus ,masculinum ,pluralis ,dativus ,īs +positivus ,masculinum ,pluralis ,accusativus ,ōs +positivus ,masculinum ,pluralis ,ablativus ,īs +positivus ,masculinum ,pluralis ,locaivus ,īs +positivus ,masculinum ,pluralis ,vocativus ,ī +positivus ,femininum ,singularis ,nominativus ,a +positivus ,femininum ,singularis ,genitivus ,ae +positivus ,femininum ,singularis ,dativus ,ae +positivus ,femininum ,singularis ,accusativus ,am +positivus ,femininum ,singularis ,ablativus ,ā +positivus ,femininum ,singularis ,locaivus ,ā +positivus ,femininum ,singularis ,vocativus ,a +positivus ,femininum ,pluralis ,nominativus ,ae +positivus ,femininum ,pluralis ,genitivus ,ārum +positivus ,femininum ,pluralis ,dativus ,īs +positivus ,femininum ,pluralis ,accusativus ,ās +positivus ,femininum ,pluralis ,ablativus ,īs +positivus ,femininum ,pluralis ,locaivus ,īs +positivus ,femininum ,pluralis ,vocativus ,ae +comparativus ,neutrum ,singularis ,nominativus ,ius +comparativus ,neutrum ,singularis ,genitivus ,iōris +superlativus ,neutrum ,singularis ,dativus ,iōrī +superlativus ,neutrum ,singularis ,accusativus ,ius +superlativus ,neutrum ,singularis ,ablativus ,iōre +superlativus ,neutrum ,singularis ,locaivus ,iōre +comparativus ,neutrum ,singularis ,vocaivus ,ius +comparativus ,neutrum ,pluralis ,nominativus ,iōra +comparativus ,neutrum ,pluralis ,genitivus ,iōrum +superlativus ,neutrum ,pluralis ,dativus ,iōribus +superlativus ,neutrum ,pluralis ,accusativus ,iōra +superlativus ,neutrum ,pluralis ,ablativus ,iōribus +superlativus ,neutrum ,pluralis ,locaivus ,iōribus +comparativus ,neutrum ,pluralis ,vocaivus ,iōra +comparativus ,masculinum ,singularis ,nominativus ,ior +comparativus ,masculinum ,singularis ,genitivus ,iōris +superlativus ,masculinum ,singularis ,dativus ,iōrī +superlativus ,masculinum ,singularis ,accusativus ,iōrem +superlativus ,masculinum ,singularis ,ablativus ,iōre +superlativus ,masculinum ,singularis ,locaivus ,iōre +comparativus ,masculinum ,singularis ,vocaivus ,ior +comparativus ,masculinum ,pluralis ,nominativus ,iōrēs +comparativus ,masculinum ,pluralis ,genitivus ,iōrum +superlativus ,masculinum ,pluralis ,dativus ,iōribus +superlativus ,masculinum ,pluralis ,accusativus ,iōrēs +superlativus ,masculinum ,pluralis ,ablativus ,iōribus +superlativus ,masculinum ,pluralis ,locaivus ,iōribus +comparativus ,masculinum ,pluralis ,vocaivus ,iōrēs +comparativus ,femininum ,singularis ,nominativus ,ior +comparativus ,femininum ,singularis ,genitivus ,iōris +superlativus ,femininum ,singularis ,dativus ,iōrī +superlativus ,femininum ,singularis ,accusativus ,iōrem +superlativus ,femininum ,singularis ,ablativus ,iōre +superlativus ,femininum ,singularis ,locaivus ,iōre +comparativus ,femininum ,singularis ,vocaivus ,ior +comparativus ,femininum ,pluralis ,nominativus ,iōrēs +comparativus ,femininum ,pluralis ,genitivus ,iōrum +superlativus ,femininum ,pluralis ,dativus ,iōribus +superlativus ,femininum ,pluralis ,accusativus ,iōrēs +superlativus ,femininum ,pluralis ,ablativus ,iōribus +superlativus ,femininum ,pluralis ,locaivus ,iōribus +comparativus ,femininum ,pluralis ,vocaivus ,iōrēs +superlativus ,neutrum ,singularis ,nominativus ,um +superlativus ,neutrum ,singularis ,genitivus ,ī +superlativus ,neutrum ,singularis ,dativus ,ō +superlativus ,neutrum ,singularis ,accusativus ,um +superlativus ,neutrum ,singularis ,ablativus ,ō +superlativus ,neutrum ,singularis ,locaivus ,ō +superlativus ,neutrum ,singularis ,vocativus ,um +superlativus ,neutrum ,pluralis ,nominativus ,a +superlativus ,neutrum ,pluralis ,genitivus ,ōrum +superlativus ,neutrum ,pluralis ,dativus ,īs +superlativus ,neutrum ,pluralis ,accusativus ,a +superlativus ,neutrum ,pluralis ,ablativus ,īs +superlativus ,neutrum ,pluralis ,locaivus ,īs +superlativus ,neutrum ,pluralis ,vocativus ,a +superlativus ,masculinum ,singularis ,nominativus ,us +superlativus ,masculinum ,singularis ,genitivus ,ī +superlativus ,masculinum ,singularis ,dativus ,ō +superlativus ,masculinum ,singularis ,accusativus ,um +superlativus ,masculinum ,singularis ,ablativus ,ō +superlativus ,masculinum ,singularis ,locaivus ,ō +superlativus ,masculinum ,singularis ,vocativus ,e +superlativus ,masculinum ,pluralis ,nominativus ,ī +superlativus ,masculinum ,pluralis ,genitivus ,ōrum +superlativus ,masculinum ,pluralis ,dativus ,īs +superlativus ,masculinum ,pluralis ,accusativus ,ōs +superlativus ,masculinum ,pluralis ,ablativus ,īs +superlativus ,masculinum ,pluralis ,locaivus ,īs +superlativus ,masculinum ,pluralis ,vocativus ,ī +superlativus ,femininum ,singularis ,nominativus ,a +superlativus ,femininum ,singularis ,genitivus ,ae +superlativus ,femininum ,singularis ,dativus ,ae +superlativus ,femininum ,singularis ,accusativus ,am +superlativus ,femininum ,singularis ,ablativus ,ā +superlativus ,femininum ,singularis ,locaivus ,ā +superlativus ,femininum ,singularis ,vocativus ,a +superlativus ,femininum ,pluralis ,nominativus ,ae +superlativus ,femininum ,pluralis ,genitivus ,ārum +superlativus ,femininum ,pluralis ,dativus ,īs +superlativus ,femininum ,pluralis ,accusativus ,ās +superlativus ,femininum ,pluralis ,ablativus ,īs +superlativus ,femininum ,pluralis ,locaivus ,īs +superlativus ,femininum ,pluralis ,vocativus ,ae diff --git a/res/tabula/adiectiva/postiivusTertius.csv b/res/tabula/adiectiva/postiivusTertius.csv new file mode 100644 index 0000000..ec80137 --- /dev/null +++ b/res/tabula/adiectiva/postiivusTertius.csv @@ -0,0 +1,79 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,genitivus,is +positivus,,singularis,dativus,ī +positivus,,singularis,ablativus,e +positivus,,singularis,locativus,e +positivus,,pluralis,genitivus,um +positivus,,pluralis,dativus,ibus +positivus,,pluralis,ablativus,ibus +positivus,,pluralis,locativus,ibus +positivus,neutrum,singularis,nominativus,e +positivus,neutrum,singularis,accusativus,e +positivus,neutrum,singularis,vocativus,e +positivus,neutrum,pluralis,nominativus,a +positivus,neutrum,pluralis,accusativus,a +positivus,neutrum,pluralis,vocativus,a +positivus,masculinum,singularis,nominativus, +positivus,masculinum,singularis,accusativus,em +positivus,masculinum,singularis,vocativus, +positivus,masculinum,pluralis,nominativus,ēs +positivus,masculinum,pluralis,accusativus,ēs +positivus,masculinum,pluralis,vocativus, +positivus,femininum,singularis,nominativus, +positivus,femininum,singularis,accusativus,em +positivus,femininum,singularis,vocativus, +positivus,femininum,pluralis,nominativus,ēs +positivus,femininum,pluralis,accusativus,ēs +positivus,femininum,pluralis,vocativus, + +comparativus,,singularis,genitivus,iōris +comparativus,,singularis,dativus,iōrī +comparativus,,singularis,ablativus,iōre +comparativus,,singularis,locativus,iōre +comparativus,,pluralis,genitivus,iōrum +comparativus,,pluralis,dativus,iōribus +comparativus,,pluralis,ablativus,iōribus +comparativus,,pluralis,locativus,iōribus +comparativus,neutrum,singularis,nominativus,ius +comparativus,neutrum,singularis,vocaivus,ius +comparativus,neutrum,pluralis,nominativus,iōra +comparativus,neutrum,pluralis,vocaivus,iōra +comparativus,masculinum,singularis,nominativus,ior +comparativus,masculinum,singularis,vocaivus,ior +comparativus,masculinum,pluralis,nominativus,iōrēs +comparativus,masculinum,pluralis,vocaivus,iōrēs +comparativus,femininum,singularis,nominativus,ior +comparativus,femininum,singularis,vocaivus,ior +comparativus,femininum,pluralis,nominativus,iōrēs +comparativus,femininum,pluralis,vocaivus,iōrēs + +superlativus,,pluralis,dativus,īs +superlativus,,pluralis,ablativus,īs +superlativus,,pluralis,locativus,īs +superlativus,neutrum,singularis,nominativus,um +superlativus,neutrum,singularis,genitivus,ī +superlativus,neutrum,singularis,dativus,ō +superlativus,neutrum,singularis,accusativus,um +superlativus,neutrum,singularis,ablativus,ō +superlativus,neutrum,singularis,locativus,ō +superlativus,neutrum,pluralis,nominativus,a +superlativus,neutrum,pluralis,genitivus,ōrum +superlativus,neutrum,pluralis,accusativus,a +superlativus,masculinum,singularis,nominativus,us +superlativus,masculinum,singularis,genitivus,ī +superlativus,masculinum,singularis,dativus,ō +superlativus,masculinum,singularis,accusativus,um +superlativus,masculinum,singularis,ablativus,ō +superlativus,masculinum,singularis,locativus,ō +superlativus,masculinum,pluralis,nominativus,ī +superlativus,masculinum,pluralis,genitivus,ōrum +superlativus,masculinum,pluralis,accusativus,ōs +superlativus,femininum,singularis,nominativus,a +superlativus,femininum,singularis,genitivus,ae +superlativus,femininum,singularis,dativus,ae +superlativus,femininum,singularis,accusativus,am +superlativus,femininum,singularis,ablativus,ā +superlativus,femininum,singularis,locativus,ā +superlativus,femininum,pluralis,nominativus,ae +superlativus,femininum,pluralis,genitivus,ārum +superlativus,femininum,pluralis,accusativus,ās diff --git a/res/tabula/nomina/facta/prima.csv b/res/tabula/nomina/facta/prima.csv new file mode 100644 index 0000000..e913442 --- /dev/null +++ b/res/tabula/nomina/facta/prima.csv @@ -0,0 +1,8 @@ +factum,casus,scriptum +infinitivum,,āre +gerundium,genitivus,andī +gerundium,dativus,andō +gerundium,ablativus,andō +gerundium,accusativus,andum +supinum,accusativus,um +supinum,ablativus,ū diff --git a/res/tabula/nomina/facta/quarta.csv b/res/tabula/nomina/facta/quarta.csv new file mode 100644 index 0000000..881e81d --- /dev/null +++ b/res/tabula/nomina/facta/quarta.csv @@ -0,0 +1,8 @@ +factum,casus,scriptum +infinitivum,,īre +gerundium,genitivus,iendī +gerundium,dativus,iendō +gerundium,ablativus,iendō +gerundium,accusativus,iendum +supinum,accusativus,um +supinum,ablativus,ū diff --git a/res/tabula/nomina/facta/secunda.csv b/res/tabula/nomina/facta/secunda.csv new file mode 100644 index 0000000..0157ce7 --- /dev/null +++ b/res/tabula/nomina/facta/secunda.csv @@ -0,0 +1,8 @@ +factum,casus,scriptum +infinitivum,,ēre +gerundium,genitivus,endī +gerundium,dativus,endō +gerundium,ablativus,endō +gerundium,accusativus,endum +supinum,accusativus,um +supinum,ablativus,ū diff --git a/res/tabula/nomina/facta/tertia.csv b/res/tabula/nomina/facta/tertia.csv new file mode 100644 index 0000000..d081953 --- /dev/null +++ b/res/tabula/nomina/facta/tertia.csv @@ -0,0 +1,8 @@ +factum,casus,scriptum +infinitivum,,ere +gerundium,genitivus,endī +gerundium,dativus,endō +gerundium,ablativus,endō +gerundium,accusativus,endum +supinum,accusativus,um +supinum,ablativus,ū diff --git a/res/tabula/nomina/facta/tertiaVaria.csv b/res/tabula/nomina/facta/tertiaVaria.csv new file mode 100644 index 0000000..1feab71 --- /dev/null +++ b/res/tabula/nomina/facta/tertiaVaria.csv @@ -0,0 +1,8 @@ +factum,casus,scriptum +infinitivum,,ere +gerundium,genitivus,iendī +gerundium,dativus,iendō +gerundium,ablativus,iendō +gerundium,accusativus,iendum +supinum,accusativus,um +supinum,ablativus,ū diff --git a/res/tabula/nomina/prima.csv b/res/tabula/nomina/prima.csv new file mode 100644 index 0000000..a1a5669 --- /dev/null +++ b/res/tabula/nomina/prima.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominatius,a +singularis,genitivus,ae +singularis,dativus,ae +singularis,accusativus,am +singularis,ablativus,ā +singularis,locativus,ā +singularis,vocativus,a +pluralis,nominatius,ae +pluralis,genitivus,ārum +pluralis,dativus,īs +pluralis,accusativus,ās +pluralis,ablativus,īs +pluralis,locativus,īs +pluralis,vocativus,ae diff --git a/res/tabula/nomina/quartaVaria.csv b/res/tabula/nomina/quartaVaria.csv new file mode 100644 index 0000000..970f10d --- /dev/null +++ b/res/tabula/nomina/quartaVaria.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominativs,ū +singularis,genitivus,ūs +singularis,dativus,uī +singularis,accustativus,ū +singularis,ablativus,ū +singularis,locativus,ū +singularis,vocativus,ū +pluralis,nominativs,ua +pluralis,genitivus,uum +pluralis,dativus,ibus +pluralis,accustativus,ua +pluralis,ablativus,ibus +pluralis,locativus,ibus +pluralis,vocativus,ua diff --git a/res/tabula/nomina/quartus.csv b/res/tabula/nomina/quartus.csv new file mode 100644 index 0000000..d429071 --- /dev/null +++ b/res/tabula/nomina/quartus.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominativs,us +singularis,genitivus,ūs +singularis,dativus,uī +singularis,accustativus,um +singularis,ablativus,ū +singularis,locativus,ū +singularis,vocativus,us +pluralis,nominativs,ūs +pluralis,genitivus,ūs +pluralis,dativus,ibus +pluralis,accustativus,ūs +pluralis,ablativus,ibus +pluralis,locativus,ibus +pluralis,vocativus,ūs diff --git a/res/tabula/nomina/quinta.csv b/res/tabula/nomina/quinta.csv new file mode 100644 index 0000000..81e9b06 --- /dev/null +++ b/res/tabula/nomina/quinta.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominatuvs,ēs +singularis,genituvs,eī +singularis,dativus,eī +singularis,accusativus,em +singularis,ablativus,ē +singularis,locativus,ē +singularis,vocativus,ēs +pluralis,nominatuvs,ēs +pluralis,genituvs,ērum +pluralis,dativus,ēbus +pluralis,accusativus,ēs +pluralis,ablativus,ēbus +pluralis,locativus,ēbus +pluralis,vocativus,ēs diff --git a/res/tabula/nomina/secundaMasculina.csv b/res/tabula/nomina/secundaMasculina.csv new file mode 100644 index 0000000..0950233 --- /dev/null +++ b/res/tabula/nomina/secundaMasculina.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominativus,us +singularis,genitivus,ī +singularis,dativus,ō +singularis,accusativus,um +singularis,ablativus,ō +singularis,locativus,ō +singularis,vocativus,e +pluralis,nominativus,ī +pluralis,genitivus,ōrum +pluralis,dativus,īs +pluralis,accusativus,ōs +pluralis,ablativus,īs +pluralis,locativus,īs +pluralis,vocativus,ī diff --git a/res/tabula/nomina/secundaNeutra.csv b/res/tabula/nomina/secundaNeutra.csv new file mode 100644 index 0000000..a451466 --- /dev/null +++ b/res/tabula/nomina/secundaNeutra.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominativus,um +singularis,genitivus,ī +singularis,dativus,ō +singularis,accusativus,um +singularis,ablativus,ō +singularis,locativus,ō +singularis,vocativus,um +pluralis,nominativus,a +pluralis,genitivus,ōrum +pluralis,dativus,īs +pluralis,accusativus,a +pluralis,ablativus,īs +pluralis,locativus,īs +pluralis,vocativus,a diff --git a/res/tabula/nomina/tertiaAnimata.csv b/res/tabula/nomina/tertiaAnimata.csv new file mode 100644 index 0000000..044eb9c --- /dev/null +++ b/res/tabula/nomina/tertiaAnimata.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominativus, +singularis,genitivus,is +singularis,dativus,ī +singularis,accusativus,em +singularis,ablativus,e +singularis,locativus,e +singularis,vocativus, +pluralis,nominativus,ēs +pluralis,genitivus,um +pluralis,dativus,ibus +pluralis,accusativus,ēs +pluralis,ablativus,ibus +pluralis,locativus,ibus +pluralis,vocativus,ēs diff --git a/res/tabula/nomina/tertiaNeutra.csv b/res/tabula/nomina/tertiaNeutra.csv new file mode 100644 index 0000000..28ffd28 --- /dev/null +++ b/res/tabula/nomina/tertiaNeutra.csv @@ -0,0 +1,15 @@ +numeralis,casus,scriptum +singularis,nominativus, +singularis,genitivus,is +singularis,dativus,ī +singularis,accusativus, +singularis,ablativus,e +singularis,locativus,e +singularis,vocativus, +pluralis,nominativus,a +pluralis,genitivus,um +pluralis,dativus,ibus +pluralis,accusativus,a +pluralis,ablativus,ibus +pluralis,locativus,ibus +pluralis,vocativus,a diff --git a/res/vices/actus/tertia/cumImperativoBrevi.csv b/res/vices/actus/tertia/cumImperativoBrevi.csv new file mode 100644 index 0000000..b14ad1f --- /dev/null +++ b/res/vices/actus/tertia/cumImperativoBrevi.csv @@ -0,0 +1,2 @@ +modus,vox,tempus,numeralis,persona,scriptum +imperativus,activa,praesens,singularis,, diff --git a/res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv b/res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv new file mode 100644 index 0000000..d3e9d65 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv @@ -0,0 +1,3 @@ +genus,gradus,numeralis,casus,scriptum +masculinum,,singularis,nominativus, +masculinum,,singularis,vocativus, diff --git a/res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv b/res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv new file mode 100644 index 0000000..d3e9d65 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv @@ -0,0 +1,3 @@ +genus,gradus,numeralis,casus,scriptum +masculinum,,singularis,nominativus, +masculinum,,singularis,vocativus, diff --git a/res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv new file mode 100644 index 0000000..d0b86e9 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv @@ -0,0 +1,3 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,ablativus,ī +singularis,,,locativus,ī diff --git a/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv new file mode 100644 index 0000000..a1b69ad --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv @@ -0,0 +1,4 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,ablativus,ī +singularis,,,locativus,ī +pluralis,,,genitivus,ium diff --git a/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv new file mode 100644 index 0000000..d0b86e9 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv @@ -0,0 +1,3 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,ablativus,ī +singularis,,,locativus,ī diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv new file mode 100644 index 0000000..45299fa --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv @@ -0,0 +1,8 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,neutrum,nominativus, +singularis,,neutrum,accusativus, +singularis,,neutrum,vocativus, +singularis,,masculinum,nominativus, +singularis,,masculinum,vocativus, +singularis,,femininum,nominativus, +singularis,,femininum,vocativus, diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv new file mode 100644 index 0000000..b007249 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv @@ -0,0 +1,10 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,ablativus,ī +singularis,,,locativus,ī +singularis,,neutrum,nominativus, +singularis,,neutrum,accusativus, +singularis,,neutrum,vocativus, +singularis,,masculinum,nominativus, +singularis,,masculinum,vocativus, +singularis,,femininum,nominativus, +singularis,,femininum,vocativus, diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv new file mode 100644 index 0000000..fddf399 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv @@ -0,0 +1,11 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,ablativus,ī +singularis,,,locativus,ī +pluralis,,,genitivus,ium +singularis,,neutrum,nominativus, +singularis,,neutrum,accusativus, +singularis,,neutrum,vocativus, +singularis,,masculinum,nominativus, +singularis,,masculinum,vocativus, +singularis,,femininum,nominativus, +singularis,,femininum,vocativus, diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv new file mode 100644 index 0000000..b007249 --- /dev/null +++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv @@ -0,0 +1,10 @@ +numeralis,gradus,genus,casus,scriptum +singularis,,,ablativus,ī +singularis,,,locativus,ī +singularis,,neutrum,nominativus, +singularis,,neutrum,accusativus, +singularis,,neutrum,vocativus, +singularis,,masculinum,nominativus, +singularis,,masculinum,vocativus, +singularis,,femininum,nominativus, +singularis,,femininum,vocativus, diff --git a/res/vices/adiectiva/nominativusUnigener.csv b/res/vices/adiectiva/nominativusUnigener.csv new file mode 100644 index 0000000..958c42d --- /dev/null +++ b/res/vices/adiectiva/nominativusUnigener.csv @@ -0,0 +1,8 @@ +gradus,genus,numeralis,casus,scriptum +positivus,neutrum,singularis,nominativus, +positivus,neutrum,singularis,accusativus, +positivus,neutrum,singularis,vocativus, +positivus,masculinum,singularis,nominativus, +positivus,masculinum,singularis,vocativus, +positivus,femininum,singularis,nominativus, +positivus,femininum,singularis,vocativus, diff --git a/res/vices/adiectiva/positivaTertia/cumAblativoVario.csv b/res/vices/adiectiva/positivaTertia/cumAblativoVario.csv new file mode 100644 index 0000000..0619bde --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/cumAblativoVario.csv @@ -0,0 +1,3 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,ingularis,locativus,ī diff --git a/res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv b/res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv new file mode 100644 index 0000000..24f3d9f --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv @@ -0,0 +1,4 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,singularis,locativus,ī +positivus,,pluralis,genitivus,ium diff --git a/res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv b/res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv new file mode 100644 index 0000000..e0543a5 --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv @@ -0,0 +1,3 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,singularis,locativus,ī diff --git a/res/vices/adiectiva/positivaTertia/cumTruncoVario.csv b/res/vices/adiectiva/positivaTertia/cumTruncoVario.csv new file mode 100644 index 0000000..6936cbe --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/cumTruncoVario.csv @@ -0,0 +1,8 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,singularis,locativus,ī +positivus,,pluralis,genitivus,ium +positivus,neutrum,pluralis,nominativus,ia +positivus,neutrum,pluralis,accusativus,ia +positivus,neutrum,pluralis,vocativus,ia + diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv new file mode 100644 index 0000000..5416215 --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv @@ -0,0 +1,10 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,singularis,locativus,ī +positivus,neutrum,singularis,nominativus, +positivus,neutrum,singularis,accusativus, +positivus,neutrum,singularis,vocativus, +positivus,masculinum,singularis,nominativus, +positivus,masculinum,singularis,vocativus, +positivus,femininum,singularis,nominativus, +positivus,femininum,singularis,vocativus, diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv new file mode 100644 index 0000000..5ae2703 --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv @@ -0,0 +1,11 @@ +gradus,genus,numeralis,casus,scriptum +postiivus,,singularis,ablativus,ī +postiivus,,singularis,locativus,ī +postiivus,,pluralis,genitivus,ium +postiivus,neutrum,singularis,nominativus, +postiivus,neutrum,singularis,accusativus, +postiivus,neutrum,singularis,vocativus, +postiivus,masculinum,singularis,nominativus, +postiivus,masculinum,singularis,vocativus, +postiivus,femininum,singularis,nominativus, +postiivus,femininum,singularis,vocativus, diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv new file mode 100644 index 0000000..5416215 --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv @@ -0,0 +1,10 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,singularis,locativus,ī +positivus,neutrum,singularis,nominativus, +positivus,neutrum,singularis,accusativus, +positivus,neutrum,singularis,vocativus, +positivus,masculinum,singularis,nominativus, +positivus,masculinum,singularis,vocativus, +positivus,femininum,singularis,nominativus, +positivus,femininum,singularis,vocativus, diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv new file mode 100644 index 0000000..1a11b93 --- /dev/null +++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv @@ -0,0 +1,14 @@ +gradus,genus,numeralis,casus,scriptum +positivus,,singularis,ablativus,ī +positivus,,singularis,locativus,ī +positivus,,pluralis,genitivus,ium +positivus,neutrum,singularis,nominativus, +positivus,neutrum,singularis,accusativus, +positivus,neutrum,singularis,vocativus, +positivus,masculinum,singularis,nominativus, +positivus,masculinum,singularis,vocativus, +positivus,femininum,singularis,nominativus, +positivus,femininum,singularis,vocativus, +positivus,neutrum,pluralis,nominativus,ia +positivus,neutrum,pluralis,accusativus,ia +positivus,neutrum,pluralis,vocativus,ia diff --git a/res/vices/nomina/secundaMasculina/nominativusDirectus.csv b/res/vices/nomina/secundaMasculina/nominativusDirectus.csv new file mode 100644 index 0000000..4d39a73 --- /dev/null +++ b/res/vices/nomina/secundaMasculina/nominativusDirectus.csv @@ -0,0 +1,3 @@ +numeralis,casus,scriptum +singularis,nominativus, +singularis,vocativus, diff --git a/res/vices/nomina/tertia/cumAblativoVario.csv b/res/vices/nomina/tertia/cumAblativoVario.csv new file mode 100644 index 0000000..446bd34 --- /dev/null +++ b/res/vices/nomina/tertia/cumAblativoVario.csv @@ -0,0 +1,3 @@ +numeralis,casus,scriptum +singularis,ablativus,ī +ingularis,locativus,ī diff --git a/res/vices/nomina/tertia/cumGenitivoAblativoque.csv b/res/vices/nomina/tertia/cumGenitivoAblativoque.csv new file mode 100644 index 0000000..8bafb25 --- /dev/null +++ b/res/vices/nomina/tertia/cumGenitivoAblativoque.csv @@ -0,0 +1,4 @@ +numeralis,casus,scriptum +singularis,ablativus,ī +singularis,locativus,ī +pluralis,genitivus,ium diff --git a/res/vices/nomina/tertia/cumGenitivoVario.csv b/res/vices/nomina/tertia/cumGenitivoVario.csv new file mode 100644 index 0000000..70335cd --- /dev/null +++ b/res/vices/nomina/tertia/cumGenitivoVario.csv @@ -0,0 +1,3 @@ +numeralis,casus,scriptum +singularis,ablativus,ī +singularis,locativus,ī diff --git a/res/vices/nomina/tertiaNeutra/cumTruncoVario.csv b/res/vices/nomina/tertiaNeutra/cumTruncoVario.csv new file mode 100644 index 0000000..b097d69 --- /dev/null +++ b/res/vices/nomina/tertiaNeutra/cumTruncoVario.csv @@ -0,0 +1,8 @@ +numeralis,casus,scriptum +singularis,ablativus,ī +singularis,locativus,ī +pluralis,genitivus,ium +pluralis,nominativus,ia +pluralis,accusativus,ia +pluralis,vocativus,ia + diff --git a/src/anomala/actus.ts b/src/anomala/actus.ts new file mode 100644 index 0000000..23fe822 --- /dev/null +++ b/src/anomala/actus.ts @@ -0,0 +1,824 @@ +import Anomala, { Mantela } from './anomala'; +import Ignavum from '../miscella/ignavum'; +import { ActusAgendus } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Actus as Anomalon } from '../praebeunda/verba'; +import TabulaCollata from '../tabulae/collata'; +import TabulaImpersonalis from '../tabulae/defectae/impersonalis'; +import TabulaPerfecta from '../tabulae/defectae/perfecta'; +import TabulaFissa from '../tabulae/fissa'; +import TabulaPraefixa from '../tabulae/rescriptae/praefixa'; +import TabulaRescripta from '../tabulae/rescriptae/rescripta'; +import TabulaSuffixa from '../tabulae/rescriptae/suffixa'; +import TabulaScapalis from '../tabulae/scapalis'; +import type Tabula from '../tabulae/tabula'; + +export default class Actus extends Anomala { + static se: Ignavum = new Ignavum(() => new Actus); + + protected override async numeretur (): Promise { + const aiere: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/aiere', positor: Anomalon.positor })); + const esse: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/esse', positor: Anomalon.positor })); + const fieri: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/fierī', positor: Anomalon.positor })); + const infieri: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/īnfierī', positor: Anomalon.positor })); + const inquii: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/inquiī', positor: Anomalon.positor })); + + const coesse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/coepisse', positor: Anomalon.positor })), + new Ignavum(() => new TabulaFissa({ + relata: new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor: scriptum => scriptum.startsWith('f') ? 'cōn' : 'co' + })), + tabula: TabulaPerfecta.apponatur() + })) + )); + + const dare: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/dare', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'dare') + .ponatur(actus => actus.perfectum = 'dedisse') + .ponatur(actus => actus.supinum = 'dātum') + .ponatur(actus => actus.versio = 'prima') + .struatur().putetur()) + )); + + const ferre: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/ferre', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'ferre') + .ponatur(actus => actus.perfectum = 'tulisse') + .ponatur(actus => actus.supinum = 'lātum') + .ponatur(actus => actus.versio = 'tertia') + .struatur().putetur()) + )); + + const facere: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/facere', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'facere') + .ponatur(actus => actus.perfectum = 'fēcisse') + .ponatur(actus => actus.supinum = 'factum') + .ponatur(actus => actus.versio = 'tertiaVaria/cumImperativoBrevi') + .struatur().putetur()) + )); + + const ire: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/ferre', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'īre') + .ponatur(actus => actus.perfectum = 'īsse') + .ponatur(actus => actus.supinum = 'itum') + .ponatur(actus => actus.versio = 'secunda') + .struatur().putetur()) + )); + + const perire: Ignavum> = new Ignavum(() => + new TabulaFissa({ + relata: new Ignavum(() => + new TabulaPraefixa({ + relata: ire, + praefixum: 'per' + })), + tabula: TabulaImpersonalis.apponatur('passivo') + })); + + const velle: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/velle', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'volere') + .ponatur(actus => actus.perfectum = 'voluisse') + .ponatur(actus => actus.versio = 'tertia//semideponens') + .struatur().putetur()) + )); + + const malle: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/mālle', positor: Anomalon.positor })), + new Ignavum(() => new TabulaRescripta({ + relata: velle, rescriptor: scriptum => scriptum.replace('ve', 'mā'), + })) + )); + + const meminisse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/meminisse', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.perfectum = 'meminisse') + .ponatur(actus => actus.versio = 'tertia//perfecta') + .struatur().putetur()) + )); + + const abdare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'ab' })); + const abesse: Ignavum> = new Ignavum(() => + new TabulaRescripta({ relata: dare, rescriptor: scriptum => scriptum.startsWith('f') ? 'ā' : 'ab' })); + const abire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ab' })); + const afferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ relata: ferre, rescriptor: scriptum => 'a'.concat(scriptum.at(0) ?? '', scriptum) })); + + const auferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'au'.concat(scriptum); + case 't': + return 'abs'.concat(scriptum); + case 'l': + return 'ab'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const nolle: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/nōlle', positor: Anomalon.positor })), + new Ignavum(() => new TabulaRescripta({ + relata: velle, + rescriptor (scriptum) { + switch (scriptum) { + case 'vīs': + case 'vult': + case 'vultis': + return ''; + default: + return scriptum.replace('ve', 'nō'); + } + }, + })) + )); + + const coepisse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/coepisse', positor: Anomalon.positor })), + new Ignavum((() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.perfectum = 'coepisse') + .ponatur(actus => actus.versio = 'tertia//perfecta') + .struatur().putetur()) + ))); + + const coire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'co' })); + const collabefieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'collabe' })); + const confieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'cōn' })); + + const conferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'cōn'.concat(scriptum); + case 't': + return 'con'.concat(scriptum); + case 'l': + return 'col'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const dedare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'dē' })); + const deesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'dē' })); + const deferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'dē' })); + const defieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'dē' })); + const deire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'de' })); + + const differre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'dif'.concat(scriptum); + case 't': + return 'dis'.concat(scriptum); + case 'l': + return 'dī'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const disperire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'disper' })); + const didare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'dī' })); + + const efferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'ef'.concat(scriptum); + case 't': + return 'ex'.concat(scriptum); + case 'l': + return 'ē'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const exire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ex' })); + const inesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'īn' })); + + const inferre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor (scriptum) { + switch (scriptum.at(0)) { + case 'f': + return 'īn'.concat(scriptum); + case 't': + return 'in'.concat(scriptum); + case 'l': + return 'il'.concat(scriptum); + default: + return scriptum; + } + }, + })); + + const interesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'inter' })); + const interferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'inter' })); + const introferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'intrō' })); + const inire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'in' })); + const interire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'inter' })); + const introire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'intro' })); + const nequire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'nequ' })); + const obesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'ob' })); + const obire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ob' })); + const obsolefieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'obsole' })); + + const odisse: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/actus/ōdisse', positor: Anomalon.positor })), + new Ignavum(() => new Structor(() => new ActusAgendus) + .ponatur(actus => actus.perfectum = 'ōdisse') + .ponatur(actus => actus.versio = 'quarta//perfecta') + .struatur().putetur()) + )); + + const offerre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ferre, + rescriptor: scriptum => (scriptum.startsWith('f') ? 'of' : 'ob').concat(scriptum), + })); + + const perferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'per' })); + const pervelle: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: velle, praefixum: 'per' })); + + const posse: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor (scriptum) { + switch (true) { + case scriptum === 'esse': + return 'posse'; + case scriptum === 'estō': + return ''; + case scriptum.startsWith('s'): + return 'pos'.concat(scriptum); + case scriptum.startsWith('e'): + return 'pot'.concat(scriptum); + case scriptum.startsWith('f'): + return 'pot'.concat(scriptum.substring(1)); + default: + return ''; + } + }, + })); + + const postferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'post' })); + const praeesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'prae' })); + const praeterferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'praeter' })); + + const prodesse: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor: scriptum => (scriptum.startsWith('e') ? 'prō' : 'prōd').concat(scriptum), + })); + + const prodire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'prōd' })); + const proferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'prō' })); + const quire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'qu' })); + const redire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'red' })); + + const referre: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: esse, + rescriptor: scriptum => (scriptum.startsWith('t') ? 'ret' : 're').concat(scriptum), + })); + + const subesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'sub' })); + const subire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'sub' })); + const sufferre: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ferre, praefixum: 'suf' })); + const superesse: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: esse, praefixum: 'super' })); + const suffieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'suf' })); + const superfieri: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: fieri, praefixum: 'super' })); + const transabire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trānsab' })); + const transire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trāns' })); + const venire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'vēn' })); + + const venireRectum: Ignavum> = new Ignavum(() => + new Structor(() => new ActusAgendus) + .ponatur(actus => actus.infinitivum = 'venīre') + .ponatur(actus => actus.perfectum = 'vēnīsse') + .ponatur(actus => actus.supinum = 'ventum') + .ponatur(actus => actus.versio = 'quartus//impersonalis//passivo') + .struatur().putetur()); + + const arefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'āre'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const arfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'ār'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const benefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'bene'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const calfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'cal'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const calefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'cale'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const commonefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'commone'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const condocfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'condoce'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const consuefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'cōnsuē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const expergefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'expergē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const fervefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'fervē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const infervefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'inferve'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const labefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'labe'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const liquifacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'liqui'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const madefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'made'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const malefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'male'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const mollifacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'molli'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const multifacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'multi'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const mansuefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'mānsuē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const olfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'ol'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const patefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'pate'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const pavefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'pave'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const putrefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'putre'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const satisfacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'satis'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const stupefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'stupe'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const tepefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'tepe'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const tremefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'treme'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const tumefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'tume'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const vacuefacere: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: facere, + rescriptor: scriptum => 'vacuē'.concat(scriptum === 'fac' ? 'face' : scriptum) + })); + + const incalfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 'in' })); + const percalfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 'per' })); + const recalfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 're' })); + const permadefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: madefacere, suffixum: 'per' })); + const subolfacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: olfacere, suffixum: 'sub' })); + const confervefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: fervefacere, suffixum: 'con' })); + const defervefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: calfacere, suffixum: 'dē' })); + const obstupefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: stupefacere, suffixum: 'ob' })); + const rarefacere: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: arefacere, suffixum: 'r' })); + + const advenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ad' + })); + + const adinvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'adin' + })); + + const antevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ante' + })); + + const circumvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'circum' + })); + + const convenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'con' + })); + + const contravenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'contrā' + })); + + const disconvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'discon' + })); + + const devenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'dē' + })); + + const evenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ē' + })); + + const invenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'in' + })); + + const intervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'inter' + })); + + const obvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ob' + })); + + const pervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'per' + })); + + const praevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prae' + })); + + const provenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prō' + })); + + const subvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'sub' + })); + + const supervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'super' + })); + + const transvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'trāns' + })); + + this.contenta.set('abdare', new Mantela(abdare)); + this.contenta.set('abesse', new Mantela(abesse)); + this.contenta.set('advenīre', new Mantela(advenire)); + this.contenta.set('adinvenīre', new Mantela(adinvenire)); + this.contenta.set('afferre', new Mantela(afferre)); + this.contenta.set('antevenīre', new Mantela(antevenire)); + this.contenta.set('ārefacere', new Mantela(arefacere)); + this.contenta.set('ārfacere', new Mantela(arfacere)); + this.contenta.set('auferre', new Mantela(auferre)); + this.contenta.set('abīre', new Mantela(abire)); + this.contenta.set('aiere', new Mantela(aiere)); + this.contenta.set('benefacere', new Mantela(benefacere)); + this.contenta.set('calfacere', new Mantela(calfacere)); + this.contenta.set('calefacere', new Mantela(calefacere)); + this.contenta.set('circumvenīre', new Mantela(circumvenire)); + this.contenta.set('coepisse', new Mantela(coepisse)); + this.contenta.set('coesse', new Mantela(coesse)); + this.contenta.set('coīre', new Mantela(coire)); + this.contenta.set('collabefierī', new Mantela(collabefieri)); + this.contenta.set('commonefacere', new Mantela(commonefacere)); + this.contenta.set('condocefacere', new Mantela(condocfacere)); + this.contenta.set('confervēfacere', new Mantela(confervefacere)); + this.contenta.set('cōnsuēfacere', new Mantela(consuefacere)); + this.contenta.set('conferre', new Mantela(conferre)); + this.contenta.set('cōnfierī', new Mantela(confieri)); + this.contenta.set('convenīre', new Mantela(convenire)); + this.contenta.set('contrāvenīre', new Mantela(contravenire)); + this.contenta.set('dare', new Mantela(dare)); + this.contenta.set('dēdare', new Mantela(dedare)); + this.contenta.set('dēferre', new Mantela(deferre)); + this.contenta.set('dēfervēfacere', new Mantela(defervefacere)); + this.contenta.set('dēfierī', new Mantela(defieri)); + this.contenta.set('dēesse', new Mantela(deesse)); + this.contenta.set('dēīre', new Mantela(deire)); + this.contenta.set('dēvenīre', new Mantela(devenire)); + this.contenta.set('dīdare', new Mantela(didare)); + this.contenta.set('differre', new Mantela(differre)); + this.contenta.set('disconvenīre', new Mantela(disconvenire)); + this.contenta.set('disperīre', new Mantela(disperire)); + this.contenta.set('diferre', new Mantela(differre)); + this.contenta.set('efferre', new Mantela(efferre)); + this.contenta.set('esse', new Mantela(esse)); + this.contenta.set('ēvenīre', new Mantela(evenire)); + this.contenta.set('expergēfacere', new Mantela(expergefacere)); + this.contenta.set('exīre', new Mantela(exire)); + this.contenta.set('facere', new Mantela(facere)); + this.contenta.set('ferre', new Mantela(ferre)); + this.contenta.set('fervēfacere', new Mantela(fervefacere)); + this.contenta.set('fierī', new Mantela(fieri)); + this.contenta.set('incalfacere', new Mantela(incalfacere)); + this.contenta.set('infervefacere', new Mantela(infervefacere)); + this.contenta.set('īnfierī', new Mantela(infieri)); + this.contenta.set('inquiī', new Mantela(inquii)); + this.contenta.set('interesse', new Mantela(interesse)); + this.contenta.set('interferre', new Mantela(interferre)); + this.contenta.set('intrōferre', new Mantela(introferre)); + this.contenta.set('īnesse', new Mantela(inesse)); + this.contenta.set('īnferre', new Mantela(inferre)); + this.contenta.set('inīre', new Mantela(inire)); + this.contenta.set('interīre', new Mantela(interire)); + this.contenta.set('introīre', new Mantela(introire)); + this.contenta.set('invenīre', new Mantela(invenire)); + this.contenta.set('intervenīre', new Mantela(intervenire)); + this.contenta.set('īre', new Mantela(ire)); + this.contenta.set('labefacere', new Mantela(labefacere)); + this.contenta.set('liquifacere', new Mantela(liquifacere)); + this.contenta.set('madefacere', new Mantela(madefacere)); + this.contenta.set('malefacere', new Mantela(malefacere)); + this.contenta.set('mālle', new Mantela(malle)); + this.contenta.set('mānsuēfacere', new Mantela(mansuefacere)); + this.contenta.set('meminisse', new Mantela(meminisse)); + this.contenta.set('mollifacere', new Mantela(mollifacere)); + this.contenta.set('multifacere', new Mantela(multifacere)); + this.contenta.set('nōlle', new Mantela(nolle)); + this.contenta.set('nequīre', new Mantela(nequire)); + this.contenta.set('obesse', new Mantela(obesse)); + this.contenta.set('obīre', new Mantela(obire)); + this.contenta.set('obstupefacere', new Mantela(obstupefacere)); + this.contenta.set('obvenīre', new Mantela(obvenire)); + this.contenta.set('ōdisse', new Mantela(odisse)); + this.contenta.set('offerre', new Mantela(offerre)); + this.contenta.set('olfacere', new Mantela(olfacere)); + this.contenta.set('obsolefierī', new Mantela(obsolefieri)); + this.contenta.set('patefacere', new Mantela(patefacere)); + this.contenta.set('pavefacere', new Mantela(pavefacere)); + this.contenta.set('percalfacere', new Mantela(percalfacere)); + this.contenta.set('perferre', new Mantela(perferre)); + this.contenta.set('perīre', new Mantela(perire)); + this.contenta.set('permadefacere', new Mantela(permadefacere)); + this.contenta.set('pervelle', new Mantela(pervelle)); + this.contenta.set('pervenīre', new Mantela(pervenire)); + this.contenta.set('posse', new Mantela(posse)); + this.contenta.set('postferre', new Mantela(postferre)); + this.contenta.set('praeesse', new Mantela(praeesse)); + this.contenta.set('praeterferre', new Mantela(praeterferre)); + this.contenta.set('praevenīre', new Mantela(praevenire)); + this.contenta.set('prōdesse', new Mantela(prodesse)); + this.contenta.set('prōferre', new Mantela(proferre)); + this.contenta.set('prōdīre', new Mantela(prodire)); + this.contenta.set('prōvenīre', new Mantela(provenire)); + this.contenta.set('putrefacere', new Mantela(putrefacere)); + this.contenta.set('quīre', new Mantela(quire)); + this.contenta.set('rārefacere', new Mantela(rarefacere)); + this.contenta.set('redīre', new Mantela(redire)); + this.contenta.set('referre', new Mantela(referre)); + this.contenta.set('recalfacere', new Mantela(recalfacere)); + this.contenta.set('satisfacere', new Mantela(satisfacere)); + this.contenta.set('stupefacere', new Mantela(stupefacere)); + this.contenta.set('subesse', new Mantela(subesse)); + this.contenta.set('subīre', new Mantela(subire)); + this.contenta.set('subolfacere', new Mantela(subolfacere)); + this.contenta.set('subvenīre', new Mantela(subvenire)); + this.contenta.set('sufferre', new Mantela(sufferre)); + this.contenta.set('suffierī', new Mantela(suffieri)); + this.contenta.set('superesse', new Mantela(superesse)); + this.contenta.set('superfierī', new Mantela(superfieri)); + this.contenta.set('supervenīre', new Mantela(supervenire)); + this.contenta.set('tepefacere', new Mantela(tepefacere)); + this.contenta.set('trānsabīre', new Mantela(transabire)); + this.contenta.set('trānsīre', new Mantela(transire)); + this.contenta.set('trānsvenīre', new Mantela(transvenire)); + this.contenta.set('tremefacere', new Mantela(tremefacere)); + this.contenta.set('tumefacere', new Mantela(tumefacere)); + this.contenta.set('vacuēfacere', new Mantela(vacuefacere)); + this.contenta.set('velle', new Mantela(velle)); + this.contenta.set('vēnīre', new Mantela(venire)); + this.contenta.set('venīre', new Mantela(venireRectum)); + } +} diff --git a/src/anomala/adiectiva.ts b/src/anomala/adiectiva.ts new file mode 100644 index 0000000..0047b25 --- /dev/null +++ b/src/anomala/adiectiva.ts @@ -0,0 +1,192 @@ +import Anomala, { Mantela } from './anomala'; +import { Encliticum } from '../miscella/enumerationes'; +import Ignavum from '../miscella/ignavum'; +import { AdiectivumAgendum, Incomparabile } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Adiectivum } from '../praebeunda/verba'; +import TabulaCollata from '../tabulae/collata'; +import TabulaConiuncta from '../tabulae/coniuncta'; +import TabulaRescripta from '../tabulae/rescriptae/rescripta'; +import TabulaSuffixa from '../tabulae/rescriptae/suffixa'; +import TabulaScapalis from '../tabulae/scapalis'; + +export default class Adiectiva extends Anomala { + static se: Ignavum = new Ignavum(() => new Adiectiva); + + protected override async numeretur (): Promise { + const frugi: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/frūgī', positor: Adiectivum.positor })); + const mille: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/mīlle', positor: Adiectivum.positor })); + const nequam: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/nēquam', positor: Adiectivum.positor })); + const satis: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/satis', positor: Adiectivum.positor })); + + const decimum: Ignavum = new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'decimum') + .ponatur(adiectivum => adiectivum.nominativum = 'decimī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur()); + + const utrum: Ignavum = new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'utrum') + .ponatur(adiectivum => adiectivum.nominativum = 'utrī') + .ponatur(adiectivum => adiectivum.versio = 'pronominalis//cumLitteraR') + .struatur()); + + const aliud: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/aliud', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'alium') + .ponatur(adiectivum => adiectivum.nominativum = 'aliī') + .ponatur(adiectivum => adiectivum.versio = 'pronominalis') + .struatur().putetur()) + )); + const ambo: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/ambō', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'ambum') + .ponatur(adiectivum => adiectivum.nominativum = 'ambī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda//pluralis') + .struatur().putetur()) + )); + const meum: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/meum', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'meum') + .ponatur(adiectivum => adiectivum.nominativum = 'meī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()) + )); + const multum: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/adiectiva/multum', positor: Adiectivum.positor })), + new Ignavum(() => new Structor(() => new AdiectivumAgendum) + .ponatur(adiectivum => adiectivum.positivum = 'multum') + .ponatur(adiectivum => adiectivum.superlativum = 'maximum') + .ponatur(adiectivum => adiectivum.versio = 'positivaAutPrimaAutSecunda') + .struatur().putetur()) + )); + + const nonumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'nōnum') + .ponatur(adiectivum => adiectivum.nominativum = 'nōnī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const octavumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'octāvum') + .ponatur(adiectivum => adiectivum.nominativum = 'octāvī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const quartumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'quārtum') + .ponatur(adiectivum => adiectivum.nominativum = 'quārtī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const quintumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'quīntum') + .ponatur(adiectivum => adiectivum.nominativum = 'quīntī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const septimumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'septimum') + .ponatur(adiectivum => adiectivum.nominativum = 'septimī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const sextumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'sextum') + .ponatur(adiectivum => adiectivum.nominativum = 'sextī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + const tertiumdecimum: Ignavum> = new Ignavum(() => + new TabulaConiuncta({ + positor: Adiectivum.positor, + prima: new Ignavum(() => new Structor(() => new Incomparabile) + .ponatur(adiectivum => adiectivum.nominativum = 'tertium') + .ponatur(adiectivum => adiectivum.nominativum = 'tertiī') + .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda') + .struatur().putetur()), + secunda: new Ignavum(() => decimum.ipse().putetur()) + })); + + const duo: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: ambo, + rescriptor: scriptum => scriptum.replace('amb', 'du') + })); + + const utrumque: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: new Ignavum(() => utrum.ipse()?.putetur()), + suffixum: Encliticum.Coniugans + })); + const utrumcumque: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: new Ignavum(() => utrum.ipse()?.putetur()), + suffixum: 'cum'.concat(Encliticum.Coniugans.concat()) + })); + const utrumvis: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: new Ignavum(() => utrum.ipse()?.putetur()), + suffixum: 'vīs' + })); + + this.contenta.set('aliud', new Mantela(aliud)); + this.contenta.set('ambō', new Mantela(ambo)); + this.contenta.set('duō', new Mantela(duo)); + this.contenta.set('frūgī', new Mantela(frugi)); + this.contenta.set('meum', new Mantela(meum)); + this.contenta.set('mīlle', new Mantela(mille)); + this.contenta.set('multum', new Mantela(multum)); + this.contenta.set('nēquam', new Mantela(nequam)); + this.contenta.set('nōnumdecimum', new Mantela(nonumdecimum)); + this.contenta.set('octāvumdecimum', new Mantela(octavumdecimum)); + this.contenta.set('quārtumdecimum', new Mantela(quartumdecimum)); + this.contenta.set('quīntumdecimum', new Mantela(quintumdecimum)); + this.contenta.set('satis', new Mantela(satis)); + this.contenta.set('septimumdecimum', new Mantela(septimumdecimum)); + this.contenta.set('sextumdecimum', new Mantela(sextumdecimum)); + this.contenta.set('tertiumdecimum', new Mantela(tertiumdecimum)); + this.contenta.set('utrumcumque', new Mantela(utrumcumque)); + this.contenta.set('utrumque', new Mantela(utrumque)); + this.contenta.set('utrumvīs', new Mantela(utrumvis)); + } +} diff --git a/src/anomala/anomala.ts b/src/anomala/anomala.ts new file mode 100644 index 0000000..99f453c --- /dev/null +++ b/src/anomala/anomala.ts @@ -0,0 +1,48 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import type { Faciendum } from '../praebeunda/interfecta'; +import type Tabula from '../tabulae/tabula'; + +export class Mantela implements Faciendum { + private readonly _tabula: Ignavum>; + constructor (tabula: Ignavum>) { + this._tabula = tabula; + } + + putetur (): Tabula { + return this._tabula.ipse(); + } +} + +export default abstract class Anomala implements Disposable { + protected readonly contenta: Map> = new Map; + protected abstract numeretur (): Promise; + + @Nuntius.futurus('Anomala') + async omnia (): Promise { + if (!this.contenta.size) { + this.numeretur(); + } + + return [ ...this.contenta.keys() ].sort(); + } + + @Nuntius.futurus('Anomala') + async feratur (lemma: string): Promise | undefined> { + if (!this.contenta.size) { + this.numeretur(); + } + + return this.contenta.get(lemma); + } + + async forsFerat (): Promise | undefined> { + return this.feratur((await this.omnia()).random()); + } + + @Nuntius.finitus('Anomala') + [ Symbol.dispose ] (): void { + this.contenta.clear(); + } +} diff --git a/src/anomala/nomina.ts b/src/anomala/nomina.ts new file mode 100644 index 0000000..2aef2cb --- /dev/null +++ b/src/anomala/nomina.ts @@ -0,0 +1,308 @@ +import Anomala, { Mantela } from './anomala'; +import Ignavum from '../miscella/ignavum'; +import { NomenAgendum, NomenFactum } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Nomen } from '../praebeunda/verba'; +import TabulaBifissa from '../tabulae/bifissa'; +import TabulaCollata from '../tabulae/collata'; +import TabulaPraefixa from '../tabulae/rescriptae/praefixa'; +import TabulaScapalis from '../tabulae/scapalis'; +import type Tabula from '../tabulae/tabula'; + +export default class Nomina extends Anomala { + static se: Ignavum = new Ignavum(() => new Nomina); + protected override async numeretur (): Promise { + const Athos: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/Athōs', positor: Nomen.positor })); + const dare: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/dare', positor: Nomen.positor })); + const Iesus: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/Iēsūs', positor: Nomen.positor })); + const ire: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/ire', positor: Nomen.positor })); + const lexis: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/lexis', positor: Nomen.positor })); + const vices: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/vices', positor: Nomen.positor })); + const vis: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/vis', positor: Nomen.positor })); + + const balneum: Ignavum = new Ignavum(() => new TabulaBifissa({ + singularis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'balneum') + .ponatur(nomen => nomen.genitivum = 'balneī') + .ponatur(nomen => nomen.versio = 'secundaNeutra') + .struatur(), + pluralis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'balnea') + .ponatur(nomen => nomen.genitivum = 'balneae') + .ponatur(nomen => nomen.versio = 'prima') + .struatur() + })); + + const caelum: Ignavum = new Ignavum(() => new TabulaBifissa({ + singularis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'caelum') + .ponatur(nomen => nomen.genitivum = 'caelī') + .ponatur(nomen => nomen.versio = 'secundaNeutra') + .struatur(), + pluralis: new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'caelus') + .ponatur(nomen => nomen.genitivum = 'caelī') + .ponatur(nomen => nomen.versio = 'secundaMasculina') + .struatur() + })); + + const dea: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/nomina/dea', positor: Nomen.positor })), + new Ignavum(() => + new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'dea') + .ponatur(nomen => nomen.genitivum = 'deae') + .ponatur(nomen => nomen.versio = 'prima') + .struatur().putetur()) + )); + + const domus: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => new TabulaScapalis({ + via: '/res/scapales/nomina/domus', + positor: Nomen.positor + })), + new Ignavum(() => new Structor(() => + new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'domus') + .ponatur(nomen => nomen.genitivum = 'domūs') + .ponatur(nomen => nomen.versio = 'quarta') + .struatur().putetur()) + )); + + const iugerum: Ignavum> = new Ignavum(() => new TabulaCollata( + new Ignavum(() => new TabulaScapalis({ + via: '/res/scapales/nomina/iūgerum', + positor: Nomen.positor + })), + new Ignavum(() => new Structor(() => + new NomenAgendum) + .ponatur(nomen => nomen.nominativum = 'iūgerum') + .ponatur(nomen => nomen.genitivum = 'iūgerī') + .ponatur(nomen => nomen.versio = 'secundaNeutra') + .struatur().putetur()) + )); + + const semidea: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dea, praefixum: 'sēmi' })); + + const abire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ab' })); + const circumire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'circum' })); + const coire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'co' })); + const deire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'de' })); + const disperire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'disper' })); + const exire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ex' })); + const inire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'in' })); + const interire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'inter' })); + const introire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'intro' })); + const nequire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'nequ' })); + const obire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'ob' })); + const perire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'per' })); + const prodire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'prōd' })); + const quire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'qu' })); + const redire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'red' })); + const subire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'sub' })); + const transabire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trānsab' })); + const transire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'trāns' })); + const venire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: ire, praefixum: 'vēn' })); + const dedare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'dē' })); + const edare: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: dare, praefixum: 'ē' })); + + const venireRectum: Ignavum> = new Ignavum(() => + new Structor(() => new NomenFactum) + .ponatur(nomen => nomen.infinitivum = 'venīre') + .ponatur(nomen => nomen.supinum = 'ventum') + .ponatur(nomen => nomen.versio = 'quartus') + .struatur().putetur()); + + const advenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ad' + })); + + const adinvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'adin' + })); + + const antevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ante' + })); + + const circumvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'circum' + })); + + const convenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'con' + })); + + const contravenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'contrā' + })); + + const disconvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'discon' + })); + + const devenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'dē' + })); + + const evenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ē' + })); + + const invenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'in' + })); + + const intervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'inter' + })); + + const obvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'ob' + })); + + const pervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'per' + })); + + const praevenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prae' + })); + + const provenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'prō' + })); + + const subvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'sub' + })); + + const supervenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'super' + })); + + const transvenire: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ + relata: new Ignavum(() => venireRectum.ipse()), + praefixum: 'trāns' + })); + + this.contenta.set('abīre', new Mantela(abire)); + this.contenta.set('advenīre', new Mantela(advenire)); + this.contenta.set('adinvenīre', new Mantela(adinvenire)); + this.contenta.set('antevenīre', new Mantela(antevenire)); + this.contenta.set('Athōs', new Mantela(Athos)); + this.contenta.set('balneum', new Mantela(balneum)); + this.contenta.set('caelum', new Mantela(caelum)); + this.contenta.set('circumīre', new Mantela(circumire)); + this.contenta.set('circumvenīre', new Mantela(circumvenire)); + this.contenta.set('coīre', new Mantela(coire)); + this.contenta.set('convenīre', new Mantela(convenire)); + this.contenta.set('contrāvenīre', new Mantela(contravenire)); + this.contenta.set('dare', new Mantela(dare)); + this.contenta.set('dēdare', new Mantela(dedare)); + this.contenta.set('dea', new Mantela(dea)); + this.contenta.set('deīre', new Mantela(deire)); + this.contenta.set('dēvenīre', new Mantela(devenire)); + this.contenta.set('disconvenīre', new Mantela(disconvenire)); + this.contenta.set('disperīre', new Mantela(disperire)); + this.contenta.set('domus', new Mantela(domus)); + this.contenta.set('ēdare', new Mantela(edare)); + this.contenta.set('ēvenīre', new Mantela(evenire)); + this.contenta.set('exīre', new Mantela(exire)); + this.contenta.set('Iēsūs', new Mantela(Iesus)); + this.contenta.set('inīre', new Mantela(inire)); + this.contenta.set('interīre', new Mantela(interire)); + this.contenta.set('intervenīre', new Mantela(intervenire)); + this.contenta.set('invenīre', new Mantela(invenire)); + this.contenta.set('introīre', new Mantela(introire)); + this.contenta.set('īre', new Mantela(ire)); + this.contenta.set('iūgerum', new Mantela(iugerum)); + this.contenta.set('lexis', new Mantela(lexis)); + this.contenta.set('nequīre', new Mantela(nequire)); + this.contenta.set('obīre', new Mantela(obire)); + this.contenta.set('obvenīre', new Mantela(obvenire)); + this.contenta.set('perīre', new Mantela(perire)); + this.contenta.set('prōvenīre', new Mantela(provenire)); + this.contenta.set('prōdīre', new Mantela(prodire)); + this.contenta.set('pervenīre', new Mantela(pervenire)); + this.contenta.set('praevenīre', new Mantela(praevenire)); + this.contenta.set('quīre', new Mantela(quire)); + this.contenta.set('redīre', new Mantela(redire)); + this.contenta.set('sēmidea', new Mantela(semidea)); + this.contenta.set('subīre', new Mantela(subire)); + this.contenta.set('subvenīre', new Mantela(subvenire)); + this.contenta.set('supervenīre', new Mantela(supervenire)); + this.contenta.set('trānsabīre', new Mantela(transabire)); + this.contenta.set('trānsīre', new Mantela(transire)); + this.contenta.set('trānsvenīre', new Mantela(transvenire)); + this.contenta.set('venīre', new Mantela(venireRectum)); + this.contenta.set('vēnīre', new Mantela(venire)); + this.contenta.set('vicēs', new Mantela(vices)); + this.contenta.set('vīs', new Mantela(vis)); + } +} diff --git a/src/anomala/pronomina.ts b/src/anomala/pronomina.ts new file mode 100644 index 0000000..65a5d19 --- /dev/null +++ b/src/anomala/pronomina.ts @@ -0,0 +1,181 @@ +import Anomala, { Mantela } from './anomala'; +import { Encliticum } from '../miscella/enumerationes'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Pronomen } from '../praebeunda/verba'; +import TabulaCollata from '../tabulae/collata'; +import TabulaCircumfixa from '../tabulae/rescriptae/circumfixa'; +import TabulaPraefixa from '../tabulae/rescriptae/praefixa'; +import TabulaRescripta from '../tabulae/rescriptae/rescripta'; +import TabulaSuffixa from '../tabulae/rescriptae/suffixa'; +import TabulaScapalis from '../tabulae/scapalis'; + +export default class Pronomina extends Anomala { + static se: Ignavum = new Ignavum(() => new Pronomina); + + protected async numeretur (): Promise { + const ego: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/ego', positor: Pronomen.positor })); + const hoc: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/hoc', positor: Pronomen.positor })); + const id: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/id', positor: Pronomen.positor })); + const illud: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/illud', positor: Pronomen.positor })); + const se: Ignavum> = new Ignavum(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/sē', positor: Pronomen.positor })); + + const egomet: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: ego, suffixum: 'met' })); + + const idem: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: id, + rescriptor (scriptum: string): string { + switch (scriptum) { + case 'is': + case 'eī': + return 'īdem'; + default: + return scriptum.concat('dem'); + } + }, + })); + + const ipsum: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum>(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/ipsum', positor: Pronomen.positor })), + new Ignavum>(() => + new TabulaRescripta({ + relata: illud, + rescriptor: scriptum => scriptum.replace('ill', 'ips') + })) + )); + + const istud: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: illud, + rescriptor: scriptum => scriptum.replace('ll', 'st') + })); + + const quid: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: id, + rescriptor (scriptum: string): string { + switch (scriptum) { + case 'ea': + case 'eae': + return 'quae'; + case 'eum': + return 'quem'; + case 'eius': + return 'cuius'; + default: + return scriptum.replace('e', 'qu'); + } + }, + })); + + const quod: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: quid, + rescriptor (scriptum: string): string { + switch (scriptum) { + case 'quid': + return 'quod'; + case 'quis': + return 'quī'; + default: + return scriptum; + } + }, + })); + + const tu: Ignavum> = new Ignavum(() => + new TabulaCollata( + new Ignavum>(() => + new TabulaScapalis({ via: '/res/scapales/pronomina/tū', positor: Pronomen.positor })), + new Ignavum>(() => + new TabulaRescripta({ + relata: se, + rescriptor: scriptum => scriptum.replace('s', 't') + })) + )); + + const aliquid: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: quid, praefixum: 'ali' })); + const aliquod: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: quod, praefixum: 'ali' })); + const aliquodpiam: Ignavum> = new Ignavum(() => + new TabulaCircumfixa({ relata: quod, praefixum: 'ali', suffixum: 'piam' })); + + const ecquid: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: quid, + rescriptor: scriptum => scriptum === 'cuius' ? 'ecculus' : 'ec'.concat(scriptum) + })); + + const ecquod: Ignavum> = new Ignavum(() => + new TabulaPraefixa({ relata: quod, praefixum: 'ec' })); + const quidnam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'nam' })); + const quidpiam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'piam' })); + const quidquam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'quam' })); + const quidque: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: Encliticum.Coniugans })); + const quidvis: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quid, suffixum: 'vīs' })); + const quodnam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quod, suffixum: 'nam' })); + const quodpiam: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quod, suffixum: 'piam' })); + const quodvis: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: quod, suffixum: 'vīs' })); + const semet: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ relata: se, suffixum: 'met' })); + + const tute: Ignavum> = new Ignavum(() => + new TabulaRescripta({ + relata: tu, + rescriptor: scriptum => scriptum === 'tū' ? 'tūte' : scriptum + })); + + const tutemet: Ignavum> = new Ignavum(() => + new TabulaSuffixa({ + relata: tute, + suffixum: 'met' + })); + + this.contenta.set('aliquid', new Mantela(aliquid)); + this.contenta.set('aliquod', new Mantela(aliquod)); + this.contenta.set('aliquodpiam', new Mantela(aliquodpiam)); + this.contenta.set('ecquid', new Mantela(ecquid)); + this.contenta.set('ecquod', new Mantela(ecquod)); + this.contenta.set('ego', new Mantela(ego)); + this.contenta.set('egomet', new Mantela(egomet)); + this.contenta.set('hoc', new Mantela(hoc)); + this.contenta.set('id', new Mantela(id)); + this.contenta.set('idem', new Mantela(idem)); + this.contenta.set('illud', new Mantela(illud)); + this.contenta.set('ipsum', new Mantela(ipsum)); + this.contenta.set('istud', new Mantela(istud)); + this.contenta.set('quid', new Mantela(quid)); + this.contenta.set('quidnam', new Mantela(quidnam)); + this.contenta.set('quidpiam', new Mantela(quidpiam)); + this.contenta.set('quidquam', new Mantela(quidquam)); + this.contenta.set('quidque', new Mantela(quidque)); + this.contenta.set('quidvīs', new Mantela(quidvis)); + this.contenta.set('quod', new Mantela(quod)); + this.contenta.set('quodnam', new Mantela(quodnam)); + this.contenta.set('quodpiam', new Mantela(quodpiam)); + this.contenta.set('quodvīs', new Mantela(quodvis)); + this.contenta.set('sē', new Mantela(se)); + this.contenta.set('sēmet', new Mantela(semet)); + this.contenta.set('tū', new Mantela(tu)); + this.contenta.set('tūte', new Mantela(tute)); + this.contenta.set('tūtemet', new Mantela(tutemet)); + } +} diff --git a/src/extensions/array.ts b/src/extensions/array.ts new file mode 100644 index 0000000..03eb708 --- /dev/null +++ b/src/extensions/array.ts @@ -0,0 +1,50 @@ +export { } + +declare global { + interface Array { + first(predicate?: (param: any) => boolean): T; + last(predicate?: (param: any) => boolean): T; + random(): T; + none(predicate?: (param: any) => boolean): boolean; + all(): boolean; + any(): boolean; + } +} + +Array.prototype.first = function(predicate?: (param: any) => boolean): T { + if (predicate) { + const copy: T[] = this.filter(predicate); + return copy[ 0 ]; + } else { + return this[ 0 ]; + } +} + +Array.prototype.last = function(predicate?: (param: any) => boolean): T { + if (predicate) { + const copy: T[] = this.filter(predicate); + return copy.at(-1) ?? copy[ this.length - 1 ]; + } else { + return this.at(-1) ?? this[ this.length - 1 ]; + } +} + +Array.prototype.random = function(): T { + return this[ Math.floor(Math.random() * this.length) ]; +} + +Array.prototype.none = function(predicate?: (param: any) => boolean): boolean { + if (predicate) { + return !this.some(predicate); + } else { + return !this.some((status) => !!status); + } +} + +Array.prototype.all = function(): boolean { + return this.every((status) => !!status); +} + +Array.prototype.any = function(): boolean { + return this.some((status) => !!status); +} diff --git a/src/extensions/string.ts b/src/extensions/string.ts new file mode 100644 index 0000000..69b0b85 --- /dev/null +++ b/src/extensions/string.ts @@ -0,0 +1,52 @@ +export { } + +const apices: Map = new Map; +apices.set('Ā', 'A'); +apices.set('Ē', 'E'); +apices.set('Ī', 'I'); +apices.set('Ō', 'O'); +apices.set('Ū', 'U'); +apices.set('Ȳ', 'Y'); +apices.set('ā', 'a'); +apices.set('ē', 'e'); +apices.set('ī', 'i'); +apices.set('ō', 'o'); +apices.set('ū', 'u'); +apices.set('ȳ', 'y'); + +declare global { + interface String { + chop(length: number): string; + startsWithConsonant(): boolean; + startsWithVowel(): boolean; + removeMacra(): string; + capitalize(): string; + } +} + +String.prototype.chop = function(length: number): string { + return this.slice(0, -1 * length); +} + +String.prototype.startsWithConsonant = function(): boolean { + const first: string | undefined = this.at(0); + return !!first && 'bcdfgklmnpqrstxz'.includes(first.toLowerCase()); +} + +String.prototype.startsWithVowel = function(): boolean { + return !this.startsWithConsonant(); +} + +String.prototype.removeMacra = function(): string { + if ([ ...this ].some(letter => apices.has(letter))) { + let copy: String = this; + apices.forEach(entry => copy = copy.replace(entry[0], entry[1])); + return copy as string; + } else { + return this as string; + } +} + +String.prototype.capitalize = function(): string { + return (this.at(0) ?? '').toUpperCase().concat(this.slice(1)); +} diff --git a/src/facies/404.vue b/src/facies/404.vue new file mode 100644 index 0000000..f3e4292 --- /dev/null +++ b/src/facies/404.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/facies/app.vue b/src/facies/app.vue new file mode 100644 index 0000000..e538c60 --- /dev/null +++ b/src/facies/app.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/facies/calculare.vue b/src/facies/calculare.vue new file mode 100644 index 0000000..5102ab8 --- /dev/null +++ b/src/facies/calculare.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/facies/inflectere.vue b/src/facies/inflectere.vue new file mode 100644 index 0000000..4a19194 --- /dev/null +++ b/src/facies/inflectere.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/facies/loqui.vue b/src/facies/loqui.vue new file mode 100644 index 0000000..88e8f33 --- /dev/null +++ b/src/facies/loqui.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/facies/numerare.vue b/src/facies/numerare.vue new file mode 100644 index 0000000..a2052fb --- /dev/null +++ b/src/facies/numerare.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/facies/quaerere.vue b/src/facies/quaerere.vue new file mode 100644 index 0000000..18416fc --- /dev/null +++ b/src/facies/quaerere.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/facies/specere.vue b/src/facies/specere.vue new file mode 100644 index 0000000..3ad2d7f --- /dev/null +++ b/src/facies/specere.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/lectores/lector.ts b/src/lectores/lector.ts new file mode 100644 index 0000000..88ad808 --- /dev/null +++ b/src/lectores/lector.ts @@ -0,0 +1,64 @@ +import file from 'file-fetch'; +import path from 'path'; +import Nuntius from '../miscella/nuntius'; +import * as Verba from '../praebeunda/verba'; +import { type Agendum } from '../praebeunda/agenda'; + +export function LectorAgendorum (scapum?: string): Lector[]> { + return new Lector[]>(scapum); +} + +@Nuntius.factum('Lector') +export default class Lector { + protected readonly _scapum: string; + + constructor (scapum: string = '') { + if (scapum.startsWith('/res')) { + this._scapum = scapum; + } else { + this._scapum = path.join('/res', scapum); + } + } + + protected viator (via: string): string { + return this._scapum ? + path.join(this._scapum, via.concat('.csv')) : + via.concat('.csv'); + } + + private async aperiatur (via: string): Promise { + const corpus: Body = await file(new URL(this.viator(via))); + return (corpus as Response).ok ? (await corpus.text()).trim() : ''; + } + + @Nuntius.futurus('Lector') + async legatur (lemma: string): Promise { + const data: string = await this.aperiatur(lemma); + if (data) { + const { parse } = require('comma-separated-values'); + try { + const hoc: Hoc = parse(data, { header: true }) as Hoc; + if (hoc) { + Nuntius.plusGarrio({ + nomen: 'Lector', + nuntium: `Lemma invenita'st ${lemma} ` + }); + + return hoc; + } + } catch (error) { + Nuntius.timeo({ + nomen: 'Lector', + error: error as Error + }); + } + } + + Nuntius.plusGarrio({ + nomen: 'Lector', + nuntium: `Lemma nulla'st ${lemma}` + }); + + return null; + } +} diff --git a/src/lectores/verbalis.ts b/src/lectores/verbalis.ts new file mode 100644 index 0000000..db031df --- /dev/null +++ b/src/lectores/verbalis.ts @@ -0,0 +1,43 @@ +import listFiles from 'list-files-in-dir'; +import path from 'path'; +import Lector from './lector'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import * as Agenda from '../praebeunda/agenda'; +import { type Lectum } from '../praebeunda/interfecta'; + + +@Nuntius.factum('LectorVerbalis') +export default class LectorVerbalis extends Lector { + static Actuum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/actus')); + static Adverbiorum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/adverbia')); + static Numeraminum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/numeramina')); + + static Adiectivorum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/adiectiva')); + static Incomparabilium: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/adiectiva/incomparabilia')); + + static Nominum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/nomina')); + static NominumFactorum: Ignavum> = new Ignavum(() => + new LectorVerbalis('/res/lemmae/nomina/facta')); + + protected constructor (scapum?: string) { + super(scapum); + } + + @Nuntius.futurus('LectorVerbalis') + async omnia (): Promise { + return (await listFiles.listFiles(this._scapum, 'csv')) + .map(res => path.parse(res).name).sort(); + } + + @Nuntius.futurus('LectorVerbalis') + async forsLegat (): Promise { + return await this.legatur((await this.omnia()).random()); + } +} diff --git a/src/lectores/verbi.ts b/src/lectores/verbi.ts new file mode 100644 index 0000000..f67a7d4 --- /dev/null +++ b/src/lectores/verbi.ts @@ -0,0 +1,29 @@ +import LectorVerbalis from './verbalis'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import type { Verbum } from '../praebeunda/verba'; + +@Nuntius.factum('LectorVerbi') +export class LectorVerbi extends LectorVerbalis { + static se: Ignavum = new Ignavum(() => new LectorVerbi); + private constructor() { + super('/res/lemmae/verba'); + } + + @Nuntius.futurus('LectorVerbi') + override async omnia (): Promise { + const ordo: string[] = []; + (await super.omnia()).forEach(async lemma => { + const verbum: Verbum | null = (await super.legatur(lemma)); + if (verbum) { + ordo.push([ + verbum.categoria, + verbum.scriptum + ].join('/')); + } + }); + + return ordo; + } + +} diff --git a/src/miscella/cocutor.ts b/src/miscella/cocutor.ts new file mode 100644 index 0000000..e98da7a --- /dev/null +++ b/src/miscella/cocutor.ts @@ -0,0 +1,59 @@ +import { getCookie, removeCookie, setCookie } from 'typescript-cookie'; +import Ignavum from './ignavum'; +import Nuntius from './nuntius'; +import type { CookieAttributes } from 'node_modules/typescript-cookie/dist/types'; + +export type Crustulum = { + nomen: string, + valor: string; +}; + +@Nuntius.factum('Cocutor') +export default class Cocutor { + static se: Ignavum = new Ignavum(() => new Cocutor); + + private readonly _optiones: CookieAttributes = { + domain: 'conans', + expires: 30, + sameSite: 'strict', + secure: true + }; + + @Nuntius.modus('Cocutor') + coquatur (crustulum: Crustulum): void { + setCookie(crustulum.nomen, crustulum.valor, this._optiones); + } + + @Nuntius.modus('Cocutor') + edatur (nomen: string): string | undefined { + return getCookie(nomen); + } + + @Nuntius.modus('Cocutor') + voreatur (nomen: string): string | undefined { + const esum: string | undefined = this.edatur(nomen); + removeCookie(nomen, { + domain: this._optiones.domain + }); + + return esum; + } + + @Nuntius.modus('Cocutor') + coctust (nomen: string): boolean { + return !!this.edatur(nomen); + } + + @Nuntius.modus('Cocutor') + est(nomen: string): boolean | undefined { + const valor: string | undefined = this.edatur(nomen); + switch(valor) { + case 'ita': + return true; + case 'non': + return false; + default: + return undefined; + } + } +} diff --git a/src/miscella/dictionarium.ts b/src/miscella/dictionarium.ts new file mode 100644 index 0000000..8612d90 --- /dev/null +++ b/src/miscella/dictionarium.ts @@ -0,0 +1,309 @@ +import deepEqual from 'deep-equal'; +import Ignavum from './ignavum'; +import Nuntius from './nuntius'; +import Actus from '../anomala/actus'; +import Adiectiva from '../anomala/adiectiva'; +import Nomina from '../anomala/nomina'; +import Pronomina from '../anomala/pronomina'; +import LectorVerbalis from '../lectores/verbalis'; +import { LectorVerbi } from '../lectores/verbi'; +import * as Agenda from '../praebeunda/agenda'; +import { Verbum, type Pronomen } from '../praebeunda/verba'; +import { type Referendum } from '../praebeunda/interfecta'; +import { type Mantela } from '../anomala/anomala'; + +export type Lemma = { + categoria: string, + scriptum: string; +}; + +export type Relatum = { + lemma: Lemma, + lecta: boolean; +}; + +export type Quaerenda = { + pars: string, + categoriae: string[] +} + +export type Eventus = { + referendum: Referendum; + categoria: string +} + +@Nuntius.factum('Dictionarium') +export default class Dictionarium { + static se: Ignavum = new Ignavum(() => new Dictionarium); + + private readonly _lectorActuum: Ignavum> = + LectorVerbalis.Actuum; + private readonly _lectorAdverbiorum: Ignavum> = + LectorVerbalis.Adverbiorum; + private readonly _lectorAdiectivorum: Ignavum> = + LectorVerbalis.Adiectivorum; + private readonly _lectorIncomparabilium: Ignavum> = + LectorVerbalis.Incomparabilium; + private readonly _lectorNominis: Ignavum> = + LectorVerbalis.Nominum; + private readonly _lectorNumeraminis: Ignavum> = + LectorVerbalis.Numeraminum; + private readonly _lector: Ignavum = LectorVerbi.se; + + private readonly _pronomina: Ignavum = Pronomina.se; + private readonly _actus: Ignavum = Actus.se; + private readonly _adiectiva: Ignavum = Adiectiva.se; + private readonly _nomina: Ignavum = Nomina.se; + + relata: Relatum[] = []; + + @Nuntius.futurus('Dictionarium') + async perscribantur (): Promise { + if (!(this.relata?.length)) { + this.relata = []; + const lectorActus: LectorVerbalis = this._lectorActuum.ipse(); + (await lectorActus.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Actus', + scriptum: res + }, lecta: true + }); + + this.relata.push({ + lemma: { + categoria: 'Nomen', + scriptum: res + }, lecta: true + }); + }); + + const lectorAdverbiorum: LectorVerbalis = this._lectorAdverbiorum.ipse(); + (await lectorAdverbiorum.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adverbium', + scriptum: res + }, lecta: true + }); + }); + + const lectorAdiectivorum: LectorVerbalis = this._lectorAdiectivorum.ipse(); + (await lectorAdiectivorum.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adiectivum', + scriptum: res + }, lecta: true + }); + }); + + const lectorIncomparabilium: LectorVerbalis = this._lectorIncomparabilium.ipse(); + (await lectorIncomparabilium.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adiectivum', + scriptum: res + }, lecta: true + }); + }); + + const lectorNominis: LectorVerbalis = this._lectorNominis.ipse(); + (await lectorNominis.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Nomen', + scriptum: res + }, lecta: true + }); + }); + + const lectorNumeraminis: LectorVerbalis = this._lectorNumeraminis.ipse(); + (await lectorNumeraminis.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Numeramen', + scriptum: res + }, lecta: true + }); + }); + + const pronomina: Pronomina = this._pronomina.ipse(); + (await pronomina.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Pronomen', + scriptum: res + }, lecta: false + }); + }); + + const actus: Actus = this._actus.ipse(); + (await actus.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Actus', + scriptum: res + }, lecta: false + }); + }); + + const adiectiva: Adiectiva = this._adiectiva.ipse(); + (await adiectiva.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Adiectivum', + scriptum: res + }, lecta: false + }); + }); + + const nomina: Nomina = this._nomina.ipse(); + (await nomina.omnia()).forEach(res => { + this.relata.push({ + lemma: { + categoria: 'Nomen', + scriptum: res + }, lecta: false + }); + }); + + const lector: LectorVerbalis = this._lector.ipse(); + (await lector.omnia()).forEach(res => { + const [ categoria, scriptum ] = res.split('/'); + this.relata.push({ + lemma: { + categoria: categoria, + scriptum: scriptum + }, lecta: true + }); + }); + } + } + + @Nuntius.futurus('Dictionarium') + async referatur (lemma: Lemma): Promise { + const lecta: boolean = this.relata.first(relatum => deepEqual(lemma, relatum.lemma))?.lecta ?? false; + switch (lemma.categoria.toLowerCase()) { + case 'actus': + if (lecta) { + const lectorActuum: LectorVerbalis = this._lectorActuum.ipse(); + const actus: Referendum | null = await lectorActuum.legatur(lemma.scriptum); + return actus ? { + referendum: actus, + categoria: lemma.categoria.toLowerCase() + } : null; + } else { + using actus: Actus = this._actus.ipse(); + const referendum: Referendum | null = await actus.feratur(lemma.scriptum) ?? null; + return referendum ? { + referendum: referendum, + categoria: lemma.categoria.toLowerCase() + } : null; + } + case 'adiectivum': + if (lecta) { + const lectorAdiectivorum: LectorVerbalis = this._lectorAdiectivorum.ipse(); + if ((await lectorAdiectivorum.omnia()).includes(lemma.scriptum)) { + const adiectivum: Referendum | null = await lectorAdiectivorum.legatur(lemma.scriptum); + return adiectivum ? { + referendum: adiectivum, + categoria: lemma.categoria.toLowerCase() + } : null; + } else { + const lectorIncomparabilium: LectorVerbalis = this._lectorIncomparabilium.ipse(); + const incomparabile: Referendum | null = await lectorIncomparabilium.legatur(lemma.scriptum); + return incomparabile ? { + referendum: incomparabile, + categoria: lemma.categoria.toLowerCase() + } : null; + } + } else { + using adiectiva: Adiectiva = this._adiectiva.ipse(); + const referendum: Referendum | null = await adiectiva.feratur(lemma.scriptum) ?? null; + return referendum ? { + referendum: referendum, + categoria: lemma.categoria.toLowerCase() + } : null; + } + case 'adverbium': + const lectorAdverbium: LectorVerbalis = this._lectorAdverbiorum.ipse(); + const adverbium: Referendum | null = await lectorAdverbium.legatur(lemma.scriptum); + return adverbium ? { + referendum: adverbium, + categoria: lemma.categoria.toLowerCase() + } : null; + case 'nomen': + if (lecta) { + const lectorActuum: LectorVerbalis = this._lectorActuum.ipse(); + if ((await lectorActuum.omnia()).includes(lemma.scriptum)) { + const nomen: Referendum | null = await (await lectorActuum.legatur(lemma.scriptum))?.nomen() ?? null; + return nomen ? { + referendum: nomen, + categoria: lemma.categoria.toLowerCase() + } : null; + } else { + const lectorNominis: LectorVerbalis = this._lectorNominis.ipse(); + const nomen: Referendum | null = await lectorNominis.legatur(lemma.scriptum); + return nomen ? { + referendum: nomen, + categoria: lemma.categoria.toLowerCase() + } : null; + } + } else { + using nomina: Nomina = this._nomina.ipse(); + const nomen: Referendum | null = await nomina.feratur(lemma.scriptum) ?? null; + return nomen ? { + referendum: nomen, + categoria: lemma.categoria.toLowerCase() + } : null; + } + case 'numeramen': + const lectorNumeraminis: LectorVerbalis = this._lectorNumeraminis.ipse(); + const numeramen: Referendum | null = await lectorNumeraminis.legatur(lemma.scriptum); + return numeramen ? { + referendum: numeramen, + categoria: lemma.categoria.toLowerCase() + } : null; + case 'promomen': + using pronomina: Pronomina = this._pronomina.ipse(); + const pronomen: Mantela | null = await pronomina.feratur(lemma.scriptum) ?? null; + return pronomen ? { + referendum: pronomen, + categoria: lemma.categoria.toLowerCase() + } : null; + default: + const lector: LectorVerbalis = this._lector.ipse(); + const verbum: Verbum | null = await lector.legatur(lemma.scriptum); + return verbum ? { + referendum: verbum, + categoria: lemma.categoria.toLowerCase() + } : null; + } + } + + @Nuntius.futurus('Dictionarium') + async quaeratur(quaerenda: Quaerenda): Promise { + switch (true) { + case [ !!quaerenda.categoriae, !!quaerenda.pars ].all(): + return this.relata + .filter(relatum => [ + relatum.lemma.scriptum.includes(quaerenda.pars), + quaerenda.categoriae.includes(relatum.lemma.categoria) + ].all()).map(relatum => relatum.lemma); + case [ !!quaerenda.categoriae, !quaerenda.pars ].all(): + return this.relata + .filter(relatum => quaerenda.categoriae.includes(relatum.lemma.categoria)) + .map(relatum => relatum.lemma); + case [ !quaerenda.categoriae, !!quaerenda.pars ].all(): + return this.relata + .filter(relatum => relatum.lemma.scriptum.includes(quaerenda.pars)) + .map(relatum => relatum.lemma); + case [ !quaerenda.categoriae, !quaerenda.pars ].all(): + return this.relata + .map(relatum => relatum.lemma); + default: + return []; + } + } +} diff --git a/src/miscella/enumerationes.ts b/src/miscella/enumerationes.ts new file mode 100644 index 0000000..1003e7a --- /dev/null +++ b/src/miscella/enumerationes.ts @@ -0,0 +1,155 @@ +export enum Encliticum { + Nolens = '', + Interrogans = 'ne', + Coniugans = 'que', + Eligens = 've' +} + +export enum Mensa { + Ianuarius = 1, + Februarius, + Mars, + Aprilis, + Maius, + Iunius, + Iulius, + Augustus, + September, + October, + November, + December +} + +// Operator + +export const categoriae: string[] = [ 'actus', 'adiectivum', 'adverbium', 'coniunctio', 'nomen', 'numeramen', 'numerus', 'praepositio', 'pronomen' ]; +export const casus: string[] = [ 'derectus', 'nominativus', 'genitivus', 'dativus', 'accusativus', 'ablativus', 'vocativus', 'locativus' ]; +export const facta: string[] = [ 'infintivus', 'gerundium', 'supinum' ]; +export const genera: string[] = [ 'neutrum', 'masculinum', 'femininum' ]; +export const gradi: string[] = [ 'positivus', 'comparativus', 'superlativus' ]; +export const modi: string[] = [ 'indicativus', 'subiunctivus', 'infinitivus', 'imperativus', 'participalis' ]; +export const numerales: string[] = [ 'singularis', 'pluralis' ]; +export const numeria: string[] = [ 'numerus', 'ordinale', 'cardinale', 'adverbium', 'multiplicativum', 'distributivum', 'fractionale' ]; +export const personae: string[] = [ 'prima', 'secunda', 'tertia' ]; +export const tempora: string[] = [ 'praesens', 'infectum', 'futurum', 'perfectum', 'plusquamperfectum', 'exigendum' ]; +export const voces: string[] = [ 'activa', 'passiva' ]; + +export function anglicum(valor: string) { + switch (valor) { + case 'actus': + return 'verb' + case 'adiectivum': + return 'adjective' + case 'adverbium': + return 'adverb' + case 'coniunctio': + return 'conjunction' + case 'nomen': + return 'noun' + case 'numeramen': + case 'numerus': + case 'numeralis': + return 'numeral' + case 'praepositio': + return 'preposition' + case 'pronomen': + return 'pronoun' + case 'derectus': + return 'direct' + case 'nominativus': + return 'nominative' + case 'genitivus': + return 'genitive' + case 'dativus': + return 'dative' + case 'accusativus': + return 'accusative' + case 'ablativus': + return 'ablative' + case 'locativus': + return 'locative' + case 'vocativus': + return 'vocative' + case 'infinitivus': + return 'infinitive' + case 'gerundium': + return 'gerund' + case 'supinum': + return 'supine' + case 'neutrum': + return 'neuter' + case 'masculinum': + return 'masculine' + case 'femininum': + return 'feminine' + case 'positivus': + return 'positive' + case 'comparativus': + return 'comparative' + case 'superlativus': + return 'superlative' + case 'indicativus': + return 'indicative' + case 'subiunctivus': + return 'subjunctive' + case 'imperativus': + return 'imperative' + case 'participalis': + return 'participle' + case 'singularis': + return 'singular' + case 'pluralis': + return 'plural' + case 'ordinale': + return 'ordinal' + case 'cardinale': + return 'cardinal' + case 'distributivum': + return 'distributive' + case 'multiplicativum': + return 'multiplicative' + case 'fractionale': + return 'fractional' + case 'prima': + return 'first' + case 'secunda': + return 'second' + case 'tertia': + return 'third' + case 'praesens': + return 'present' + case 'infectum': + return 'imperfect' + case 'futurum': + return 'future' + case 'perfectum': + return 'perfect' + case 'plusquamperfectum': + return 'plu-perfect' + case 'exigendum': + return 'future-perfect' + case 'activa': + return 'active' + case 'passiva': + return 'passive' + case 'modus': + return 'mode'; + case 'vox': + return 'voice' + case 'tempus': + return 'tense' + case 'persona': + return 'person' + case 'genus': + return 'gender' + case 'gradus': + return 'grade' + case 'casus': + return 'case' + case 'factum': + case 'numerium': + return 'reference' + default: + return ''; + } +} diff --git a/src/miscella/ignavum.ts b/src/miscella/ignavum.ts new file mode 100644 index 0000000..1bcc866 --- /dev/null +++ b/src/miscella/ignavum.ts @@ -0,0 +1,12 @@ +type Generator = () => Hoc; +export default class Ignavum { + private _se?: Hoc; + private readonly _generator: Generator; + constructor (generator: Generator) { + this._generator = generator; + } + + ipse (): Hoc { + return this._se ?? (this._se = this._generator()); + } +} diff --git a/src/miscella/locutor.ts b/src/miscella/locutor.ts new file mode 100644 index 0000000..e83d629 --- /dev/null +++ b/src/miscella/locutor.ts @@ -0,0 +1,120 @@ +import Cocutor from './cocutor'; +import Ignavum from './ignavum'; +import Nuntius from './nuntius'; +import { Verbum } from '../praebeunda/verba'; + +@Nuntius.factum('Locutor') +export default class Locutor { + static se: Ignavum = new Ignavum(() => new Locutor); + + private readonly cocutor: Cocutor = Cocutor.se.ipse(); + + private _verba: Verbum[]; + private apices?: boolean; + private utendaU?: boolean; + private magnas?: boolean; + private separator?: string; + + constructor () { + this._verba = []; + this.veliferum(); + } + + locutust(): boolean { + return this._verba.length > 0; + } + + private veliferum(): void { + this.apices = this.cocutor.est('apices') ?? true; + this.utendaU = this.cocutor.est('utendaU') ?? true; + this.magnas = this.cocutor.est('magnas') ?? false; + + switch (this.cocutor.edatur('separator')) { + case 'interpunctum': + this.separator = '·'; + case 'nullum': + this.separator = ''; + default: + this.separator = ' '; + } + } + + get verba (): Verbum[] { + return this._verba; + } + + addatur (verbum: Verbum): void { + const praevium: Verbum = this._verba.last(); + if (praevium.categoria === 'praepositio') { + verbum.scriptum.startsWithVowel() + switch (praevium.scriptum) { + case 'ā': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ab'; + this.addatur(praevium); + } + break; + case 'ē': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ex'; + this.addatur(praevium); + } + break; + case 'ab': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ā'; + this.addatur(praevium); + } + break; + case 'ex': + if (verbum.scriptum.startsWithVowel()) { + this.removeatur(praevium.unicum); + praevium.scriptum = 'ē'; + this.addatur(praevium); + } + break; + } + } + + this.veliferum(); + if (this.utendaU) { + if ([ + 'Ū', 'U', 'ū', 'u' + ].some(littera => verbum.scriptum.includes(littera))) { + verbum.scriptum = verbum.scriptum.replace('Ū', 'V') + verbum.scriptum = verbum.scriptum.replace('U', 'V') + verbum.scriptum = verbum.scriptum.replace('ū', 'v') + verbum.scriptum = verbum.scriptum.replace('u', 'v') + } + } + + if (!this.apices) { + verbum.scriptum = verbum.scriptum.removeMacra(); + } + + this._verba.push(verbum); + } + + loquitur(unicum: symbol): boolean { + return this.verba.some(verbum => verbum.unicum === unicum); + } + + removeatur (unicum: symbol): string { + this._verba = this._verba.filter(verba => verba.unicum !== unicum); + return this.scribantur(); + } + + scribantur (): string { + this.veliferum(); + const locutio: string = this.verba.map(verba => verba.scriptum) + .join(this.separator); + if (this.magnas) { + return locutio.toUpperCase(); + } else { + return locutio.capitalize(); + } + } +} diff --git a/src/miscella/numeral.ts b/src/miscella/numeral.ts new file mode 100644 index 0000000..3962f2c --- /dev/null +++ b/src/miscella/numeral.ts @@ -0,0 +1,84 @@ +import RomanNumeral from 'js-roman-numerals'; + +type Par = { + anglicus: number, + latinum: string; +}; + +export default class Numeral { + static minimus: Par = { + anglicus: 0.0, + latinum: 'N' + }; + + static maximus: Par = { + anglicus: 39993999.0 + (11.0 / 12.0), + latinum: '|MMMCMXCIX|MMMCMXCIXS×' + }; + + static fracti (): Map { + const numeri: Map = new Map; + numeri.set(1, '·'); + numeri.set(2, ':'); + numeri.set(3, '∴'); + numeri.set(4, '::'); + numeri.set(5, '×'); + numeri.set(6, 'S'); + numeri.set(7, 'S·'); + numeri.set(8, 'S:'); + numeri.set(9, 'S∴'); + numeri.set(10, 'S::'); + numeri.set(11, 'S×'); + return numeri; + } + + static convertibilis (anglicus: number): boolean { + return [ + anglicus >= Numeral.minimus.anglicus, + anglicus <= Numeral.maximus.anglicus + ].all(); + } + + static romanus (anglicus: number): string { + if (this.convertibilis(anglicus)) { + if (anglicus === Numeral.minimus.anglicus) { + return Numeral.minimus.latinum; + } else if (Number.isInteger(anglicus)) { + if (anglicus >= 4000) { + const inferior: number = anglicus % 4000; + const superior: number = (anglicus - inferior) / 1000; + return `|${new RomanNumeral(superior)}|${new RomanNumeral(inferior)}`; + } else { + return new RomanNumeral(anglicus).toString(); + } + } else { + const integer: number = Math.floor(anglicus); + const fractus: number = 12 * (anglicus - integer); + const fractum: string | undefined = this.fracti().get(fractus); + return fractum ? this.romanus(integer).concat(fractum) : ''; + } + } else { + throw new Error(`Iacta interfuturu'st valor: ${anglicus}`); + } + } + + static anglicus (romanus: string): number { + const fractus: string = [ + ...this.fracti().values() + ].first(valor => romanus.includes(valor))[0]; + if (fractus) { + const numerator: number = [ + ...this.fracti().entries() + ].first(valor => valor[ 1 ] === fractus)[0]; + romanus = romanus.replace(fractus, ''); + return this.anglicus(romanus) + (numerator / 12.0); + } else if (romanus === 'N') { + return 0; + } else if (romanus.startsWith('|')) { + const [ _, superior, inferior ] = romanus.split('|'); + return (10 * this.anglicus(superior)) + this.anglicus(inferior); + } else { + return new RomanNumeral(romanus).toInt(); + } + } +} diff --git a/src/miscella/nuntius.ts b/src/miscella/nuntius.ts new file mode 100644 index 0000000..4c68bd3 --- /dev/null +++ b/src/miscella/nuntius.ts @@ -0,0 +1,251 @@ +import winston from 'winston'; +import DailyRotateFile from 'winston-daily-rotate-file'; +import { Mensa } from './enumerationes'; +import Numeral from './numeral'; + + +const scribatur = (parametra: { + nomen?: string, + res: { + level: string, + message: string; + }; +}): string => { + if (parametra.nomen) { + return `${parametra.nomen} @${Temporis.nunc()} <${parametra.res.level}> ${parametra.res.message}`; + } else { + return `@${Temporis.nunc()} <${parametra.res.level}> ${parametra.res.message}`; + } +}; + +type Parametra = { + nomen?: string, + nuntium?: string, + error?: Error; +} + +export default class Nuntius implements Disposable { + static morior (parametra: Parametra): void { + this.timeo(parametra); + process.abort(); + } + + static timeo (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + error: parametra.error + }); + } + + static moneo (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'warn', + nuntium: parametra.nuntium + }); + } + + static noto (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'info', + nuntium: parametra.nuntium + }); + } + + static certioro (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'http', + nuntium: parametra.nuntium + }); + } + + static garrio (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'verbose', + nuntium: parametra.nuntium + }); + } + + static plusGarrio (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'debug', + nuntium: parametra.nuntium + }); + } + + static plurimumGarrio (parametra: Parametra): void { + using nuntius: Nuntius = new Nuntius(parametra.nomen); + nuntius.nuntio({ + gradus: 'silly', + nuntium: parametra.nuntium + }); + } + + static factum(nomen: string): any { + return function(constr: Hoc) { + return class extends constr { + constructor(...parametra: any[]) { + super(...parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: 'Fit' + }); + } + } + } + } + + static modus(nomen?: string) { + return function(modus: any, contextus: ClassMethodDecoratorContext) { + return function (...parametra: any[]) { + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Initu'st modus ${contextus.name.toString()}` + }); + + const illud = modus(parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Exitu'st modus ${contextus.name.toString()}` + }); + + return illud; + } + } + } + + static futurus(nomen?: string) { + return function(modus: any, contextus: ClassMethodDecoratorContext) { + return async function (...parametra: any[]) { + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Initu'st modus ${contextus.name.toString()}` + }); + + const illud = await modus(parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: `Exitu'st modus ${contextus.name.toString()}` + }); + + return illud; + } + } + } + + static finitus(nomen?: string) { + return function(modus: any, contextus: ClassMethodDecoratorContext) { + return function (...parametra: any[]) { + modus(parametra); + + Nuntius.plusGarrio({ + nomen: nomen, + nuntium: "Finitu'st" + }); + } + } + } + + private readonly _nuntiator: winston.Logger; + private readonly _mundusEvolendum: boolean = true; + private readonly _nomen?: string; + + private constructor (nomen?: string) { + this._nomen = nomen; + let navigium, forma: any; + if (this._mundusEvolendum) { + forma = winston.format.combine( + winston.format.align(), + winston.format.cli(), + winston.format.colorize(), + winston.format.prettyPrint(), + winston.format.printf(res => scribatur({ + nomen: this._nomen, + res: res + })) + ); + + navigium = new winston.transports.Console({ + format: forma + }); + } else { + forma = winston.format.combine( + winston.format.align(), + winston.format.uncolorize(), + winston.format.simple(), + winston.format.printf(res => scribatur({ + nomen: this._nomen, + res: res + })) + ); + + navigium = new DailyRotateFile({ + datePattern: '', + dirname: '../nuntia', + filename: `StructorVerborum${Temporis.hodie()}.log)`, + frequency: '1d', + maxSize: '20m', + maxFiles: '30d', + zippedArchive: true + }); + + // navigium.on('new', (hoc: string) => { }); + // navigium.on('rotate', (illud: string, hoc: string) => { }); + // navigium.on('archive', (tabularium: string) => { }); + // navigium.on('logRemoved', (delendum: string) => { }); + } + + this._nuntiator = winston.createLogger({ + exitOnError: this._mundusEvolendum, + format: forma, + level: this._mundusEvolendum ? 'debug' : 'error', + transports: [ navigium ] + }); + } + + nuntio (parametra: { + gradus?: string, + nuntium?: string, + error?: Error; + }): void { + if (parametra.error) { + this._nuntiator.error(parametra.error); + } else if (parametra.gradus) { + this._nuntiator.log(parametra.gradus, parametra.nuntium); + } + } + + [ Symbol.dispose ] (): void { + this._nuntiator.close(); + this._nuntiator.destroy(); + } +} + +class Temporis { + static hodie (): string { + const hodie: Date = new Date; + return [ + Numeral.romanus(hodie.getUTCDay()), + Mensa[ hodie.getUTCMonth() ], + Numeral.romanus(hodie.getUTCFullYear()) + ].join(''); + } + + static nunc (): string { + const nunc: Date = new Date; + return [ + nunc.getUTCHours(), + nunc.getUTCMinutes(), + nunc.getUTCSeconds(), + nunc.getUTCMilliseconds() + ].map(numerus => Numeral.romanus(numerus)) + .join(':'); + } +} diff --git a/src/miscella/versiones.ts b/src/miscella/versiones.ts new file mode 100644 index 0000000..14f4a54 --- /dev/null +++ b/src/miscella/versiones.ts @@ -0,0 +1,146 @@ +export const Nominunm: string[] = [ + 'prima', + 'prima//singularis', + 'prima//pluralis', + 'secundaMasculina', + 'secundaNeutra', + 'secundaMasculina//singularis', + 'secundaNeutra//singularis', + 'secundaMasculina//pluralis', + 'secundaNeutra//pluralis', + 'tertiaAnimata', + 'tertiaNeutra', + 'tertiaAnimata//singularis', + 'tertiaNeutra//singularis', + 'tertiaAnimata//pluralis', + 'tertiaNeutra//pluralis', + 'quarta', + 'quartaVaria', + 'quinta', + 'secundaMasculina/nominativusDirectus', + 'secundaMasculina/cumLitteraR', + 'secundaMasculina/nominativusDirectus/singularis', + 'secundaMasculina/cumLitteraR/singularis', + 'secundaMasculina/nominativusDirectus/pluralis', + 'secundaMasculina/cumLitteraR/pluralis', + 'tertiaAnimata/cumGenitivoVario', + 'tertiaAnimata/cumAblativoVario', + 'tertiaAnimata/cumGenitivoAblativoqueVario', + 'tertiaAnimata/cumGenitivoVario/singularis', + 'tertiaAnimata/cumAblativoVario/singularis', + 'tertiaAnimata/cumGenitivoAblativoqueVario/singularis', + 'tertiaAnimata/cumGenitivoVario/pluralis', + 'tertiaAnimata/cumAblativoVario/pluralis', + 'tertiaAnimata/cumGenitivoAblativoqueVario/pluralis', + 'tertiaNeutra/cumGenitivoVario', + 'tertiaNeutra/cumAblativoVario', + 'tertiaNeutra/cumGenitivoAblativoqueVario', + 'tertiaNeutra/cumTruncoVario', + 'tertiaNeutra/cumGenitivoVario/singularis', + 'tertiaNeutra/cumAblativoVario/singularis', + 'tertiaNeutra/cumGenitivoAblativoqueVario/singularis', + 'tertiaNeutra/cumTruncoVario/singularis', + 'tertiaNeutra/cumGenitivoVario/pluralis', + 'tertiaNeutra/cumAblativoVario/pluralis', + 'tertiaNeutra/cumGenitivoAblativoqueVario/pluralis', + 'tertiaNeutra/cumTruncoVario/pluralis' +]; + +export const NominumFactorum: string[] = [ + 'prima', + 'secunda', + 'tertia', + 'tertiaVaria', + 'quarta', + 'prima/prona', + 'secunda/prona', + 'tertia/prona', + 'tertiaVaria/prona', + 'quarta/prona' +]; + +export const Adiectivorum: string[] = [ + 'positivaAutPrimaAutSecunda', + 'positivaAutPrimaAutSecunda//pluralis', + 'positivaAutPrimaAutSecunda/nominativusDirectus', + 'positivaAutPrimaAutSecunda/nominativusDirectus/pluralis', + 'positivaAutPrimaAutSecunda/cumLitteraR', + 'positivaAutPrimaAutSecunda/cumLitteraR/pluralis', + 'positivaTertia', + 'positivaTertia//pluralis', + 'positivaTertia/cumGenitivoVario', + 'positivaTertia/cumGenitivoVario/pluralis', + 'positivaTertia/cumAblativoVario', + 'positivaTertia/cumAblativoVario/pluralis', + 'positivaTertia/cumGenitivoAblativoqueVario', + 'positivaTertia/cumGenitivoAblativoqueVario/pluralis', + 'positivaTertia/cumTruncoVario', + 'positivaTertia/cumTruncoVario/pluralis', + 'positivaTertia/nominativusUnigener', + 'positivaTertia/nominativusUnigener/pluralis', + 'positivaTertia/nominativusUnigenerCumGenitivoVario', + 'positivaTertia/nominativusUnigenerCumGenitivoVario/pluralis', + 'positivaTertia/nominativusUnigenerCumAblativoVario', + 'positivaTertia/nominativusUnigenerCumAblativoVario/pluralis', + 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario', + 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario/pluralis', + 'positivaTertia/nominativusUnigenerCumTruncoVario', + 'positivaTertia/nominativusUnigenerCumTruncoVario/pluralis', +]; + +export const Incomparabilium: string[] = [ + 'autPrimaAutSecunda', + 'autPrimaAutSecunda//pluralis', + 'autPrimaAutSecunda/nominativusDirectus', + 'autPrimaAutSecunda/cumLitteraR', + 'tertia', + 'tertia/cumGenitivoVario', + 'tertia/cumAblativoVario', + 'tertia/cumGenitivoAblativoqueVario', + 'tertia/cumTruncoVario', + 'tertia/nominativusUnigener', + 'tertia/nominativusUnigener/pluralis', + 'tertia/nominativusUnigenerCumGenitivoVario', + 'tertia/nominativusUnigenerCumGenitivoqueVario/pluralis', + 'tertia/nominativusUnigenerCumAblativoVario', + 'tertia/nominativusUnigenerCumAblativoVario/pluralis', + 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario', + 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario/pluralis', + 'tertia/nominativusUnigenerCumTruncoVario', + 'tertia/nominativusUnigenerCumTruncoVario/pluralis', + 'pronominalis', + 'pronominalis/nominativusDirectus', + 'pronominalis/cumLitteraR' +]; + +export const Actuum: string[] = [ + 'prima', + 'secunda', + 'tertia', + 'tertia//perfecta', + 'tertiaVaria', + 'quarta', + 'quarta//perfecta', + 'tertia/cumImperativoBrevi', + 'tertiaVaria/cumImperativoBrevi', + 'prima//deponens', + 'secunda//deponens', + 'tertia//peponens', + 'quarta//peponens', + 'prima//semideponens', + 'secunda//semideponens', + 'tertia//semideponens', + 'prima//semideponensActiva', + 'secunda//semideponensActiva', + 'tertia//semideponensActiva', + 'secunda//impersonalis', + 'tertia//impersonalis', + 'prima//impersonalis/semideponens', + 'secunda//impersonalis/semideponens', + 'tertia//impersonalis/semideponens', + 'prima//impersonalis/semideponensActiva', + 'secunda//impersonalis/semideponensActiva', + 'tertia//impersonalis/semideponensActiva', + 'secunda//impersonalis/passivo', + 'tertia//impersonalis/passivo' +]; diff --git a/src/praebeunda/agenda.ts b/src/praebeunda/agenda.ts new file mode 100644 index 0000000..27ffd93 --- /dev/null +++ b/src/praebeunda/agenda.ts @@ -0,0 +1,402 @@ +import * as Interfecta from './interfecta'; +import Structor from './structor'; +import * as Verba from './verba'; +import Adiectiva from '../anomala/adiectiva'; +import Nomina from '../anomala/nomina'; +import LectorVerbalis from '../lectores/verbalis'; +import Dictionarium from '../miscella/dictionarium'; +import Numeral from '../miscella/numeral'; +import PutatorActus from '../putatores/actus'; +import PutatorAdiectivi from '../putatores/adiectivi'; +import PutatorIncomparabilis from '../putatores/incomparabilis'; +import PutatorNominis from '../putatores/nominis'; +import PutatorNominisFacti from '../putatores/nominisFacti'; +import TabulaAdverbii from '../tabulae/adverbii'; +import TabulaNumeraminis from '../tabulae/numeraminis'; +import Tabula from '../tabulae/tabula'; + +export type Agendum = Omit; +export type Percolamen = Omit; +export type Positor = ((agendum: Agendum) => Hoc); + +export class ActusAgendus implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + infinitivum: string = ''; + perfectum: string = ''; + supinum: string = ''; + + putetur (): Tabula { + return PutatorActus.se.ipse().putetur(this); + } + + async nomen (): Promise | null> { + using nomina: Nomina = Nomina.se.ipse(); + if ((await nomina.omnia()).includes(this.infinitivum)) { + return await nomina.feratur(this.infinitivum) ?? null; + } else { + const versioNova: string = this.versio.split('/').first() + .concat(!!this.supinum?.trim() ? '' : '//prona'); + const radix: string = this.infinitivum.chop(3); + let suffixumGeriundii: string; + switch (this.versio.split('/').first()) { + case 'prima': + suffixumGeriundii = 'andum'; + break; + case 'secunda': + case 'tertia': + suffixumGeriundii = 'endum'; + break; + case 'tertiaVaria': + case 'quarta': + suffixumGeriundii = 'iendum'; + break; + } + + return new Structor(() => new NomenFactum) + .ponatur(nomen => nomen.infinitivum = this.infinitivum) + .ponatur(nomen => nomen.gerundium = radix.concat(suffixumGeriundii)) + .ponatur(nomen => nomen.supinum = this.supinum) + .ponatur(nomen => nomen.versio = versioNova) + .struatur(); + } + } + + actor(genus: string): NomenAgendum | null { + const structor: Structor = new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.versio = 'tertiaAnimata'); + switch(genus) { + case 'masculinum': + structor.ponatur(nomen => nomen.nominativum = this.supinum.replace('um$', 'or')) + .ponatur(nomen => nomen.genitivum = this.supinum.replace('um$', 'ōris')); + break; + case 'femininum': + structor.ponatur(nomen => nomen.nominativum = this.supinum.replace('t?um$', 'trīx')) + .ponatur(nomen => nomen.genitivum = this.supinum.replace('t?um$', 'trīcis')); + break; + default: + return null; + } + + return structor.struatur(); + } +} + +export class AdverbiumAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + positivum: string = ''; + comparativum: string = ''; + superlativum: string = ''; + + putetur (): Tabula | null { + return new TabulaAdverbii(this); + } +} + +export class NomenAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + nominativum: string = ''; + genitivum: string = ''; + + putetur (): Tabula { + return PutatorNominis.se.ipse().putetur(this); + } +} + +export class NomenFactum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + infinitivum: string = ''; + gerundium: string = ''; + supinum: string = ''; + + putetur (): Tabula { + return PutatorNominisFacti.se.ipse().putetur(this); + } + + async actus (): Promise | null> { + const dictionarium: Dictionarium = Dictionarium.se.ipse(); + return (await dictionarium.referatur({ + categoria: 'actus', + scriptum: this.infinitivum + }))?.referendum as ActusAgendus; + } +} + +export class AdiectivumAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + positivum: string = ''; + comparativum: string = ''; + superlativum: string = ''; + + putetur (): Tabula { + return PutatorAdiectivi.se.ipse().putetur(this); + } + + async probetur (colamen: { + gradus: string, + genus: string; + }): Promise { + let versioNova: string; + if (colamen.gradus === 'comparativus') { + versioNova = 'generandaTertiae'; + } else if (colamen.gradus === 'superlativus') { + versioNova = 'generanda'; + } else { + switch (this.versio) { + case 'positivaAutPrimaAutSecunda': + versioNova = 'generanda'; + break; + case 'positivaAutPrimaAutSecunda/nominativusDirectus': + versioNova = 'secundaMasculina/nominativusDirectus'; + break; + case 'positivaAutPrimaAutSecunda//pluralis': + versioNova = 'generanda//pluralis'; + break; + case 'positivaAutPrimaAutSecunda/nominativusDirectus/pluralis': + versioNova = 'secundaMasculina/nominativusDirectus/pluralis'; + break; + case 'positivaAutPrimaAutSecunda/cumLitteraR': + versioNova = 'secundaMasculina/cumLitteraR'; + break; + case 'positivaAutPrimaAutSecunda/cumLitteraR/pluralis': + versioNova = 'secundaMasculina/cumLitteraR/pluralis'; + break; + case 'positivaTertia': + case 'positivaTertia/nominativusUnigener': + versioNova = 'generandaTertiae'; + break; + case 'positivaTertia//pluralis': + case 'positivaTertia/nominativusUnigener/pluralis': + versioNova = 'generandaTertiae//pluralis'; + break; + case 'positivaTertia/cumGenitivoVario': + case 'positivaTertia/nominativusUnigenerCumGenitivoVario': + versioNova = 'generandaTertiae/cumGenitivoVario'; + break; + case 'positivaTertia/cumGenitivoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumGenitivoVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoVario/pluralis'; + break; + case 'positivaTertia/cumAblativoVario': + case 'positivaTertia/nominativusUnigenerCumAblativoVario': + versioNova = 'generandaTertiae/cumAblativoVario'; + break; + case 'positivaTertia/cumAblativoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumAblativoVario/pluralis': + versioNova = 'generandaTertiae/cumAblativoVario/pluralis'; + break; + case 'positivaTertia/cumGenitivoAblativoqueVario': + case 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario': + versioNova = 'generandaTertiae/cumGenitivoAblativoqueVario'; + break; + case 'positivaTertia/cumGenitivoAblativoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoAblativoqueVario/pluralis'; + break; + case 'positivaTertia/cumTruncoVario': + case 'positivaTertia/nominativusUnigenerCumTruncoVario': + versioNova = 'generandaTertiae/cumTruncoVario'; + break; + case 'positivaTertia/cumTruncoVario/pluralis': + case 'positivaTertia/nominativusUnigenerCumTruncoVario/pluralis': + versioNova = 'generandaTertiae/cumTruncoVario/pluralis'; + break; + default: + return null; + } + } + + switch (colamen.genus) { + case 'neutrum': + versioNova = versioNova.replace('generandaTertiae', 'tertiaNeutra') + .replace('generanda', 'secundaNeutra'); + break; + case 'masculinum': + versioNova = versioNova.replace('generandaTertiae', 'tertiaAnimata') + .replace('generanda', 'secundaMasculina'); + break; + case 'femininimum': + versioNova = versioNova.replace('generandaTertiae', 'tertiaAnimata') + .replace('generanda', 'prima'); + break; + default: + return null; + } + + const tabula: Tabula = this.putetur(); + if (tabula) { + const adiectiva: Verba.Adiectivum[] = await tabula?.tabulentur(); + + const nominativus: string = adiectiva.first(adiectivum => [ + adiectivum.gradus = colamen.gradus, + adiectivum.genus = colamen.genus, + adiectivum.numeralis = 'singularis', + adiectivum.casus = 'nominativus' + ].all()).scriptum; + + const genitivus: string = adiectiva.first(adiectivum => [ + adiectivum.gradus = colamen.gradus, + adiectivum.genus = colamen.genus, + adiectivum.numeralis = 'singularis', + adiectivum.casus = 'genitivus' + ].all()).scriptum; + + return new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = nominativus) + .ponatur(nomen => nomen.genitivum = genitivus) + .ponatur(nomen => nomen.versio = versioNova) + .struatur(); + } else { + return null; + } + } +} + +export class Incomparabile implements Interfecta.Faciendum, Interfecta.Lectum { + versio: string = ''; + nominativum: string = ''; + genitivum: string = ''; + + putetur (): Tabula { + return PutatorIncomparabilis.se.ipse().putetur(this); + } + + probetur (genus: string): NomenAgendum | null { + let versioNova: string; + + switch (this.versio) { + case 'autPrimaAutSecunda': + versioNova = 'generanda'; + break; + case 'autPrimaAutSecunda//pluralis': + versioNova = 'generanda//plualis'; + break; + case 'autPrimaAutSecunda/nominativusDirectus': + versioNova = 'secundaMasculina/nominativusDirectus'; + break; + case 'autPrimaAutSecunda/cumLitteraR': + versioNova = 'secundaMasculina/cumLitteraR'; + break; + case 'tertia': + case 'tertia/nominativusUnigener': + versioNova = 'generandaTertiae'; + break; + case 'tertia/cumGenitivoVario': + case 'tertia/nominativusUnigenerCumGenitivoVario': + versioNova = 'generandaTertiae/cumGenitivoVario'; + break; + case 'tertia/cumAblativoVario': + case 'tertia/nominativusUnigenerCumAblativoVario': + versioNova = 'generandaTertiae/cumAblativoVario'; + break; + case 'tertia/cumGenitivoAblativoVario': + case 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario': + versioNova = 'generandaTertiae/cumGenitivoAblativoVario'; + break; + case 'tertia/cumTruncoVario': + case 'tertia/nominativusUnigenerCumTruncoVario': + versioNova = 'generandaTertiae/cumTruncoVario'; + break; + case 'tertia/nominativusUnigener/pluralis': + versioNova = 'generandaTertiae//pluralis'; + break; + case 'tertia/nominativusUnigenerCumGenitivoVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoVario/pluralis'; + break; + case 'tertia/nominativusUnigenerCumAblativoVario/pluralis': + versioNova = 'generandaTertiae/cumAblativoVario/pluralis'; + break; + case 'tertia/nominativusUnigenerCumGenitivoAblativoVario/pluralis': + versioNova = 'generandaTertiae/cumGenitivoAblativoqueVario/pluralis'; + break; + case 'tertia/nominativusUnigenerCumTruncoVario/pluralis': + versioNova = 'generandaTertiae/cumTruncoVario/pluralis'; + break; + default: + return null; + } + + switch (genus) { + case 'neutrum': + versioNova.replace('generandaTertae', 'tertiaNeutra') + .replace('generanda', 'secundaNeutra'); + break; + case 'masculinum': + versioNova.replace('generandaTertae', 'tertiaAnimata') + .replace('generanda', 'secundaMasculina'); + break; + case 'femininum': + versioNova.replace('generandaTertae', 'tertiaAnimata') + .replace('generanda', 'prima'); + break; + default: + return null; + } + + return new Structor(() => new NomenAgendum) + .ponatur(nomen => nomen.nominativum = this.nominativum) + .ponatur(nomen => nomen.genitivum = this.genitivum) + .ponatur(nomen => nomen.versio = versioNova) + .struatur(); + } +} + +export class NumeramenAgendum implements Interfecta.Faciendum, Interfecta.Lectum { + numerus: string = ''; + ordinale: string = ''; + cardinale: string = ''; + adverbium: string = ''; + multiplicativum: string = ''; + distributivum: string = ''; + fractionale: string = ''; + + putetur (): Tabula { + return new TabulaNumeraminis(this); + } + + async referatur (numerium: string): Promise { + using adiectiva: Adiectiva = Adiectiva.se.ipse(); + const lectorAdiectivum: LectorVerbalis = LectorVerbalis.Incomparabilium.ipse(); + switch (numerium) { + case 'adverbium': + const lectorAdverbiorum: LectorVerbalis = LectorVerbalis.Adverbiorum.ipse(); + return await lectorAdverbiorum.legatur(this.adverbium); + case 'fractionale': + using nomina: Nomina = Nomina.se.ipse(); + if ((await nomina.omnia()).includes(this.fractionale)) { + return await nomina.feratur(this.fractionale) ?? null; + } else { + const lectorNominum: LectorVerbalis = LectorVerbalis.Nominum.ipse(); + return await lectorNominum.legatur(this.fractionale); + } + case 'numerus': + const anglicus: number = Numeral.anglicus(this.numerus); + return anglicus === null ? null : Verba.Numerus.numerator(anglicus); + case 'ordinale': + if ((await adiectiva.omnia()).includes(this.ordinale)) { + return await adiectiva.feratur(this.ordinale) ?? null; + } else { + return await lectorAdiectivum.legatur(this.ordinale); + } + case 'cardinale': + if ((await adiectiva.omnia()).includes(this.cardinale)) { + return await adiectiva.feratur(this.cardinale) ?? null; + } else { + return await lectorAdiectivum.legatur(this.cardinale); + } + case 'multiplicativum': + if ((await adiectiva.omnia()).includes(this.multiplicativum)) { + return await adiectiva.feratur(this.multiplicativum) ?? null; + } else { + return await lectorAdiectivum.legatur(this.multiplicativum) ?? null; + } + case 'distributivum': + if ((await adiectiva.omnia()).includes(this.distributivum)) { + return await adiectiva.feratur(this.ordinale) ?? null; + } else { + return await lectorAdiectivum.legatur(this.distributivum) ?? null; + } + default: + return null; + } + } +} diff --git a/src/praebeunda/interfecta.ts b/src/praebeunda/interfecta.ts new file mode 100644 index 0000000..0cacb0b --- /dev/null +++ b/src/praebeunda/interfecta.ts @@ -0,0 +1,8 @@ +import { Multiplex } from './verba'; +import Tabula from '../tabulae/tabula'; + +export interface Referendum { } +export interface Lectum extends Referendum { } +export interface Faciendum extends Referendum { + putetur (): Tabula | null; +} diff --git a/src/praebeunda/structor.ts b/src/praebeunda/structor.ts new file mode 100644 index 0000000..bab7665 --- /dev/null +++ b/src/praebeunda/structor.ts @@ -0,0 +1,22 @@ +type Generator = () => Hoc; +type Actio = (hoc: Hoc) => void; + +export default class Structor { + private readonly _actiones: Actio[] = []; + private readonly _generator: Generator; + + constructor (generator: Generator) { + this._generator = generator; + } + + ponatur (actio: Actio): Structor { + this._actiones.push(actio); + return this; + } + + struatur (): Hoc { + const hoc : Hoc = this._generator(); + this._actiones.forEach(actio => actio(hoc)); + return hoc; + } +} diff --git a/src/praebeunda/verba.ts b/src/praebeunda/verba.ts new file mode 100644 index 0000000..6d3b8bd --- /dev/null +++ b/src/praebeunda/verba.ts @@ -0,0 +1,531 @@ +import Structor from './structor'; +import LectorVerbalis from '../lectores/verbalis'; +import * as Enumerationes from '../miscella/enumerationes'; +import Numeral from '../miscella/numeral'; +import { + AdiectivumAgendum, + NumeramenAgendum, + type Agendum, + type Positor +} from './agenda'; + +export class Verbum { + static readonly Errator: ((exemplar: string, res: string) => Error) = + (exemplar: string, res: string) => new Error([ "Malu'st", exemplar, res ].join(' ')); + readonly unicum: symbol = Symbol(); + categoria: string = ''; + protected _scriptum: string = ''; + + get scriptum (): string { + return this._scriptum; + } + + set scriptum (valor: string) { + if (!!valor.trim()) { + this._scriptum = valor; + } else { + throw Verbum.Errator('scriptum', valor); + } + } + + paratumne(): boolean { + return !!this.scriptum; + } +} + +export class Numerus extends Verbum { + override categoria: string = 'numerus'; + override _scriptum: string = this.latinum(); + private _anglicus: number = -1; + + private latinum (): string { + return Numeral.romanus(this._anglicus); + } + + get anglicus (): number { + return this._anglicus; + } + + set anglicus (valor: number) { + if (Numeral.convertibilis(valor)) { + this._anglicus = valor; + } else { + throw Numerus.Errator('anclicus', valor.toString()); + } + } + + static readonly numerator: ((anglicus: number) => Numerus) = (anglicus: number): Numerus => { + return new Structor(() => new Numerus) + .ponatur(numerus => numerus.anglicus = anglicus) + .struatur(); + }; + + async numeramen (): Promise { + const lector: LectorVerbalis = LectorVerbalis.Numeraminum.ipse(); + return await lector.legatur(this.scriptum); + } +} + +export abstract class Multiplex extends Verbum { + static colamina(categoria: string): string[] { + switch(categoria) { + case 'actus': + return [ 'modus', 'vox', 'tempus', 'numeralis', 'persona' ]; + case 'adiectivum': + return [ 'gradus', 'genus', 'numeralis', 'casus' ]; + case 'adverbium': + return [ 'gradus' ]; + case 'nomen': + return [ 'factum', 'numeralis', 'casus' ]; + case 'numeramen': + return [ 'numerium' ]; + case 'pronomen': + return [ 'genus', 'numeralis', 'casus' ]; + default: + return [ ]; + } + } + + private _encliticum: string = Enumerationes.Encliticum.Nolens; + + abstract valores(): string[]; + + get encliticum (): string { + return this._encliticum; + } + + set encliticum (valor: Enumerationes.Encliticum) { + this._encliticum = valor; + + if (valor) { + this.scriptum = this.scriptum.concat(valor); + } + } +} + +export class Actus extends Multiplex { + override categoria: string = 'actus'; + private _modus: string = ''; + private _vox: string = ''; + private _tempus: string = ''; + private _numeralis: string = ''; + private _persona: string = ''; + + get modus (): string { + return this._modus; + } + + get vox (): string { + return this._vox; + } + + get tempus (): string { + return this._tempus; + } + + get numeralis (): string { + return this._numeralis; + } + + get persona (): string { + return this._persona; + } + + set modus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.modi.includes(valor)) { + this._modus = valor; + } else { + throw Actus.Errator('modus', valor); + } + } + + set vox (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.voces.includes(valor) + ].any()) { + this._vox = valor ?? ''; + } else { + throw Actus.Errator('vox', valor); + } + } + + set tempus (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.tempora.includes(valor) + ].any()) { + this._tempus = valor ?? ''; + } else { + throw Actus.Errator('tempus', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Actus.Errator('numeralis', valor); + } + } + + set persona (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.personae.includes(valor) + ].any()) { + this._persona = valor ?? ''; + } else { + throw Actus.Errator('persona', valor); + } + } + + valores(): string[] { + return [ this.modus, this.vox, this.tempus, this.numeralis, this.persona ]; + } + + override paratumne(): boolean { + return this.modus !== 'participalis' && super.paratumne(); + } + + static readonly positor: Positor = (istud: Agendum): Actus => { + return new Structor(() => new Actus) + .ponatur(actus => actus.modus = istud.modus) + .ponatur(actus => actus.vox = istud.vox ?? '') + .ponatur(actus => actus.tempus = istud.tempus ?? '') + .ponatur(actus => actus.numeralis = istud.numeralis ?? '') + .ponatur(actus => actus.persona = istud.persona ?? '') + .ponatur(actus => actus.scriptum = istud.scriptum) + .struatur(); + }; + + async participialis (): Promise { + if (this.modus === 'participialis') { + if (this.tempus === 'praesens') { + const structor: Structor = new Structor(() => new AdiectivumAgendum) + .ponatur(adiectivum => adiectivum.versio = 'positivusTertia/cumTruncoVario') + .ponatur(adiectivum => adiectivum.positivum = this.scriptum); + if (this.scriptum.slice(-3) === 'āre') { + structor.ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('āns$', 'antior')); + structor.ponatur(adiectivum => adiectivum.superlativum = + this.scriptum.replace('āns$', 'antissimum')); + } else { + structor.ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('ēns$', 'entior')); + structor.ponatur(adiectivum => adiectivum.superlativum = + this.scriptum.replace('ēns$', 'entissimum')); + } + + return structor.struatur(); + } else { + return new Structor(() => new AdiectivumAgendum) + .ponatur(adiectivum => adiectivum.versio = 'postivusAutPrimaAutSecunda') + .ponatur(adiectivum => adiectivum.positivum = this.scriptum) + .ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('um$', 'ius')) + .ponatur(adiectivum => adiectivum.comparativum = + this.scriptum.replace('um$', 'issimum')) + .struatur(); + } + } else { + throw Actus.Errator('modus', this.modus); + } + } +} + +export class Adverbium extends Multiplex { + override categoria: string = 'adverbium'; + private _gradus: string = ''; + + get gradus (): string { + return this._gradus; + } + + set gradus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.gradi.includes(valor)) { + this._gradus = valor; + } else { + throw Adverbium.Errator('gradus', valor); + } + } + + valores(): string[] { + return [ this.gradus ]; + } + + static readonly positor: Positor = (istud: Agendum): Adverbium => + new Structor(() => new Adverbium) + .ponatur(adverbium => adverbium.gradus = istud.gradus ?? '') + .ponatur(adverbium => adverbium.scriptum = istud.scriptum) + .struatur(); +} + +export class Nomen extends Multiplex { + override categoria: string = 'nomen'; + private _factum: string = ''; + private _numeralis: string = ''; + private _casus: string = 'derectus'; + + get factum (): string { + return this._factum; + } + + get numeralis (): string { + return this._numeralis; + } + + get casus (): string { + return this._casus; + } + + set factum (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.facta.includes(valor) + ].any()) { + this._factum = valor ?? ''; + } else { + throw Nomen.Errator('factum', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Nomen.Errator('numeralis', valor); + } + } + + set casus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.casus.includes(valor)) { + this._casus = valor ?? ''; + } else { + throw Nomen.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.factum, this.numeralis, this.casus ]; + } + + static readonly positor: Positor = (istud: Agendum): Nomen => + new Structor(() => new Nomen) + .ponatur(nomen => nomen.numeralis = istud.numeralis ?? '') + .ponatur(nomen => nomen.casus = istud.casus ?? '') + .ponatur(nomen => nomen.scriptum = istud.scriptum) + .struatur(); +} + +export class Pronomen extends Multiplex { + override categoria: string = 'pronomen'; + private _genus: string = ''; + private _numeralis: string = ''; + private _casus: string = 'derectus'; + + get genus (): string { + return this._genus; + } + + get numeralis (): string { + return this._numeralis; + } + + get casus (): string { + return this._casus; + } + + set genus (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.genera.includes(valor) + ].any()) { + this._genus = valor ?? ''; + } else { + throw Pronomen.Errator('genus', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Pronomen.Errator('numeralis', valor); + } + } + + set casus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.casus.includes(valor)) { + this._casus = valor ?? ''; + } else { + throw Pronomen.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.genus, this.numeralis, this.casus ]; + } + + static readonly positor: Positor = (istud: Agendum): Pronomen => { + if (!istud.casus || istud.casus === 'Derectus') { + throw this.Errator('casus', istud.casus); + } else { + return new Structor(() => new Pronomen) + .ponatur(pronomen => pronomen.casus = istud.casus) + .ponatur(pronomen => pronomen.genus = istud.genus ?? '') + .ponatur(pronomen => pronomen.numeralis = istud.numeralis ?? '') + .ponatur(pronomen => pronomen.scriptum = istud.scriptum) + .struatur(); + } + }; +} + +export class Adiectivum extends Multiplex { + override categoria: string = 'adiectivum'; + private _gradus: string = ''; + private _genus: string = ''; + private _numeralis: string = ''; + private _casus: string = 'derectus'; + + get gradus (): string { + return this._gradus; + } + + get genus (): string { + return this._genus; + } + + get numeralis (): string { + return this._numeralis; + } + + get casus (): string { + return this._casus; + } + + set gradus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.gradi.includes(valor)) { + this._gradus = valor; + } else { + throw Adiectivum.Errator('gradus', valor); + } + } + + set genus (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.genera.includes(valor) + ].any()) { + this._genus = valor ?? ''; + } else { + throw Adiectivum.Errator('genus', valor); + } + } + + set numeralis (valor: string) { + valor = valor.toLowerCase(); + + if ([ + !(valor), + Enumerationes.numerales.includes(valor) + ].any()) { + this._numeralis = valor ?? ''; + } else { + throw Adiectivum.Errator('numeralis', valor); + } + } + + set casus (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.casus.includes(valor)) { + this._casus = valor; + } else { + throw Adiectivum.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.gradus, this.genus, this.numeralis, this.casus ]; + } + + static readonly positor: Positor = (istud: Agendum): Adiectivum => + new Structor(() => new Adiectivum) + .ponatur(adiectivum => adiectivum.gradus = istud.gradus ?? '') + .ponatur(adiectivum => adiectivum.genus = istud.genus ?? '') + .ponatur(adiectivum => adiectivum.numeralis = istud.numeralis ?? '') + .ponatur(adiectivum => adiectivum.casus = istud.casus ?? '') + .ponatur(adiectivum => adiectivum.scriptum = istud.scriptum) + .struatur(); +} + +export class Numeramen extends Multiplex { + override categoria: string = 'numeramen'; + private _numerium: string = ''; + + get numerium (): string { + return this._numerium; + } + + set numerium (valor: string) { + valor = valor.toLowerCase(); + + if (Enumerationes.numeria.includes(valor)) { + this.numerium = valor; + } else { + throw Numeramen.Errator('casus', valor); + } + } + + valores(): string[] { + return [ this.numerium ]; + } + + override paratumne(): boolean { + return false; + } + + static readonly positor: Positor = (istud: Agendum): Numeramen => + new Structor(() => new Numeramen) + .ponatur(numeramen => numeramen.numerium = istud.numerium) + .ponatur(numeramen => numeramen.scriptum = istud.scriptum) + .struatur(); +} diff --git a/src/putatores/actus.ts b/src/putatores/actus.ts new file mode 100644 index 0000000..02948a0 --- /dev/null +++ b/src/putatores/actus.ts @@ -0,0 +1,199 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { ActusAgendus } from '../praebeunda/agenda'; +import { Actus } from '../praebeunda/verba'; +import TabulaDeponens from '../tabulae/defectae/deponens'; +import TabulaImpersonalis from '../tabulae/defectae/impersonalis'; +import TabulaPerfecta from '../tabulae/defectae/perfecta'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + modus: string, + vox: string, + tempus: string, + numeralis: string, + persona: string; +}; + +@Nuntius.factum('PutatorActus') +export default class PutatorActus implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorActus()); + + private radicetur (versio: string): Radicator { + switch (versio) { + case 'prima': + case 'secunda': + case 'secunda/impersonalis': + case 'secunda/impersonalis/passivo': + case 'secunda//impersonalis': + case 'secunda//impersonalis/passivo': + case 'quarta/perfecta': + case 'quarta//perfecta': + case 'tertia/perfecta': + case 'tertia//perfecta': + return (actus: ActusAgendus, colamen: Percolamen): string => actus.perfectum.chop(4); + case 'quartus': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.vox === 'passiva', + colamen.tempus === 'futurum' + ].all(): + return actus.supinum.chop(2); + case [ 'perfectum', 'plusquamperfectum', 'exigendum' ].includes(colamen.tempus): + return actus.perfectum.chop(4); + default: + return actus.infinitivum.chop(3); + } + }; + case 'tertia': + case 'tertiaVaria': + case 'tertia/impersonalis': + case 'tertia/impersonalis/passivo': + case 'tertia//impersonalis': + case 'tertia//impersonalis/passivo': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.vox === 'passiva', + colamen.tempus === 'futurum' + ].all(): + return actus.supinum.chop(2); + case [ + 'perfectum', 'plusquamperfectum', 'exigendum' + ].includes(colamen.tempus): + return actus.perfectum.chop(4); + default: + return actus.infinitivum.chop(1); + } + }; + case 'prima/deponens': + case 'prima//deponens': + case 'secunda/deponens': + case 'secunda//deponens': + case 'tertia/peponens': + case 'tertia//peponens': + case 'quarta/peponens': + case 'quarta//peponens': + case 'prima/semideponens': + case 'prima//semideponens': + case 'secunda/semideponens': + case 'secunda//semideponens': + case 'tertia/semideponens': + case 'tertia//semideponens': + case 'prima/impersonalis/semideponens': + case 'prima//impersonalis/semideponens': + case 'secunda/impersonalis/semideponens': + case 'secunda//impersonalis/semideponens': + case 'tertia/impersonalis/semideponens': + case 'tertia//impersonalis/semideponens': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.tempus === 'futurum', + colamen.vox === 'activa' + ].all(): + return actus.supinum.chop(2); + case [ + colamen.modus === 'participalis', + colamen.tempus === 'perfectum', + colamen.vox === 'passiva' + ].all(): + return actus.supinum.chop(2); + default: + return actus.infinitivum.chop(3); + } + }; + case 'prima/semideponensActiva': + case 'prima//semideponensActiva': + case 'secunda/semideponensActiva': + case 'secunda//semideponensActiva': + case 'tertia/semideponensActiva': + case 'tertia//semideponensActiva': + return (actus: ActusAgendus, colamen: Percolamen): string => actus.infinitivum.chop(3); + case 'prima/impersonalis/semideponensActiva': + case 'prima//impersonalis/semideponensActiva': + case 'secunda/impersonalis/semideponensActiva': + case 'secunda//impersonalis/semideponensActiva': + case 'tertia/impersonalis/semideponensActiva': + case 'tertia//impersonalis/semideponensActiva': + return (actus: ActusAgendus, colamen: Percolamen): string => { + switch (true) { + case [ + colamen.modus === 'infintivus', + colamen.tempus === 'perfectum', + colamen.vox === 'passiva' + ].all(): + return actus.perfectum; + default: + return actus.infinitivum.chop(3); + } + }; + default: + throw Actus.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorActus') + putetur (agendus: ActusAgendus): Tabula { + const [ fundamen, vices, defectus, defectusSecundus ] = agendus.versio.split('/'); + if (defectus) { + agendus.versio = [ fundamen, vices ].join('/'); + switch (defectus) { + case 'deponens': + case 'semideponens': + case 'semideponensActiva': + return new TabulaDeponens({ + relata: new Ignavum(() => this.putetur(agendus)), + ut: defectus + }); + case 'impersonalis': + return new TabulaImpersonalis({ + relata: new Ignavum(() => this.putetur(agendus)), + et: defectusSecundus + }); + case 'perfectus': + return new TabulaPerfecta(new Ignavum(() => this.putetur(agendus))); + default: + throw Actus.Errator('versio', agendus.versio); + } + } else if (vices) { + agendus.versio = fundamen; + if (vices === 'cumImperativoBrevi') { + return new TabulaVicaria({ + hoc: agendus, prima: { + scapum: '/res/vices/actus', + via: [ fundamen, vices ].join('/') + }, secunda: { + scapum: '/res/tabula/actus', + via: fundamen + }, positor: Actus.positor, + radicator: this.radicetur(fundamen) + }); + } else { + throw Actus.Errator('versio', agendus.versio); + } + } else { + if ([ + 'prima', 'secunda', 'tertia', 'tertiaVaria', 'quarta' + ].includes(fundamen)) { + agendus.versio = fundamen; + return new TabulaRecta({ + radicator: this.radicetur(agendus.versio), + scapum: '/res/tabula/actus', + positor: Actus.positor, + via: agendus.versio, + hoc: agendus + }); + } else { + throw Actus.Errator('versio', agendus.versio); + } + } + } +} diff --git a/src/putatores/adiectivi.ts b/src/putatores/adiectivi.ts new file mode 100644 index 0000000..8c02594 --- /dev/null +++ b/src/putatores/adiectivi.ts @@ -0,0 +1,180 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { AdiectivumAgendum } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Adiectivum } from '../praebeunda/verba'; +import TabulaAdiectiviNumeralis from '../tabulae/defectae/numeralis/adiectivi'; +import TabulaInflexibilis from '../tabulae/inflexibilis'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + gradus: string, + genus: string, + numeralis: string, + casus: string; +}; + +@Nuntius.factum('PutatorAdiectivi') +export default class PutatorAdiectivi implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorAdiectivi()); + + radicetur (versio: string): Radicator { + switch (versio) { + case 'positivaAutPrimaAutSecunda': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + return adiectivum.positivum.chop(2); + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + case 'positivaAutPrimaAutSecunda/nominativusDirectus': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => adiectivum.positivum; + case 'positivaAutPrimaAutSecunda/cumLitteraR': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + if ([ + colamen.genus === 'masculinum', + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return adiectivum.positivum; + } else { + return adiectivum.positivum.chop(1); + } + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + case 'positivaTertia': + case 'positivaTertia/cumGenitivoVario': + case 'positivaTertia/cumGenitivoVario/pluralis': + case 'positivaTertia/cumAblativoVario': + case 'positivaTertia/cumAblativoVario/pluralis': + case 'positivaTertia/cumGenitivoAblativoVario': + case 'positivaTertia/cumGenitivoAblativoVario/pluralis': + case 'positivaTertia/cumTruncoVario': + case 'positivaTertia/cumTruncoVario/pluralis': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + switch (true) { + case [ + colamen.genus === 'neutrum', + colamen.numeralis === 'singularis', + colamen.casus === 'accusativus' + ].all(): + return adiectivum.positivum; + default: + return adiectivum.comparativum.chop(3); + } + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + case 'positivaTertia/nominativusUnigener': + case 'positivaTertia/nominativusUnigenerCumGenitivoVario': + case 'positivaTertia/nominativusUnigenerCumAblativoVario': + case 'positivaTertia/nominativusUnigenerCumGenitivoAblativoqueVario': + case 'positivaTertia/nominativusUnigenerCumTruncoVario': + return (adiectivum: AdiectivumAgendum, colamen: Percolamen): string => { + switch (colamen.gradus) { + case 'positivus': + switch (true) { + case [ + colamen.genus === 'neutrum', + colamen.numeralis === 'singularis', + colamen.casus === 'accusativus' + ].all(): + return adiectivum.positivum; + case [ + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all(): + return adiectivum.positivum; + default: + return adiectivum.comparativum.chop(3); + } + case 'comparativus': + return adiectivum.comparativum.chop(3); + case 'superlativus': + return adiectivum.superlativum.chop(2); + default: + return ''; + } + }; + default: + throw Adiectivum.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorAdiectivi') + putetur (agendum: AdiectivumAgendum): Tabula { + let [ fundamen, vices, defectus ] = agendum.versio.split('/'); + if ([ + 'singularis', + 'pluralis' + ].includes(defectus)) { + agendum.versio = [ fundamen, vices ].join('/'); + return new TabulaAdiectiviNumeralis({ + relata: new Ignavum(() => this.putetur(agendum)), + numeralis: defectus + }); + } else if ([ + 'nominativusDirectus', 'cumLitteraR', 'nominativusUnigener', + 'cumGenitivoVario', 'cumAblativoVario', 'cumGenitivoAblativoqueVario', 'cumTruncoVario', + 'nominativusUnigenerCumGenitivoVario', 'nominativusUnigenerCumAblativoVario', + 'nominativusUnigenerCumGenitivoAblativoqueVario', 'nominativusUnigenerCumTruncoVario' + ].includes(vices)) { + if (vices === 'cumLitteraR') { + vices = 'nominativusDirectus'; + } + + return new TabulaVicaria({ + hoc: agendum, prima: { + scapum: '/res/vices/adiectiva', + via: agendum.versio + }, secunda: { + scapum: '/res/tabula/adiectiva', + via: fundamen + }, positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if ([ + 'positivaAutPrimaAutSecunda', + 'positivaTertia' + ].includes(fundamen)) { + return new TabulaRecta({ + scapum: '/res/tabula/adiectiva', + hoc: agendum, via: agendum.versio, + positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if (fundamen === 'indeclinabilis') { + return new TabulaInflexibilis({ + factor: (hoc: AdiectivumAgendum) => new Structor(() => new Adiectivum) + .ponatur(adiectivum => adiectivum.scriptum = hoc.positivum) + .struatur(), hoc: agendum + }); + } else { + throw Adiectivum.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/incomparabilis.ts b/src/putatores/incomparabilis.ts new file mode 100644 index 0000000..0d08960 --- /dev/null +++ b/src/putatores/incomparabilis.ts @@ -0,0 +1,131 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Incomparabile } from '../praebeunda/agenda'; +import { Adiectivum } from '../praebeunda/verba'; +import TabulaAdiectiviNumeralis from '../tabulae/defectae/numeralis/adiectivi'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + genus: string, + numeralis: string, + casus: string; +}; + +@Nuntius.factum('PutatorIncomparabilis') +export default class PutatorIncomparabilis implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorIncomparabilis()); + + radicetur (versio: string): Radicator { + switch (versio) { + case 'autPrimaAutSecunda': + case 'pronominalis': + return (adiectivum: Incomparabile, colamen: Percolamen): string => adiectivum.nominativum.chop(2); + case 'autPrimaAutSecunda/nominativusDirectus': + case 'pronominalis/nominativusDirectus': + return (adiectivum: Incomparabile, colamen: Percolamen): string => adiectivum.nominativum; + case 'autPrimaAutSecunda/cumLitteraR': + case 'pronominalis/cumLitteraR': + return (adiectivum: Incomparabile, colamen: Percolamen): string => { + if ([ + colamen.genus === 'masculinum', + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return adiectivum.nominativum; + } else { + return adiectivum.genitivum.chop(1); + } + }; + case 'tertia': + case 'tertia/cumGenitivoVario': + case 'tertia/cumAblativoVario': + case 'tertia/cumGenitivoAblativoqueVario': + case 'tertia/cumTruncoVario': + return (adiectivum: Incomparabile, colamen: Percolamen): string => { + switch (true) { + case [ + [ 'masculinum', 'femininum' ].includes(colamen.genus), + [ 'nominativus', 'vocativus' ].includes(colamen.casus), + colamen.numeralis === 'singularis' + ].all(): + return adiectivum.nominativum; + default: + return adiectivum.genitivum.chop(2); + } + }; + case 'tertia/nominativusUnigener': + case 'tertia/nominativusUnigenerCumGenitivoVario': + case 'tertia/nominativusUnigenerCumAblativoVario': + case 'tertia/nominativusUnigenerCumGenitivoAblativoqueVario': + case 'tertia/nominativusUnigenerCumTruncoVario': + return (adiectivum: Incomparabile, colamen: Percolamen): string => { + switch (true) { + case [ + [ 'nominativus', 'vocativus' ].includes(colamen.casus), + colamen.numeralis === 'singularis' + ].all(): + return adiectivum.nominativum; + case [ + colamen.genus === 'neutrum', + colamen.casus === 'accusativus', + colamen.numeralis === 'singularis' + ].all(): + return adiectivum.nominativum; + default: + return adiectivum.genitivum.chop(2); + } + }; + default: + throw Adiectivum.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorIncomparabilis') + putetur (agendum: Incomparabile): Tabula { + let [ fundamen, vices, defectus ] = agendum.versio.split('/'); + if ([ + 'singularis', + 'pluralis' + ].includes(defectus)) { + agendum.versio = [ fundamen, vices ].join('/'); + return new TabulaAdiectiviNumeralis({ + relata: new Ignavum(() => this.putetur(agendum)), + numeralis: defectus + }); + } else if ([ + 'nominativusDirectus', 'cumLitteraR', 'nominativusUnigener', + 'cumGenitivoVario', 'cumAblativoVario', 'cumGenitivoAblativoqueVario', 'cumTruncoVario', + 'nominativusUnigenerCumGenitivoVario', 'nominativusUnigenerCumAblativoVario', + 'nominativusUnigenerCumGenitivoAblativoqueVario', 'nominativusUnigenerCumTruncoVario' + ].includes(vices)) { + if (vices === 'cumLitteraR') { + vices = 'nominativusDirectus'; + } + + return new TabulaVicaria({ + hoc: agendum, prima: { + scapum: '/res/vices/adiectiva/incomparabilia', + via: agendum.versio + }, secunda: { + scapum: '/res/tabula/adiectiva/incomparabilia', + via: fundamen + }, positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if ([ + 'autPrimaAutSecunda', 'tertia', 'pronominalis' + ].includes(fundamen)) { + return new TabulaRecta({ + scapum: '/res/tabula/adiectiva/incomparabilia', + hoc: agendum, via: agendum.versio, + positor: Adiectivum.positor, + radicator: this.radicetur(agendum.versio) + }); + } else { + throw Adiectivum.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/nominis.ts b/src/putatores/nominis.ts new file mode 100644 index 0000000..d139536 --- /dev/null +++ b/src/putatores/nominis.ts @@ -0,0 +1,136 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { NomenAgendum } from '../praebeunda/agenda'; +import Structor from '../praebeunda/structor'; +import { Nomen } from '../praebeunda/verba'; +import TabulaNominisNumeralis from '../tabulae/defectae/numeralis/nominis'; +import TabulaInflexibilis from '../tabulae/inflexibilis'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import TabulaVicaria from '../tabulae/vicaria'; +import type { Putaturum, Radicator } from './putaturum'; + +type Percolamen = { + numeralis: string, + casus: string; +}; + +@Nuntius.factum('PutatorNominis') +export default class PutatorNominis implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorNominis()); + + radicetur (versio: string): Radicator { + switch (versio) { + case 'quarta': + case 'quinta': + case 'secundaMasculina': + case 'secundaNeutra': + return (nomen: NomenAgendum, colamen: Percolamen): string => nomen.nominativum.chop(2); + case 'primus': + case 'quartaVaria': + return (nomen: NomenAgendum, colamen: Percolamen): string => nomen.genitivum.chop(1); + case 'secundaMasculina/nominativusDirectus': + return (nomen: NomenAgendum, colamen: Percolamen): string => nomen.nominativum; + case 'secundaMasculina/cumLitteraR': + return (nomen: NomenAgendum, colamen: Percolamen): string => { + if ([ + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return nomen.nominativum; + } else { + return nomen.genitivum.chop(1); + } + }; + case 'tertiaAnimata': + case 'tertiaAnimata/cumGenitivoVario': + case 'tertiaAnimata/cumAblativoVario': + case 'tertiaAnimata/cumGenitivoAblativoqueVario': + return (nomen: NomenAgendum, colamen: Percolamen): string => { + if ([ + colamen.numeralis === 'singularis', + [ 'nominativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return nomen.nominativum; + } else { + return nomen.genitivum.chop(2); + } + }; + case 'tertiaNeutra': + case 'tertiaNeutra/cumGenitivoVario': + case 'tertiaNeutra/cumAblativoVario': + case 'tertiaNeutra/cumGenitivoAblativoqueVario': + case 'tertiaNeutra/cumTruncoVario': + return (nomen: NomenAgendum, colamen: Percolamen): string => { + if ([ + colamen.numeralis === 'singularis', + [ 'nominativus', 'accusativus', 'vocativus' ].includes(colamen.casus) + ].all()) { + return nomen.nominativum; + } else { + return nomen.genitivum.chop(2); + } + }; + default: + throw Nomen.Errator('versio', versio); + } + } + + @Nuntius.modus('PutatorNominis') + putetur (agendum: NomenAgendum): Tabula { + let [ fundamen, vices, defectus ] = agendum.versio.split('/'); + if ([ + 'singularis', 'pluralis' + ].includes(defectus)) { + agendum.versio = [ fundamen, vices ].join('/'); + return new TabulaNominisNumeralis({ + relata: new Ignavum(() => this.putetur(agendum)), + numeralis: defectus + }); + } else if ([ + 'nominativusDirectus', 'cumLitteraR', 'nominativusUnigener', + 'cumGenitivoVario', 'cumAblativoVario', 'cumGenitivoAblativoqueVario', 'cumTruncoVario', + 'nominativusUnigenerCumGenitivoVario', 'nominativusUnigenerCumAblativoVario', + 'nominativusUnigenerCumGenitivoAblativoqueVario', 'nominativusUnigenerCumTruncoVario' + ].includes(vices)) { + if (vices === 'cumLitteraR') { + vices = 'nominativusDirectus'; + } + + return new TabulaVicaria({ + hoc: agendum, prima: { + scapum: '/res/vices/nomina', + via: agendum.versio + }, secunda: { + scapum: '/res/tabula/nomina', + via: fundamen + }, positor: Nomen.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if ([ + 'prima', + 'secundaMasculina', + 'secundaNeutra', + 'tertiaAnimata', + 'tertiaNeutra', + 'quarta', + 'quartaVaria', + 'quinta' + ].includes(fundamen)) { + return new TabulaRecta({ + scapum: '/res/tabula/nomina', + via: agendum.versio, hoc: agendum, + positor: Nomen.positor, + radicator: this.radicetur(agendum.versio) + }); + } else if (fundamen === 'indeclinabilis') { + return new TabulaInflexibilis({ + factor: (hoc: NomenAgendum) => new Structor(() => new Nomen) + .ponatur(nomen => nomen.scriptum = hoc.nominativum) + .struatur(), hoc: agendum + }); + } else { + throw Nomen.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/nominisFacti.ts b/src/putatores/nominisFacti.ts new file mode 100644 index 0000000..31cd5c7 --- /dev/null +++ b/src/putatores/nominisFacti.ts @@ -0,0 +1,51 @@ +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { NomenFactum } from '../praebeunda/agenda'; +import { Nomen } from '../praebeunda/verba'; +import TabulaProna from '../tabulae/defectae/prona'; +import TabulaRecta from '../tabulae/recta'; +import Tabula from '../tabulae/tabula'; +import { type Putaturum } from './putaturum'; + +type Percolamen = { + factum: string, + casus: string; +}; + +@Nuntius.factum('PutatorNominisFacti') +export default class PutatorNominisFacti implements Putaturum { + static se: Ignavum = new Ignavum(() => new PutatorNominisFacti()); + + @Nuntius.modus('PutatorNominisFacti') + putetur (agendum: NomenFactum): Tabula { + const [ versio, pronus ] = agendum.versio.split('/'); + if (pronus === 'prona') { + agendum.versio = versio; + return new TabulaProna(new Ignavum(() => + this.putetur(agendum))); + } else if ([ + 'prima', 'secunda', 'tertia', + 'tertiaVaria', 'quarta' + ].includes(versio)) { + return new TabulaRecta({ + scapum: '/res/tabula/nomina/facta', + hoc: agendum, via: versio, + positor: Nomen.positor, + radicator: (nomen: NomenFactum, colamen: Percolamen) => { + switch (colamen.factum) { + case 'supinum': + return nomen.supinum.chop(2); + case 'gerundium': + return nomen.gerundium.chop(2); + case 'infinitivum': + return nomen.infinitivum.chop(3); + default: + return ''; + } + } + }); + } else { + throw Nomen.Errator('versio', agendum.versio); + } + } +} diff --git a/src/putatores/putaturum.ts b/src/putatores/putaturum.ts new file mode 100644 index 0000000..1c6b27e --- /dev/null +++ b/src/putatores/putaturum.ts @@ -0,0 +1,10 @@ +import { Multiplex } from '../praebeunda/verba'; +import Tabula from '../tabulae/tabula'; +import { type Percolamen } from '../praebeunda/agenda'; +import { type Faciendum } from '../praebeunda/interfecta'; + +export type Radicator = (hoc: Hoc, percolamen: Percolamen) => string; + +export interface Putaturum, Illud extends Multiplex> { + putetur (hoc: Hoc): Tabula; +} diff --git a/src/scriptura/gustularium.ts b/src/scriptura/gustularium.ts new file mode 100644 index 0000000..0b2a998 --- /dev/null +++ b/src/scriptura/gustularium.ts @@ -0,0 +1,21 @@ +type Optanda = { + nuntium?: string; + vita?: number; + color?: string; +}; + +export default class Gustularium { + readonly nuntium: string; + readonly vita: number; + readonly color: string; + readonly visibile: boolean; + + constructor (optanda: Optanda) { + const make_color = require('@types/pleasej').make_color; + + this.nuntium = optanda.nuntium ?? ''; + this.vita = optanda.vita ?? 0; + this.color = optanda.color ?? make_color(); + this.visibile = !!optanda.vita && (optanda.vita > 0); + } +} diff --git a/src/scriptura/nuntiator.ts b/src/scriptura/nuntiator.ts new file mode 100644 index 0000000..0c370c6 --- /dev/null +++ b/src/scriptura/nuntiator.ts @@ -0,0 +1,20 @@ +import Gustularium from './gustularium'; + +type Optanda = { + valor?: T, + nuntium: Gustularium; +}; + +export default class Nuntiator { + readonly valor?: T; + readonly nuntium: Gustularium; + + constructor (optanda: Optanda) { + this.valor = optanda.valor; + this.nuntium = optanda.nuntium; + } + + successum (): boolean { + return this.valor ? true : false; + } +} diff --git a/src/scriptura/referre.ts b/src/scriptura/referre.ts new file mode 100644 index 0000000..c9594fe --- /dev/null +++ b/src/scriptura/referre.ts @@ -0,0 +1,23 @@ +import Gustularium from './gustularium'; + +export function referretne (): boolean { + return !!navigator.clipboard; +} +export async function referatur (valor?: string): Promise { + if (valor) { + if (referretne()) { + await navigator.clipboard.writeText(valor); + return new Gustularium({ + nuntium: 'Locutio referatur', + vita: 3000, color: 'green' + }); + } else { + return new Gustularium({ + nuntium: 'Modus referendum non fert', + vita: 3000, color: 'red' + }); + } + } else { + return new Gustularium({}); + } +} diff --git a/src/scriptura/transducere.ts b/src/scriptura/transducere.ts new file mode 100644 index 0000000..9e5026c --- /dev/null +++ b/src/scriptura/transducere.ts @@ -0,0 +1,19 @@ +import { NewTabOpener } from 'new-tab-opener'; + +export function transduceretne (): boolean { + try { + return !!(new Blob); + } catch { + return false; + } +} + +export function transducatur (locutio: string): void { + if (transduceretne()) { + new NewTabOpener().open(URL.createObjectURL(new Blob( + [ locutio ], { + type: 'text/plain;charset=utf-8' + } + ))); + } +} diff --git a/src/tabulae/adverbii.ts b/src/tabulae/adverbii.ts new file mode 100644 index 0000000..b37fc17 --- /dev/null +++ b/src/tabulae/adverbii.ts @@ -0,0 +1,40 @@ +import Tabula from './tabula'; +import { gradi } from '../miscella/enumerationes'; +import Nuntius from '../miscella/nuntius'; +import { AdverbiumAgendum } from '../praebeunda/agenda'; +import { Adverbium } from '../praebeunda/verba'; + +@Nuntius.factum('TabulaAdverbii') +export default class TabulaAdverbii extends Tabula { + private readonly _agendum: AdverbiumAgendum; + + constructor (agendum: AdverbiumAgendum) { + super(); + this._agendum = agendum; + } + + @Nuntius.futurus('TabulaAdverbii') + async plenetur (): Promise { + gradi.forEach(gradus => { + let scriptum: string = ''; + switch (gradus) { + case 'positivus': + scriptum = this._agendum.positivum; + break; + case 'comparativus': + scriptum = this._agendum.comparativum; + break; + case 'superlativus': + scriptum = this._agendum.superlativum; + break; + } + + if (scriptum) { + this.tabula.push(Object.assign({}, { + gradus: gradus, + scriptum: scriptum + }) as any); + } + }); + } +} diff --git a/src/tabulae/bifissa.ts b/src/tabulae/bifissa.ts new file mode 100644 index 0000000..9b4f07d --- /dev/null +++ b/src/tabulae/bifissa.ts @@ -0,0 +1,37 @@ +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { NomenAgendum } from '../praebeunda/agenda'; +import { Nomen } from '../praebeunda/verba'; + +type Optanda = { + singularis: NomenAgendum, + pluralis: NomenAgendum; +}; + +@Nuntius.factum('TabulaBifissa') +export default class TabulaBifissa extends Tabula { + private readonly _: Optanda; + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaBifissa') + async plenetur (): Promise { + [ + { + numeralis: 'singularis', + agendum: this._.singularis + }, { + numeralis: 'pluralis', + agendum: this._.pluralis + } + ].forEach(async res => { + const tabula: Tabula | null = res.agendum.putetur(); + if (tabula) { + (await tabula.tabulentur()).filter(nomen => nomen.numeralis === res.numeralis) + .forEach(nomen => this.tabula.push(nomen)); + } + }); + } +} diff --git a/src/tabulae/collata.ts b/src/tabulae/collata.ts new file mode 100644 index 0000000..55e4ad0 --- /dev/null +++ b/src/tabulae/collata.ts @@ -0,0 +1,33 @@ +import deepEqual from 'deep-equal'; +import Tabula from './tabula'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Agendum } from '../praebeunda/agenda'; + +export function valedictor (hoc: Hoc): Agendum { + const { scriptum: scriptum, categoria: categoria, ...valores } = hoc; + return valores as any; +} + +@Nuntius.factum('TabulaCollata') +export default class TabulaCollata extends Tabula { + private readonly _relatae: Ignavum>[]; + + constructor (...relatae: Ignavum>[]) { + super(); + this._relatae = relatae; + } + + @Nuntius.futurus('TabulaCollata') + async plenetur (): Promise { + this._relatae.forEach(async res => { + const ulla: Tabula = res.ipse(); + (await ulla.tabulentur()).forEach(hoc => { + if (this.tabula.none(illud => deepEqual(valedictor(hoc), valedictor(illud)))) { + this.tabula.push(hoc); + } + }); + }); + } +} diff --git a/src/tabulae/coniuncta.ts b/src/tabulae/coniuncta.ts new file mode 100644 index 0000000..9001488 --- /dev/null +++ b/src/tabulae/coniuncta.ts @@ -0,0 +1,52 @@ +import deepEqual from 'deep-equal'; +import { valedictor } from './collata'; +import Tabula from './tabula'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Positor } from '../praebeunda/agenda'; + +type Optanda = { + prima: Ignavum>, + secunda: Ignavum>, + positor: Positor; +}; + +@Nuntius.factum('TabulaConiuncta') +export default class TabulaConiuncta extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaConiuncta') + async plenetur (): Promise { + const prima: Tabula = this._.prima.ipse(); + const secunda: Tabula = this._.prima.ipse(); + + const areSetsEqual: ((prima: Set, secunda: Set) => boolean) = + (await import('@neoncitylights/sets')).areSetsEqual; + + const tabulaPrima: Hoc[] = await prima.tabulentur(); + const tabulaSecunda: Hoc[] = await secunda.tabulentur(); + + if (areSetsEqual( + new Set(tabulaPrima.map(valedictor)), + new Set((tabulaSecunda.map(valedictor)))) + ) { + tabulaPrima.forEach(async primum => { + const secundum: Hoc = tabulaSecunda.first(hoc => deepEqual(valedictor(hoc), valedictor(primum))); + if (secundum) { + primum.scriptum = primum.scriptum.concat(secundum.scriptum); + this.tabula.push(primum); + } else { + throw new Error("Inflexionis tabulae malae'st"); + } + }); + } else { + throw new Error("Inflexionis tabulae malae'st"); + } + } +} diff --git a/src/tabulae/defectae/defecta.ts b/src/tabulae/defectae/defecta.ts new file mode 100644 index 0000000..b2dde9e --- /dev/null +++ b/src/tabulae/defectae/defecta.ts @@ -0,0 +1,32 @@ +import Ignavum from '../../miscella/ignavum'; +import Nuntius from '../../miscella/nuntius'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +@Nuntius.factum('TabulaDefecta') +export default abstract class TabulaDefecta extends Tabula { + private readonly _relata: Ignavum>; + + protected abstract referatur (colamen: Percolamen): Percolamen | null; + + constructor (relata: Ignavum>) { + super(); + this._relata = relata; + } + + @Nuntius.futurus('TabulaDefecta') + async plenetur (): Promise { + const relata: Tabula = this._relata.ipse(); + (await relata.tabulentur()).forEach(hoc => { + const { scriptum, categoria, ...ista } = hoc; + const illa: Percolamen | null = this.referatur(ista as any); + if (illa) { + this.tabula.push({ + ...illa, + scriptum, categoria + } as Hoc); + } + }); + } +} diff --git a/src/tabulae/defectae/deponens.ts b/src/tabulae/defectae/deponens.ts new file mode 100644 index 0000000..3e4d47e --- /dev/null +++ b/src/tabulae/defectae/deponens.ts @@ -0,0 +1,124 @@ +import TabulaDefecta from './defecta'; +import { numerales, personae, tempora } from '../../miscella/enumerationes'; +import Ignavum from '../../miscella/ignavum'; +import { Actus } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + ut: string; +}; + +export default class TabulaDeponens extends TabulaDefecta { + static apponatur (ut: string): Percolamen[] { + const colamina: Percolamen[] = [ + { modus: 'infinitivus' } as Percolamen + ]; + + switch (ut) { + case 'semideponens': + [ + 'praesens', 'futurum', 'perfectum' + ].map(tempus => { + colamina.push({ + modus: 'participalis', + tempus: tempus + } as Percolamen); + }); + break; + case 'semideponensActiva': + colamina.push({ + modus: 'participalis', + tempus: 'futurum' + } as Percolamen); + break; + default: + [ + 'futurum', 'perfectum' + ].map(tempus => { + colamina.push({ + modus: 'participalis', + tempus: tempus + } as Percolamen); + }); + break; + } + + [ + 'praesens', 'futurum' + ].forEach(tempus => { + numerales.forEach(numeralis => { + colamina.push({ + modus: 'imperativus', + tempus: tempus, + numeralis: numeralis + } as Percolamen); + }) + }); + + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum' + ].includes(tempus) + ].all()) { + numerales.forEach(numeralis => { + personae.forEach(persona => { + colamina.push({ + modus: modus, + tempus: tempus, + numeralis: numeralis, + persona: persona + } as Percolamen); + }); + }); + } + }); + }); + + return colamina; + } + + private readonly _ut: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._ut = optanda.ut; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + switch (this._ut) { + case 'semideponens': + if (colamen.modus === 'particpalis') { + colamen.vox = ''; + } else if (colamen.vox === 'passiva') { + return null; + } + case 'semideponensActiva': + if ([ + colamen.modus === 'participalis', + colamen.tempus === 'futurum', + colamen.vox === 'passiva' + ].any()) { + colamen.vox = ''; + } else if (colamen.vox === 'passiva') { + return null; + } + default: + if ([ + colamen.modus === 'participalis', + colamen.vox === 'passiva' + ].any()) { + colamen.vox = ''; + } else { + return null; + } + } + + return colamen; + } +} diff --git a/src/tabulae/defectae/impersonalis.ts b/src/tabulae/defectae/impersonalis.ts new file mode 100644 index 0000000..8630695 --- /dev/null +++ b/src/tabulae/defectae/impersonalis.ts @@ -0,0 +1,148 @@ +import TabulaDefecta from './defecta'; +import { + numerales, + personae, + tempora, + voces + } from '../../miscella/enumerationes'; +import Ignavum from '../../miscella/ignavum'; +import { Actus } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + et: string; +}; + +export default class TabulaImpersonalis extends TabulaDefecta { + static apponatur (et: string): Percolamen[] { + const colamina: Percolamen[] = [ + 'praesens', 'perfectum' + ].map(tempus => { + return { + modus: 'infinitivus', + tempus: tempus + } as Percolamen; + }); + + [ + 'praesens', 'futurum', 'perfectum' + ].forEach(tempus => { + colamina.push({ + modus: 'participalis', + tempus: tempus + } as Percolamen); + + if (tempus !== 'perfectum') { + colamina.push({ + modus: 'imperativus', + tempus: tempus + } as Percolamen); + } + }); + + if (et === 'passivo') { + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum', 'perfectum', 'plusquamperfectum' + ].includes(tempus) + ].all()) { + numerales.forEach(numeralis => { + personae.forEach(persona => { + colamina.push({ + modus: modus, + vox: 'activa', + tempus: tempus, + numeralis: numeralis, + persona: persona + } as Percolamen); + }); + }); + + colamina.push({ + modus: modus, + vox: 'passiva', + tempus: tempus + } as Percolamen); + } + }); + }); + } else { + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + voces.forEach(vox => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum', 'perfectum', 'plusquamperfectum', + !et.includes('semideponens'), + ![ 'perfectum', 'plusquamperfectum' ].includes(tempus) + ].includes(tempus) + ].all()) { + colamina.push({ + modus: modus, + vox: vox, + tempus: tempus + } as Percolamen); + } + }); + }); + }); + } + + return colamina; + } + + private readonly _et: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._et = optanda.et; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + if (this._et === 'semideponens') { + if (colamen.modus === 'particpalis') { + colamen.vox = ''; + } else if (colamen.vox === 'passiva') { + return null; + } + } else if (this._et === 'semideponensActiva') { + if (colamen.vox === 'passiva') { + switch (true) { + case [ + colamen.modus === 'participalis', + colamen.tempus === 'futurum', + ].any(): + colamen.vox = ''; + break; + default: + return null; + } + } + } + + if ([ + this._et === 'passivo', + colamen.vox === 'activa' + ].all()) { + return colamen; + } else { + return [ + colamen.numeralis === 'pluralis', + colamen.persona === 'prima', + colamen.persona === 'secunda' + ].any() ? null : { + ...colamen, + numeralis: '', + persona: '' + }; + } + } +} diff --git a/src/tabulae/defectae/numeralis/adiectivi.ts b/src/tabulae/defectae/numeralis/adiectivi.ts new file mode 100644 index 0000000..f217142 --- /dev/null +++ b/src/tabulae/defectae/numeralis/adiectivi.ts @@ -0,0 +1,41 @@ +import { casus, genera, gradi } from '../../../miscella/enumerationes'; +import Ignavum from '../../../miscella/ignavum'; +import { Adiectivum } from '../../../praebeunda/verba'; +import Tabula from '../../tabula'; +import TabulaDefecta from '../defecta'; +import { type Percolamen } from '../../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + numeralis: string; +}; + +export default class TabulaAdiectiviNumeralis extends TabulaDefecta { + static apponatur (): Percolamen[] { + return gradi.map(gradus => { + return genera.map(genus => { + return casus.map(casus => { + return { + gradus: gradus, + genus: genus, + casus: casus + } as Percolamen; + }); + }).flat(); + }).flat(); + } + + private readonly _numeralis: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._numeralis = optanda.numeralis; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + return colamen.numeralis === this._numeralis ? { + ...colamen, + numeralis: '' + } : null; + } +} diff --git a/src/tabulae/defectae/numeralis/nominis.ts b/src/tabulae/defectae/numeralis/nominis.ts new file mode 100644 index 0000000..e15fac4 --- /dev/null +++ b/src/tabulae/defectae/numeralis/nominis.ts @@ -0,0 +1,35 @@ +import { casus } from '../../../miscella/enumerationes'; +import Ignavum from '../../../miscella/ignavum'; +import { Nomen } from '../../../praebeunda/verba'; +import Tabula from '../../tabula'; +import TabulaDefecta from '../defecta'; +import { type Percolamen } from '../../../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + numeralis: string; +}; + +export default class TabulaNominisNumeralis extends TabulaDefecta { + static apponatur (): Percolamen[] { + return casus.map(casus => { + return { + casus: casus + } as Percolamen; + }); + } + + private readonly _numeralis: string; + + constructor (optanda: Optanda) { + super(optanda.relata); + this._numeralis = optanda.numeralis; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + return colamen.numeralis === this._numeralis ? { + ...colamen, + numeralis: '' + } : null; + } +} diff --git a/src/tabulae/defectae/perfecta.ts b/src/tabulae/defectae/perfecta.ts new file mode 100644 index 0000000..7790ce4 --- /dev/null +++ b/src/tabulae/defectae/perfecta.ts @@ -0,0 +1,72 @@ +import TabulaDefecta from './defecta'; +import { numerales, personae, tempora } from '../../miscella/enumerationes'; +import { Actus } from '../../praebeunda/verba'; +import { type Percolamen } from '../../praebeunda/agenda'; + +export default class TabulaPerfecta extends TabulaDefecta { + static apponatur (): Percolamen[] { + const colamina: Percolamen[] = [ + { modus: 'infinitivus' } as Percolamen + ]; + + [ + 'indicativus', 'subiunctivus' + ].forEach(modus => { + tempora.forEach(tempus => { + if ([ + modus === 'infinitiuvs', [ + 'praesens', 'infectum' + ].includes(tempus) + ].all()) { + numerales.forEach(numeralis => { + personae.forEach(persona => { + colamina.push({ + modus: modus, + tempus: tempus, + numeralis: numeralis, + persona: persona + } as Percolamen); + }); + }); + } + }); + }); + + return colamina; + } + + protected referatur (colamen: Percolamen): Percolamen | null { + switch (colamen.modus) { + case 'infinitivus': + if ([ + colamen.vox === 'activa', + colamen.tempus === 'perfectum' + ].all()) { + colamen.vox = ''; + colamen.tempus = ''; + } else { + return null; + } + break; + case 'indicativus': + case 'subiunctivus': + switch (colamen.tempus) { + case 'perfectum': + colamen.tempus = 'praesens'; + break; + case 'plusquamperfectum': + colamen.tempus = 'infectum'; + break; + case 'exigendum': + colamen.tempus = 'futurum'; + break; + default: + return null; + } + default: + return null; + } + + return colamen; + } +} diff --git a/src/tabulae/defectae/prona.ts b/src/tabulae/defectae/prona.ts new file mode 100644 index 0000000..69e1423 --- /dev/null +++ b/src/tabulae/defectae/prona.ts @@ -0,0 +1,39 @@ +import TabulaDefecta from './defecta'; +import Ignavum from '../../miscella/ignavum'; +import { Nomen } from '../../praebeunda/verba'; +import Tabula from '../tabula'; +import { type Percolamen } from '../../praebeunda/agenda'; + +export default class TabulaProna extends TabulaDefecta { + static apponatur (): Percolamen[] { + const colamina: Percolamen[] = [ + { + factum: 'infinitivum', + numeralis: '', + casus: '' + } as Percolamen + ]; + + [ + 'genitivus', + 'dativus', + 'accusativus', + 'ablativus' + ].forEach(casus => { + colamina.push({ + factum: 'gerundium', + casus: casus + } as Percolamen); + }); + + return colamina; + } + + constructor (relata: Ignavum>) { + super(relata); + } + + referatur (colamen: Percolamen): Percolamen | null { + return colamen.factum === 'supinum' ? null : colamen; + } +} diff --git a/src/tabulae/fissa.ts b/src/tabulae/fissa.ts new file mode 100644 index 0000000..89efcef --- /dev/null +++ b/src/tabulae/fissa.ts @@ -0,0 +1,33 @@ +import deepEqual from 'deep-equal'; +import { valedictor } from './collata'; +import Tabula from './tabula'; +import Ignavum from '../miscella/ignavum'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Percolamen } from '../praebeunda/agenda'; + +type Optanda = { + relata: Ignavum>, + tabula: Percolamen[]; +}; + +@Nuntius.factum('TabulaFissa') +export default class TabulaFissa extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaFissa') + async plenetur (): Promise { + const haec: Hoc[] = await this._.relata.ipse().tabulentur(); + this._.tabula.forEach(async colamen => { + const hoc: Hoc = haec.first(hoc => deepEqual(colamen, valedictor(hoc))); + if (hoc) { + this.tabula.push(hoc); + } + }); + } +} diff --git a/src/tabulae/inflexibilis.ts b/src/tabulae/inflexibilis.ts new file mode 100644 index 0000000..bbf4d08 --- /dev/null +++ b/src/tabulae/inflexibilis.ts @@ -0,0 +1,26 @@ +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Faciendum } from '../praebeunda/interfecta'; + +type Factor = ((hoc: Hoc) => Illud); + +type Optanda = { + factor: Factor, + hoc: Hoc; +}; + +@Nuntius.factum('TabulaInflexibilis') +export default class TabulaInflexibilis, Illud extends Multiplex> extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaInflexibilis') + async plenetur (): Promise { + this.tabula.push(this._.factor(this._.hoc)); + } +} diff --git a/src/tabulae/numeraminis.ts b/src/tabulae/numeraminis.ts new file mode 100644 index 0000000..1c4284a --- /dev/null +++ b/src/tabulae/numeraminis.ts @@ -0,0 +1,53 @@ +import Tabula from './tabula'; +import { numeria } from '../miscella/enumerationes'; +import Nuntius from '../miscella/nuntius'; +import { NumeramenAgendum } from '../praebeunda/agenda'; +import { Numeramen } from '../praebeunda/verba'; + +@Nuntius.factum('TabulaNumeraminis') +export default class TabulaNumeraminis extends Tabula { + private readonly _agendum: NumeramenAgendum; + + constructor (agendum: NumeramenAgendum) { + super(); + this._agendum = agendum; + } + + @Nuntius.futurus('TabulaNumeraminis') + async plenetur (): Promise { + numeria.forEach(numerium => { + let scriptum: string = ''; + switch (numerium) { + case 'numerus': + scriptum = this._agendum.numerus; + break; + case 'ordinale': + scriptum = this._agendum.ordinale; + break; + case 'cardinale': + scriptum = this._agendum.cardinale; + break; + case 'adverbium': + scriptum = this._agendum.adverbium; + break; + case 'multiplicativum': + scriptum = this._agendum.multiplicativum; + break; + case 'distributivum': + scriptum = this._agendum.distributivum; + break; + case 'fractionale': + scriptum = this._agendum.fractionale; + break; + } + + + if (scriptum) { + this.tabula.push(Object.assign({}, { + numerium: numerium, + scriptum: scriptum + } as any)); + } + }); + } +} diff --git a/src/tabulae/recta.ts b/src/tabulae/recta.ts new file mode 100644 index 0000000..00fccfe --- /dev/null +++ b/src/tabulae/recta.ts @@ -0,0 +1,42 @@ +import TabulaScapalis from './scapalis'; +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import type { Percolamen, Positor } from '../praebeunda/agenda'; +import { type Faciendum } from '../praebeunda/interfecta'; + +type Radicator = (hoc: Hoc, colamen: Percolamen) => string; + +type Optanda, Illud extends Multiplex> = { + radicator: Radicator; + positor: Positor, + scapum?: string, + via: string, + hoc: Hoc; +}; + +@Nuntius.factum('TabulaRecta') +export default class TabulaRecta, Illud extends Multiplex> extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaRecta') + async plenetur (): Promise { + const scapalis: TabulaScapalis = new TabulaScapalis({ + positor: this._.positor, + scapum: this._.scapum, + via: this._.via + }); + + this.tabula = (await scapalis.tabulentur()).map(illud => { + let { scriptum, categoria, ...valores } = illud; + illud.scriptum = this._.radicator(this._.hoc, valores as any) + .concat(scriptum); + return illud; + }); + } +} diff --git a/src/tabulae/rescriptae/circumfixa.ts b/src/tabulae/rescriptae/circumfixa.ts new file mode 100644 index 0000000..57045bf --- /dev/null +++ b/src/tabulae/rescriptae/circumfixa.ts @@ -0,0 +1,22 @@ +import TabulaRescripta from './rescripta'; +import Ignavum from '../../miscella/ignavum'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Optanda = { + relata: Ignavum>, + praefixum: string, + suffixum: string; +}; + +export default class TabulaCircumfixa extends TabulaRescripta { + constructor (optanda: Optanda) { + super({ + relata: optanda.relata, + rescriptor: (scriptum: string): string => [ + optanda.praefixum, + optanda.suffixum + ].join(scriptum) + }); + } +} diff --git a/src/tabulae/rescriptae/praefixa.ts b/src/tabulae/rescriptae/praefixa.ts new file mode 100644 index 0000000..1659cf3 --- /dev/null +++ b/src/tabulae/rescriptae/praefixa.ts @@ -0,0 +1,18 @@ +import TabulaRescripta from './rescripta'; +import Ignavum from '../../miscella/ignavum'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Optanda = { + relata: Ignavum>, + praefixum: string; +}; + +export default class TabulaPraefixa extends TabulaRescripta { + constructor (optanda: Optanda) { + super({ + relata: optanda.relata, + rescriptor: (scriptum: string): string => optanda.praefixum.concat(scriptum) + }); + } +} diff --git a/src/tabulae/rescriptae/rescripta.ts b/src/tabulae/rescriptae/rescripta.ts new file mode 100644 index 0000000..8e1460e --- /dev/null +++ b/src/tabulae/rescriptae/rescripta.ts @@ -0,0 +1,30 @@ +import Ignavum from '../../miscella/ignavum'; +import Nuntius from '../../miscella/nuntius'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Rescriptor = (scriptum: string) => string; + +type Optanda = { + relata: Ignavum>, + rescriptor: Rescriptor; +}; + +@Nuntius.factum('TabulaRescripta') +export default class TabulaRescripta extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaRescripta') + async plenetur (): Promise { + const relata: Tabula = this._.relata.ipse(); + this.tabula = (await relata.tabulentur()).map(hoc => { + hoc.scriptum = this._.rescriptor(hoc.scriptum); + return hoc; + }); + } +} diff --git a/src/tabulae/rescriptae/suffixa.ts b/src/tabulae/rescriptae/suffixa.ts new file mode 100644 index 0000000..7d4beca --- /dev/null +++ b/src/tabulae/rescriptae/suffixa.ts @@ -0,0 +1,18 @@ +import TabulaRescripta from './rescripta'; +import Ignavum from '../../miscella/ignavum'; +import { Multiplex } from '../../praebeunda/verba'; +import Tabula from '../tabula'; + +type Optanda = { + relata: Ignavum>, + suffixum: string; +}; + +export default class TabulaSuffixa extends TabulaRescripta { + constructor (optanda: Optanda) { + super({ + relata: optanda.relata, + rescriptor: (scriptum: string): string => scriptum.concat(optanda.suffixum) + }); + } +} diff --git a/src/tabulae/scapalis.ts b/src/tabulae/scapalis.ts new file mode 100644 index 0000000..dcd822e --- /dev/null +++ b/src/tabulae/scapalis.ts @@ -0,0 +1,30 @@ +import Tabula from './tabula'; +import Lector, { LectorAgendorum } from '../lectores/lector'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import type { Agendum, Positor } from '../praebeunda/agenda'; + +type Optanda = { + positor: Positor, + scapum?: string, + via: string; +}; + +@Nuntius.factum('TabulaScapalis') +export default class TabulaScapalis extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaScapalis') + async plenetur (): Promise { + const lector: Lector[]> = LectorAgendorum(this._.scapum); + const agenda: Agendum[] | null = await lector.legatur(this._.via); + if (agenda) { + this.tabula = agenda.map(agendum => this._.positor(agendum)); + } + } +} diff --git a/src/tabulae/tabula.ts b/src/tabulae/tabula.ts new file mode 100644 index 0000000..dbdfe2e --- /dev/null +++ b/src/tabulae/tabula.ts @@ -0,0 +1,20 @@ +import { Multiplex } from '../praebeunda/verba'; + +export default abstract class Tabula { + private _vacua: boolean; + protected tabula: Hoc[]; + protected abstract plenetur (): Promise; + + constructor () { + this.tabula = []; + this._vacua = true; + } + + async tabulentur (): Promise { + if (this._vacua) { + await this.plenetur().then(() => this._vacua = false); + } + + return this.tabula; + } +} diff --git a/src/tabulae/vicaria.ts b/src/tabulae/vicaria.ts new file mode 100644 index 0000000..5c31399 --- /dev/null +++ b/src/tabulae/vicaria.ts @@ -0,0 +1,55 @@ +import TabulaRecta from './recta'; +import Tabula from './tabula'; +import Nuntius from '../miscella/nuntius'; +import { Multiplex } from '../praebeunda/verba'; +import { type Positor } from '../praebeunda/agenda'; +import { type Faciendum } from '../praebeunda/interfecta'; +import { type Radicator } from '../putatores/putaturum'; + +type Optanda, Illud extends Multiplex> = { + prima: { + scapum?: string, + via: string; + }, secunda: { + scapum?: string, + via: string; + }, radicator: Radicator, + positor: Positor, + hoc: Hoc; +}; + +@Nuntius.factum('TabulaVicaria') +export default class TabulaVicaria, Illud extends Multiplex> extends Tabula { + private readonly _: Optanda; + + constructor (optanda: Optanda) { + super(); + this._ = optanda; + } + + @Nuntius.futurus('TabulaVicaria') + async plenetur (): Promise { + const prima: TabulaRecta = new TabulaRecta({ + radicator: this._.radicator, + positor: this._.positor, + scapum: this._.prima.scapum, + via: this._.prima.via, + hoc: this._.hoc + }); + + const secunda: TabulaRecta = new TabulaRecta({ + radicator: this._.radicator, + positor: this._.positor, + scapum: this._.secunda.scapum, + via: this._.secunda.via, + hoc: this._.hoc + }); + + this.tabula = [ + ...new Set([ + ...(await prima.tabulentur()), + ...(await secunda.tabulentur()) + ]) + ]; + } +} diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..e14c754 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.debug.json b/tsconfig.debug.json new file mode 100644 index 0000000..b9abe78 --- /dev/null +++ b/tsconfig.debug.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "extendedDiagnostics": true, + "generateCpuProfile": "structorverborum.cpuprofile" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1e3d0d3 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,55 @@ +{ + "extends": "./tsconfig.debug", + "compileOnSave": true, + "compilerOptions": { + "allowArbitraryExtensions": true, + "allowImportingTsExtensions": true, + "allowJs": true, + "allowSyntheticDefaultImports": true, + "alwaysStrict": true, + "assumeChangesOnlyAffectDirectDependencies": true, + "baseUrl": "./src/facies", + "composite": true, + "declaration": true, + "downlevelIteration": true, + "emitDeclarationOnly": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "importHelpers": true, + "lib": [ "dom" ], + "module": "NodeNext", + "moduleDetection": "auto", + "moduleResolution": "NodeNext", + "newLine": "lf", + "noErrorTruncation": true, + "noImplicitAny": true, + "noImplicitOverride": true, + "noImplicitReturns": true, + "noEmitOnError": true, + "removeComments": true, + "noPropertyAccessFromIndexSignature": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "outDir": "./wwwroot/js", + "paths": { + "facies": [ "./src/facies/*.vue" ], + "figura": [ "src/figura.ts" ], + "scriptura": [ "./src/scriptura/*.ts" ] + }, + "sourceMap": true, + "target": "ES2022" + }, + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.vitest.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..f094063 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*" + ], + "compilerOptions": { + "composite": true, + "noEmit": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/tsconfig.release.json b/tsconfig.release.json new file mode 100644 index 0000000..a63d6b7 --- /dev/null +++ b/tsconfig.release.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "extendedDiagnostics": false + } +} diff --git a/tsconfig.vitest.json b/tsconfig.vitest.json new file mode 100644 index 0000000..571995d --- /dev/null +++ b/tsconfig.vitest.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.app.json", + "exclude": [], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo", + + "lib": [], + "types": ["node", "jsdom"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..01f6c2c --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,20 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import VueDevTools from 'vite-plugin-vue-devtools' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueJsx(), + VueDevTools(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..4b1c897 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,14 @@ +import { fileURLToPath } from 'node:url' +import { mergeConfig, defineConfig, configDefaults } from 'vitest/config' +import viteConfig from './vite.config' + +export default mergeConfig( + viteConfig, + defineConfig({ + test: { + environment: 'jsdom', + exclude: [...configDefaults.exclude, 'e2e/**'], + root: fileURLToPath(new URL('./', import.meta.url)) + } + }) +)