diff --git a/.changeset/big-carrots-join.md b/.changeset/big-carrots-join.md new file mode 100644 index 0000000000..63b3b27c56 --- /dev/null +++ b/.changeset/big-carrots-join.md @@ -0,0 +1,5 @@ +--- +'@swisspost/design-system-documentation': patch +--- + +Removed badge size class at wrapper level. It's only used inside the label. diff --git a/.changeset/breezy-knives-itch.md b/.changeset/breezy-knives-itch.md new file mode 100644 index 0000000000..04633fcb11 --- /dev/null +++ b/.changeset/breezy-knives-itch.md @@ -0,0 +1,5 @@ +--- +'@swisspost/design-system-styles': patch +--- + +Updated the accordion styles. diff --git a/.changeset/clever-dingos-add.md b/.changeset/clever-dingos-add.md new file mode 100644 index 0000000000..db98f84d45 --- /dev/null +++ b/.changeset/clever-dingos-add.md @@ -0,0 +1,6 @@ +--- +'@swisspost/internet-header': patch +'@swisspost/design-system-components': patch +--- + +Defined @stencil/core and @stencil/store as a devDependency to avoid compatibilities issues. diff --git a/.changeset/cuddly-otters-compete.md b/.changeset/cuddly-otters-compete.md new file mode 100644 index 0000000000..303121c9e7 --- /dev/null +++ b/.changeset/cuddly-otters-compete.md @@ -0,0 +1,5 @@ +--- +'@swisspost/design-system-styles': patch +--- + +Fixed overflow on datepicker select variant. diff --git a/.changeset/empty-rules-float.md b/.changeset/empty-rules-float.md new file mode 100644 index 0000000000..c5a2db7edd --- /dev/null +++ b/.changeset/empty-rules-float.md @@ -0,0 +1,6 @@ +--- +'@swisspost/design-system-migrations': major +'@swisspost/design-system-styles': minor +--- + +Separated the migration schematics from the styles to their own package `@swisspost/design-system-migrations`. diff --git a/.changeset/few-baboons-count.md b/.changeset/few-baboons-count.md new file mode 100644 index 0000000000..eaebcbb7c6 --- /dev/null +++ b/.changeset/few-baboons-count.md @@ -0,0 +1,6 @@ +--- +'@swisspost/design-system-demo': patch +--- + +- Deprecated Bootstrap accordions in favor of the post-accordion web component. +- Updated ng-bootstrap component-based accordion example in favor of the directive-based implementation. diff --git a/.changeset/nasty-spies-explain.md b/.changeset/nasty-spies-explain.md new file mode 100644 index 0000000000..3a76b9a092 --- /dev/null +++ b/.changeset/nasty-spies-explain.md @@ -0,0 +1,5 @@ +--- +'@swisspost/design-system-styles': patch +--- + +Fixed intranet-header sticky navigation on mobile which prevent interactivity on the page within a certain viewport width. diff --git a/.changeset/rotten-shirts-agree.md b/.changeset/rotten-shirts-agree.md new file mode 100644 index 0000000000..3318ec09d8 --- /dev/null +++ b/.changeset/rotten-shirts-agree.md @@ -0,0 +1,5 @@ +--- +'@swisspost/design-system-demo': patch +--- + +Update the commands to run the Design System migrations. diff --git a/.idea/misc.xml b/.idea/misc.xml index 6e86672130..ce8151ba79 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -2,4 +2,4 @@ - \ No newline at end of file + diff --git a/package.json b/package.json index fe7d2d3ea8..cf0e24903e 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "icons:test": "pnpm --filter design-system-icons test", "icons:unit": "pnpm --filter design-system-icons test", "icons:unit:watch": "pnpm --filter design-system-icons test:watch", + "migrations:build": "pnpm --filter design-system-migrations build", "changeset:publish": "pnpm bootstrap && pnpm changeset publish", "changeset:version": "pnpm changeset version && pnpm install --lockfile-only" }, diff --git a/packages/components/jest.config.js b/packages/components/jest.config.js new file mode 100644 index 0000000000..8ce6439de1 --- /dev/null +++ b/packages/components/jest.config.js @@ -0,0 +1,5 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +module.exports = { + preset: '@stencil/core/testing', + testEnvironment: 'node', +}; diff --git a/packages/components/package.json b/packages/components/package.json index ea3387531a..c305aed19a 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -39,7 +39,6 @@ "dependencies": { "@floating-ui/dom": "1.5.3", "@oddbird/popover-polyfill": "0.3.2", - "@stencil/core": "4.7.2", "@swisspost/design-system-styles": "workspace:6.4.4", "ally.js": "1.4.1", "long-press-event": "2.4.6" @@ -48,6 +47,7 @@ "@percy/cli": "1.27.4", "@percy/cypress": "3.1.2", "@stencil-community/eslint-plugin": "0.7.1", + "@stencil/core": "4.7.2", "@stencil/react-output-target": "0.5.3", "@stencil/sass": "3.0.7", "@types/jest": "27.5.2", @@ -60,6 +60,7 @@ "eslint-plugin-react": "7.33.2", "jest": "27.5.1", "jest-cli": "27.5.1", + "jest-environment-node": "27.5.1", "npm-run-all": "4.1.5", "rimraf": "5.0.5", "sass": "1.69.5", diff --git a/packages/components/src/components/post-collapsible/post-collapsible.scss b/packages/components/src/components/post-collapsible/post-collapsible.scss index 9e634b450c..83d99816a3 100644 --- a/packages/components/src/components/post-collapsible/post-collapsible.scss +++ b/packages/components/src/components/post-collapsible/post-collapsible.scss @@ -2,8 +2,16 @@ :host { display: block; +} + +.accordion-button { + cursor: pointer; - .accordion-button > ::slotted(.text-truncate) { + > ::slotted(.text-truncate) { display: block; } } + +post-collapsible + post-collapsible::part(accordion-item) { + border-block-start: 0!important; +} diff --git a/packages/components/src/components/post-collapsible/post-collapsible.tsx b/packages/components/src/components/post-collapsible/post-collapsible.tsx index 3cce479c2b..8aff5fc2ae 100644 --- a/packages/components/src/components/post-collapsible/post-collapsible.tsx +++ b/packages/components/src/components/post-collapsible/post-collapsible.tsx @@ -1,4 +1,15 @@ -import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core'; +import { + Component, + Element, + Event, + EventEmitter, + h, + Host, + Method, + Prop, + State, + Watch, +} from '@stencil/core'; import { version } from '../../../package.json'; import { collapse, expand } from '../../animations/collapse'; import { checkEmptyOrOneOf, checkEmptyOrType, isMotionReduced } from '../../utils'; @@ -27,7 +38,11 @@ export class PostCollapsible { @Watch('collapsed') validateCollapsed(newValue = this.collapsed) { - checkEmptyOrType(newValue, 'boolean', 'The `collapsed` property of the `post-collapsible` must be a boolean.'); + checkEmptyOrType( + newValue, + 'boolean', + 'The `collapsed` property of the `post-collapsible` must be a boolean.', + ); } /** @@ -37,7 +52,11 @@ export class PostCollapsible { @Watch('headingLevel') validateHeadingLevel(newValue = this.headingLevel) { - checkEmptyOrOneOf(newValue, HEADING_LEVELS, 'The `headingLevel` property of the `post-collapsible` must be a number between 1 and 6.'); + checkEmptyOrOneOf( + newValue, + HEADING_LEVELS, + 'The `headingLevel` property of the `post-collapsible` must be a number between 1 and 6.', + ); } /** @@ -73,7 +92,7 @@ export class PostCollapsible { this.isOpen = !this.isOpen; if (this.isLoaded) this.collapseChange.emit(); - const animation = open ? expand(this.collapsible): collapse(this.collapsible); + const animation = open ? expand(this.collapsible) : collapse(this.collapsible); if (!this.isLoaded || isMotionReduced()) animation.finish(); @@ -90,14 +109,14 @@ export class PostCollapsible { aria-labelledby={this.hasHeader ? `${this.id}--header` : undefined} class={`collapse${this.hasHeader ? ' accordion-collapse' : ''}`} id={`${this.id}--collapse`} - ref={el => this.collapsible = el} + ref={el => (this.collapsible = el)} > {this.hasHeader ? (
- +
) : ( - + )} ); @@ -105,7 +124,7 @@ export class PostCollapsible { return ( {this.hasHeader ? ( -
+
{collapse}
- ) : collapse} + ) : ( + collapse + )} ); } diff --git a/packages/components/src/components/post-collapsible/readme.md b/packages/components/src/components/post-collapsible/readme.md index 247bced42e..85922e96bb 100644 --- a/packages/components/src/components/post-collapsible/readme.md +++ b/packages/components/src/components/post-collapsible/readme.md @@ -35,6 +35,13 @@ Type: `Promise` +## Shadow Parts + +| Part | Description | +| ------------------ | ----------- | +| `"accordion-item"` | | + + ---------------------------------------------- *Built with [StencilJS](https://stenciljs.com/)* diff --git a/packages/demo/src/app/bootstrap/components/accordion/accordion-demo-page/accordion-demo-page.component.html b/packages/demo/src/app/bootstrap/components/accordion/accordion-demo-page/accordion-demo-page.component.html index b751a310b6..ee6f0422db 100644 --- a/packages/demo/src/app/bootstrap/components/accordion/accordion-demo-page/accordion-demo-page.component.html +++ b/packages/demo/src/app/bootstrap/components/accordion/accordion-demo-page/accordion-demo-page.component.html @@ -3,6 +3,21 @@

Accordion

+
+

Bootstrap accordions are deprecated and will soon be removed.

+

+ For a similar behavior, check out our new + + post-accordion component + + . +

+
+

Using JavaScript

diff --git a/packages/demo/src/app/bootstrap/components/accordion/accordion-demo/accordion-demo.component.html b/packages/demo/src/app/bootstrap/components/accordion/accordion-demo/accordion-demo.component.html index a60f08a1d9..3c5f41b1b3 100644 --- a/packages/demo/src/app/bootstrap/components/accordion/accordion-demo/accordion-demo.component.html +++ b/packages/demo/src/app/bootstrap/components/accordion/accordion-demo/accordion-demo.component.html @@ -9,8 +9,8 @@

aria-expanded="true" aria-controls="collapseOne" > - Default Title Wrapping - This accordion title is way too long, it wraps because there is not - enough space for it to display completely on one line. + Default title wrapping - Vestibulum ante ipsum primis in faucibus orci luctus et ultrices + posuere cubilia curae nullam sagittis vel augue eget pellentesque lacus sapien.

data-bs-parent="#accordionExample" >
- This is the first item's accordion body. - It is shown by default, until the collapse plugin adds the appropriate classes that we use - to style each element. These classes control the overall appearance, as well as the showing - and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our - default variables. It's also worth noting that just about any HTML can go within the - .accordion-body - , though the transition does limit overflow. +

+ This is the first item's accordion body. + It is shown by default, until the collapse plugin adds the appropriate classes that we use + to style each element. These classes control the overall appearance, as well as the + showing and hiding via CSS transitions. You can modify any of this with custom CSS or + overriding our default variables. It's also worth noting that just about any HTML can go + within the + .accordion-body + , though the transition does limit overflow. +

@@ -41,8 +44,8 @@

aria-controls="collapseTwo" > - Title truncated - This accordion title is way too long, it will be truncated in CSS - because there is not enough space for it to display completely. + Truncated title - Pellentesque interdum diam eget feugiat aliquet nullam tincidunt nunc eu + lorem vehicula, a porta nisl eleifend integer non ullamcorper massa

@@ -53,13 +56,16 @@

data-bs-parent="#accordionExample" >
- This is the second item's accordion body. - It is hidden by default, until the collapse plugin adds the appropriate classes that we use - to style each element. These classes control the overall appearance, as well as the showing - and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our - default variables. It's also worth noting that just about any HTML can go within the - .accordion-body - , though the transition does limit overflow. +

+ This is the second item's accordion body. + It is hidden by default, until the collapse plugin adds the appropriate classes that we + use to style each element. These classes control the overall appearance, as well as the + showing and hiding via CSS transitions. You can modify any of this with custom CSS or + overriding our default variables. It's also worth noting that just about any HTML can go + within the + .accordion-body + , though the transition does limit overflow. +

@@ -73,9 +79,9 @@

aria-expanded="false" aria-controls="collapseThree" > - ★  - Fancy - title ★ + ★ + Fancy + title ★

data-bs-parent="#accordionExample" >
- This is the third item's accordion body. - It is hidden by default, until the collapse plugin adds the appropriate classes that we use - to style each element. These classes control the overall appearance, as well as the showing - and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our - default variables. It's also worth noting that just about any HTML can go within the - .accordion-body - , though the transition does limit overflow. +

+ This is the third item's accordion body. + It is hidden by default, until the collapse plugin adds the appropriate classes that we + use to style each element. These classes control the overall appearance, as well as the + showing and hiding via CSS transitions. You can modify any of this with custom CSS or + overriding our default variables. It's also worth noting that just about any HTML can go + within the + .accordion-body + , though the transition does limit overflow. +

diff --git a/packages/demo/src/app/home/home.component.html b/packages/demo/src/app/home/home.component.html index f37a7818ab..84693a2581 100644 --- a/packages/demo/src/app/home/home.component.html +++ b/packages/demo/src/app/home/home.component.html @@ -310,7 +310,7 @@

Automatic Migration ⚙️

appCopyToClipboard class="d-block mt-1 p-3" [languages]="['bash']" - highlight="npx ng update @swisspost/design-system-styles --from=5 --to=6 --migrate-only" + highlight="npx ng update @swisspost/design-system-migrations --from=5 --to=6 --migrate-only" > @@ -498,7 +498,7 @@

Automatic Migration ⚙️

appCopyToClipboard class="d-block mt-1 p-3" [languages]="['bash']" - highlight="npx ng update @swisspost/design-system-styles --from=4 --to=5 --migrate-only" + highlight="npx ng update @swisspost/design-system-migrations --from=4 --to=5 --migrate-only" > diff --git a/packages/demo/src/app/ng-bootstrap/components/accordion/accordion-demo/accordion-demo.component.html b/packages/demo/src/app/ng-bootstrap/components/accordion/accordion-demo/accordion-demo.component.html index d81857aef7..632d09836c 100644 --- a/packages/demo/src/app/ng-bootstrap/components/accordion/accordion-demo/accordion-demo.component.html +++ b/packages/demo/src/app/ng-bootstrap/components/accordion/accordion-demo/accordion-demo.component.html @@ -1,42 +1,63 @@ - - - - Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad - squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa - nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid - single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer - labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. - Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably - haven't heard of them accusamus labore sustainable VHS. - - - - - ★ - Fancy - title ★ - - - Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad - squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa - nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid - single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer - labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. - Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably - haven't heard of them accusamus labore sustainable VHS. - - - - - Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad - squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa - nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid - single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer - labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. - Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably - haven't heard of them accusamus labore sustainable VHS. - - - +
+
+

+ +

+
+
+ +

+ Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad + squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck + quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it + squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, + craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur + butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth + nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +

+ +
+ + + +
+
+
+
+
+ +
+

+ +

+
+
+ +

+ Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad + squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck + quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it + squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, + craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur + butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth + nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +

+
+
+
+
+
diff --git a/packages/documentation/src/stories/components/badge/badge.stories.ts b/packages/documentation/src/stories/components/badge/badge.stories.ts index 685c06fbb4..9358dc59c8 100644 --- a/packages/documentation/src/stories/components/badge/badge.stories.ts +++ b/packages/documentation/src/stories/components/badge/badge.stories.ts @@ -111,10 +111,10 @@ function externalControl(story: any, { args }: StoryContext) { const button = html` { + @click="${(e: Event) => { e.preventDefault(); updateArgs({ dismissed: false }); - }} + }}" > Show badge @@ -157,19 +157,19 @@ function getCheckableContent(args: Args, updateArgs: (args: Args) => void, conte return html` - + `; } function getDismissButton(updateArgs: (args: Args) => void) { return html` - `; @@ -189,11 +189,11 @@ function renderBadge(args: Args, context: StoryContext) { const badgeClasses = mapClasses({ 'badge': !isCheckable, 'badge-check': isCheckable, - [args.size]: args.size !== 'default', + [args.size]: args.size !== 'default' && !isCheckable, }); return html` -
+
${isCheckable ? getCheckableContent(args, updateArgs, context) : getDefaultContent(args)} ${isDismissible ? getDismissButton(updateArgs) : nothing}
diff --git a/packages/internet-header/package.json b/packages/internet-header/package.json index 1b72d344c6..8c2f7b2f9e 100644 --- a/packages/internet-header/package.json +++ b/packages/internet-header/package.json @@ -41,8 +41,6 @@ "generate": "stencil generate" }, "dependencies": { - "@stencil/core": "4.7.2", - "@stencil/store": "2.0.11", "@swisspost/design-system-styles": "workspace:6.4.4", "body-scroll-lock": "4.0.0-beta.0", "iframe-resizer": "4.3.9", @@ -55,6 +53,8 @@ "@babel/core": "7.23.3", "@percy/cli": "1.27.4", "@percy/cypress": "3.1.2", + "@stencil/core": "4.7.2", + "@stencil/store": "2.0.11", "@stencil-community/eslint-plugin": "0.7.1", "@stencil/sass": "3.0.7", "@types/body-scroll-lock": "3.1.2", diff --git a/packages/migrations/.gitignore b/packages/migrations/.gitignore new file mode 100644 index 0000000000..d4b3bf2873 --- /dev/null +++ b/packages/migrations/.gitignore @@ -0,0 +1,19 @@ + +# Outputs +src/**/*.js +src/**/*.js.map +src/**/*.d.ts + +# IDEs +.idea/ +jsconfig.json +.vscode/ + +# Misc +node_modules/ +npm-debug.log* +yarn-error.log* + +# Mac OSX Finder files. +**/.DS_Store +.DS_Store diff --git a/packages/styles/.npmignore b/packages/migrations/.npmignore similarity index 55% rename from packages/styles/.npmignore rename to packages/migrations/.npmignore index 44c9d84306..7c31f4692f 100644 --- a/packages/styles/.npmignore +++ b/packages/migrations/.npmignore @@ -1,3 +1,4 @@ + # Ignores TypeScript files, but keeps definitions. -schematics/**/*.ts -!schematics/**/*.d.ts +*.ts +!*.d.ts diff --git a/packages/migrations/CONTRIBUTING.md b/packages/migrations/CONTRIBUTING.md new file mode 100644 index 0000000000..7c89b1db74 --- /dev/null +++ b/packages/migrations/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# Contributing to Design System Migrations + +Schematics are used to transform an Angular software project by adapting it to current Design System Styles. + +### Testing + +To test the Schematics without writing any changes to your files, install `@angular-devkit/schematics-cli` globally and use the `schematics` command line tool.
+That tool acts the same as the `generate` command of the Angular CLI, but also has a debug mode. + +Run the following command in the project which uses this package as dependency: + +```bash +schematics ./node_modules/@swisspost/design-system-migrations:migration-name +``` + +Replace `migration-name` with any defined migration in the migrations.json file or simply get some help with: + +```bash +schematics --help +``` diff --git a/packages/migrations/LICENSE b/packages/migrations/LICENSE new file mode 100644 index 0000000000..b035d3870c --- /dev/null +++ b/packages/migrations/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Swiss Post, Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/migrations/README.md b/packages/migrations/README.md new file mode 100644 index 0000000000..1140f7810e --- /dev/null +++ b/packages/migrations/README.md @@ -0,0 +1,32 @@ +# Design System Migrations + +Scripts to migrate an Angular application from one Design System version to another. + +## Usage + +The migration package is not intended to be installed as a dependency on your project. + +Use [NPX](https://docs.npmjs.com/cli/v8/commands/npx) to run the migration scripts, +this way the package is installed temporarily while your project is being migrated to a new version of Design System: + +```bash + npx ng update @swisspost/design-system-migrations --from=[currentVersion] --to=[targetedVersion] --migrate-only +``` + +Be sure to update your application one major Design System version at a time as explained in our [migration guide](https://design-system.post.ch/). + +## Contribute + +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](../../CODE_OF_CONDUCT.md) + +Considering supporting the Swiss Post Design System with your contribution? Whether you like to contribute new patterns, fix a bug, spotted a typo or have ideas for improvement - we'd love to hear from you. Learn how you can contribute to this project in the [migration contribution guidelines](./CONTRIBUTING.md) and also take a look at the [general contribution guidelines](../../CONTRIBUTING.md). + +For any questions regarding the pattern library, you can reach out on the [discussions page](https://github.com/swisspost/design-system/discussions). + +In order to keep our community open and inclusive, we expect you to read and follow our [Code of Conduct](/CODE_OF_CONDUCT.md). + +## License + +Software contained in this repository is published by the Swiss Post Ltd. under the [Apache 2.0 License](./LICENSE). + +© 2022 Swiss Post, Ltd. diff --git a/packages/migrations/package.json b/packages/migrations/package.json new file mode 100644 index 0000000000..4a33771050 --- /dev/null +++ b/packages/migrations/package.json @@ -0,0 +1,37 @@ +{ + "name": "@swisspost/design-system-migrations", + "version": "0.0.0", + "description": "Scripts to migrate an Angular application from one Design System version to another.", + "author": "Swiss Post ", + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/swisspost/design-system.git" + }, + "publishConfig": { + "directory": "./dist", + "access": "public", + "linkDirectory": true + }, + "scripts": { + "build": "tsc -p tsconfig.json" + }, + "keywords": [ + "schematics" + ], + "dependencies": { + "@angular-devkit/core": "=15.0.4", + "@angular-devkit/schematics": "=15.0.4", + "@angular/core": "=15.0.4", + "cheerio": "1.0.0-rc.12", + "prettier": "^3.1.0", + "typescript": "~4.9.3" + }, + "devDependencies": { + "@types/node": "^14.15.0" + }, + "schematics": "./src/migrations.json", + "ng-update": { + "migrations": "./src/migrations.json" + } +} diff --git a/packages/styles/schematics/migrations.json b/packages/migrations/src/migrations.json similarity index 100% rename from packages/styles/schematics/migrations.json rename to packages/migrations/src/migrations.json diff --git a/packages/styles/schematics/migrations/_example-dom-migration/index.ts b/packages/migrations/src/migrations/_example-dom-migration/index.ts similarity index 100% rename from packages/styles/schematics/migrations/_example-dom-migration/index.ts rename to packages/migrations/src/migrations/_example-dom-migration/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/badge/index.ts b/packages/migrations/src/migrations/bootstrap/badge/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/badge/index.ts rename to packages/migrations/src/migrations/bootstrap/badge/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/blockquote/index.ts b/packages/migrations/src/migrations/bootstrap/blockquote/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/blockquote/index.ts rename to packages/migrations/src/migrations/bootstrap/blockquote/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/button-close/index.ts b/packages/migrations/src/migrations/bootstrap/button-close/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/button-close/index.ts rename to packages/migrations/src/migrations/bootstrap/button-close/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/button/index.ts b/packages/migrations/src/migrations/bootstrap/button/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/button/index.ts rename to packages/migrations/src/migrations/bootstrap/button/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/form-checkbox/index.ts b/packages/migrations/src/migrations/bootstrap/form-checkbox/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/form-checkbox/index.ts rename to packages/migrations/src/migrations/bootstrap/form-checkbox/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/form-control/index.ts b/packages/migrations/src/migrations/bootstrap/form-control/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/form-control/index.ts rename to packages/migrations/src/migrations/bootstrap/form-control/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/form-radio/index.ts b/packages/migrations/src/migrations/bootstrap/form-radio/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/form-radio/index.ts rename to packages/migrations/src/migrations/bootstrap/form-radio/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/form-select/index.ts b/packages/migrations/src/migrations/bootstrap/form-select/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/form-select/index.ts rename to packages/migrations/src/migrations/bootstrap/form-select/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/form-switch/index.ts b/packages/migrations/src/migrations/bootstrap/form-switch/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/form-switch/index.ts rename to packages/migrations/src/migrations/bootstrap/form-switch/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/forms/index.ts b/packages/migrations/src/migrations/bootstrap/forms/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/forms/index.ts rename to packages/migrations/src/migrations/bootstrap/forms/index.ts diff --git a/packages/styles/schematics/migrations/bootstrap/textarea/index.ts b/packages/migrations/src/migrations/bootstrap/textarea/index.ts similarity index 100% rename from packages/styles/schematics/migrations/bootstrap/textarea/index.ts rename to packages/migrations/src/migrations/bootstrap/textarea/index.ts diff --git a/packages/styles/schematics/migrations/general/classes/bg-opacity.ts b/packages/migrations/src/migrations/general/classes/bg-opacity.ts similarity index 100% rename from packages/styles/schematics/migrations/general/classes/bg-opacity.ts rename to packages/migrations/src/migrations/general/classes/bg-opacity.ts diff --git a/packages/styles/schematics/migrations/general/classes/rtl.ts b/packages/migrations/src/migrations/general/classes/rtl.ts similarity index 100% rename from packages/styles/schematics/migrations/general/classes/rtl.ts rename to packages/migrations/src/migrations/general/classes/rtl.ts diff --git a/packages/styles/schematics/migrations/general/classes/secondary.ts b/packages/migrations/src/migrations/general/classes/secondary.ts similarity index 100% rename from packages/styles/schematics/migrations/general/classes/secondary.ts rename to packages/migrations/src/migrations/general/classes/secondary.ts diff --git a/packages/styles/schematics/migrations/general/classes/sr-only.ts b/packages/migrations/src/migrations/general/classes/sr-only.ts similarity index 100% rename from packages/styles/schematics/migrations/general/classes/sr-only.ts rename to packages/migrations/src/migrations/general/classes/sr-only.ts diff --git a/packages/styles/schematics/migrations/general/classes/text-auto.ts b/packages/migrations/src/migrations/general/classes/text-auto.ts similarity index 100% rename from packages/styles/schematics/migrations/general/classes/text-auto.ts rename to packages/migrations/src/migrations/general/classes/text-auto.ts diff --git a/packages/styles/schematics/migrations/ngbootstrap/buttons/index.ts b/packages/migrations/src/migrations/ngbootstrap/buttons/index.ts similarity index 100% rename from packages/styles/schematics/migrations/ngbootstrap/buttons/index.ts rename to packages/migrations/src/migrations/ngbootstrap/buttons/index.ts diff --git a/packages/styles/schematics/migrations/post/custom-select/index.ts b/packages/migrations/src/migrations/post/custom-select/index.ts similarity index 100% rename from packages/styles/schematics/migrations/post/custom-select/index.ts rename to packages/migrations/src/migrations/post/custom-select/index.ts diff --git a/packages/styles/schematics/migrations/post/stepper/index.ts b/packages/migrations/src/migrations/post/stepper/index.ts similarity index 100% rename from packages/styles/schematics/migrations/post/stepper/index.ts rename to packages/migrations/src/migrations/post/stepper/index.ts diff --git a/packages/styles/schematics/migrations/post/subnavigation/index.ts b/packages/migrations/src/migrations/post/subnavigation/index.ts similarity index 100% rename from packages/styles/schematics/migrations/post/subnavigation/index.ts rename to packages/migrations/src/migrations/post/subnavigation/index.ts diff --git a/packages/styles/schematics/migrations/post/topic-teaser/index.ts b/packages/migrations/src/migrations/post/topic-teaser/index.ts similarity index 100% rename from packages/styles/schematics/migrations/post/topic-teaser/index.ts rename to packages/migrations/src/migrations/post/topic-teaser/index.ts diff --git a/packages/styles/schematics/utils/constants.ts b/packages/migrations/src/utils/constants.ts similarity index 100% rename from packages/styles/schematics/utils/constants.ts rename to packages/migrations/src/utils/constants.ts diff --git a/packages/styles/schematics/utils/dom-migration/dom-update.ts b/packages/migrations/src/utils/dom-migration/dom-update.ts similarity index 100% rename from packages/styles/schematics/utils/dom-migration/dom-update.ts rename to packages/migrations/src/utils/dom-migration/dom-update.ts diff --git a/packages/styles/schematics/utils/dom-migration/get-dom-migration-rule.ts b/packages/migrations/src/utils/dom-migration/get-dom-migration-rule.ts similarity index 100% rename from packages/styles/schematics/utils/dom-migration/get-dom-migration-rule.ts rename to packages/migrations/src/utils/dom-migration/get-dom-migration-rule.ts diff --git a/packages/styles/schematics/utils/dom-migration/index.ts b/packages/migrations/src/utils/dom-migration/index.ts similarity index 100% rename from packages/styles/schematics/utils/dom-migration/index.ts rename to packages/migrations/src/utils/dom-migration/index.ts diff --git a/packages/styles/tsconfig.schematics.json b/packages/migrations/tsconfig.json similarity index 78% rename from packages/styles/tsconfig.schematics.json rename to packages/migrations/tsconfig.json index 3088706edb..49a6f1cd38 100644 --- a/packages/styles/tsconfig.schematics.json +++ b/packages/migrations/tsconfig.json @@ -11,8 +11,7 @@ "noImplicitThis": true, "noUnusedParameters": true, "noUnusedLocals": true, - "rootDir": "schematics/", - "outDir": "dist/schematics", + "rootDir": "src/", "skipDefaultLibCheck": true, "skipLibCheck": true, "sourceMap": true, @@ -20,6 +19,6 @@ "target": "es6", "types": ["node"] }, - "include": ["schematics/**/*"], - "exclude": ["schematics/*/files/**/*"] + "include": ["src/**/*"], + "exclude": ["src/*/files/**/*"] } diff --git a/packages/styles/CONTRIBUTING.md b/packages/styles/CONTRIBUTING.md index 815556d647..a05cabccd8 100644 --- a/packages/styles/CONTRIBUTING.md +++ b/packages/styles/CONTRIBUTING.md @@ -110,24 +110,3 @@ npm run clean ## Icons Please refer to the [icon generation guide](../../Tools/IconReader/README.md) to learn how to generate a new icon variables file. - -## Schematics - -Schematics are used to transform an Angular software project by adapting it to current Design System Styles. - -### Testing schematics - -To test the Schematics without writing any changes to your files, install `@angular-devkit/schematics-cli` globally and use the `schematics` command line tool.
-That tool acts the same as the `generate` command of the Angular CLI, but also has a debug mode. - -Run the following command in the project which uses this package as dependency: - -```bash -schematics ./node_modules/@swisspost/design-system-styles:migration-name -``` - -Replace `migration-name` with any defined migration in the migrations.json file or simply get some help with: - -```bash -schematics --help -``` diff --git a/packages/styles/cypress.config.js b/packages/styles/cypress.config.js deleted file mode 100644 index 2de9de6719..0000000000 --- a/packages/styles/cypress.config.js +++ /dev/null @@ -1,16 +0,0 @@ -const { defineConfig } = require('cypress'); - -module.exports = defineConfig({ - e2e: { - baseUrl: 'http://localhost:9001', - specPattern: ['cypress/e2e/**/*.cy.{ts,tsx}'], - includeShadowDom: true, - viewportWidth: 1024, - viewportHeight: 576, - }, - includeShadowDom: true, - retries: { - runMode: 1, - }, - video: false, -}); diff --git a/packages/styles/cypress/support/commands.ts b/packages/styles/cypress/support/commands.ts deleted file mode 100644 index 4afbcb2507..0000000000 --- a/packages/styles/cypress/support/commands.ts +++ /dev/null @@ -1,68 +0,0 @@ -/// -// *********************************************** -// This example commands.ts shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// -// -// -- This is a parent command -- -// Cypress.Commands.add('login', (email, password) => { ... }) -// -// -// -- This is a child command -- -// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) -// - -export const isInViewport = function (_chai: Chai.ChaiStatic) { - const assertIsInViewport = function (this: Chai.AssertionStatic) { - const subject = this._obj; - - const windowHeight = Cypress.config().viewportHeight; - const bottomOfCurrentViewport = windowHeight; - const rect = subject[0].getBoundingClientRect(); - - this.assert( - (rect.top > 0 && rect.top < bottomOfCurrentViewport) || - (rect.bottom > 0 && rect.bottom < bottomOfCurrentViewport), - 'expected #{this} to be in viewport', - 'expected #{this} to not be in viewport', - subject, - ); - }; - - _chai.Assertion.addMethod('inViewport', assertIsInViewport); -}; - -chai.use(isInViewport); - -Cypress.Commands.add('registerCollapsibleFrom', (url: string) => { - cy.visit(url); - cy.get('post-collapsible').as('collapsible'); - cy.get('@collapsible').find('.collapse').as('collapse'); -}); - -Cypress.Commands.add('checkVisibility', (visibility: 'visible' | 'hidden') => { - cy.get('@collapse').should('not.have.class', 'collapsing').and(`be.${visibility}`); -}); - -Cypress.Commands.add('checkAriaExpanded', (isExpanded: 'true' | 'false') => { - cy.get('@collapse') - .should('not.have.class', 'collapsing') - .invoke('attr', 'id') - .then(id => { - cy.get(`[aria-controls="${id}"]`).should('have.attr', 'aria-expanded', isExpanded); - }); -}); diff --git a/packages/styles/cypress/support/e2e.ts b/packages/styles/cypress/support/e2e.ts deleted file mode 100644 index e90cf74bed..0000000000 --- a/packages/styles/cypress/support/e2e.ts +++ /dev/null @@ -1,28 +0,0 @@ -// *********************************************************** -// This example support/e2e.ts is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import '@percy/cypress'; -import 'cypress-storybook/cypress'; -import './commands'; - -// https://docs.cypress.io/api/events/catalog-of-events#Uncaught-Exceptions -Cypress.on('uncaught:exception', err => { - // From time to time (mostly random) the 'klp-login-widget' throws an uncaught 'TypeError: Cannot read properties of null (reading 'shadowRoot')' exception - // Returning false here prevents Cypress from failing the test - if (err.name.includes('TypeError')) { - return false; - } -}); diff --git a/packages/styles/cypress/support/index.d.ts b/packages/styles/cypress/support/index.d.ts deleted file mode 100644 index 564e9357f2..0000000000 --- a/packages/styles/cypress/support/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare global { - namespace Cypress { - interface Chainable { - registerCollapsibleFrom(url: string): Chainable; - checkVisibility(visibility: 'visible' | 'hidden'): Chainable; - checkAriaExpanded(isExpanded: 'true' | 'false'): Chainable; - } - } -} - -export {}; diff --git a/packages/styles/cypress/tsconfig.json b/packages/styles/cypress/tsconfig.json deleted file mode 100644 index 652e434915..0000000000 --- a/packages/styles/cypress/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "noEmit": true, - "types": ["cypress", "@percy/cypress", "cypress-storybook/cypress"] - }, - "include": ["./**/*.ts", "./**/*.tsx"], - "exclude": [] -} diff --git a/packages/styles/package.json b/packages/styles/package.json index 8cce1b25a3..53e014b591 100644 --- a/packages/styles/package.json +++ b/packages/styles/package.json @@ -18,38 +18,36 @@ "linkDirectory": true }, "scripts": { - "start": "npm-run-all --parallel styles:start schematics:start", - "styles:start": "gulp watch", + "start": "gulp watch", "prebuild": "pnpm clean", - "build": "npm-run-all --parallel styles:build schematics:build", - "styles:build": "gulp build", + "build": "gulp build", "unit": "gulp sass:tests", "clean": "rimraf out-tsc dist", "format": "prettier src/**/*.scss --write", "lint": "stylelint src/**/*.scss", - "lint:fix": "stylelint src/**/*.scss --fix", - "schematics:start": "copyfiles schematics/migrations.json dist && tsc -p tsconfig.schematics.json --watch", - "schematics:build": "copyfiles schematics/migrations.json dist && tsc -p tsconfig.schematics.json" + "lint:fix": "stylelint src/**/*.scss --fix" + }, + "peerDependencies": { + "@ng-bootstrap/ng-bootstrap": "^15.0.0", + "bootstrap": "~5.3.0" + }, + "peerDependenciesMeta": { + "@ng-bootstrap/ng-bootstrap": { + "optional": true + }, + "bootstrap": { + "optional": true + } }, "dependencies": { - "@angular-devkit/core": "=15.0.4", - "@angular-devkit/schematics": "=15.0.4", - "@angular/core": "=15.0.4", "@popperjs/core": "2.11.8", - "bootstrap": "5.3.2", - "cheerio": "1.0.0-rc.12", - "prettier": "3.1.0" + "bootstrap": "5.3.2" }, "devDependencies": { - "@angular/compiler": "=15.0.4", - "@percy/cli": "1.27.4", - "@percy/cypress": "3.1.2", "@swisspost/design-system-icons": "workspace:1.0.15", "@types/node": "18.18.13", "autoprefixer": "10.4.16", "copyfiles": "2.4.1", - "cypress": "13.6.0", - "cypress-storybook": "0.5.1", "glob": "10.3.10", "gulp": "4.0.2", "gulp-newer": "^1.4.0", @@ -59,6 +57,7 @@ "npm-run-all": "4.1.5", "postcss": "8.4.31", "postcss-scss": "4.0.9", + "prettier": "3.1.0", "rimraf": "5.0.5", "sass": "1.69.5", "stylelint": "15.11.0", @@ -72,11 +71,6 @@ "includePaths": [ "node_modules" ], - "outputDir": "./dist", - "tscOutDir": "./out-tsc/lib" - }, - "schematics": "./schematics/migrations.json", - "ng-update": { - "migrations": "./schematics/migrations.json" + "outputDir": "./dist" } } diff --git a/packages/styles/src/components/accordion.scss b/packages/styles/src/components/accordion.scss index ce7327cb83..8cd310a1df 100644 --- a/packages/styles/src/components/accordion.scss +++ b/packages/styles/src/components/accordion.scss @@ -1,61 +1,82 @@ @forward './../variables/options'; -@use './../mixins/button' as button-mixins; -@use './../mixins/color' as color-mixins; -@use './../mixins/icons' as icon-mixins; -@use './../mixins/type' as type-mixins; -@use './../mixins/utilities' as utility-mixins; - +@use './../mixins/button' as button-mx; +@use './../mixins/color' as color-mx; +@use './../mixins/focus' as focus-mx; +@use './../mixins/icons' as icon-mx; +@use './../mixins/type' as type-mx; +@use './../mixins/utilities' as utility-mx; + +@use './../functions/contrast'; +@use './../variables/color'; @use './../variables/components/accordion'; .accordion-item { - border-block-start: accordion.$accordion-border-width solid accordion.$accordion-border-color; + border-block: accordion.$accordion-border-width solid accordion.$accordion-border-color; + + & + & { + border-block-start: 0; + } + + // make the accordion gray + @include color-mx.colored-background(color.$gray-background); + + // make the accordion white on background colors close to the gray above (making sure it remains gray on a white background) + $accordion-contrast-on-white: contrast.contrast-ratio(color.$white, color.$gray-background); + @each $name, $color in color.$background-colors { + $accordion-contrast-on-color: contrast.contrast-ratio($color, color.$gray-background); + @if ($accordion-contrast-on-color < $accordion-contrast-on-white) { + .bg-#{$name} & { + @include color-mx.colored-background(color.$white); + } + } + } } .accordion-header { - @include type-mixins.font-curve(accordion.$accordion-header-font-curve); + color: accordion.$accordion-header-color; + font-size: accordion.$accordion-header-font-size; font-weight: accordion.$accordion-header-font-weight; line-height: accordion.$accordion-header-line-height; margin: 0; } .accordion-button { - @include button-mixins.reset-button; + @include button-mx.reset-button; + @include focus-mx.focus-ring; width: 100%; position: relative; padding-block: accordion.$accordion-button-padding; padding-inline-start: accordion.$accordion-button-padding; - padding-inline-end: accordion.$accordion-button-padding + accordion.$accordion-icon-size; + padding-inline-end: accordion.$accordion-button-padding + accordion.$accordion-icon-size + + accordion.$accordion-gap; text-align: start; + transition: accordion.$accordion-button-transition; - &:not(:disabled) { - cursor: accordion.$accordion-button-cursor; + &:hover { + color: accordion.$accordion-button-hover-color; + background-color: accordion.$accordion-button-hover-bg; } &:disabled { opacity: accordion.$accordion-button-disabled-opacity; - } - - &:focus { - outline: none; - box-shadow: accordion.$accordion-button-focus-box-shadow; + pointer-events: none; } &::after { - @include icon-mixins.icon(accordion.$accordion-icon-name); + @include icon-mx.icon(accordion.$accordion-icon-name); content: ''; display: block; height: accordion.$accordion-icon-size; width: accordion.$accordion-icon-size; + + // use absolute positioning instead of flex to allow easy title truncation position: absolute; inset-inline-end: accordion.$accordion-button-padding; inset-block-start: 50%; transform: translateY(-50%); transition: accordion.$accordion-icon-transition; - - // add border to fix visual issue during rotation - border: 1px solid rgb(var(--post-bg-rgb, 255, 255, 255)); } &.collapsed::after { @@ -66,8 +87,7 @@ display: block; } - // TODO: find a way to style WHCM within web component - @include utility-mixins.high-contrast-mode() { + @include utility-mx.high-contrast-mode() { &:hover, &:focus-visible { &:not(:disabled) { @@ -83,25 +103,15 @@ .accordion-body { padding: accordion.$accordion-body-padding; - border-block-start: accordion.$accordion-border-width solid accordion.$accordion-border-color; - - @each $heading-size in (1 2 3 4 5 6) { - h#{$heading-size}, - .h#{$heading-size} { - @include type-mixins.font-curve(accordion.$accordion-heading-font-curve); - margin: accordion.$accordion-heading-margin; - font-weight: accordion.$accordion-heading-font-weight; - } - } + font-weight: accordion.$accordion-body-font-weight; } -.accordion-button, -.accordion-body { - > :first-child { - margin-block-start: 0 !important; - } +.accordion-button > *, +.accordion-body > :first-child { + margin-block-start: 0 !important; +} - > :last-child { - margin-block-end: 0 !important; - } +.accordion-button > *, +.accordion-body > :last-child { + margin-block-end: 0 !important; } diff --git a/packages/styles/src/components/datepicker.scss b/packages/styles/src/components/datepicker.scss index 7626bc6c2f..2273a05624 100644 --- a/packages/styles/src/components/datepicker.scss +++ b/packages/styles/src/components/datepicker.scss @@ -7,6 +7,8 @@ @use './../variables/commons'; @use './../mixins/icons' as icons-mx; +@use './../themes/bootstrap/core' as b; + ngb-datepicker { // Conversion for compatibility --bs-light: var(--post-light); @@ -24,7 +26,7 @@ ngb-datepicker-navigation-select.ngb-dp-navigation-select { flex: 0 1 auto; select { - padding-right: 1rem; + padding-right: b.$form-select-padding-x * 2; border: 0; background-position: right; diff --git a/packages/styles/src/components/intranet-header/_sidebar.scss b/packages/styles/src/components/intranet-header/_sidebar.scss index ece89761d5..22364a690d 100644 --- a/packages/styles/src/components/intranet-header/_sidebar.scss +++ b/packages/styles/src/components/intranet-header/_sidebar.scss @@ -80,7 +80,7 @@ overflow-x: hidden; overflow-y: auto; // Scrollable contents if viewport is shorter than content. - @include media-breakpoint-down(rg) { + @include media-breakpoint-down(md) { bottom: auto; } diff --git a/packages/styles/src/mixins/_focus.scss b/packages/styles/src/mixins/_focus.scss new file mode 100644 index 0000000000..af351a4137 --- /dev/null +++ b/packages/styles/src/mixins/_focus.scss @@ -0,0 +1,9 @@ +@use '../variables/commons'; + +@mixin focus-ring { + outline: none; + + &:focus-visible { + outline: commons.$outline-width solid commons.$outline-color; + } +} diff --git a/packages/styles/src/mixins/_index.scss b/packages/styles/src/mixins/_index.scss index de97a2b176..c7521115e2 100644 --- a/packages/styles/src/mixins/_index.scss +++ b/packages/styles/src/mixins/_index.scss @@ -2,6 +2,7 @@ @forward 'badge'; @forward 'button'; @forward 'color'; +@forward 'focus'; @forward 'form-checks'; @forward 'forms'; @forward 'icons'; diff --git a/packages/styles/src/variables/_commons.scss b/packages/styles/src/variables/_commons.scss index 26d61107c8..3d29df6cdc 100644 --- a/packages/styles/src/variables/_commons.scss +++ b/packages/styles/src/variables/_commons.scss @@ -17,6 +17,9 @@ $box-shadow: 0 0 5px 0 rgba(color.$black, 0.3) !default; $box-shadow-lg: 0 0 8px 0 rgba(color.$black, 0.4) !default; $box-shadow-hover: 0 0 1rem 0 rgba(color.$black, 0.08) !default; +$outline-width: 2px !default; +$outline-color: #1976c8 !default; + $caret-width: 0.3em !default; // Z-index master list diff --git a/packages/styles/src/variables/components/_accordion.scss b/packages/styles/src/variables/components/_accordion.scss index f33ead12b5..23bdfa999a 100644 --- a/packages/styles/src/variables/components/_accordion.scss +++ b/packages/styles/src/variables/components/_accordion.scss @@ -9,28 +9,30 @@ @use './button'; $accordion-padding: spacing.$spacer !default; +$accordion-gap: spacing.$size-mini !default; $accordion-border-width: commons.$border-thick !default; -$accordion-border-color: color.$gray-10 !default; +$accordion-border-color: color.$gray-60 !default; -$accordion-header-font-curve: 'regular' !default; +$accordion-header-color: color.$gray-80 !default; +$accordion-header-font-size: type.$font-size-16 !default; $accordion-header-font-weight: type.$font-weight-bold !default; $accordion-header-line-height: type.$line-height-copy !default; -$accordion-button-cursor: pointer !default; +$accordion-button-transition: button.$btn-transition !default; $accordion-button-padding: $accordion-padding !default; +$accordion-button-gap: $accordion-gap !default; $accordion-button-disabled-opacity: button.$btn-disabled-opacity !default; $accordion-button-focus-box-shadow: button.$btn-focus-box-shadow !default; +$accordion-button-hover-color: color.$black !default; +$accordion-button-hover-bg: color.$gray-10 !default; $accordion-icon-name: 2112 !default; $accordion-icon-size: spacing.$size-large !default; $accordion-icon-transition: transform animation.$transition-base-timing !default; $accordion-icon-transform: rotate(-180deg) !default; -$accordion-body-padding: spacing.$size-small-regular $accordion-padding spacing.$size-bigger-big !default; - -$accordion-heading-margin: spacing.$size-bigger-big 0 0 !default; -$accordion-heading-font-curve: $accordion-header-font-curve !default; -$accordion-heading-font-weight: $accordion-header-font-weight !default; +$accordion-body-padding: $accordion-gap $accordion-padding $accordion-padding !default; +$accordion-body-font-weight: type.$font-weight-light !default; // Deprecated $accordion-padding-x: spacing.$size-regular !default; @@ -54,3 +56,8 @@ $_accordion-hcm-chevron: icons.get-colored-svg-url(2113, color.$white); $accordion-button-icon: url($_accordion-chevron); $accordion-button-active-icon: url($_accordion-active-chevron); $accordion-hcm-icon: url($_accordion-hcm-chevron); +$accordion-header-font-curve: 'regular' !default; +$accordion-heading-margin: spacing.$size-bigger-big 0 0 !default; +$accordion-heading-font-curve: $accordion-header-font-curve !default; +$accordion-heading-font-weight: $accordion-header-font-weight !default; +$accordion-button-cursor: pointer !default; diff --git a/packages/styles/tsconfig.json b/packages/styles/tsconfig.json deleted file mode 100644 index 8f61c56262..0000000000 --- a/packages/styles/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "allowUnreachableCode": false, - "declaration": true, - "experimentalDecorators": true, - "lib": ["dom", "DOM.Iterable", "es2017"], - "moduleResolution": "node", - "module": "esnext", - "target": "es2017", - "noUnusedLocals": true, - "noUnusedParameters": true, - "resolveJsonModule": true, - "jsx": "react", - "jsxFactory": "h", - "strictNullChecks": true, - "skipLibCheck": true - }, - "include": ["schematics"], - "exclude": ["node_modules"] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a3539f753..095e456df5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,9 +63,6 @@ importers: '@oddbird/popover-polyfill': specifier: 0.3.2 version: 0.3.2 - '@stencil/core': - specifier: 4.7.2 - version: 4.7.2 '@swisspost/design-system-styles': specifier: workspace:6.4.4 version: link:../styles/dist @@ -85,6 +82,9 @@ importers: '@stencil-community/eslint-plugin': specifier: 0.7.1 version: 0.7.1(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-react@7.33.2)(eslint@8.54.0)(typescript@4.9.5) + '@stencil/core': + specifier: 4.7.2 + version: 4.7.2 '@stencil/react-output-target': specifier: 0.5.3 version: 0.5.3(@stencil/core@4.7.2) @@ -121,6 +121,9 @@ importers: jest-cli: specifier: 27.5.1 version: 27.5.1 + jest-environment-node: + specifier: 27.5.1 + version: 27.5.1 npm-run-all: specifier: 4.1.5 version: 4.1.5 @@ -529,12 +532,6 @@ importers: packages/internet-header: dependencies: - '@stencil/core': - specifier: 4.7.2 - version: 4.7.2 - '@stencil/store': - specifier: 2.0.11 - version: 2.0.11(@stencil/core@4.7.2) '@swisspost/design-system-styles': specifier: workspace:6.4.4 version: link:../styles/dist @@ -569,9 +566,15 @@ importers: '@stencil-community/eslint-plugin': specifier: 0.7.1 version: 0.7.1(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-react@7.33.2)(eslint@8.54.0)(typescript@4.9.5) + '@stencil/core': + specifier: 4.7.2 + version: 4.7.2 '@stencil/sass': specifier: 3.0.7 version: 3.0.7(@stencil/core@4.7.2) + '@stencil/store': + specifier: 2.0.11 + version: 2.0.11(@stencil/core@4.7.2) '@types/body-scroll-lock': specifier: 3.1.2 version: 3.1.2 @@ -771,7 +774,7 @@ importers: version: link:../.. publishDirectory: ../../dist/intranet-header - packages/styles: + packages/migrations: dependencies: '@angular-devkit/core': specifier: '=15.0.4' @@ -782,28 +785,33 @@ importers: '@angular/core': specifier: '=15.0.4' version: 15.0.4(rxjs@7.8.1)(zone.js@0.12.0) + cheerio: + specifier: 1.0.0-rc.12 + version: 1.0.0-rc.12 + prettier: + specifier: ^3.1.0 + version: 3.1.0 + typescript: + specifier: ~4.9.3 + version: 4.9.5 + devDependencies: + '@types/node': + specifier: ^14.15.0 + version: 14.17.0 + publishDirectory: ./dist + + packages/styles: + dependencies: + '@ng-bootstrap/ng-bootstrap': + specifier: ^15.0.0 + version: 15.1.2(@angular/common@16.2.12)(@angular/core@16.2.12)(@angular/forms@16.2.12)(@angular/localize@16.2.12)(@popperjs/core@2.11.8)(rxjs@7.8.1) '@popperjs/core': specifier: 2.11.8 version: 2.11.8 bootstrap: specifier: 5.3.2 version: 5.3.2(@popperjs/core@2.11.8) - cheerio: - specifier: 1.0.0-rc.12 - version: 1.0.0-rc.12 - prettier: - specifier: 3.1.0 - version: 3.1.0 devDependencies: - '@angular/compiler': - specifier: '=15.0.4' - version: 15.0.4(@angular/core@15.0.4) - '@percy/cli': - specifier: 1.27.4 - version: 1.27.4 - '@percy/cypress': - specifier: 3.1.2 - version: 3.1.2(cypress@13.6.0) '@swisspost/design-system-icons': specifier: workspace:1.0.15 version: link:../icons @@ -816,12 +824,6 @@ importers: copyfiles: specifier: 2.4.1 version: 2.4.1 - cypress: - specifier: 13.6.0 - version: 13.6.0 - cypress-storybook: - specifier: 0.5.1 - version: 0.5.1(cypress@13.6.0) glob: specifier: 10.3.10 version: 10.3.10 @@ -849,6 +851,9 @@ importers: postcss-scss: specifier: 4.0.9 version: 4.0.9(postcss@8.4.31) + prettier: + specifier: 3.1.0 + version: 3.1.0 rimraf: specifier: 5.0.5 version: 5.0.5 @@ -1558,19 +1563,6 @@ packages: transitivePeerDependencies: - supports-color - /@angular/compiler@15.0.4(@angular/core@15.0.4): - resolution: {integrity: sha512-KtxgRJUGZamOXpIILFG2FTUW+bbc2phi/o6955/Q4LR1HOICQrYEy8PrT1Gp+lVXFKgDG+6cb01lH14LoBQvyw==} - engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0} - peerDependencies: - '@angular/core': 15.0.4 - peerDependenciesMeta: - '@angular/core': - optional: true - dependencies: - '@angular/core': 15.0.4(rxjs@7.8.1)(zone.js@0.12.0) - tslib: 2.6.2 - dev: true - /@angular/compiler@16.2.12(@angular/core@16.2.12): resolution: {integrity: sha512-6SMXUgSVekGM7R6l1Z9rCtUGtlg58GFmgbpMCsGf+VXxP468Njw8rjT2YZkf5aEPxEuRpSHhDYjqz7n14cwCXQ==} engines: {node: ^16.14.0 || >=18.10.0} @@ -1593,6 +1585,7 @@ packages: rxjs: 7.8.1 tslib: 2.6.2 zone.js: 0.12.0 + dev: false /@angular/core@16.2.12(rxjs@7.8.1)(zone.js@0.14.2): resolution: {integrity: sha512-GLLlDeke/NjroaLYOks0uyzFVo6HyLl7VOm0K1QpLXnYvW63W9Ql/T3yguRZa7tRkOAeFZ3jw+1wnBD4O8MoUA==} @@ -1721,6 +1714,13 @@ packages: '@babel/highlight': 7.22.20 chalk: 2.4.2 + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} @@ -1776,14 +1776,14 @@ packages: dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/generator': 7.23.4 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.4 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -1812,11 +1812,11 @@ packages: '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 - /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + /@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -2084,7 +2084,7 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} @@ -2103,6 +2103,10 @@ packages: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} @@ -2125,8 +2129,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 transitivePeerDependencies: - supports-color @@ -2138,6 +2142,14 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + /@babel/parser@7.23.0: resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} engines: {node: '>=6.0.0'} @@ -2145,12 +2157,12 @@ packages: dependencies: '@babel/types': 7.23.0 - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + /@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.4 /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} @@ -4042,8 +4054,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} @@ -4071,18 +4083,18 @@ packages: transitivePeerDependencies: - supports-color - /@babel/traverse@7.23.3: - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + /@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -4096,11 +4108,11 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + /@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 @@ -4407,8 +4419,6 @@ packages: /@esbuild/android-arm64@0.18.17: resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} engines: {node: '>=12'} - cpu: [arm64] - os: [android] requiresBuild: true dev: true optional: true @@ -4425,8 +4435,6 @@ packages: /@esbuild/android-arm@0.18.17: resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} engines: {node: '>=12'} - cpu: [arm] - os: [android] requiresBuild: true dev: true optional: true @@ -4443,8 +4451,6 @@ packages: /@esbuild/android-x64@0.18.17: resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} engines: {node: '>=12'} - cpu: [x64] - os: [android] requiresBuild: true dev: true optional: true @@ -4461,8 +4467,6 @@ packages: /@esbuild/darwin-arm64@0.18.17: resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] requiresBuild: true dev: true optional: true @@ -4479,8 +4483,6 @@ packages: /@esbuild/darwin-x64@0.18.17: resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} engines: {node: '>=12'} - cpu: [x64] - os: [darwin] requiresBuild: true dev: true optional: true @@ -4497,8 +4499,6 @@ packages: /@esbuild/freebsd-arm64@0.18.17: resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] requiresBuild: true dev: true optional: true @@ -4515,8 +4515,6 @@ packages: /@esbuild/freebsd-x64@0.18.17: resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] requiresBuild: true dev: true optional: true @@ -4533,8 +4531,6 @@ packages: /@esbuild/linux-arm64@0.18.17: resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [linux] requiresBuild: true dev: true optional: true @@ -4551,8 +4547,6 @@ packages: /@esbuild/linux-arm@0.18.17: resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} engines: {node: '>=12'} - cpu: [arm] - os: [linux] requiresBuild: true dev: true optional: true @@ -4569,8 +4563,6 @@ packages: /@esbuild/linux-ia32@0.18.17: resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} engines: {node: '>=12'} - cpu: [ia32] - os: [linux] requiresBuild: true dev: true optional: true @@ -4587,8 +4579,6 @@ packages: /@esbuild/linux-loong64@0.18.17: resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} engines: {node: '>=12'} - cpu: [loong64] - os: [linux] requiresBuild: true dev: true optional: true @@ -4605,8 +4595,6 @@ packages: /@esbuild/linux-mips64el@0.18.17: resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] requiresBuild: true dev: true optional: true @@ -4623,8 +4611,6 @@ packages: /@esbuild/linux-ppc64@0.18.17: resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] requiresBuild: true dev: true optional: true @@ -4641,8 +4627,6 @@ packages: /@esbuild/linux-riscv64@0.18.17: resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] requiresBuild: true dev: true optional: true @@ -4659,8 +4643,6 @@ packages: /@esbuild/linux-s390x@0.18.17: resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} engines: {node: '>=12'} - cpu: [s390x] - os: [linux] requiresBuild: true dev: true optional: true @@ -4677,8 +4659,6 @@ packages: /@esbuild/linux-x64@0.18.17: resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} engines: {node: '>=12'} - cpu: [x64] - os: [linux] requiresBuild: true dev: true optional: true @@ -4695,8 +4675,6 @@ packages: /@esbuild/netbsd-x64@0.18.17: resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] requiresBuild: true dev: true optional: true @@ -4713,8 +4691,6 @@ packages: /@esbuild/openbsd-x64@0.18.17: resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] requiresBuild: true dev: true optional: true @@ -4731,8 +4707,6 @@ packages: /@esbuild/sunos-x64@0.18.17: resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} engines: {node: '>=12'} - cpu: [x64] - os: [sunos] requiresBuild: true dev: true optional: true @@ -4749,8 +4723,6 @@ packages: /@esbuild/win32-arm64@0.18.17: resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} engines: {node: '>=12'} - cpu: [arm64] - os: [win32] requiresBuild: true dev: true optional: true @@ -4767,8 +4739,6 @@ packages: /@esbuild/win32-ia32@0.18.17: resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} engines: {node: '>=12'} - cpu: [ia32] - os: [win32] requiresBuild: true dev: true optional: true @@ -4785,8 +4755,6 @@ packages: /@esbuild/win32-x64@0.18.17: resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} engines: {node: '>=12'} - cpu: [x64] - os: [win32] requiresBuild: true dev: true optional: true @@ -4981,7 +4949,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -4993,7 +4961,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -5014,7 +4982,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -5059,14 +5027,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.18.13)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@14.17.0)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -5094,7 +5062,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-mock: 27.5.1 dev: true @@ -5104,7 +5072,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-mock: 29.7.0 dev: true @@ -5131,7 +5099,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -5143,7 +5111,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.1.0 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -5184,7 +5152,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -5223,7 +5191,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -5364,7 +5332,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -5376,7 +5344,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -5668,8 +5636,6 @@ packages: /@nx/nx-darwin-arm64@16.5.1: resolution: {integrity: sha512-q98TFI4B/9N9PmKUr1jcbtD4yAFs1HfYd9jUXXTQOlfO9SbDjnrYJgZ4Fp9rMNfrBhgIQ4x1qx0AukZccKmH9Q==} engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] requiresBuild: true dev: true optional: true @@ -5677,8 +5643,6 @@ packages: /@nx/nx-darwin-x64@16.5.1: resolution: {integrity: sha512-j9HmL1l8k7EVJ3eOM5y8COF93gqrydpxCDoz23ZEtsY+JHY77VAiRQsmqBgEx9GGA2dXi9VEdS67B0+1vKariw==} engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] requiresBuild: true dev: true optional: true @@ -5686,8 +5650,6 @@ packages: /@nx/nx-freebsd-x64@16.5.1: resolution: {integrity: sha512-CXSPT01aVS869tvCCF2tZ7LnCa8l41wJ3mTVtWBkjmRde68E5Up093hklRMyXb3kfiDYlfIKWGwrV4r0eH6x1A==} engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] requiresBuild: true dev: true optional: true @@ -5695,8 +5657,6 @@ packages: /@nx/nx-linux-arm-gnueabihf@16.5.1: resolution: {integrity: sha512-BhrumqJSZCWFfLFUKl4CAUwR0Y0G2H5EfFVGKivVecEQbb+INAek1aa6c89evg2/OvetQYsJ+51QknskwqvLsA==} engines: {node: '>= 10'} - cpu: [arm] - os: [linux] requiresBuild: true dev: true optional: true @@ -5704,8 +5664,6 @@ packages: /@nx/nx-linux-arm64-gnu@16.5.1: resolution: {integrity: sha512-x7MsSG0W+X43WVv7JhiSq2eKvH2suNKdlUHEG09Yt0vm3z0bhtym1UCMUg3IUAK7jy9hhLeDaFVFkC6zo+H/XQ==} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] requiresBuild: true dev: true optional: true @@ -5713,8 +5671,6 @@ packages: /@nx/nx-linux-arm64-musl@16.5.1: resolution: {integrity: sha512-J+/v/mFjOm74I0PNtH5Ka+fDd+/dWbKhpcZ2R1/6b9agzZk+Ff/SrwJcSYFXXWKbPX+uQ4RcJoytT06Zs3s0ow==} engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] requiresBuild: true dev: true optional: true @@ -5722,8 +5678,6 @@ packages: /@nx/nx-linux-x64-gnu@16.5.1: resolution: {integrity: sha512-igooWJ5YxQ94Zft7IqgL+Lw0qHaY15Btw4gfK756g/YTYLZEt4tTvR1y6RnK/wdpE3sa68bFTLVBNCGTyiTiDQ==} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] requiresBuild: true dev: true optional: true @@ -5731,8 +5685,6 @@ packages: /@nx/nx-linux-x64-musl@16.5.1: resolution: {integrity: sha512-zF/exnPqFYbrLAduGhTmZ7zNEyADid2bzNQiIjJkh8Y6NpDwrQIwVIyvIxqynsjMrIs51kBH+8TUjKjj2Jgf5A==} engines: {node: '>= 10'} - cpu: [x64] - os: [linux] requiresBuild: true dev: true optional: true @@ -5740,8 +5692,6 @@ packages: /@nx/nx-win32-arm64-msvc@16.5.1: resolution: {integrity: sha512-qtqiLS9Y9TYyAbbpq58kRoOroko4ZXg5oWVqIWFHoxc5bGPweQSJCROEqd1AOl2ZDC6BxfuVHfhDDop1kK05WA==} engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] requiresBuild: true dev: true optional: true @@ -5749,8 +5699,6 @@ packages: /@nx/nx-win32-x64-msvc@16.5.1: resolution: {integrity: sha512-kUJBLakK7iyA9WfsGGQBVennA4jwf5XIgm0lu35oMOphtZIluvzItMt0EYBmylEROpmpEIhHq0P6J9FA+WH0Rg==} engines: {node: '>= 10'} - cpu: [x64] - os: [win32] requiresBuild: true dev: true optional: true @@ -5854,7 +5802,7 @@ packages: engines: {node: '>=14'} dependencies: '@percy/cli-command': 1.27.4 - fast-glob: 3.3.2 + fast-glob: 3.3.1 image-size: 1.0.2 transitivePeerDependencies: - bufferutil @@ -6677,6 +6625,7 @@ packages: resolution: {integrity: sha512-sPPDYrXiTbfeUF5CCyfqysXK/yfTHC4xYR1+nHzGkS2vhRSBOLp0oPuB+xkJLKA+K2ZqDJUxpOnDxy1CLWwBXA==} engines: {node: '>=16.0.0', npm: '>=7.10.0'} hasBin: true + dev: true /@stencil/react-output-target@0.5.3(@stencil/core@4.7.2): resolution: {integrity: sha512-68jwRp35CjAcwhTJ9yFD/3n+jrHOqvEH2jreVuPVvZK+4tkhPlYlwz0d1E1RlF3jyifUSfdkWUGgXIEy8Fo3yw==} @@ -6702,7 +6651,7 @@ packages: '@stencil/core': '>=2.0.0 || >=3.0.0 || >= 4.0.0-beta.0 || >= 4.0.0' dependencies: '@stencil/core': 4.7.2 - dev: false + dev: true /@storybook/addon-actions@7.5.3(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-v3yL6Eq/jCiXfA24JjRdbEQUuorms6tmrywaKcd1tAy4Ftgof0KHB4tTcTyiajrI5bh6PVJoRBkE8IDqmNAHkA==} @@ -7796,7 +7745,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/body-scroll-lock@3.1.2: @@ -7806,20 +7755,20 @@ packages: /@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/connect-history-api-fallback@1.5.0: resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} dependencies: '@types/express-serve-static-core': 4.17.35 - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/cookie@0.4.1: @@ -7829,13 +7778,13 @@ packages: /@types/cors@2.8.13: resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/cross-spawn@6.0.2: resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/css-modules@1.0.5: @@ -7879,7 +7828,7 @@ packages: /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -7901,7 +7850,7 @@ packages: /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/hast@2.3.4: @@ -7913,7 +7862,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/iframe-resizer@3.5.13: @@ -7946,6 +7895,10 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true + /@types/jasmine@4.3.0: + resolution: {integrity: sha512-u1jWakf8CWvLfSEZyxmzkgBzOEvXH/szpT0e6G8BTkx5Eu0BhDn7sbc5dz0JBN/6Wwm9rBe+JAsk9tJRyH9ZkA==} + dev: true + /@types/jasmine@5.1.4: resolution: {integrity: sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==} dev: true @@ -7953,7 +7906,7 @@ packages: /@types/jasminewd2@2.0.13: resolution: {integrity: sha512-aJ3wj8tXMpBrzQ5ghIaqMisD8C3FIrcO6sDKHqFbuqAsI7yOxj0fA7MrRCPLZHIVUjERIwsMmGn/vB0UQ9u0Hg==} dependencies: - '@types/jasmine': 5.1.4 + '@types/jasmine': 4.3.0 dev: true /@types/jest@27.5.2: @@ -8015,13 +7968,13 @@ packages: /@types/mock-fs@4.13.4: resolution: {integrity: sha512-mXmM0o6lULPI8z3XNnQCpL0BGxPwx1Ul1wXYEPBGl4efShyxW2Rln0JOPEWGyZaYZMM6OVXM/15zUuFMY52ljg==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/node-fetch@2.6.9: resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 form-data: 4.0.0 dev: true @@ -8029,6 +7982,10 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true + /@types/node@14.17.0: + resolution: {integrity: sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==} + dev: true + /@types/node@18.17.19: resolution: {integrity: sha512-+pMhShR3Or5GR0/sp4Da7FnhVmTalWm81M6MkEldbwjETSaPalw138Z4KdpQaistvqQxLB7Cy4xwYdxpbSOs9Q==} dev: true @@ -8103,7 +8060,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/serve-index@1.9.1: @@ -8116,7 +8073,7 @@ packages: resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/sinonjs__fake-timers@8.1.1: @@ -8130,7 +8087,7 @@ packages: /@types/sockjs@0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/stack-utils@2.0.1: @@ -8152,7 +8109,7 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /@types/yargs-parser@21.0.0: @@ -8175,7 +8132,7 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true optional: true @@ -8266,8 +8223,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@4.9.5): - resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@4.9.5): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -8278,10 +8235,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.11.0 - '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/typescript-estree': 6.11.0(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 6.11.0 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.54.0 typescript: 4.9.5 @@ -8320,14 +8277,6 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.11.0: - resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/visitor-keys': 6.11.0 - dev: true - /@typescript-eslint/scope-manager@6.12.0: resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8407,11 +8356,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.11.0: - resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - /@typescript-eslint/types@6.12.0: resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8459,8 +8403,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.11.0(typescript@4.9.5): - resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} + /@typescript-eslint/typescript-estree@6.12.0(typescript@4.9.5): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -8468,8 +8412,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/visitor-keys': 6.11.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -8577,14 +8521,6 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.11.0: - resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.11.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@6.12.0: resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8811,6 +8747,7 @@ packages: /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead dev: true /abbrev@1.1.1: @@ -10161,7 +10098,7 @@ packages: /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: - function-bind: 1.1.2 + function-bind: 1.1.1 get-intrinsic: 1.2.1 dev: true @@ -11502,7 +11439,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.13 - '@types/node': 18.18.13 + '@types/node': 14.17.0 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -11676,7 +11613,7 @@ packages: define-properties: 1.2.0 es-abstract: 1.22.1 es-set-tostringtag: 2.0.1 - function-bind: 1.1.2 + function-bind: 1.1.1 get-intrinsic: 1.2.1 globalthis: 1.0.3 has-property-descriptors: 1.0.0 @@ -11895,7 +11832,7 @@ packages: optional: true dependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@4.9.5) - '@typescript-eslint/parser': 6.11.0(eslint@8.54.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@4.9.5) eslint: 8.54.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.54.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0) @@ -12999,6 +12936,10 @@ packages: requiresBuild: true optional: true + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true @@ -13046,7 +12987,7 @@ packages: /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: - function-bind: 1.1.2 + function-bind: 1.1.1 has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 @@ -13577,7 +13518,7 @@ packages: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: - function-bind: 1.1.2 + function-bind: 1.1.1 dev: true /hasown@2.0.0: @@ -14723,7 +14664,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -14751,7 +14692,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.2.0 @@ -14870,6 +14811,47 @@ packages: - utf-8-validate dev: true + /jest-config@29.7.0(@types/node@14.17.0)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.23.3 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 14.17.0 + babel-jest: 29.7.0(@babel/core@7.23.3) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1(@types/node@18.18.13)(typescript@5.2.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + /jest-config@29.7.0(@types/node@18.18.13)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -14974,7 +14956,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -14992,7 +14974,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -15004,7 +14986,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -15025,7 +15007,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.6 - '@types/node': 18.18.13 + '@types/node': 14.17.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -15045,7 +15027,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.18.13 + '@types/node': 14.17.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -15066,7 +15048,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -15154,7 +15136,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 dev: true /jest-mock@29.7.0: @@ -15162,7 +15144,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-util: 29.7.0 dev: true @@ -15261,7 +15243,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -15293,7 +15275,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -15354,7 +15336,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -15377,7 +15359,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 graceful-fs: 4.2.11 dev: true @@ -15444,7 +15426,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -15456,7 +15438,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -15493,7 +15475,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 18.18.13 + '@types/node': 14.17.0 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -15506,7 +15488,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.18.13 + '@types/node': 14.17.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -15518,7 +15500,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -15527,7 +15509,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.18.13 + '@types/node': 14.17.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -19336,7 +19318,7 @@ packages: resolution: {integrity: sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==} engines: {node: '>= 12.13.0'} dependencies: - '@types/json-schema': 7.0.14 + '@types/json-schema': 7.0.11 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) @@ -21033,7 +21015,6 @@ packages: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} @@ -22353,6 +22334,7 @@ packages: resolution: {integrity: sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==} dependencies: tslib: 2.6.2 + dev: false /zone.js@0.14.2: resolution: {integrity: sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ==}