diff --git a/ember-power-datepicker/babel.config.json b/ember-power-datepicker/babel.config.json index 7704fa8..abd94a9 100644 --- a/ember-power-datepicker/babel.config.json +++ b/ember-power-datepicker/babel.config.json @@ -1,8 +1,11 @@ { "plugins": [ + ["@babel/plugin-transform-typescript", { "allExtensions": true, "onlyRemoveTypeImports": true, "allowDeclareFields": true }], "@embroider/addon-dev/template-colocation-plugin", - ["@babel/plugin-proposal-decorators", { "version": "legacy" }], - "@babel/plugin-proposal-class-properties", - "./node_modules/ember-concurrency/async-arrow-task-transform" + ["babel-plugin-ember-template-compilation", { + "targetFormat": "hbs", + "transforms": [] + }], + ["module:decorator-transforms", { "runtime": { "import": "decorator-transforms/runtime" } }] ] -} \ No newline at end of file +} diff --git a/ember-power-datepicker/package.json b/ember-power-datepicker/package.json index 88eca35..d2f6e66 100644 --- a/ember-power-datepicker/package.json +++ b/ember-power-datepicker/package.json @@ -28,28 +28,32 @@ "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:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", - "prepack": "npm run build", - "start": "rollup --config --watch", + "lint:types": "glint", + "prepack": "pnpm build", + "start": "concurrently 'npm:start:*'", + "start:js": "rollup --config --watch --no-watch.clearScreen", + "start:types": "glint --declaration --watch", "test": "echo 'A v2 addon does not have tests, run tests in test-app'", - "prepare": "npm run build" + "prepare": "pnpm build" }, "dependencies": { "@embroider/addon-shim": "^1.8.7", + "@embroider/util": "^1.12.1", + "decorator-transforms": "^1.1.0", "ember-assign-helper": "^0.5.0" }, "devDependencies": { "@babel/core": "^7.23.9", - "@babel/eslint-parser": "^7.23.10", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.23.9", - "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-typescript": "^7.23.6", "@babel/runtime": "^7.23.9", "@ember/string": "^3.1.1", "@ember/test-helpers": "^3.2.1", diff --git a/ember-power-datepicker/rollup.config.mjs b/ember-power-datepicker/rollup.config.mjs index 1c7cddc..aecfa70 100644 --- a/ember-power-datepicker/rollup.config.mjs +++ b/ember-power-datepicker/rollup.config.mjs @@ -19,7 +19,7 @@ export default { // up your addon's public API. Also make sure your package.json#exports // is aligned to the config here. // See https://github.com/embroider-build/embroider/blob/main/docs/v2-faq.md#how-can-i-define-the-public-exports-of-my-addon - addon.publicEntrypoints(['index.js', '**/*.js']), + addon.publicEntrypoints(['index.js', 'components/**/*.js']), // These are the modules that should get reexported into the traditional // "app" tree. Things in here should also be in publicEntrypoints above, but @@ -38,7 +38,7 @@ export default { // By default, this will load the actual babel config from the file // babel.config.json. babel({ - extensions: ['.js', '.gjs'], + extensions: ['.js', '.gjs', '.ts', '.gts'], babelHelpers: 'bundled', }), diff --git a/ember-power-datepicker/src/components/power-datepicker.hbs b/ember-power-datepicker/src/components/power-datepicker.hbs index b06cba2..095ef09 100644 --- a/ember-power-datepicker/src/components/power-datepicker.hbs +++ b/ember-power-datepicker/src/components/power-datepicker.hbs @@ -2,7 +2,6 @@ @disabled={{@disabled}} @onOpen={{@onOpen}} @onClose={{@onClose}} - @onFocus={{@onFocus}} @destination={{@destination}} @initiallyOpened={{@initiallyOpened}} @horizontalPosition={{@horizontalPosition}} diff --git a/ember-power-datepicker/src/components/power-datepicker.js b/ember-power-datepicker/src/components/power-datepicker.js deleted file mode 100644 index 87b5328..0000000 --- a/ember-power-datepicker/src/components/power-datepicker.js +++ /dev/null @@ -1,31 +0,0 @@ -import Component from '@glimmer/component'; -import { tracked } from '@glimmer/tracking'; -import { action } from '@ember/object'; - -export default class extends Component { - @tracked center; - - get closeOnSelect() { - return this.args.closeOnSelect !== undefined - ? this.args.closeOnSelect - : true; - } - - @action - onCenterChange(day) { - if (this.args.onCenterChange) { - this.args.onCenterChange(day); - } - - this.center = day.date; - } - - @action - handleSelect(day, datepicker, e) { - let value = this.args.onSelect(day, datepicker, e); - if (value === false || !this.closeOnSelect) { - return; - } - datepicker.actions.close(); - } -} diff --git a/ember-power-datepicker/src/components/power-datepicker.ts b/ember-power-datepicker/src/components/power-datepicker.ts new file mode 100644 index 0000000..7c800ae --- /dev/null +++ b/ember-power-datepicker/src/components/power-datepicker.ts @@ -0,0 +1,95 @@ +import Component from '@glimmer/component'; +import { tracked } from '@glimmer/tracking'; +import { action } from '@ember/object'; +import type { DropdownActions } from 'ember-basic-dropdown/components/basic-dropdown'; +import type { CalculatePosition, VerticalPosition, HorizontalPosition } from 'ember-basic-dropdown/utils/calculate-position'; +import type { NormalizeCalendarValue } from 'ember-power-calendar/utils'; +import type { CalendarDay, SelectedDays, PowerCalendarActions } from 'ember-power-calendar/components/power-calendar'; +import type { ComponentLike } from '@glint/template'; + +interface PowerDatepickerSignature { + Element: HTMLElement; + Args: PowerDatepickerArgs; + Blocks: { + default: [ + PowerDatepickerDefaultBlock, + ]; + }; +} + +interface PowerDatepickerArgs { + initiallyOpened?: boolean; + renderInPlace?: boolean; + verticalPosition?: VerticalPosition; + horizontalPosition?: HorizontalPosition; + destination?: string; + disabled?: boolean; + matchTriggerWidth?: boolean; + // eslint-disable-next-line @typescript-eslint/ban-types + onOpen?: Function; + // eslint-disable-next-line @typescript-eslint/ban-types + onClose?: Function; + calculatePosition?: CalculatePosition; + + locale?: string; + selected?: SelectedDays; + closeOnSelect?: boolean; + onCenterChange?: ( + newCenter: NormalizeCalendarValue + ) => void; + onSelect?: ( + day: CalendarDay, + calendar: PowerDatepickerCalendar, + event: MouseEvent, + ) => void | boolean; +} + +interface PowerDatepickerActions extends DropdownActions, PowerCalendarActions {} + +export interface PowerDatepickerCalendar { + uniqueId: string; + disabled: boolean; + isOpen: boolean; + calendarUniqueId: string; + selected?: SelectedDays; + loading: boolean; + center: Date; + locale: string; + actions: PowerDatepickerActions; +} + +export interface PowerDatepickerDefaultBlock extends PowerDatepickerCalendar { + Trigger: ComponentLike; + Content: ComponentLike; + Nav: ComponentLike; + Days: ComponentLike; +} + +export default class PowerDatepickerComponent extends Component { + @tracked center: Date | undefined; + + get closeOnSelect() { + return this.args.closeOnSelect !== undefined + ? this.args.closeOnSelect + : true; + } + + @action + onCenterChange(day: NormalizeCalendarValue) { + if (this.args.onCenterChange) { + this.args.onCenterChange(day); + } + + this.center = day.date; + } + + @action + handleSelect(day: CalendarDay, datepicker: PowerDatepickerCalendar, e: MouseEvent) { + let value = this.args.onSelect && this.args.onSelect(day, datepicker, e); + if (value === false || !this.closeOnSelect) { + return; + } + + datepicker.actions.close(); + } +} diff --git a/ember-power-datepicker/src/template-registry.ts b/ember-power-datepicker/src/template-registry.ts new file mode 100644 index 0000000..a3b7f4b --- /dev/null +++ b/ember-power-datepicker/src/template-registry.ts @@ -0,0 +1,5 @@ +import type PowerDatepickerComponent from './components/power-datepicker.ts'; + +export default interface EmberPowerDatepickerRegistry { + PowerDatepicker: typeof PowerDatepickerComponent; +} diff --git a/ember-power-datepicker/src/types/global.d.ts b/ember-power-datepicker/src/types/global.d.ts new file mode 100644 index 0000000..d0b9717 --- /dev/null +++ b/ember-power-datepicker/src/types/global.d.ts @@ -0,0 +1,19 @@ +import '@glint/environment-ember-loose'; + +import type { EmbroiderUtilRegistry } from '@embroider/util'; + +export interface AssignRegistry { + [key: string]: any; +} + +declare module '@glint/environment-ember-loose/registry' { + export default interface Registry + extends EmbroiderUtilRegistry /* other registries here */ { + // ... + } + + export default interface Registry + extends AssignRegistry /* other registries here */ { + // ... + } +} diff --git a/ember-power-datepicker/tsconfig.json b/ember-power-datepicker/tsconfig.json new file mode 100644 index 0000000..4656874 --- /dev/null +++ b/ember-power-datepicker/tsconfig.json @@ -0,0 +1,31 @@ +{ + "extends": "@tsconfig/ember/tsconfig.json", + "include": [ + "src/**/*", + "unpublished-development-types/**/*" + ], + "glint": { + "environment": ["ember-loose", "ember-template-imports"] + }, + "compilerOptions": { + "allowJs": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "noImplicitAny": true, + "noImplicitThis": true, + "alwaysStrict": true, + "exactOptionalPropertyTypes": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "noFallthroughCasesInSwitch": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitOverride": true, + "noImplicitReturns": true, + "noEmitOnError": false, + "noEmit": true, + "allowImportingTsExtensions": true, + "experimentalDecorators": true, + "declarationDir": "declarations" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 862ccb7..849f975 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,12 @@ importers: '@embroider/addon-shim': specifier: ^1.8.7 version: 1.8.7 + '@embroider/util': + specifier: ^1.12.1 + version: 1.12.1(@glint/environment-ember-loose@1.3.0)(@glint/template@1.3.0)(ember-source@5.6.0) + decorator-transforms: + specifier: ^1.1.0 + version: 1.1.0(@babel/core@7.23.9) ember-assign-helper: specifier: ^0.5.0 version: 0.5.0(ember-source@5.6.0) @@ -39,18 +45,9 @@ importers: '@babel/core': specifier: ^7.23.9 version: 7.23.9 - '@babel/eslint-parser': - specifier: ^7.23.10 - version: 7.23.10(@babel/core@7.23.9)(eslint@8.56.0) - '@babel/plugin-proposal-class-properties': - specifier: ^7.18.6 - version: 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-decorators': - specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-class-static-block': - specifier: ^7.23.4 - version: 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': + specifier: ^7.23.6 + version: 7.23.6(@babel/core@7.23.9) '@babel/runtime': specifier: ^7.23.9 version: 7.23.9 @@ -2065,7 +2062,6 @@ packages: ember-source: 5.6.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.90.1) transitivePeerDependencies: - supports-color - dev: true /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -2548,7 +2544,6 @@ packages: '@types/ember__routing': 4.0.21(@babel/core@7.23.9) ember-cli-htmlbars: 6.3.0 ember-modifier: 4.1.0(ember-source@5.6.0) - dev: true /@glint/environment-ember-template-imports@1.3.0(@glint/environment-ember-loose@1.3.0)(@glint/template@1.3.0)(@types/ember__component@4.0.22)(@types/ember__helper@4.0.7)(@types/ember__modifier@4.0.9)(@types/ember__routing@4.0.21): resolution: {integrity: sha512-ynSc3AeFE4ZocvjI4rTS55L5sSrMexMvRtOYbVuY/u9t0PGXDjFuH/OiRiSCbHIL/jYH5Ie5uASZxs7TTCT8dw==} @@ -3223,7 +3218,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__application@4.0.11(@babel/core@7.23.9): resolution: {integrity: sha512-U1S7XW0V70nTWbFckWoraJbYGBJK69muP/CsPFLeAuUYHfkkDiwh1SfqgAUN9aHtrEJM5SuSYVYp2YsTI2yLuA==} @@ -3237,7 +3231,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__array@4.0.10(@babel/core@7.23.9): resolution: {integrity: sha512-UrhDbopLI3jB0MqV14y8yji2IuPNmeDrtT1PRYJL4CThLHrRkfeYyFvxqvrxWxn0wXKjbbjfH1gOe7BU57QrLQ==} @@ -3247,7 +3240,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__component@4.0.22(@babel/core@7.23.9): resolution: {integrity: sha512-m72EtmBN/RxOChXqRsyOg4RR5+AiB4LQ8s1CEKNYAfvANt18m4hjqxtA7QZYLTq2ZjEVJGpdMsrdDuONWjwRSQ==} @@ -3257,7 +3249,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__controller@4.0.12(@babel/core@7.23.9): resolution: {integrity: sha512-80rdnSC0UJBqoUX5/vkQcM2xkRdTPTvY0dPXEfY5cC5OZITbcSeRo5qa7ZGhgNBfH6XYyh55Lo/b811LwU3N9w==} @@ -3266,7 +3257,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__debug@4.0.8(@babel/core@7.23.9): resolution: {integrity: sha512-9wF7STmDHDsUxSjyCq2lpMq/03QOPkBQMGJnV8yOBnVZxB6f+FJH/kxaCprdMkUe7iwAPNEC2zrFFx1tzH75Kg==} @@ -3276,7 +3266,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__destroyable@4.0.5: resolution: {integrity: sha512-spJyZxpvecssbXkaOQYcbnlWgb+TasFaKrgAYVbykZY6saMwUdMOGDDoW6uP/y/+A8Jj/fUIatPWJLepeSfgww==} @@ -3290,11 +3279,9 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__error@4.0.6: resolution: {integrity: sha512-vYrLaGGjHkN14K89Vm8yqB2mkpJQefE5w7QJkkgYyV+smzns1vKlPbvuFevRtoeYNn4u4yY0JyF7HceNkm3H0Q==} - dev: true /@types/ember__helper@4.0.7(@babel/core@7.23.9): resolution: {integrity: sha512-Na7Bh1wBxb2n62ZL/ZHczrwRWyYCyl+udt/blnPYHHdZhnCu0qc3nDpVUoS3yF/LWfIGKX66739Kv2gpDMAIOw==} @@ -3325,15 +3312,12 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__owner@4.0.9: resolution: {integrity: sha512-iyBda4aUIjBmeiKTKmPow/EJO7xWn8m85CnQTOCqQzTWJyJpgfObbXSHahOHXOfMm279Oa5NlbmS/EontB+XiQ==} - dev: true /@types/ember__polyfills@4.0.6: resolution: {integrity: sha512-hbds3Qv+oVm/QKIaY1E6atvrCoJTH/MPSl4swOhX6P0RiMB2fOfFCrFSD1mP1KrU1LqpHJ2Rzs7XLe53SWVzgw==} - dev: true /@types/ember__routing@4.0.21(@babel/core@7.23.9): resolution: {integrity: sha512-eXXHDsStB77oFss+P7PoLoI4nfcD/ePQckB3taWe8wf80sVY4WnkFw990anG1A9tGCnRqRhIaEY8h3/6WP6TEw==} @@ -3345,7 +3329,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__runloop@4.0.10(@babel/core@7.23.9): resolution: {integrity: sha512-9MZfOJBXuUP7RqLjovmzy1yY2xKTxVpqHMapqy6QJ8mjAekRmq9IJ+ni2zJ5CWftyb3Lqu3Eks05CL7fnbhcJA==} @@ -3354,7 +3337,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__service@4.0.9(@babel/core@7.23.9): resolution: {integrity: sha512-DrepocL/4hH5YxbDWbxEKMDcAchBPSGGa4g+LEINW1Po81RmSdKw5GZV4UO0mvRWgkdu3EbWUxbTzB4gmbDSeQ==} @@ -3363,17 +3345,14 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__string@3.16.3: resolution: {integrity: sha512-0T9ofzm9LL/bSG5u1SxKx/j2h/bHKkl5NKjGCNbFQxEKBw4f2cs6+AMDgWke9z+qrRRIz9vGEtMXnA3yJrO2xA==} dependencies: '@types/ember__template': 4.0.6 - dev: true /@types/ember__template@4.0.6: resolution: {integrity: sha512-s7yTfDFtdKzxwWi3zzDIlhbMETSB+eGGmvpxhl8cnw2JX8Xj5T66NRACm4q2jJ1kJfIXhECdduw5JnIyny00vw==} - dev: true /@types/ember__test@4.0.6(@babel/core@7.23.9): resolution: {integrity: sha512-Nswm/epfTepXknT8scZvWyyop1aqJcZcyzY4THGHFcXvYQQfA9rgmgrx6vo9vCJmYHh3jm0TTAIAIfoCvGaX5g==} @@ -3382,7 +3361,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/ember__utils@4.0.7(@babel/core@7.23.9): resolution: {integrity: sha512-qQPBeWRyIPigKnZ68POlkqI5e6XA78Q4G3xHo687wQTcEtfoL/iZyPC4hn70mdijcZq8Hjch2Y3E5yhsEMzK+g==} @@ -3391,7 +3369,6 @@ packages: transitivePeerDependencies: - '@babel/core' - supports-color - dev: true /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -3526,7 +3503,6 @@ packages: /@types/rsvp@4.0.9: resolution: {integrity: sha512-F6vaN5mbxw2MBCu/AD9fSKwrhnto2pE77dyUsi415qz9IP9ni9ZOWXHxnXfsM4NW9UjW+it189jvvqnhv37Z7Q==} - dev: true /@types/semver@7.5.7: resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} @@ -4181,7 +4157,6 @@ packages: username-sync: 1.0.3 transitivePeerDependencies: - supports-color - dev: true /async-promise-queue@1.0.5: resolution: {integrity: sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw==} @@ -4859,7 +4834,6 @@ packages: sync-disk-cache: 2.1.0 transitivePeerDependencies: - supports-color - dev: true /broccoli-plugin@1.1.0: resolution: {integrity: sha512-dY1QsA20of9wWEto8yhN7JQjpfjySmgeIMsvnQ9aBAv1wEJJCe04B0ekdgq7Bduyx9yWXdoC5CngGy81swmp2w==} @@ -6069,7 +6043,6 @@ packages: babel-import-util: 2.0.1 transitivePeerDependencies: - '@babel/core' - dev: true /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -6289,7 +6262,6 @@ packages: dependencies: errlop: 2.2.0 semver: 6.3.1 - dev: true /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -6545,7 +6517,6 @@ packages: walk-sync: 2.2.0 transitivePeerDependencies: - supports-color - dev: true /ember-cli-inject-live-reload@2.1.0: resolution: {integrity: sha512-YV5wYRD5PJHmxaxaJt18u6LE6Y+wo455BnmcpN+hGNlChy2piM9/GMvYgTAz/8Vin8RJ5KekqP/w/NEaRndc/A==} @@ -7035,7 +7006,6 @@ packages: ember-source: 5.6.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.90.1) transitivePeerDependencies: - supports-color - dev: true /ember-page-title@8.2.1(ember-source@5.6.0): resolution: {integrity: sha512-B2c/mQgzJHcr88rSEroLmUUAX3agYCowOf7mPtZei6wYusWDXoDMLT8Wls75iDwaNOKsPa2cF/KxPJGBuKiOSQ==} @@ -7454,7 +7424,6 @@ packages: /errlop@2.2.0: resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==} engines: {node: '>=0.8'} - dev: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -9908,7 +9877,6 @@ packages: binaryextensions: 2.3.0 editions: 2.3.1 textextensions: 2.6.0 - dev: true /iterate-iterator@1.0.2: resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==} @@ -13558,7 +13526,6 @@ packages: username-sync: 1.0.3 transitivePeerDependencies: - supports-color - dev: true /synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}