diff --git a/.gitignore b/.gitignore index a330eb10..950a6691 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # compiled output dist/ +declarations/ .pnpm-store/ # dependencies diff --git a/README.md b/README.md index 156998b4..a761c05f 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,26 @@ ember install @qonto/ember-lottie | containerId | string | the dom element id on which to render the animation (mandatory) | | onDataReady | function | a function that triggers the Lottie when you want it | +## TypeScript usage + +The `Lottie`` component has proper [Glint](https://github.com/typed-ember/glint) types, which allow you to get strict type checking in your templates when using TypeScript. + +Unless you are using [strict mode](http://emberjs.github.io/rfcs/0496-handlebars-strict-mode.html) templates (via [first class component templates](http://emberjs.github.io/rfcs/0779-first-class-component-templates.html)), +you need to import the addon's Glint template registry entries as described in the [Using Addons](https://typed-ember.gitbook.io/glint/using-glint/ember/using-addons#using-glint-enabled-addons) documentation: + +```ts +// e.g. types/glint.d.ts +import "@glint/environment-ember-loose"; +import type LottieRegistry from "@qonto/ember-lottie/template-registry"; + +declare module "@glint/environment-ember-loose/registry" { + export default interface Registry + extends LottieRegistry /* other addon registries */ { + // local entries + } +} +``` + ## Contributing See the [Contributing](CONTRIBUTING.md) guide for details. diff --git a/ember-lottie/.eslintignore b/ember-lottie/.eslintignore index e69140be..4e982747 100644 --- a/ember-lottie/.eslintignore +++ b/ember-lottie/.eslintignore @@ -3,6 +3,7 @@ # compiled output /dist/ +/declarations/ # misc /coverage/ diff --git a/ember-lottie/package.json b/ember-lottie/package.json index 9682750e..7e13905c 100644 --- a/ember-lottie/package.json +++ b/ember-lottie/package.json @@ -16,17 +16,23 @@ "author": "", "files": [ "addon-main.cjs", + "declarations", "dist" ], "scripts": { - "build": "rollup --config", + "build": "concurrently 'npm:build:*'", + "build:js": "rollup --config", + "build:types": "glint --declaration", "lint": "concurrently 'npm:lint:*(!fix)' --names 'lint:'", "lint:fix": "concurrently 'npm:lint:*:fix' --names 'fix:'", "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern", "lint:js": "eslint . --cache", "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern", "lint:js:fix": "eslint . --fix", - "start": "rollup --config --watch", + "lint:types": "glint", + "start": "concurrently 'npm:start:*'", + "start:js": "rollup --config --watch --no-watch.clearScreen", + "start:types": "glint -d --watch", "test": "echo 'A v2 addon does not have tests, run tests in test-app'", "prepack": "rollup --config" }, @@ -48,8 +54,9 @@ "@babel/preset-typescript": "7.22.5", "@babel/runtime": "^7.22.5", "@embroider/addon-dev": "^3.0.0", - "@glint/core": "^0.9.7", - "@glint/environment-ember-loose": "^0.9.7", + "@glint/core": "1.1.0", + "@glint/environment-ember-loose": "1.1.0", + "@rollup/plugin-babel": "6.0.3", "@tsconfig/ember": "2.0.0", "@types/ember": "^4.0.0", "@types/ember__application": "^4.0.0", @@ -71,6 +78,7 @@ "@typescript-eslint/eslint-plugin": "5.59.6", "@typescript-eslint/parser": "5.60.0", "concurrently": "^7.2.1", + "ember-modifier": "^4.1.0", "ember-template-lint": "^4.0.0", "eslint": "^8.41.0", "eslint-config-prettier": "^8.3.0", @@ -80,7 +88,6 @@ "prettier": "^2.5.1", "rollup": "3.23.0", "rollup-plugin-copy": "3.4.0", - "rollup-plugin-ts": "3.2.0", "typescript": "4.9.5" }, "publishConfig": { @@ -98,17 +105,20 @@ } }, "exports": { - ".": "./dist/index.js", + ".": { + "types": "./declarations/index.d.ts", + "default": "./dist/index.js" + }, "./*": { - "types": "./dist/*.d.ts", + "types": "./declarations/*.d.ts", "default": "./dist/*.js" }, - "./addon-main.js": "./addon-main.cjs" + "./addon-main.js": "./addon-main.js" }, "typesVersions": { "*": { "*": [ - "dist/*" + "declarations/*" ] } }, diff --git a/ember-lottie/rollup.config.mjs b/ember-lottie/rollup.config.mjs index 056bc85f..a70f717f 100644 --- a/ember-lottie/rollup.config.mjs +++ b/ember-lottie/rollup.config.mjs @@ -1,4 +1,4 @@ -import typescript from 'rollup-plugin-ts'; +import { babel } from '@rollup/plugin-babel'; import copy from 'rollup-plugin-copy'; import { Addon } from '@embroider/addon-dev/rollup'; @@ -7,6 +7,9 @@ const addon = new Addon({ destDir: 'dist', }); +// Add extensions here, such as ts, gjs, etc that you may import +const extensions = ['.js', '.ts']; + export default { // This provides defaults that work well alongside `publicEntrypoints` below. // You can augment this if you need to. @@ -15,7 +18,7 @@ export default { plugins: [ // These are the modules that users should be able to import from your // addon. Anything not listed here may get optimized away. - addon.publicEntrypoints(['components/**/*.js']), + addon.publicEntrypoints(['components/**/*.js', 'template-registry.js']), // These are the modules that should get reexported into the traditional // "app" tree. Things in here should also be in publicEntrypoints above, but @@ -27,11 +30,13 @@ export default { // package names. addon.dependencies(), - // compile TypeScript to latest JavaScript, including Babel transpilation - typescript({ - transpiler: 'babel', - browserslist: false, - transpileOnly: false + // This babel config should *not* apply presets or compile away ES modules. + // It exists only to provide development niceties for you, like automatic + // template colocation. + // See `babel.config.json` for the actual Babel configuration! + babel({ + extensions, + babelHelpers: 'bundled', }), // Ensure that standalone .hbs files are properly integrated as Javascript. diff --git a/ember-lottie/src/components/lottie.ts b/ember-lottie/src/components/lottie.ts index f7a22f1c..810d118b 100644 --- a/ember-lottie/src/components/lottie.ts +++ b/ember-lottie/src/components/lottie.ts @@ -20,6 +20,7 @@ class NotFoundError extends Error { export interface LottieArgs { name?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any animationData?: any; path?: string; loop?: boolean; @@ -29,7 +30,12 @@ export interface LottieArgs { onDataReady?: () => void; } -export default class LottieComponent extends Component { +export interface LottieSignature { + Element: HTMLElement; + Args: LottieArgs; +} + +export default class LottieComponent extends Component { private animation?: AnimationItem; private mediaQuery = window.matchMedia?.('(prefers-reduced-motion: reduce)'); diff --git a/ember-lottie/src/template-registry.ts b/ember-lottie/src/template-registry.ts new file mode 100644 index 00000000..42b98f17 --- /dev/null +++ b/ember-lottie/src/template-registry.ts @@ -0,0 +1,5 @@ +import LottieComponent from './components/lottie'; + +export default interface Registry { + Lottie: typeof LottieComponent; +} diff --git a/ember-lottie/src/unpublished-development-types/index.d.ts b/ember-lottie/src/unpublished-development-types/index.d.ts new file mode 100644 index 00000000..2f8d4069 --- /dev/null +++ b/ember-lottie/src/unpublished-development-types/index.d.ts @@ -0,0 +1,18 @@ +// Add any types here that you need for local development only. +// These will *not* be published as part of your addon, so be careful that your published code does not rely on them! + +import '@glint/environment-ember-loose'; +import Modifier from 'ember-modifier'; + +declare class RenderModifier< + Args extends Array = Array +> extends Modifier<{ + Element: HTMLElement; + Args: { Positional: [(element: HTMLElement, args: Args) => void, ...Args] }; +}> {} + +declare module '@glint/environment-ember-loose/registry' { + export default interface Registry { + 'did-insert': typeof RenderModifier; + } +} diff --git a/ember-lottie/tsconfig.json b/ember-lottie/tsconfig.json index 5ad3acef..2198eb8f 100644 --- a/ember-lottie/tsconfig.json +++ b/ember-lottie/tsconfig.json @@ -6,5 +6,8 @@ ], "glint": { "environment": "ember-loose" + }, + "compilerOptions": { + "declarationDir": "declarations" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 649e60c2..8f94197e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -72,11 +76,14 @@ importers: specifier: ^3.0.0 version: 3.0.0(rollup@3.23.0) '@glint/core': - specifier: ^0.9.7 - version: 0.9.7(typescript@4.9.5) + specifier: 1.1.0 + version: 1.1.0(typescript@4.9.5) '@glint/environment-ember-loose': - specifier: ^0.9.7 - version: 0.9.7(@glimmer/component@1.1.2) + specifier: 1.1.0 + version: 1.1.0(@glimmer/component@1.1.2)(@glint/template@1.1.0)(@types/ember__array@4.0.3)(@types/ember__component@4.0.14)(@types/ember__controller@4.0.4)(@types/ember__object@4.0.5)(@types/ember__routing@4.0.12)(ember-modifier@4.1.0) + '@rollup/plugin-babel': + specifier: 6.0.3 + version: 6.0.3(@babel/core@7.21.3)(rollup@3.23.0) '@tsconfig/ember': specifier: 2.0.0 version: 2.0.0 @@ -140,6 +147,9 @@ importers: concurrently: specifier: ^7.2.1 version: 7.6.0 + ember-modifier: + specifier: ^4.1.0 + version: 4.1.0(ember-source@4.11.0) ember-template-lint: specifier: ^4.0.0 version: 4.18.2 @@ -167,9 +177,6 @@ importers: rollup-plugin-copy: specifier: 3.4.0 version: 3.4.0 - rollup-plugin-ts: - specifier: 3.2.0 - version: 3.2.0(@babel/core@7.21.3)(@babel/preset-typescript@7.22.5)(@babel/runtime@7.22.5)(rollup@3.23.0)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -2436,26 +2443,16 @@ packages: transitivePeerDependencies: - '@babel/core' - /@glint/config@0.9.7: - resolution: {integrity: sha512-XkWIZ3fuOlcofUJUaJmRS57mVVNi+Af2HtrZkBXEOCh4+BNz2wclxv2WKvkhmtvLhEUOhHb5eU3gwI58SuwgXQ==} - dependencies: - escape-string-regexp: 4.0.0 - minimatch: 3.1.2 - resolve: 1.22.2 - silent-error: 1.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@glint/core@0.9.7(typescript@4.9.5): - resolution: {integrity: sha512-1YLHNRnuYI1dDUKWq/ue4JqiBt6TVR8e7VQJWy37CKB0tiBhWw/FPvr7/S7XbUxCt6KHO0Kl0x/eqLunu3WiQw==} + /@glint/core@1.1.0(typescript@4.9.5): + resolution: {integrity: sha512-SeAdKrQF65NRDzzmkwUC0VRZjBDysQXeIKXhyCUtXaatFDeyC0zdESJRcUykMdQoI5R6MKcts2X3gthLRuEGKA==} hasBin: true peerDependencies: - typescript: ^4.7.0 + typescript: '>=4.8.0' dependencies: - '@glint/config': 0.9.7 - '@glint/transform': 0.9.7 - resolve: 1.22.2 + '@glimmer/syntax': 0.84.3 + escape-string-regexp: 4.0.0 + semver: 7.5.4 + silent-error: 1.1.1 typescript: 4.9.5 uuid: 8.3.2 vscode-languageserver: 8.1.0 @@ -2466,40 +2463,46 @@ packages: - supports-color dev: true - /@glint/environment-ember-loose@0.9.7(@glimmer/component@1.1.2): - resolution: {integrity: sha512-MlCGZtB1Clp4vQWIm2APSnCm7nL8wVhFMOhVy2qzpV0nfLyg3pcN9CQHNpfdJvCydBB72cA4/ahPj7VEFL6xsg==} + /@glint/environment-ember-loose@1.1.0(@glimmer/component@1.1.2)(@glint/template@1.1.0)(@types/ember__array@4.0.3)(@types/ember__component@4.0.14)(@types/ember__controller@4.0.4)(@types/ember__object@4.0.5)(@types/ember__routing@4.0.12)(ember-modifier@4.1.0): + resolution: {integrity: sha512-Qwr3OAptRZ8zqxaPvpVBdbSiiImYMRNu+0IPQGaDutqOV80GzWYeiMuEyPC0Nwy4mQ3991YxE24Q+a5/FTfTNw==} peerDependencies: '@glimmer/component': ^1.1.2 + '@glint/template': ^1.1.0 + '@types/ember__array': ^4.0.2 + '@types/ember__component': ^4.0.10 + '@types/ember__controller': ^4.0.2 + '@types/ember__object': ^4.0.4 + '@types/ember__routing': ^4.0.11 ember-cli-htmlbars: ^6.0.1 - ember-modifier: ^3.2.7 + ember-modifier: ^3.2.7 || ^4.0.0 peerDependenciesMeta: + '@types/ember__array': + optional: true + '@types/ember__component': + optional: true + '@types/ember__controller': + optional: true + '@types/ember__object': + optional: true + '@types/ember__routing': + optional: true ember-cli-htmlbars: optional: true ember-modifier: optional: true dependencies: '@glimmer/component': 1.1.2(@babel/core@7.21.3) - '@glint/config': 0.9.7 - '@glint/template': 0.9.7(@glimmer/component@1.1.2) - transitivePeerDependencies: - - supports-color - dev: true - - /@glint/template@0.9.7(@glimmer/component@1.1.2): - resolution: {integrity: sha512-MCp8GxQDIbH8ZzfNxHhVqCSKlydBgQfBEwJLDpN81lgFRCldSDPueIbk8sz3EhpGiZJVdNQbpGeYIDsUXe1ocg==} - peerDependencies: - '@glimmer/component': ^1.1.2 - dependencies: - '@glimmer/component': 1.1.2(@babel/core@7.21.3) + '@glint/template': 1.1.0 + '@types/ember__array': 4.0.3(@babel/core@7.21.3) + '@types/ember__component': 4.0.14(@babel/core@7.21.3) + '@types/ember__controller': 4.0.4(@babel/core@7.21.3) + '@types/ember__object': 4.0.5(@babel/core@7.21.3) + '@types/ember__routing': 4.0.12(@babel/core@7.21.3) + ember-modifier: 4.1.0(ember-source@4.11.0) dev: true - /@glint/transform@0.9.7: - resolution: {integrity: sha512-vd0th+Zo4cirYepASpC0fE0ZCqAcI9Y6qHYE0xi4+MY05bFRxBr7Q9ggDoWk+slynTyUrVgzCCeazAYOlZsYcg==} - dependencies: - '@glimmer/syntax': 0.84.3 - '@glint/config': 0.9.7 - transitivePeerDependencies: - - supports-color + /@glint/template@1.1.0: + resolution: {integrity: sha512-gK4tifrw7mIMYECzGeG5jrez2lY0TlwE584cnoYOFhzxXKrsuungdiebd7LDwjvfQpImQd1JUSQr3u/uF/XYJg==} dev: true /@handlebars/parser@2.0.0: @@ -2588,10 +2591,6 @@ packages: upath: 2.0.1 dev: true - /@mdn/browser-compat-data@5.2.59: - resolution: {integrity: sha512-f7VxPGqVLCSe+0KdDas33JyGY+eHJTfBkgAsoiM1BSv7e238FYJMTFwfGLhjnhOwc33wUwsnjiHSfXukwzbqog==} - dev: true - /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2927,6 +2926,25 @@ packages: yaml: 2.2.1 dev: true + /@rollup/plugin-babel@6.0.3(@babel/core@7.21.3)(rollup@3.23.0): + resolution: {integrity: sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + rollup: + optional: true + dependencies: + '@babel/core': 7.21.3(supports-color@8.1.1) + '@babel/helper-module-imports': 7.22.5 + '@rollup/pluginutils': 5.0.2(rollup@3.23.0) + rollup: 3.23.0 + dev: true + /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -3427,10 +3445,6 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: true - /@types/node@18.15.11: resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} @@ -3438,10 +3452,6 @@ packages: resolution: {integrity: sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==} dev: true - /@types/object-path@0.11.1: - resolution: {integrity: sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==} - dev: true - /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: true @@ -3509,10 +3519,6 @@ packages: /@types/symlink-or-copy@1.2.0: resolution: {integrity: sha512-Lja2xYuuf2B3knEsga8ShbOdsfNOtzT73GyJmZyY7eGl2+ajOqrs8yM5ze0fsSoYwvA6bw7/Qr7OZ7PEEmYwWg==} - /@types/ua-parser-js@0.7.36: - resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==} - dev: true - /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true @@ -3920,11 +3926,6 @@ packages: '@webassemblyjs/ast': 1.11.1 '@xtuc/long': 4.2.2 - /@wessberg/stringutil@1.0.19: - resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} - engines: {node: '>=8.0.0'} - dev: true - /@xmldom/xmldom@0.8.7: resolution: {integrity: sha512-sI1Ly2cODlWStkINzqGrZ8K6n+MTSbAeQnAipGyL+KZCXuHaRlj2gyyy8B/9MvsFFqN7XHryQnB2QwhzvJXovg==} engines: {node: '>=10.0.0'} @@ -5721,22 +5722,6 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true - /browserslist-generator@2.0.3: - resolution: {integrity: sha512-3j8ogwvlBpOEDR3f5n1H2n5BWXqHPWi/Xm8EC1DPJy5BWl4WkSFisatBygH/L9AEmg0MtOfcR1QnMuM9XL28jA==} - engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - dependencies: - '@mdn/browser-compat-data': 5.2.59 - '@types/object-path': 0.11.1 - '@types/semver': 7.3.13 - '@types/ua-parser-js': 0.7.36 - browserslist: 4.21.5 - caniuse-lite: 1.0.30001477 - isbot: 3.6.10 - object-path: 0.11.8 - semver: 7.5.1 - ua-parser-js: 1.0.35 - dev: true - /browserslist@3.2.8: resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} hasBin: true @@ -6234,16 +6219,6 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - /compatfactory@2.0.9(typescript@4.9.5): - resolution: {integrity: sha512-fvO+AWcmbO7P1S+A3mwm3IGr74eHMeq5ZLhNhyNQc9mVDNHT4oe0Gg0ksdIFFNXLK7k7Z/TYcLAUSQdRgh1bsA==} - engines: {node: '>=14.9.0'} - peerDependencies: - typescript: '>=3.x || >= 4.x' - dependencies: - helpertypes: 0.0.19 - typescript: 4.9.5 - dev: true - /component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true @@ -6625,13 +6600,6 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /crosspath@2.0.0: - resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} - engines: {node: '>=14.9.0'} - dependencies: - '@types/node': 17.0.45 - dev: true - /crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -9877,11 +9845,6 @@ packages: dependencies: rsvp: 3.2.1 - /helpertypes@0.0.19: - resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} - engines: {node: '>=10.0.0'} - dev: true - /highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} dev: true @@ -10018,6 +9981,7 @@ packages: /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 dev: true @@ -10680,11 +10644,6 @@ packages: engines: {node: '>= 14.0.0'} dev: true - /isbot@3.6.10: - resolution: {integrity: sha512-+I+2998oyP4oW9+OTQD8TS1r9P6wv10yejukj+Ksj3+UR5pUhsZN3f8W7ysq0p1qxpOVNbl5mCuv0bCaF8y5iQ==} - engines: {node: '>=12'} - dev: true - /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -11343,13 +11302,6 @@ packages: dependencies: sourcemap-codec: 1.4.8 - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /magic-string@0.30.0: resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} engines: {node: '>=12'} @@ -12209,11 +12161,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - /object-path@0.11.8: - resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} - engines: {node: '>= 10.12.0'} - dev: true - /object-visit@1.0.1: resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} engines: {node: '>=0.10.0'} @@ -13594,52 +13541,6 @@ packages: del: 5.1.0 dev: true - /rollup-plugin-ts@3.2.0(@babel/core@7.21.3)(@babel/preset-typescript@7.22.5)(@babel/runtime@7.22.5)(rollup@3.23.0)(typescript@4.9.5): - resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==} - engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=6.x || >=7.x' - '@babel/plugin-transform-runtime': '>=6.x || >=7.x' - '@babel/preset-env': '>=6.x || >=7.x' - '@babel/preset-typescript': '>=6.x || >=7.x' - '@babel/runtime': '>=6.x || >=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x' - typescript: '>=3.2.x || >= 4.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true - dependencies: - '@babel/core': 7.21.3(supports-color@8.1.1) - '@babel/preset-typescript': 7.22.5(@babel/core@7.21.3) - '@babel/runtime': 7.22.5 - '@rollup/pluginutils': 5.0.2(rollup@3.23.0) - '@wessberg/stringutil': 1.0.19 - ansi-colors: 4.1.3 - browserslist: 4.21.5 - browserslist-generator: 2.0.3 - compatfactory: 2.0.9(typescript@4.9.5) - crosspath: 2.0.0 - magic-string: 0.27.0 - rollup: 3.23.0 - ts-clone-node: 2.0.4(typescript@4.9.5) - tslib: 2.5.0 - typescript: 4.9.5 - dev: true - /rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} dependencies: @@ -13880,6 +13781,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -14911,16 +14820,6 @@ packages: - supports-color dev: true - /ts-clone-node@2.0.4(typescript@4.9.5): - resolution: {integrity: sha512-eG6FAgmQsenhIJOIFhUcO6yyYejBKZIKcI3y21jiQmIOrth5pD6GElyPAyeihbPSyBs3u/9PVNXy+5I7jGy8jA==} - engines: {node: '>=14.9.0'} - peerDependencies: - typescript: ^3.x || ^4.x - dependencies: - compatfactory: 2.0.9(typescript@4.9.5) - typescript: 4.9.5 - dev: true - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -15023,10 +14922,6 @@ packages: hasBin: true dev: true - /ua-parser-js@1.0.35: - resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} - dev: true - /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true