├── .github └── workflows │ └── tidy.yml ├── .pr-preview ├── README.md ├── charter ├── draft-charter-2021.html ├── draft-charter-2023.html └── draft-charter-2025.html ├── package-lock.json ├── package.json ├── serve.json ├── templates └── index.html ├── tidyconfig.txt └── w3c.json /.github/workflows/tidy.yml: -------------------------------------------------------------------------------- 1 | name: Tidy document 2 | on: 3 | workflow_dispatch: {} 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | tidy: 10 | name: Tidy up 11 | runs-on: macos-latest 12 | steps: 13 | - uses: actions/checkout@v2 14 | - run: brew install tidy-html5 15 | - run: tidy -config tidyconfig.txt -o charter/draft-charter-2021.html charter/draft-charter-2021.html 16 | - uses: peter-evans/create-pull-request@v3 17 | with: 18 | title: "Tidied up draft charter using tidy-html5" 19 | commit-message: "chore(draft-charter-2021.html): tidy up document" 20 | branch: html-tidy 21 | -------------------------------------------------------------------------------- /.pr-preview: -------------------------------------------------------------------------------- 1 | { 2 | "src_file": "charter/draft-charter-2021.html", 3 | "type": "html", 4 | } 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Web Applications Working Group 2 | 3 | This is our group's administration page - please see our [Charter](https://www.w3.org/2024/01/webappswg-charter-2024.html) for more info. 4 | 5 | If you have any admin related issues, please [file them](https://github.com/w3c/webappswg/issues). 6 | 7 | ## Specifications 8 | 9 | * [Badging API](https://w3c.github.io/badging/) - [repository](https://github.com/w3c/badging) 10 | * [File API](https://www.w3.org/TR/FileAPI/) - [repository](https://github.com/w3c/FileAPI/) 11 | * [Gamepad](https://www.w3.org/TR/gamepad) - [repository](https://github.com/w3c/gamepad/) 12 | * [Image Resource](https://www.w3.org/TR/image-resource) - [repository](https://github.com/w3c/image-resource/) 13 | * [IndexedDB](https://www.w3.org/TR/IndexedDB/) - [repository](https://github.com/w3c/IndexedDB/) 14 | * [Intersection Observer](https://www.w3.org/TR/intersection-observer/) - [repository](https://github.com/w3c/IntersectionObserver/) 15 | * [Pointer Lock](https://www.w3.org/TR/pointerlock) - [repository](https://github.com/w3c/pointerlock/) 16 | * [Push API](https://www.w3.org/TR/push-api) - [repository](https://github.com/w3c/push-api/) 17 | * [Screen Orientation](https://www.w3.org/TR/screen-orientation/) - [repository](https://github.com/w3c/screen-orientation/) 18 | * [UI Events](https://www.w3.org/TR/uievents) - [repository](https://github.com/w3c/uievents/) 19 | * [Web App Manifest](https://www.w3.org/TR/manifest) - [repository](https://github.com/w3c/manifest/) 20 | * [Web Locks](https://w3c.github.io/web-locks/) - [repository](https://github.com/w3c/web-locks) 21 | * [Web Share](https://www.w3.org/TR/web-share) - [repository](https://github.com/w3c/web-share/) 22 | 23 | ### Join Deliverables with Device and Sensors 24 | 25 | * [Contact Picker API](https://www.w3.org/TR/contact-picker/) - [repository](https://github.com/w3c/contact-picker/) 26 | * [Device Orientation and Motion](https://www.w3.org/TR/orientation-event/) - [repository](https://github.com/w3c/deviceorientation) 27 | * [Geolocation](https://www.w3.org/TR/geolocation/) - [repository](https://github.com/w3c/geolocation-api/) 28 | * [Screen Wake Lock API](https://www.w3.org/TR/screen-wake-lock/) - [repository](https://github.com/w3c/screen-wake-lock/) 29 | 30 | ### Notes 31 | 32 | * [Web App Manifest - Application Information](https://github.com/w3c/manifest-app-info) - [Eds Draft](https://w3c.github.io/manifest-app-info/) 33 | 34 | ## Chairs and W3C Team 35 | 36 | * 🦹‍♀️ Léonie Watson [✉️](mailto:lw@tetralogical.com) - TetraLogical 37 | * 🦹‍♂️ Marcos Cáceres [✉️](mailto:marcosc@apple.com) - Apple Inc. 38 | * 🦹‍♂️ Diego González [✉️](mailto:luigonza@microsoft.com) - Microsoft 39 | * 🦹‍♂️ Marijn Kruisselbrink [✉️](mailto:mek@google.com) - Google 40 | * 🦹‍♀️ Xiaoqian Wu [✉️](mailto:xiaoqian@w3.org) - W3C 41 | * 🦹‍♂️ Michael[tm] Smiths [✉️](mailto:mike@w3.org) - W3C 42 | 43 | ## Code of conduct violations 44 | 45 | If you experience any behavior that you believe is in violation of of the W3C's code of conduct, please refer to the [ Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc/). 46 | 47 | You can also reach out to the chairs or team privately - emails are above. 48 | -------------------------------------------------------------------------------- /charter/draft-charter-2021.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Web Applications Working Group Charter 7 | 8 | 10 | 12 | 13 | 54 | 55 | 56 | 99 |
100 |

101 | Web Applications Working Group Charter 102 |

103 |

104 | The mission of the Web Applications Working Group 106 | (WebApps WG) is to produce specifications that facilitate the 107 | development of client-side web applications. 108 |

109 |
110 |

111 | Join the WebApps 112 | Working Group 113 |

114 |
115 |
116 | 117 | 118 | 121 | 124 | 125 | 126 | 129 | 132 | 136 | 137 | 140 | 144 | 145 | 146 | 149 | 153 | 154 | 155 | 158 | 165 | 166 |
119 | Start date 120 | 122 | The date when the charter is approved. 123 |
127 | End date 128 | 130 | 2 years after the charter approved. 131 |
138 | Chairs 139 | 141 | Léonie Watson (TetraLogical), Marcos Cáceres (Apple Inc., 0.2 142 | FTE) 143 |
147 | Team Contacts 148 | 150 | Xiaoqian Wu (0.1 151 | FTE) 152 |
156 | Meeting Schedule 157 | 159 | Teleconferences: topic-specific calls will be 160 | held when needed.
161 | Face-to-face: we will meet during the W3C's 162 | annual Technical Plenary week; additional face-to-face meetings 163 | may be scheduled by consent of participants. 164 |
167 |
168 |
169 |

170 | Scope 171 |

172 |

173 | The scope of the WebApps Working Group is: 174 |

175 | 189 |

190 | The working group also maintains a specification for mapping HTML 191 | elements and attributes to platform accessibility APIs, and a 192 | separate specification that defines author conformance requirements 193 | for setting ARIA attributes. The Working Group does not expect to add 194 | any other specifications relating to this matter. 195 |

196 |

197 | Specifications produced by the WebApps Working Group enable 198 | developers to create web applications that work across a wide range 199 | of platforms and devices, and for a broad diversity of users, by 200 | addressing matters of accessibility, device independence, 201 | internationalization, privacy, and security. 202 |

203 |
204 |

205 | Success Criteria 206 |

207 |

208 | In order to advance to Candidate Recommendation and to add 211 | features after reaching Candidate Recommendation, each feature is 212 | expected to be supported by at least two implementations, which may 213 | be judged by factors including existing implementations, 214 | expressions of interest, and lack of opposition. 215 |

216 |

217 | In order to advance to Proposed Recommendation, each 220 | specification must have at 222 | least two independent implementations in wide use. 223 |

224 |

225 | Each specification should contain separate sections detailing all 226 | known security and privacy implications for implementers, Web 227 | authors, and end users. 228 |

229 |

230 | There should be testing plans for each specification, starting from 231 | the earliest drafts. 232 |

233 |

234 | Each specification must have an accompanying test suite, which is 235 | ideally developed in parallel to the specification. The test suite 236 | will be used to produce an implementation report before the 237 | specification transitions to Proposed 239 | Recommendation. 240 |

241 |

242 | Where there are implications for user experience, each 243 | specification should contain a section on accessibility that 244 | describes the benefits and impacts, including ways specification 245 | features can be used to address them, and recommendations for 246 | maximising accessibility in implementations. 247 |

248 |
249 |
250 |
251 |

252 | Deliverables 253 |

254 |

255 | More information about WebApps Working Group specifications can be 256 | found in the GitHub 257 | repository. 258 |

259 |
260 |

261 | Normative Specifications 262 |

263 |

264 | The WebApps Working Group will deliver the following normative 265 | specifications. 266 |

267 | 268 | 269 | 272 | 275 | 276 | 277 | 280 | 285 | 286 | 287 | 290 | 300 | 301 | 302 | 305 | 312 | 313 | 314 | 317 | 324 | 325 | 326 | 329 | 334 | 335 | 336 | 339 | 344 | 345 | 346 | 349 | 353 | 354 | 355 | 358 | 363 | 364 | 365 | 368 | 373 | 374 | 375 | 378 | 382 | 383 | 384 | 387 | 391 | 392 | 393 | 396 | 400 | 401 | 402 | 405 | 409 | 410 | 411 | 414 | 418 | 419 | 420 | 423 | 431 | 432 |
270 | Specification 271 | 273 | Description 274 |
278 | File API 279 | 281 | An API for representing file objects in web applications, as 282 | well as programmatically selecting them and accessing their 283 | data. 284 |
288 | Gamepad API 289 | 291 |

292 | Level 1 of the API that represents gamepad devices, and 293 | enables web applications to act upon gamepad data. 294 |

295 |

296 | Level 2 aims to support the capabilities of next generation 297 | gamepads. 298 |

299 |
303 | Image resource 304 | 306 | This document defines the concept of an "image resource" and a 307 | corresponding WebIDL ImageResource dictionary. Web APIs can use 308 | the ImageResource dictionary to represent an image resource in 309 | contexts where an HTMLImageElement is not suitable or available 310 | (e.g., in a Worker). 311 |
315 | Indexed Database API 316 | 318 | An API for a database of records holding simple values and 319 | hierarchical objects. The third edition adds new 321 | capabilities and improves developer ergonomics by using 322 | promises. 323 |
327 | Intersection Observer 328 | 330 | An API that can be used to understand the visibility and 331 | position of DOM elements ("targets") relative to a containing 332 | element or to the top-level viewport ("root"). 333 |
337 | Pointer Lock 338 | 340 | An API that provides scripted access to raw mouse movement data 341 | while locking the target of mouse events to a single element 342 | and removing the cursor from view. 343 |
347 | Push API 348 | 350 | An API for sending push messages to a web application, via a 351 | push service. 352 |
356 | Screen Orientation API 357 | 359 | An API for reading screen orientation, being informed of screen 360 | orientation changes, and locking screen orientation to a 361 | specific state. 362 |
366 | Web App Manifest 367 | 369 | A JSON-based manifest file that provides developers with a 370 | centralized place to put metadata associated with a web 371 | application. 372 |
376 | Web Share API 377 | 379 | An API for sharing text, links and other content to an 380 | arbitrary destination of the user's choice. 381 |
385 | ARIA in HTML 386 | 388 | Defines the web developer rules (author conformance 389 | requirements) for ARIA attributes on HTML elements. 390 |
394 | UI Events 395 | 397 | UI Events that extend the DOM Event objects defined in the DOM 398 | specification. 399 |
403 | UI Events KeyboardEvent code values 404 | 406 | The values for the KeyboardEvent.code attribute, 407 | which is defined as part of the UI Events Specification. 408 |
412 | UI Events KeyboardEvent key Values 413 | 415 | The values for the key attribute defined in the UI 416 | Events specification. 417 |
421 | Web Locks API 422 | 424 | This document defines a web platform API that allows script to 425 | asynchronously acquire a lock over a resource, hold it while 426 | work is performed, then release it. While held, no other script 427 | in the origin can acquire a lock over the same resource. This 428 | allows contexts (windows, workers) within a web application to 429 | coordinate the usage of resources. 430 |
433 |

434 | Depending on the Consensus of 436 | the Working Group members, the Group may bring the following WHATWG 437 | Review Drafts from W3C Candidate Recommendation to Proposed 438 | Recommendation, in accordance with the WHATWG-W3C 440 | Memorandum of Understanding and 2021 442 | Relationship Update.: 443 |

444 | 445 | 446 | 449 | 452 | 453 | 454 | 457 | 471 | 472 |
447 | Specification 448 | 450 | Description 451 |
455 | Web IDL 456 | 458 | This document defines an interface definition language, Web 459 | IDL, that can be used to describe interfaces that are intended 460 | to be implemented in web browsers. Web IDL is an IDL variant 461 | with a number of features that allow the behavior of common 462 | script objects in the web platform to be specified more 463 | readily. How interfaces described with Web IDL correspond to 464 | constructs within ECMAScript execution environments is also 465 | detailed in this document. It is expected that this document 466 | acts as a guide to implementors of already-published 467 | specifications, and that newly published specifications 468 | reference this document to ensure conforming implementations of 469 | interfaces are interoperable. 470 |
473 |
474 |
475 |

476 | WICG specifications 477 |

478 |

479 | Depending on the WICG progress, including 481 | interest from multiple implementers, the Group may also produce W3C 482 | Recommendations for the following documents: 483 |

484 | 485 | 486 | 489 | 492 | 493 | 494 | 497 | 501 | 502 | 503 | 507 | 512 | 513 | 514 | 517 | 525 | 526 | 527 | 531 | 537 | 538 | 539 | 544 | 550 | 551 | 552 | 556 | 563 | 564 |
487 | Specification 488 | 490 | Description 491 |
495 | Cookie Store 496 | 498 | An asynchronous Javascript cookies API for documents and 499 | workers. 500 |
504 | Web Share 505 | Target 506 | 508 | An API that allows websites to declare themselves as web share 509 | targets, which can receive shared content from either the Web 510 | Share API, or system events (e.g., shares from native apps). 511 |
515 | Badging 516 | 518 | An API allowing web applications to set an application-wide 519 | badge, shown in an operating-system-specific place associated 520 | with the application (such as the shelf or home screen), for 521 | the purpose of notifying the user when the state of the 522 | application has changed (e.g., when new messages have arrived), 523 | without showing a more heavyweight notification. 524 |
528 | Contact 529 | Picker API 530 | 532 | An API to give one-off access to a user’s contact information 533 | with full control over the shared data. It will be a joint 534 | deliverable with the Devices 535 | and Sensors Working Group. 536 |
540 | 542 | Haptics 543 | 545 | An API allowing web applications to interface with haptic 546 | actuators, such as vibration motors found on gamepad 547 | controllers, and potentially other devices that provide haptic 548 | feedback. 549 |
553 | User-Agent 554 | Client Hints 555 | 557 | This document defines a set of Client Hints that aim to provide 558 | developers with the ability to perform agent-based content 559 | negotiation when necessary, while avoiding the historical 560 | baggage and passive fingerprinting surface exposed by the 561 | venerable User-Agent HTTP header. 562 |
565 |
566 |
567 |

568 | Other Deliverables 569 |

570 |

571 | Other non-normative documents may be created such as, use case and 572 | requirements documents, implementation reports, and Best Practices 573 | documents, to support web developers when designing applications. 574 |

575 |
576 |
577 |

578 | Timeline 579 |

580 |

581 | All specifications produced by the WebApps Working Group are 582 | expected to progress during this charter period. The charter does 583 | not include a detailed timeline for each specification because such 584 | information is speculative and easily becomes inaccurate. However, 585 | a rough estimation of completion is available in the detailed list of Deliverables when 587 | possible. 588 |

589 |

590 | The Working Group home 591 | page will link to a more comprehensive page with detailed 592 | status and estimated completion time for each specification. 593 |

594 |

595 | Note that the WICG Specifications, if 596 | adopted, have an estimated time of completion of 2 years. 597 |

598 |
599 |
600 |
601 |

602 | Coordination 603 |

604 |

605 | For all specifications, this Working Group will seek 607 | horizontal review for accessibility, internationalization, 608 | performance, privacy, and security with the relevant Working and 609 | Interest Groups, and with the TAG. Invitation for review 611 | must be issued during each major standards-track document transition, 612 | including FPWD. The Working Group is 614 | encouraged to engage collaboratively with the horizontal review 615 | groups throughout development of each specification. The Working 616 | Group is advised to seek a review at least 3 months before first 617 | entering CR and is encouraged to 619 | proactively notify the horizontal review groups when major changes 620 | occur in a specification following a review. 621 |

622 |

623 | For all specifications, technical coordination with the following 624 | Groups will be made, per the W3C Process 626 | Document: 627 |

628 |
629 |
630 | Accessible Platform 631 | Architectures (APA) Working Group 632 |
633 |
634 | For accessibility horizontal review, and to collaborate on 635 | accessibility related topics. 636 |
637 |
638 | Internationalization 640 | Working Group 641 |
642 |
643 | For internationalization horizontal review, and to collaborate on 644 | internationalization related topics. 645 |
646 |
647 | Privacy Interest Group 648 |
649 |
650 | For privacy horizontal review, and to collaborate on privacy 651 | related topics. 652 |
653 |
654 | Technical Architecture Group 655 | (TAG) 656 |
657 |
658 | For architectural horizontal review, and to collaborate on 659 | architecture related topics. 660 |
661 |
662 |

663 | The WebApps Group will also seek review from the Accessible Rich Internet Applications 665 | (ARIA) Working Group to coordinate on the ARIA attributes on HTML 666 | elements, and their mappings to platform accessibility APIs. 667 |

668 |
669 |

670 | W3C Groups 671 |

672 |

673 | The work of the WebApps Working Group touches on the work of many 674 | other W3C Working and Interest 675 | Groups. Where appropriate, the WebApps Working Group will 676 | coordinate with the relevant Working or Interest Groups, per the 677 | W3C 678 | Process. 679 |

680 |
681 |

682 | External Organizations 683 |

684 |

685 | The WebApps Working Group may also coordinate with the following 686 | organizations: 687 |

688 |
689 |
690 | 692 | ECMA TC39 693 |
694 |
695 | For co-ordination on topics relating to JavaScript. 696 |
697 |
698 | Internet Engineering Task Force 699 | (IETF) 700 |
701 |
702 | For co-ordination on topics relating to internet protocols. 703 |
704 |
705 | Web Hypertext Application 706 | Technology Working Group (WHATWG) 707 |
708 |
709 | For co-ordination on topics relating to the web platform. 710 |
711 |
712 |
713 |
714 |
715 |
716 |

717 | Participation 718 |

719 |

720 | To be successful, the WebApps Working Group is expected to have 10 or 721 | more active participants for its duration, including representatives 722 | from at least three key implementors. It is also expected to have 723 | active Editors and Test Leads for each specification. 724 |

725 |

726 | Chairs, specification Editors, and Test Leads are expected to 727 | contribute half of a working day per week towards the WebApps Working 728 | Group. There is no minimum requirement for other Participants. 729 |

730 |

731 | The group encourages questions, comments and issues on its public 732 | mailing lists and document repositories, as described in Communication. 734 |

735 |

736 | The group also welcomes technical contributions from non-Members, to 737 | be considered upon their agreement to the terms of the W3C Patent Policy. 739 |

740 |
741 |
742 |

743 | Working mode 744 |

745 |

746 | This group primarily conducts its technical work on GitHub. The 747 | public is invited to review, discuss and contribute to this work. 748 |

749 |

750 | The Chairs and Editors will assess support from web platform 751 | implementers or web application or framework developers, to assure 752 | that substantial changes are supported by more than a single member 753 | before they are adopted. 754 |

755 |

756 | Additionally, support from two or more web platform implementers is 757 | required before a substantive change can be made to a specification. 758 | This is enforced by a pull request template on GitHub, which Editors 759 | must fill out as a public record before a substantive contribution 760 | can be merged. The template will require implementers to give public 761 | support for a change/fix/feature and, where possible, provide a link 762 | to a public bug tracker for an implementation. 763 |

764 |
765 |
766 |

767 | Communication 768 |

769 |

770 | Technical discussions for the WebApps Working Group are conducted in 771 | public: 773 | the meeting minutes from teleconference and face-to-face meetings 774 | will be archived for public review, and technical discussions and 775 | issue tracking will be conducted in a manner that can be both read 776 | and contributed to by the general public. Working Drafts and Editor's 777 | Drafts of specifications will be developed on public repositories, 778 | and may permit direct public contribution requests. 779 |

780 |

781 | Meetings are not open to public participation, however non-members 782 | may request observer status at meetings by contacting the WebApps 783 | Working Group Chairs. 784 |

785 |

786 | Information about the WebApps Working Group (including details about 787 | deliverables, issues, actions, status, participants, and meetings) 788 | will be available from the WebApps Working Group home 790 | page. 791 |

792 |

793 | The group may use a Member-confidential mailing list for 794 | administrative purposes and, at the discretion of the Chairs and 795 | members of the group, for member-only discussions in special cases 796 | when a participant requests such a discussion. 797 |

798 |
799 |
800 |

801 | Decision Policy 802 |

803 |

804 | This group will seek to make decisions through consensus and due 805 | process, per the W3C Process 807 | Document (section 3.3). Typically, an editor or other participant 808 | makes an initial proposal, which is then refined in discussion with 809 | members of the group and other reviewers, and consensus emerges with 810 | little formal voting being required. 811 |

812 |

813 | However, if a decision is necessary for timely progress and consensus 814 | is not achieved after careful consideration of the range of views 815 | presented, the Chairs may call for a group vote and record a decision 816 | along with any objections. 817 |

818 |

819 | To afford asynchronous decisions and organizational deliberation, any 820 | resolution (including publication decisions) taken in a face-to-face 821 | meeting or teleconference will be considered provisional. 822 |

823 |

824 | A call for consensus (CfC) will be issued for all resolutions (for 825 | example, via email and/or web-based survey), with a response period 826 | from one week to 10 working days, depending on the chair's evaluation 827 | of the group consensus on the issue. 828 |

829 |

830 | If no objections are raised on the mailing list by the end of the 831 | response period, the resolution will be considered to have consensus 832 | as a resolution of the WebApps Working Group. 833 |

834 |

835 | All decisions made by the group should be considered resolved unless 836 | and until new information becomes available or unless reopened at the 837 | discretion of the Chairs or the Director. 838 |

839 |

840 | This charter is written in accordance with the W3C Process 842 | Document (Section 3.4, Votes) and includes no voting procedures 843 | beyond what the Process Document requires. 844 |

845 |
846 |
847 |

848 | Patent Policy 849 |

850 |

851 | This Working Group operates under the W3C Patent Policy 853 | (Version of 15 September 2020). To promote the widest adoption of Web 854 | standards, W3C seeks to issue Recommendations that can be 855 | implemented, according to this policy, on a Royalty-Free basis. 856 |

857 |

858 | For more information about disclosure obligations for this group, 859 | please see the W3C 860 | Patent Policy Implementation. 861 |

862 |
863 |
864 |

865 | Licensing 866 |

867 |

868 | The WebApps Working Group will use the W3C Software 870 | and Document license for all its deliverables. WebIDL will follow 871 | the terms of the WHATWG-W3C 873 | Memorandum of Understanding and 2021 875 | Relationship Update. 876 |

877 |
878 |
879 |

880 | About this Charter 881 |

882 |

883 | This charter has been created according to section 5.2 of 885 | the Process 886 | Document. In the event of a conflict between this document or the 887 | provisions of any charter and the W3C Process, the W3C Process shall 888 | take precedence. 889 |

890 |
891 |

892 | Charter History 893 |

894 |

895 | The following table lists details of all changes from the initial 896 | charter, per the W3C Process 898 | Document (section 5.2.3): 899 |

900 | 901 | 902 | 903 | 906 | 909 | 912 | 915 | 916 | 917 | 922 | 925 | 928 | 931 | 932 | 933 | 937 | 940 | 943 | 946 | 947 | 948 | 951 | 954 | 957 | 969 | 1004 | 1005 |
904 | Charter Period 905 | 907 | Start Date 908 | 910 | End Date 911 | 913 | Changes 914 |
918 | Initial 920 | Charter 921 | 923 | 14 May 2019 924 | 926 | 31 May 2021 927 | 929 | none 930 |
934 | Rechartered 936 | 938 | 15 December 2020 939 | 941 | 31 May 2021 942 | 944 | New Patent Policy 945 |
949 | Rechartered 950 | 952 | 1 June 2021 953 | 955 | 31 May 2023 956 | 958 |
    959 |
  • Stopped Working on the HTML Accessibility API Mappings 960 | (AAM) spec; 961 |
  • 962 |
  • Remove Clipboard API and Events, ContentEditable, 963 | Selection API, and Input Events from the Deliverables. 964 |
  • 965 |
  • Add WebIDL to the charter as a possible Deliverable. 966 |
  • 967 |
968 |
1006 |

1007 | Note: Starting from 16 July 2020, the team contacts of the WebApps 1008 | Working Group reduced from Yves Lafon (0.3 FTE), Xiaoqian Wu (0.2 1009 | FTE) to Xiaoqian Wu (0.1 FTE). Starting from 5 November 2020, 1010 | Marcos Cáceres re-appointed as co-chair after affiliation change. 1011 | We made non-substantive modifications to this charter to reflect 1012 | these changes. 1013 |

1014 |
1015 |
1016 |

1017 | History of this WG 1018 |

1019 |

1020 | The WebApps Working Group was a predecessor to the Web Platform Working Group 1022 | (which remains active to work on specifications that are pertinent 1023 | to the discussions relating to a collaboration agreement between 1024 | the W3C and the WHATWG). The remaining specifications have been 1025 | transferred from the Web Platform Working Group to the WebApps 1026 | Working Group, so that progress can continue to be made on those 1027 | specifications while the W3C and WHATWG negotiations are ongoing. 1028 |

1029 |

1030 | In addition, specifications that have been successfully incubated 1031 | in the Web Platform 1032 | Incubator Community Group (WICG) have been transferred to the 1033 | WebApps Working Group. 1034 |

1035 |
1036 |
1037 |
1038 |

1039 | Detailed list of Deliverables 1040 |

1041 | 1348 |
1349 |
1350 |
1351 | 1375 | 1376 | 1377 | -------------------------------------------------------------------------------- /charter/draft-charter-2025.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Web Applications Working Group Charter 7 | 8 | 9 | 10 | 11 | 50 | 51 | 52 | 75 | 76 | 77 |
78 |

[draft] Web Applications Working Group Charter

79 | 80 | 81 |

The mission of the Web Applications Working Group 83 | (WebApps WG) is to produce specifications that facilitate the 84 | development of client-side web applications.

85 | 86 | 87 |
88 |

89 | Join the WebApps 90 | Working Group 91 |

92 |
93 | 94 |
95 | 96 | 97 | 100 | 103 | 104 | 105 | 108 | 111 | 112 | 113 | 116 | 119 | 120 | 121 | 124 | 127 | 128 | 129 | 132 | 137 | 138 | 139 | 142 | 148 | 149 |
98 | Charter Status 99 | 101 | See the group status page and detailed change history. 102 |
106 | Start date 107 | 109 | [dd monthname yyyy] (date of the "Call for Participation", when the charter is approved) 110 |
114 | End date 115 | 117 | [dd monthname yyyy] (Start date + 2 years) 118 |
122 | Chairs 123 | 125 | Léonie Watson (TetraLogical), Marcos Cáceres (Apple), Diego González (Microsoft), Marijn Kruisselbrink (Google) 126 |
130 | Team Contact 131 | 133 | Xiaoqian Wu (0.25 134 | FTE), Michael[tm] Smiths (0.1 135 | FTE) 136 |
140 | Meeting Schedule 141 | 143 | Teleconferences: topic-specific calls will be 144 | held when needed. 145 |
146 | Face-to-face: we will meet during the W3C's annual Technical Plenary week; additional face-to-face meetings may be scheduled by consent of the participants, usually no more than 3 per year. 147 |
150 |
151 | 152 |
153 |

Motivation and Background

154 | 155 |

156 | Specifications produced by the WebApps Working Group enable 157 | developers to create web applications that work across a wide range 158 | of platforms and devices, and for a broad diversity of users, by 159 | addressing matters of accessibility, device independence, 160 | internationalization, privacy, and security. 161 |

162 |
163 | 164 |
165 |

166 | Scope 167 |

168 |

169 | The scope of the WebApps Working Group is: 170 |

171 | 191 |

The Working Group will not adopt new proposals until they have matured through the Web Platform Incubator Community Group or a similar incubation phase. 192 | If the Working Group decides to add new Recommendation-track deliverables 193 | then it will recharter with changes to change its deliverables.

194 | 195 |
196 | 197 |
198 |

199 | Deliverables 200 |

201 |

202 | Updated document status is available on the group publication status page. 203 |

204 |

Draft state indicates the state of the deliverable at the time of the charter approval. Expected completion indicates when the deliverable is projected to become a Recommendation, or otherwise reach a stable state.

205 | 206 |
207 |

208 | Normative Specifications 209 |

210 |

211 | The WebApps Working Group will deliver the following normative 212 | specifications. More information about these specifications can be found in the detailed list of Deliverables. 213 |

214 | 215 | 216 | 219 | 222 | 223 | 224 | 227 | 232 | 233 | 234 | 237 | 247 | 248 | 249 | 252 | 259 | 260 | 261 | 264 | 271 | 272 | 273 | 276 | 283 | 284 | 285 | 288 | 293 | 294 | 295 | 298 | 302 | 303 | 304 | 307 | 312 | 313 | 314 | 317 | 322 | 323 | 324 | 327 | 331 | 332 | 333 | 336 | 340 | 341 | 342 | 345 | 349 | 350 | 351 | 354 | 358 | 359 | 360 | 363 | 371 | 372 | 373 | 374 | 377 | 380 | 381 | 382 | 383 | 384 | 387 | 392 | 393 | 394 | 397 | 405 | 406 | 407 | 410 | 417 | 418 | 419 | 422 | 428 | 429 | 430 | 433 | 436 | 437 |
217 | Specification 218 | 220 | Description 221 |
225 | File API 226 | 228 | An API for representing file objects in web applications, as 229 | well as programmatically selecting them and accessing their 230 | data. 231 |
235 | Gamepad API 236 | 238 |

239 | Level 1 of the API that represents gamepad devices, and 240 | enables web applications to act upon gamepad data. 241 |

242 |

243 | Level 2 aims to support the capabilities of next generation 244 | gamepads. 245 |

246 |
250 | Image resource 251 | 253 | This document defines the concept of an "image resource" and a 254 | corresponding WebIDL ImageResource dictionary. Web APIs can use 255 | the ImageResource dictionary to represent an image resource in 256 | contexts where an HTMLImageElement is not suitable or available 257 | (e.g., in a Worker). 258 |
262 | Indexed Database API 263 | 265 | An API for a database of records holding simple values and 266 | hierarchical objects. The third edition adds new 268 | capabilities and improves developer ergonomics by using 269 | promises. 270 |
274 | Service Workers 275 | 277 |

The core of this specification is a worker that wakes to receive events. This provides an event destination that can be used when other destinations would be inappropriate, or no other destination exists.

278 | 279 |

For example, to allow the developer to decide how a page should be fetched, an event needs to dispatch potentially before any other execution contexts exist for that origin. To react to a push message, or completion of a persistent download, the context that originally registered interest may no longer exist. In these cases, the service worker is the ideal event destination.

280 | 281 |

This specification also provides a fetch event, and a request and response store similar in design to the HTTP cache, which makes it easier to build offline-enabled web applications.

282 |
286 | Pointer Lock 287 | 289 | An API that provides scripted access to raw mouse movement data 290 | while locking the target of mouse events to a single element 291 | and removing the cursor from view. 292 |
296 | Push API 297 | 299 | An API for sending push messages to a web application, via a 300 | push service. 301 |
305 | Screen Orientation 306 | 308 | An API for reading screen orientation, being informed of screen 309 | orientation changes, and locking screen orientation to a 310 | specific state. 311 |
315 | Web App Manifest 316 | 318 | A JSON-based manifest file that provides developers with a 319 | centralized place to put metadata associated with a web 320 | application. 321 |
325 | Web Share API 326 | 328 | An API for sharing text, links and other content to an 329 | arbitrary destination of the user's choice. 330 |
334 | UI Events 335 | 337 | UI Events that extend the DOM Event objects defined in the DOM 338 | specification. 339 |
343 | UI Events KeyboardEvent code values 344 | 346 | The values for the KeyboardEvent.code attribute, 347 | which is defined as part of the UI Events Specification. 348 |
352 | UI Events KeyboardEvent key Values 353 | 355 | The values for the key attribute defined in the UI 356 | Events specification. 357 |
361 | Web Locks API 362 | 364 | This document defines a web platform API that allows script to 365 | asynchronously acquire a lock over a resource, hold it while 366 | work is performed, then release it. While held, no other script 367 | in the origin can acquire a lock over the same resource. This 368 | allows contexts (windows, workers) within a web application to 369 | coordinate the usage of resources. 370 |
375 | Badging API 376 | 378 | This specification defines an API that allows installed web applications to set an application badge, which is usually shown alongside the application's icon on the device's home screen or application dock. 379 |
385 | Contact Picker API 386 | 388 | An API to give one-off access to a user’s contact information with full control over the shared data. It's a joint deliverable with the 389 | Devices and Sensors Working 390 | Group 391 |
395 | Screen Wake Lock API 396 | 398 | This document specifies an API that allows web applications to 399 | request a screen wake lock. Under the right conditions, the 400 | screen wake lock prevents the system from turning off a 401 | device's screen. It's a joint deliverable with the 402 | Devices and Sensors Working 403 | Group. 404 |
408 | DeviceOrientation Event Specification 409 | 411 | This specification defines several new DOM events that provide 412 | information about the physical orientation and motion of a hosting 413 | device. It's a joint deliverable with the 414 | Devices and Sensors Working 415 | Group. 416 |
420 | Geolocation API 421 | 423 | The Geolocation API provides access to geographical location information 424 | associated with the hosting device. It's a joint deliverable with the 425 | Devices and Sensors Working 426 | Group. 427 |
431 | Application Lifecycle 432 | 434 | This specification defines methods and actions — such as acquisition, updating and removal — related to the overall lifecycle management for web applications. 435 |
438 |
439 |
440 |

441 | WICG specifications 442 |

443 |

444 | Depending on the WICG progress, including 446 | interest from multiple implementers, the Group may also produce 447 | W3C Recommendation-track documents for the following documents: 448 |

449 | 450 | 451 | 454 | 457 | 458 | 459 | 462 | 466 | 467 | 468 | 472 | 477 | 478 | 479 | 484 | 490 | 491 | 492 | 496 | 503 | 504 |
452 | Specification 453 | 455 | Description 456 |
460 | Cookie Store 461 | 463 | An asynchronous Javascript cookies API for documents and 464 | workers. 465 |
469 | Web Share 470 | Target 471 | 473 | An API that allows websites to declare themselves as web share 474 | targets, which can receive shared content from either the Web 475 | Share API, or system events (e.g., shares from native apps). 476 |
480 | 482 | Haptics 483 | 485 | An API allowing web applications to interface with haptic 486 | actuators, such as vibration motors found on gamepad 487 | controllers, and potentially other devices that provide haptic 488 | feedback. 489 |
493 | User-Agent 494 | Client Hints 495 | 497 | This document defines a set of Client Hints that aim to provide 498 | developers with the ability to perform agent-based content 499 | negotiation when necessary, while avoiding the historical 500 | baggage and passive fingerprinting surface exposed by the 501 | venerable User-Agent HTTP header. 502 |
505 |
506 |
507 |

508 | Other Deliverables 509 |

510 |

511 | Other non-normative documents may be created such as, use case and 512 | requirements documents, implementation reports, and Best Practices 513 | documents, to support web developers when designing applications. 514 |

515 |
516 |
517 |

518 | Timeline 519 |

520 |

521 | All specifications produced by the WebApps Working Group are 522 | expected to progress during this charter period. The charter does 523 | not include a detailed timeline for each specification because such 524 | information is speculative and easily becomes inaccurate. However, 525 | a rough estimation of completion is available in the detailed list of Deliverables when 527 | possible. 528 |

529 |

530 | The Working Group home 531 | page will link to a more comprehensive page with detailed 532 | status and estimated completion time for each specification. 533 |

534 |

535 | Note that the WICG Specifications, if 536 | adopted, have an estimated time of completion of 2 years. 537 |

538 |
539 |
540 | 541 |
542 |

Success Criteria

543 | 544 | 545 |

In order to advance to 546 | Proposed Recommendation, each normative specification is expected to have 547 | at least two independent interoperable 548 | implementations of every feature defined in the specification, where 549 | interoperability can be verified by passing open test suites, and two or 550 | more implementations interoperating with each other. In order to advance to 551 | Proposed Recommendation, each normative specification must have an open 552 | test suite of every feature defined in the specification.

553 |

There should be testing plans for each specification, starting from the earliest drafts.

554 |

Each specification must have an accompanying test suite, which is 555 | ideally developed in parallel to the specification. The test suite 556 | will be used to produce an implementation report before the 557 | specification transitions to Proposed 558 | Recommendation. 559 |

560 | 561 | 562 |

Each specification should contain sections detailing all known security and privacy implications for implementers, Web authors, and end users.

563 |

564 | Each specification should contain a section on accessibility that describes the benefits and impacts, including ways specification features can be used to address them, and recommendations for maximising accessibility in implementations.

565 | 566 | 567 |

This Working Group expects to follow the 568 | TAG Web Platform Design Principles and W3C TAG Ethical Web Principles. 569 |

570 | 571 |
572 | 573 |
574 |

Coordination

575 |

For all specifications, this Working Group will seek horizontal review for 576 | accessibility, internationalization, privacy, and security with the relevant Working and 577 | Interest Groups, and with the TAG. 578 | Invitation for review must be issued during each major standards-track document transition, including 579 | FPWD. The 580 | Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of 581 | each specification. The Working Group is advised to seek a review at least 3 months before first entering 582 | CR and is encouraged 583 | to proactively notify the horizontal review groups when major changes occur in a specification following a review.

584 | 585 |

Additional technical coordination with the following Groups will be made, per the W3C Process Document:

586 | 587 |
588 |

W3C Groups

589 |

590 | The work of the WebApps Working Group touches on the work of many 591 | other W3C Working and Interest 592 | Groups. Where appropriate, the WebApps Working Group will 593 | coordinate with the relevant Working or Interest Groups, per the 594 | W3C 595 | Process. 596 |

597 |
598 |
599 | Devices and Sensors Working Group 600 |
601 |
602 | The Web Application Working Group will coordinate with the Devices and Sensors Working Group regarding the Contact Picker API, the Screen Wake Lock API, the DeviceOrientation Event Specification and the Geolocation API. 603 |
604 |
605 |
606 | 607 |
608 |

External Organizations

609 |

610 | The WebApps Working Group may also coordinate with the following 611 | organizations: 612 |

613 |
614 |
615 | 617 | ECMA TC39 618 |
619 |
620 | For co-ordination on topics relating to JavaScript. 621 |
622 |
623 | Internet Engineering Task Force 624 | (IETF) 625 |
626 |
627 | For co-ordination on topics relating to internet protocols. 628 |
629 |
630 | Web Hypertext Application 631 | Technology Working Group (WHATWG) 632 |
633 |
634 | For co-ordination on topics relating to the web platform. 635 |
636 |
637 |
638 |
639 | 640 | 641 | 642 |
643 |

644 | Participation 645 |

646 |

647 | To be successful, this Working Group is expected to have 6 or more active participants for its duration, including representatives from the key implementors of this specification, and active Editors and Test Leads for each specification. The Chairs, specification Editors, and Test Leads are expected to contribute half of a working day per week towards the Working Group. There is no minimum requirement for other Participants. 648 |

649 |

650 | The group encourages questions, comments and issues on its public mailing lists and document repositories, as described in Communication. 651 |

652 |

653 | The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy. 654 |

655 |

Participants in the group are required (by the W3C Process) to follow the 656 | W3C Code of Ethics and Professional Conduct.

657 |
658 |
659 |

660 | Working mode 661 |

662 |

663 | The Chairs and Editors will assess support from web platform 664 | implementers or web application or framework developers to ensure that 665 | substantial changes are supported by more than a single member before 666 | adoption. 667 |

668 |

669 | Moreover, at least two web platform implementers must support a 670 | substantive change before it can be made to a specification. This is 671 | enforced by a pull request template on GitHub, which Editors must fill 672 | out as a public record before a substantive contribution can be 673 | merged. The template will require implementers to give public support 674 | for a change/fix/feature and, where possible, provide a link to a 675 | public bug tracker for an implementation. 676 |

677 |
678 | 679 |
680 |

681 | Communication 682 |

683 |

684 | Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed in public repositories and may permit direct public contribution requests. 685 | The meetings themselves are not open to public participation, however. 686 |

687 |

688 | Information about the group (including details about deliverables, issues, actions, status, participants, and meetings) will be available from the Web Applications Working Group home page. 689 |

690 |

691 | Most Web Applications Working Group teleconferences will focus on discussion of particular specifications, and will be conducted on an as-needed basis. 692 |

693 |

694 | This group primarily conducts its technical work on the public mailing list public-webapps@w3.org (archive), and on GitHub issues. 695 | The public is invited to review, discuss and contribute to this work. 696 |

697 |

698 | The group may use a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and members of the group, for member-only discussions in special cases when a participant requests such a discussion. 699 |

700 |
701 | 702 | 703 | 704 |
705 |

706 | Decision Policy 707 |

708 |

709 | This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 5.2.1, Consensus). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.

710 |

711 | However, if a decision is necessary for timely progress and consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote and record a decision along with any objections. 712 |

713 |

714 | To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. 715 | 716 | A call for consensus (CfC) will be issued for all resolutions (for example, via email, GitHub issue or web-based survey), with a response period from one week to 10 working days, depending on the chair's evaluation of the group consensus on the issue. 717 | 718 | If no objections are raised by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group. 719 |

720 |

721 | All decisions made by the group should be considered resolved unless and until new information becomes available or unless reopened at the discretion of the Chairs. 722 |

723 |

724 | This charter is written in accordance with the W3C Process Document (Section 5.2.3, Deciding by Vote) and includes no voting procedures beyond what the Process Document requires. 725 |

726 |
727 | 728 | 729 | 730 |
731 |

732 | Patent Policy 733 |

734 |

735 | This Working Group operates under the W3C Patent Policy (Version of 15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Web specifications that can be implemented, according to this policy, on a Royalty-Free basis. 736 | 737 | For more information about disclosure obligations for this group, please see the licensing information. 738 |

739 | 740 |
741 |

Licensing

742 |

This Working Group will use the W3C Software and Document license for all its deliverables.

743 |
744 | 745 | 746 | 747 |
748 |

749 | About this Charter 750 |

751 |

752 | This charter has been created according to section 3.4 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence. 753 |

754 | 755 |
756 |

757 | Charter History 758 |

759 |

The following table lists details of all changes from the initial charter, per the W3C Process Document (section 4.3, Advisory Committee Review of a Charter):

760 | 761 | 762 | 763 | 764 | 767 | 770 | 773 | 776 | 777 | 778 | 781 | 784 | 787 | 790 | 791 | 792 | 795 | 798 | 801 | 804 | 805 | 806 | 809 | 812 | 815 | 818 | 819 | 820 | 823 | 826 | 829 | 841 | 842 | 843 | 846 | 849 | 852 | 862 | 863 | 864 | 867 | 870 | 873 | 879 | 880 | 881 | 902 | 903 |
765 | Charter Period 766 | 768 | Start Date 769 | 771 | End Date 772 | 774 | Changes 775 |
779 | Initial Charter 780 | 782 | 14 May 2019 783 | 785 | 31 May 2021 786 | 788 | none 789 |
793 | Rechartered 794 | 796 | 15 December 2020 797 | 799 | 31 May 2021 800 | 802 | New Patent Policy 803 |
807 | Charter Extension 808 | 810 | 1 June 2021 811 | 813 | 30 April 2022 814 | 816 | none 817 |
821 | Rechartered 822 | 824 | 14 April 2022 825 | 827 | 14 April 2024 828 | 830 |
    831 |
  • Stopped Working on the HTML Accessibility API Mappings 832 | (AAM) spec; 833 |
  • 834 |
  • Remove Clipboard API and Events, ContentEditable, 835 | Selection API, and Input Events from the Deliverables. 836 |
  • 837 |
  • Add WebIDL to the charter as a possible Deliverable. 838 |
  • 839 |
840 |
844 | Rechartered 845 | 847 | 21 February 2024 848 | 850 | 28 February 2026 851 | 853 |
    854 |
  • Add the Screen Wake Lock API, the DeviceOrientation Event Specification, the Geolocation API as joint deliverables with the W3C Devices and Sensors Working Group. 855 |
  • 856 |
  • Drop the WebIDL spec. 857 |
  • 858 |
  • The ARIA in HTML spec has been moved to the ARIA Working Group. 859 |
  • 860 |
861 |
865 | Rechartered 866 | 868 | [dd monthname yyyy] 869 | 871 | [dd monthname yyyy] 872 | 874 |
    875 |
  • The Intersection Observer spec has been moved to the CSS Working Group.
  • 876 |
  • Add Service Workers to the charter as a Deliverable.
  • 877 |
878 |
904 |

905 | Note: Starting from 16 July 2020, the team contacts of the WebApps 906 | Working Group reduced from Yves Lafon (0.3 FTE), Xiaoqian Wu (0.2 907 | FTE) to Xiaoqian Wu (0.1 FTE). Starting from 5 November 2020, 908 | Marcos Cáceres re-appointed as co-chair after affiliation change. Starting from 11 March 2025, Diego González (Microsoft) and Marijn Kruisselbrink (Google) appointed as co-chairs of the group. We made non-substantive modifications to this charter to reflect these changes. 909 |

910 |
911 |
912 |

913 | History of this WG 914 |

915 |

916 | The WebApps Working Group was a predecessor to the Web Platform Working Group 918 | (which remains active to work on specifications that are pertinent 919 | to the discussions relating to a collaboration agreement between 920 | the W3C and the WHATWG). The remaining specifications have been 921 | transferred from the Web Platform Working Group to the WebApps 922 | Working Group, so that progress can continue to be made on those 923 | specifications while the W3C and WHATWG negotiations are ongoing. 924 |

925 |

926 | In addition, specifications that have been successfully incubated 927 | in the Web Platform 928 | Incubator Community Group (WICG) have been transferred to the 929 | WebApps Working Group. 930 |

931 |
932 |
933 | 934 |
935 |

936 | Detailed list of Deliverables 937 |

938 |

The following is the list of non-retired specifications produced by the 939 | Web Applications Working Group under the W3C Patent Policy. 940 |

941 | 942 |
943 |
Web Locks API
944 |
945 |

This document defines a web platform API that allows script to asynchronously acquire a lock over a resource, hold it while work is performed, then release it. While held, no other script in the origin can acquire a lock over the same resource. This allows contexts (windows, workers) within a web application to coordinate the usage of resources.

946 | 947 |

Draft state: Working Draft

948 | 949 |

Expected completion: CR - Q2 2024; REC - Q4 2024

950 | 951 |

Adopted Draft: Web Locks API, https://www.w3.org/TR/2023/WD-web-locks-20230105/, 5 January 2023

952 | 953 |

Exclusion Draft: Web Locks API, https://www.w3.org/TR/2023/WD-web-locks-20230105/, 5 January 2023, Exclusion Draft began on 05 Jan 2023; ended on 04 June 2023.

954 | 955 |

Exclusion Draft Charter: https://www.w3.org/2022/04/webapps-wg-charter.html

956 | 957 |
Contact Picker API
958 |
959 |

An API to give one-off access to a user’s contact information with full control over the shared data.

960 | 961 |

Draft state: Working Draft

962 | 963 |

Expected completion: CR - Q4 2024

964 | 965 |

Adopted Draft: Contact Picker API9, https://www.w3.org/TR/2023/WD-contact-picker-20231013/, 13 October 2023

966 | 967 |

Exclusion Draft: Contact Picker API, https://www.w3.org/TR/2022/WD-contact-picker-1-20221220/, 20 December 2022, Exclusion Draft began on 20 Dec 2022; ended on 19 May 2023.

968 | 969 |

Exclusion Draft Charter: https://www.w3.org/2022/04/webapps-wg-charter.html

970 | 971 |
Badging API
972 |
973 |

974 | This specification defines an API that allows installed web applications to set an application badge, which is usually shown 975 | alongside the application's icon on the device's home screen or 976 | application dock. 977 |

978 | 979 |

Draft state: Working Draft

980 | 981 |

Expected completion: CR - Q2 2024; REC - Q4 2024

982 | 983 |

Adopted Draft: Badging API, https://www.w3.org/TR/2023/WD-badging-20230503/, 03 May 2023

984 | 985 |

Exclusion Draft: Badging API, https://www.w3.org/TR/2023/WD-badging-20230406/, 06 April 2023, Exclusion Draft began on 06 Apr 2023; ended on 03 September 2023.

986 | 987 |

Exclusion Draft Charter: https://www.w3.org/2022/04/webapps-wg-charter.html

988 | 989 |
File API
990 |
991 |

This specification provides an API for representing file objects in web applications, as well as programmatically selecting them and accessing their data. This includes:

992 |
    993 |
  • 994 |

    A FileList interface, which represents an array of individually selected files from the underlying system. The user interface for selection can be invoked via <input type="file">, i.e. when the input element is in the File Upload state [HTML].

    995 |
  • 996 |

    A Blob interface, which represents immutable raw binary data, and allows access to ranges of bytes within the Blob object as a separate Blob.

    997 |
  • 998 |

    A File interface, which includes readonly informational attributes about a file such as its name and the date of the last modification (on disk) of the file.

    999 |
  • 1000 |

    A FileReader interface, which provides methods to read a File or a Blob, and an event model to obtain the results of these reads.

    1001 |
  • 1002 |

    A URL scheme for use with binary data such as files, so that they can be referenced within web applications.

    1003 |
1004 |

Additionally, this specification defines objects to be used within threaded web applications for the synchronous reading of files.

1005 |

§ 10 Requirements and Use Cases covers the motivation behind this specification.

1006 |

This API is designed to be used in conjunction with other APIs and elements on the web platform, notably: XMLHttpRequest (e.g. with an overloaded send() method for File or Blob arguments), postMessage(), DataTransfer (part of the drag and drop API defined in [HTML]) 1007 | and Web Workers. 1008 | Additionally, it should be possible to programmatically obtain a list of files from the input element 1009 | when it is in the File Upload state [HTML]. 1010 | These kinds of behaviors are defined in the appropriate affiliated specifications.

1011 | 1012 |

Draft state: Working Draft

1013 | 1014 |

Expected completion: CR - Q2 2024; REC - Q3 2024

1015 | 1016 |

Adopted Draft: File API, https://www.w3.org/TR/2023/WD-FileAPI-20230206/, 6 February 2023

1017 | 1018 |

Exclusion Draft: File API, https://www.w3.org/TR/2013/WD-FileAPI-20130912/, 12 September 2013, Exclusion Draft began on 13 Sep 2013; ended on 11 November 2013.

1019 | 1020 |

Exclusion Draft Charter: https://www.w3.org/2012/webapps/charter/

1021 | 1022 |
Gamepad
1023 |
1024 |

The Gamepad specification defines a low-level interface that represents gamepad devices.

1025 | 1026 |

Draft state: Working Draft

1027 | 1028 |

Expected completion: CR - Q1 2024; REC - Q2 2024

1029 | 1030 |

Adopted Draft: Gamepad, https://www.w3.org/TR/2023/WD-gamepad-20231005/, 05 October 2023

1031 | 1032 |

Exclusion Draft: Gamepad, https://www.w3.org/TR/2012/WD-gamepad-20120529/, 29 May 2012, Exclusion Draft began on 29 May 2012; ended on 26 October 2012.

1033 | 1034 |

Exclusion Draft Charter: https://www.w3.org/2012/webapps/charter/

1035 | 1036 |
Image Resource
1037 |
1038 |

This document defines the concept of an "image resource" and a corresponding WebIDL ImageResource dictionary. Web APIs can use the ImageResource dictionary to represent an image resource in contexts where an HTMLImageElement is not suitable or available (e.g., in a Worker).

1039 | 1040 |

Draft state: Working Draft

1041 | 1042 |

Expected completion: CR - Q2 2024; REC - Q3 2024

1043 | 1044 |

Adopted Draft: Image Resource, https://www.w3.org/TR/2021/WD-image-resource-20210604/, 04 June 2021

1045 | 1046 |

Exclusion Draft: Image Resource, https://www.w3.org/TR/2020/WD-image-resource-20200507/, 07 May 2020, Exclusion Draft began on 07 May 2020; ended on 04 October 2020.

1047 | 1048 |

Exclusion Draft Charter: https://www.w3.org/2020/12/webapps-wg-charter.html

1049 | 1050 |
Indexed Database API 3.0
1051 |
1052 |

This document defines APIs for a database of records holding simple values and hierarchical objects. Each record consists of a key and some value. Moreover, the database maintains indexes over records it stores. An application developer directly uses an API to locate records either by their key or by using an index. A query language can be layered on this API. An indexed database can be implemented using a persistent B-tree data structure.

1053 | 1054 |

Draft state: Working Draft

1055 | 1056 |

Expected completion: CR - Q2 2024; REC - Q4 2024

1057 | 1058 |

Adopted Draft: Indexed Database API 3.0, https://www.w3.org/TR/2023/WD-IndexedDB-3-20231212/, 12 December 2023

1059 | 1060 |

Exclusion Draft: Indexed Database API 3.0, https://www.w3.org/TR/2021/WD-IndexedDB-3-20210311/, 11 March 2021, Exclusion Draft began on 11 Mar 2021; ended on 08 August 2021.

1061 | 1062 |

Exclusion Draft Charter: https://www.w3.org/2020/12/webapps-wg-charter.html

1063 | 1064 |
Service Workers
1065 |
1066 |

The core of this specification is a worker that wakes to receive events. This provides an event destination that can be used when other destinations would be inappropriate, or no other destination exists.

1067 |

For example, to allow the developer to decide how a page should be fetched, an event needs to dispatch potentially before any other execution contexts exist for that origin. To react to a push message, or completion of a persistent download, the context that originally registered interest may no longer exist. In these cases, the service worker is the ideal event destination.

1068 |

The core of this specification is a worker that wakes to receive events. This provides an event destination that can be used when other destinations would be inappropriate, or no other destination exists.

1069 | 1070 |

Draft state: Candidate Recommendation Draft

1071 | 1072 |

Expected completion: REC - Q4 2025

1073 | 1074 |

Adopted Draft: Service Workers, https://www.w3.org/TR/2025/CRD-service-workers-20250306/, 2025-03-06

1075 | 1076 |

Exclusion Draft: Service Workers, https://www.w3.org/TR/2019/CR-service-workers-1-20191119/, 2019-11-19, Exclusion Draft began on 2019-11-19 and ended on 2020-01-18.

1077 | 1078 |

Exclusion Draft Charter: https://www.w3.org/2017/08/sw-charter.html

1079 | 1080 |
Pointer Lock 2.0
1081 |
1082 |

This specification defines an API that provides scripted access to raw mouse movement data while locking the target of mouse events to a single element and removing the cursor from view. This is an essential input mode for certain classes of applications, especially first person perspective 3D applications and 3D modeling software.

1083 | 1084 |

Draft state: Working Draft

1085 | 1086 |

Expected completion: CR - Q3 2024; REC - Q4 2024

1087 | 1088 |

Adopted Draft: Pointer Lock 2.0, https://www.w3.org/TR/2022/WD-pointerlock-2-20220708/, 08 July 2022

1089 | 1090 |

Exclusion Draft: Pointer Lock 2.0, https://www.w3.org/TR/2016/WD-pointerlock-2-20161122/, 22 November 2016, Exclusion Draft began on 22 Nov 2016; ended on 21 April 2017.

1091 | 1092 |

Exclusion Draft Charter: https://www.w3.org/2015/10/webplatform-charter.html

1093 | 1094 |
Push API
1095 |
1096 |

The Push API enables sending of a push message to a web application via a push service. An application server can send a push message at any time, even when a web application or user agent is inactive. The push service ensures reliable and efficient delivery to the user agent. Push messages are delivered to a Service Worker that runs in the origin of the web application, which can use the information in the message to update local state or display a notification to the user.

1097 | 1098 |

This specification is designed for use with the web push protocol, which describes how an application server or user agent interacts with a push service.

1099 | 1100 |

Draft state: Working Draft

1101 | 1102 |

Expected completion: CR - Q2 2024; REC - Q4 2024

1103 | 1104 |

Adopted Draft: Push API, https://www.w3.org/TR/2023/WD-push-api-20231211/, 11 December 2023

1105 | 1106 |

Exclusion Draft: Push API, https://www.w3.org/TR/2012/WD-push-api-20121018/, 18 October 2012, Exclusion Draft began on 18 Oct 2012; ended on 17 March 2013.

1107 | 1108 |

Exclusion Draft Charter: https://www.w3.org/2012/webapps/charter/

1109 | 1110 |
Screen Orientation
1111 |
1112 |

1113 | The Screen Orientation specification standardizes the 1114 | types and angles for a device's screen orientation, and provides a 1115 | means for locking and unlocking it. The API, defined by this 1116 | specification, exposes the current type and angle of the device's 1117 | screen orientation, and dispatches events when it changes. This enables 1118 | web applications to programmatically adapt the user experience for 1119 | multiple screen orientations, working alongside CSS. The API also 1120 | allows for the screen orientation to be locked under certain 1121 | preconditions. This is particularly useful for applications such as 1122 | computer games, where users physically rotate the device, but the 1123 | screen orientation itself should not change. 1124 |

1125 | 1126 |

Draft state: Working Draft

1127 | 1128 |

Expected completion: REC - Q4 2024

1129 | 1130 |

Adopted Draft: Screen Orientation, https://www.w3.org/TR/2023/WD-screen-orientation-20230809/, 09 August 2023

1131 | 1132 |

Exclusion Draft: The Screen Orientation API, https://www.w3.org/TR/2012/WD-screen-orientation-20120522/, 22 May 2012, Exclusion Draft began on 22 May 2012; ended on 19 October 2012.

1133 | 1134 |

Exclusion Draft Charter: https://www.w3.org/2012/webapps/charter/

1135 | 1136 |
Web Application Manifest
1137 |
1138 |

This specification defines a JSON-based file format that provides developers with a centralized place to put metadata associated with a web application. This metadata includes, but is not limited to, the web application's name, links to icons, as well as the preferred URL to open when a user launches the web application. The manifest also allows developers to declare a default screen orientation for their web application, as well as providing the ability to set the display mode for the application (e.g., in fullscreen). Additionally, the manifest allows a developer to "scope" a web application to a URL. This restricts the URLs to which the manifest is applied and provides a means to "deep link" into a web application from other applications.

1139 | 1140 |

Using this metadata, user agents can provide developers with means to create user experiences that are more comparable to that of a native application.

1141 | 1142 |

Draft state: Working Draft

1143 | 1144 |

Expected completion: CR - Q1 2024; REC - Q3 2024

1145 | 1146 |

Adopted Draft: Web Application Manifest, https://www.w3.org/TR/2023/WD-appmanifest-20231129/, 29 November 2023

1147 | 1148 |

Exclusion Draft: Manifest for web apps and bookmarks, https://www.w3.org/TR/2013/WD-appmanifest-20131217/, 17 December 2013, Exclusion Draft began on 17 Dec 2013; ended on 16 May 2014.

1149 | 1150 |

Exclusion Draft Charter: https://www.w3.org/2012/webapps/charter/

1151 | 1152 |
UI Events
1153 |
1154 |

This specification defines UI Events which extend the DOM Event objects defined in [DOM]. UI Events are those typically implemented by visual user agents for handling user interaction such as mouse and keyboard input.

1155 | 1156 |

Draft state: Working Draft

1157 | 1158 |

Expected completion: CR - Q4 2024; REC - Q4 2025

1159 | 1160 |

Adopted Draft: UI Events, https://www.w3.org/TR/2023/WD-uievents-20231204/, 4 December 2023

1161 | 1162 |

Exclusion Draft: Document Object Model (DOM) Level 3 Events Specification, https://www.w3.org/TR/2012/WD-DOM-Level-3-Events-20120906/, 06 September 2012, Exclusion Draft began on 6 Sep 2012; ended on 5 November 2012.

1163 | 1164 |

Exclusion Draft Charter: https://www.w3.org/2012/webapps/charter/

1165 | 1166 |
UI Events KeyboardEvent code Values
1167 |
1168 |

This specification defines the values for the KeyboardEvent.code attribute, which is defined as part of the UI Events Specification [UIEvents]. The code value contains information about the key event that can be used to identify the physical key being pressed by the user.

1169 | 1170 |

Draft state: Candidate Recommendation Snapshot

1171 | 1172 |

Expected completion: CR - Q2 2024; REC - Q4 2024

1173 | 1174 |

Adopted Draft: UI Events KeyboardEvent code Values, https://www.w3.org/TR/2023/CR-uievents-code-20230530/, 30 May 2023

1175 | 1176 |

Exclusion Draft: UI Events KeyboardEvent code Values, https://www.w3.org/TR/2023/CR-uievents-code-20230530/, 30 May 2023, Exclusion Draft began on 30 May 2023; will end on 29 July 2023.

1177 | 1178 |

Exclusion Draft Charter: https://www.w3.org/2022/04/webapps-wg-charter.html

1179 | 1180 |
UI Events KeyboardEvent key Values
1181 |
1182 |

This specification defines the key attribute values that must be used for KeyboardEvent's key attribute, which is defined as part of the UI Events Specification [UIEvents].

1183 | 1184 |

Draft state: Candidate Recommendation Snapshot

1185 | 1186 |

Expected completion: CR - Q2 2024; REC - Q4 2024

1187 | 1188 |

Adopted Draft: UI Events KeyboardEvent key Values, https://www.w3.org/TR/2023/CR-uievents-key-20230530/, 30 May 2023

1189 | 1190 |

Exclusion Draft: UI Events KeyboardEvent key Values, https://www.w3.org/TR/2023/CR-uievents-key-20230530/, 30 May 2023, Exclusion Draft began on 30 May 2023; will end on 29 July 2023.

1191 | 1192 |

Exclusion Draft Charter: https://www.w3.org/2022/04/webapps-wg-charter.html

1193 | 1194 | 1195 |
Web Share API
1196 |
1197 |

This specification defines an API for sharing text, links and other content to an arbitrary destination of the user's choice.

1198 |

The available share targets are not specified here; they are provided by the user agent. They could, for example, be apps, websites or contacts.

1199 | 1200 |

Draft state: W3C Recommendation

1201 | 1202 |

Expected completion: REC - 2023; Future updates to this Recommendation may incorporate new features.

1203 | 1204 |

Adopted Draft: Web Share API, https://www.w3.org/TR/2023/REC-web-share-20230530/, 30 May 2023

1205 | 1206 |

Exclusion Draft: Web Share API, https://www.w3.org/TR/2022/CR-web-share-20220830/, 30 August 2022, Exclusion Draft began on 30 Aug 2022; ended on 29 October 2022.

1207 | 1208 |

Exclusion Draft Charter: https://www.w3.org/2022/04/webapps-wg-charter.html

1209 | 1210 |
Screen Wake Lock API
1211 |
1212 |

This document specifies an API that allows web applications to request a screen wake lock. Under the right conditions, and if allowed, the screen wake lock prevents the system from turning off a device's screen.

1213 | 1214 |

Draft state: Working Draft

1215 | 1216 |

Expected completion: REC - Q4 2024

1217 | 1218 |

Adopted Draft: Screen Wake Lock API, https://www.w3.org/TR/2023/WD-screen-wake-lock-20231107/, 07 November 2023

1219 | 1220 |

Exclusion Draft: Wake Lock API, https://www.w3.org/TR/2017/CR-wake-lock-20171214/, 14 December 2017, Exclusion Draft began on 14 Dec 2017; ended on 12 February 2018.

1221 | 1222 |

Exclusion Draft Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

1223 |
1224 | 1225 |
DeviceOrientation Event Specification
1226 |
1227 |

This specification defines several new DOM events that provide information about the physical orientation and motion of a hosting device.

1228 | 1229 |

Draft state: Working Draft

1230 | 1231 |

Expected completion: REC - Q4 2024

1232 | 1233 |

Adopted Draft: DeviceOrientation Event Specification, https://www.w3.org/TR/2024/WD-orientation-event-20240122/, 22 January 2024

1234 | 1235 |

Exclusion Draft: DeviceOrientation Event Specification, https://www.w3.org/TR/2016/CR-orientation-event-20160818/, 18 August 2016, Exclusion Draft began on 18 Aug 2016; ended on 17 October 2016.

1236 | 1237 |

Exclusion Draft Charter: https://www.w3.org/2014/04/geo-charter.html

1238 |
1239 | 1240 |
Geolocation API
1241 |
1242 |

The Geolocation API provides access to geographical location information associated with the hosting device.

1243 | 1244 |

Draft state: W3C Recommendation

1245 | 1246 |

Expected completion: REC - 2022

1247 | 1248 |

Adopted Draft: Geolocation API, https://www.w3.org/TR/2022/REC-geolocation-20220901/, 01 September 2022

1249 | 1250 |

Exclusion Draft: Geolocation API, https://www.w3.org/TR/2022/CR-geolocation-20220217/, 17 February 2022, Exclusion Draft began on 17 Feb 2022; ended on 18 April 2022.

1251 | 1252 |

Exclusion Draft Charter: https://www.w3.org/2020/11/das-wg-charter.html

1253 |
1254 |
1255 | 1256 |

Notes

1257 |

List of Notes produced by the Web Applications Working Group.

1258 | 1278 |
1279 |
1280 | 1281 |
1282 | 1283 | 1297 | 1298 | 1299 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webappswg", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "webappswg", 9 | "version": "1.0.0", 10 | "license": "W3C", 11 | "dependencies": { 12 | "serve": "^14.2.0" 13 | } 14 | }, 15 | "node_modules/@zeit/schemas": { 16 | "version": "2.29.0", 17 | "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", 18 | "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==" 19 | }, 20 | "node_modules/accepts": { 21 | "version": "1.3.8", 22 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 23 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 24 | "dependencies": { 25 | "mime-types": "~2.1.34", 26 | "negotiator": "0.6.3" 27 | }, 28 | "engines": { 29 | "node": ">= 0.6" 30 | } 31 | }, 32 | "node_modules/ajv": { 33 | "version": "8.11.0", 34 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", 35 | "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", 36 | "dependencies": { 37 | "fast-deep-equal": "^3.1.1", 38 | "json-schema-traverse": "^1.0.0", 39 | "require-from-string": "^2.0.2", 40 | "uri-js": "^4.2.2" 41 | }, 42 | "funding": { 43 | "type": "github", 44 | "url": "https://github.com/sponsors/epoberezkin" 45 | } 46 | }, 47 | "node_modules/ansi-align": { 48 | "version": "3.0.1", 49 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", 50 | "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 51 | "dependencies": { 52 | "string-width": "^4.1.0" 53 | } 54 | }, 55 | "node_modules/ansi-align/node_modules/ansi-regex": { 56 | "version": "5.0.1", 57 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 58 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 59 | "engines": { 60 | "node": ">=8" 61 | } 62 | }, 63 | "node_modules/ansi-align/node_modules/emoji-regex": { 64 | "version": "8.0.0", 65 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 66 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 67 | }, 68 | "node_modules/ansi-align/node_modules/string-width": { 69 | "version": "4.2.3", 70 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 71 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 72 | "dependencies": { 73 | "emoji-regex": "^8.0.0", 74 | "is-fullwidth-code-point": "^3.0.0", 75 | "strip-ansi": "^6.0.1" 76 | }, 77 | "engines": { 78 | "node": ">=8" 79 | } 80 | }, 81 | "node_modules/ansi-align/node_modules/strip-ansi": { 82 | "version": "6.0.1", 83 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 84 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 85 | "dependencies": { 86 | "ansi-regex": "^5.0.1" 87 | }, 88 | "engines": { 89 | "node": ">=8" 90 | } 91 | }, 92 | "node_modules/ansi-regex": { 93 | "version": "6.0.1", 94 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 95 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 96 | "engines": { 97 | "node": ">=12" 98 | }, 99 | "funding": { 100 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 101 | } 102 | }, 103 | "node_modules/ansi-styles": { 104 | "version": "6.2.1", 105 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 106 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 107 | "engines": { 108 | "node": ">=12" 109 | }, 110 | "funding": { 111 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 112 | } 113 | }, 114 | "node_modules/arch": { 115 | "version": "2.2.0", 116 | "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", 117 | "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", 118 | "funding": [ 119 | { 120 | "type": "github", 121 | "url": "https://github.com/sponsors/feross" 122 | }, 123 | { 124 | "type": "patreon", 125 | "url": "https://www.patreon.com/feross" 126 | }, 127 | { 128 | "type": "consulting", 129 | "url": "https://feross.org/support" 130 | } 131 | ] 132 | }, 133 | "node_modules/arg": { 134 | "version": "5.0.2", 135 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 136 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 137 | }, 138 | "node_modules/balanced-match": { 139 | "version": "1.0.2", 140 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 141 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 142 | }, 143 | "node_modules/boxen": { 144 | "version": "7.0.0", 145 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", 146 | "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", 147 | "dependencies": { 148 | "ansi-align": "^3.0.1", 149 | "camelcase": "^7.0.0", 150 | "chalk": "^5.0.1", 151 | "cli-boxes": "^3.0.0", 152 | "string-width": "^5.1.2", 153 | "type-fest": "^2.13.0", 154 | "widest-line": "^4.0.1", 155 | "wrap-ansi": "^8.0.1" 156 | }, 157 | "engines": { 158 | "node": ">=14.16" 159 | }, 160 | "funding": { 161 | "url": "https://github.com/sponsors/sindresorhus" 162 | } 163 | }, 164 | "node_modules/brace-expansion": { 165 | "version": "1.1.11", 166 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 167 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 168 | "dependencies": { 169 | "balanced-match": "^1.0.0", 170 | "concat-map": "0.0.1" 171 | } 172 | }, 173 | "node_modules/bytes": { 174 | "version": "3.0.0", 175 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 176 | "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", 177 | "engines": { 178 | "node": ">= 0.8" 179 | } 180 | }, 181 | "node_modules/camelcase": { 182 | "version": "7.0.1", 183 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", 184 | "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", 185 | "engines": { 186 | "node": ">=14.16" 187 | }, 188 | "funding": { 189 | "url": "https://github.com/sponsors/sindresorhus" 190 | } 191 | }, 192 | "node_modules/chalk": { 193 | "version": "5.0.1", 194 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", 195 | "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", 196 | "engines": { 197 | "node": "^12.17.0 || ^14.13 || >=16.0.0" 198 | }, 199 | "funding": { 200 | "url": "https://github.com/chalk/chalk?sponsor=1" 201 | } 202 | }, 203 | "node_modules/chalk-template": { 204 | "version": "0.4.0", 205 | "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", 206 | "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", 207 | "dependencies": { 208 | "chalk": "^4.1.2" 209 | }, 210 | "engines": { 211 | "node": ">=12" 212 | }, 213 | "funding": { 214 | "url": "https://github.com/chalk/chalk-template?sponsor=1" 215 | } 216 | }, 217 | "node_modules/chalk-template/node_modules/ansi-styles": { 218 | "version": "4.3.0", 219 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 220 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 221 | "dependencies": { 222 | "color-convert": "^2.0.1" 223 | }, 224 | "engines": { 225 | "node": ">=8" 226 | }, 227 | "funding": { 228 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 229 | } 230 | }, 231 | "node_modules/chalk-template/node_modules/chalk": { 232 | "version": "4.1.2", 233 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 234 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 235 | "dependencies": { 236 | "ansi-styles": "^4.1.0", 237 | "supports-color": "^7.1.0" 238 | }, 239 | "engines": { 240 | "node": ">=10" 241 | }, 242 | "funding": { 243 | "url": "https://github.com/chalk/chalk?sponsor=1" 244 | } 245 | }, 246 | "node_modules/cli-boxes": { 247 | "version": "3.0.0", 248 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", 249 | "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", 250 | "engines": { 251 | "node": ">=10" 252 | }, 253 | "funding": { 254 | "url": "https://github.com/sponsors/sindresorhus" 255 | } 256 | }, 257 | "node_modules/clipboardy": { 258 | "version": "3.0.0", 259 | "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", 260 | "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", 261 | "dependencies": { 262 | "arch": "^2.2.0", 263 | "execa": "^5.1.1", 264 | "is-wsl": "^2.2.0" 265 | }, 266 | "engines": { 267 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 268 | }, 269 | "funding": { 270 | "url": "https://github.com/sponsors/sindresorhus" 271 | } 272 | }, 273 | "node_modules/color-convert": { 274 | "version": "2.0.1", 275 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 276 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 277 | "dependencies": { 278 | "color-name": "~1.1.4" 279 | }, 280 | "engines": { 281 | "node": ">=7.0.0" 282 | } 283 | }, 284 | "node_modules/color-name": { 285 | "version": "1.1.4", 286 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 287 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 288 | }, 289 | "node_modules/compressible": { 290 | "version": "2.0.18", 291 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", 292 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", 293 | "dependencies": { 294 | "mime-db": ">= 1.43.0 < 2" 295 | }, 296 | "engines": { 297 | "node": ">= 0.6" 298 | } 299 | }, 300 | "node_modules/compression": { 301 | "version": "1.7.4", 302 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", 303 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", 304 | "dependencies": { 305 | "accepts": "~1.3.5", 306 | "bytes": "3.0.0", 307 | "compressible": "~2.0.16", 308 | "debug": "2.6.9", 309 | "on-headers": "~1.0.2", 310 | "safe-buffer": "5.1.2", 311 | "vary": "~1.1.2" 312 | }, 313 | "engines": { 314 | "node": ">= 0.8.0" 315 | } 316 | }, 317 | "node_modules/concat-map": { 318 | "version": "0.0.1", 319 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 320 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 321 | }, 322 | "node_modules/content-disposition": { 323 | "version": "0.5.2", 324 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 325 | "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", 326 | "engines": { 327 | "node": ">= 0.6" 328 | } 329 | }, 330 | "node_modules/cross-spawn": { 331 | "version": "7.0.6", 332 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 333 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 334 | "dependencies": { 335 | "path-key": "^3.1.0", 336 | "shebang-command": "^2.0.0", 337 | "which": "^2.0.1" 338 | }, 339 | "engines": { 340 | "node": ">= 8" 341 | } 342 | }, 343 | "node_modules/debug": { 344 | "version": "2.6.9", 345 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 346 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 347 | "dependencies": { 348 | "ms": "2.0.0" 349 | } 350 | }, 351 | "node_modules/deep-extend": { 352 | "version": "0.6.0", 353 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 354 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 355 | "engines": { 356 | "node": ">=4.0.0" 357 | } 358 | }, 359 | "node_modules/eastasianwidth": { 360 | "version": "0.2.0", 361 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 362 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 363 | }, 364 | "node_modules/emoji-regex": { 365 | "version": "9.2.2", 366 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 367 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 368 | }, 369 | "node_modules/execa": { 370 | "version": "5.1.1", 371 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 372 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 373 | "dependencies": { 374 | "cross-spawn": "^7.0.3", 375 | "get-stream": "^6.0.0", 376 | "human-signals": "^2.1.0", 377 | "is-stream": "^2.0.0", 378 | "merge-stream": "^2.0.0", 379 | "npm-run-path": "^4.0.1", 380 | "onetime": "^5.1.2", 381 | "signal-exit": "^3.0.3", 382 | "strip-final-newline": "^2.0.0" 383 | }, 384 | "engines": { 385 | "node": ">=10" 386 | }, 387 | "funding": { 388 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 389 | } 390 | }, 391 | "node_modules/fast-deep-equal": { 392 | "version": "3.1.3", 393 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 394 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 395 | }, 396 | "node_modules/fast-url-parser": { 397 | "version": "1.1.3", 398 | "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", 399 | "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", 400 | "dependencies": { 401 | "punycode": "^1.3.2" 402 | } 403 | }, 404 | "node_modules/get-stream": { 405 | "version": "6.0.1", 406 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 407 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 408 | "engines": { 409 | "node": ">=10" 410 | }, 411 | "funding": { 412 | "url": "https://github.com/sponsors/sindresorhus" 413 | } 414 | }, 415 | "node_modules/has-flag": { 416 | "version": "4.0.0", 417 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 418 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 419 | "engines": { 420 | "node": ">=8" 421 | } 422 | }, 423 | "node_modules/human-signals": { 424 | "version": "2.1.0", 425 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 426 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 427 | "engines": { 428 | "node": ">=10.17.0" 429 | } 430 | }, 431 | "node_modules/ini": { 432 | "version": "1.3.8", 433 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 434 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 435 | }, 436 | "node_modules/is-docker": { 437 | "version": "2.2.1", 438 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 439 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", 440 | "bin": { 441 | "is-docker": "cli.js" 442 | }, 443 | "engines": { 444 | "node": ">=8" 445 | }, 446 | "funding": { 447 | "url": "https://github.com/sponsors/sindresorhus" 448 | } 449 | }, 450 | "node_modules/is-fullwidth-code-point": { 451 | "version": "3.0.0", 452 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 453 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 454 | "engines": { 455 | "node": ">=8" 456 | } 457 | }, 458 | "node_modules/is-port-reachable": { 459 | "version": "4.0.0", 460 | "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", 461 | "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", 462 | "engines": { 463 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 464 | }, 465 | "funding": { 466 | "url": "https://github.com/sponsors/sindresorhus" 467 | } 468 | }, 469 | "node_modules/is-stream": { 470 | "version": "2.0.1", 471 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 472 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 473 | "engines": { 474 | "node": ">=8" 475 | }, 476 | "funding": { 477 | "url": "https://github.com/sponsors/sindresorhus" 478 | } 479 | }, 480 | "node_modules/is-wsl": { 481 | "version": "2.2.0", 482 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", 483 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", 484 | "dependencies": { 485 | "is-docker": "^2.0.0" 486 | }, 487 | "engines": { 488 | "node": ">=8" 489 | } 490 | }, 491 | "node_modules/isexe": { 492 | "version": "2.0.0", 493 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 494 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 495 | }, 496 | "node_modules/json-schema-traverse": { 497 | "version": "1.0.0", 498 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 499 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 500 | }, 501 | "node_modules/merge-stream": { 502 | "version": "2.0.0", 503 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 504 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 505 | }, 506 | "node_modules/mime-db": { 507 | "version": "1.52.0", 508 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 509 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 510 | "engines": { 511 | "node": ">= 0.6" 512 | } 513 | }, 514 | "node_modules/mime-types": { 515 | "version": "2.1.35", 516 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 517 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 518 | "dependencies": { 519 | "mime-db": "1.52.0" 520 | }, 521 | "engines": { 522 | "node": ">= 0.6" 523 | } 524 | }, 525 | "node_modules/mimic-fn": { 526 | "version": "2.1.0", 527 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 528 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 529 | "engines": { 530 | "node": ">=6" 531 | } 532 | }, 533 | "node_modules/minimatch": { 534 | "version": "3.1.2", 535 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 536 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 537 | "dependencies": { 538 | "brace-expansion": "^1.1.7" 539 | }, 540 | "engines": { 541 | "node": "*" 542 | } 543 | }, 544 | "node_modules/minimist": { 545 | "version": "1.2.8", 546 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 547 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 548 | "funding": { 549 | "url": "https://github.com/sponsors/ljharb" 550 | } 551 | }, 552 | "node_modules/ms": { 553 | "version": "2.0.0", 554 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 555 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 556 | }, 557 | "node_modules/negotiator": { 558 | "version": "0.6.3", 559 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 560 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 561 | "engines": { 562 | "node": ">= 0.6" 563 | } 564 | }, 565 | "node_modules/npm-run-path": { 566 | "version": "4.0.1", 567 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 568 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 569 | "dependencies": { 570 | "path-key": "^3.0.0" 571 | }, 572 | "engines": { 573 | "node": ">=8" 574 | } 575 | }, 576 | "node_modules/on-headers": { 577 | "version": "1.0.2", 578 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 579 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", 580 | "engines": { 581 | "node": ">= 0.8" 582 | } 583 | }, 584 | "node_modules/onetime": { 585 | "version": "5.1.2", 586 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 587 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 588 | "dependencies": { 589 | "mimic-fn": "^2.1.0" 590 | }, 591 | "engines": { 592 | "node": ">=6" 593 | }, 594 | "funding": { 595 | "url": "https://github.com/sponsors/sindresorhus" 596 | } 597 | }, 598 | "node_modules/path-is-inside": { 599 | "version": "1.0.2", 600 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 601 | "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" 602 | }, 603 | "node_modules/path-key": { 604 | "version": "3.1.1", 605 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 606 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 607 | "engines": { 608 | "node": ">=8" 609 | } 610 | }, 611 | "node_modules/path-to-regexp": { 612 | "version": "2.2.1", 613 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", 614 | "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" 615 | }, 616 | "node_modules/punycode": { 617 | "version": "1.4.1", 618 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 619 | "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" 620 | }, 621 | "node_modules/range-parser": { 622 | "version": "1.2.0", 623 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 624 | "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", 625 | "engines": { 626 | "node": ">= 0.6" 627 | } 628 | }, 629 | "node_modules/rc": { 630 | "version": "1.2.8", 631 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 632 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 633 | "dependencies": { 634 | "deep-extend": "^0.6.0", 635 | "ini": "~1.3.0", 636 | "minimist": "^1.2.0", 637 | "strip-json-comments": "~2.0.1" 638 | }, 639 | "bin": { 640 | "rc": "cli.js" 641 | } 642 | }, 643 | "node_modules/registry-auth-token": { 644 | "version": "3.3.2", 645 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", 646 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", 647 | "dependencies": { 648 | "rc": "^1.1.6", 649 | "safe-buffer": "^5.0.1" 650 | } 651 | }, 652 | "node_modules/registry-url": { 653 | "version": "3.1.0", 654 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 655 | "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", 656 | "dependencies": { 657 | "rc": "^1.0.1" 658 | }, 659 | "engines": { 660 | "node": ">=0.10.0" 661 | } 662 | }, 663 | "node_modules/require-from-string": { 664 | "version": "2.0.2", 665 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 666 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 667 | "engines": { 668 | "node": ">=0.10.0" 669 | } 670 | }, 671 | "node_modules/safe-buffer": { 672 | "version": "5.1.2", 673 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 674 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 675 | }, 676 | "node_modules/serve": { 677 | "version": "14.2.0", 678 | "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.0.tgz", 679 | "integrity": "sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg==", 680 | "dependencies": { 681 | "@zeit/schemas": "2.29.0", 682 | "ajv": "8.11.0", 683 | "arg": "5.0.2", 684 | "boxen": "7.0.0", 685 | "chalk": "5.0.1", 686 | "chalk-template": "0.4.0", 687 | "clipboardy": "3.0.0", 688 | "compression": "1.7.4", 689 | "is-port-reachable": "4.0.0", 690 | "serve-handler": "6.1.5", 691 | "update-check": "1.5.4" 692 | }, 693 | "bin": { 694 | "serve": "build/main.js" 695 | }, 696 | "engines": { 697 | "node": ">= 14" 698 | } 699 | }, 700 | "node_modules/serve-handler": { 701 | "version": "6.1.5", 702 | "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", 703 | "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", 704 | "dependencies": { 705 | "bytes": "3.0.0", 706 | "content-disposition": "0.5.2", 707 | "fast-url-parser": "1.1.3", 708 | "mime-types": "2.1.18", 709 | "minimatch": "3.1.2", 710 | "path-is-inside": "1.0.2", 711 | "path-to-regexp": "2.2.1", 712 | "range-parser": "1.2.0" 713 | } 714 | }, 715 | "node_modules/serve-handler/node_modules/mime-db": { 716 | "version": "1.33.0", 717 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 718 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", 719 | "engines": { 720 | "node": ">= 0.6" 721 | } 722 | }, 723 | "node_modules/serve-handler/node_modules/mime-types": { 724 | "version": "2.1.18", 725 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 726 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 727 | "dependencies": { 728 | "mime-db": "~1.33.0" 729 | }, 730 | "engines": { 731 | "node": ">= 0.6" 732 | } 733 | }, 734 | "node_modules/shebang-command": { 735 | "version": "2.0.0", 736 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 737 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 738 | "dependencies": { 739 | "shebang-regex": "^3.0.0" 740 | }, 741 | "engines": { 742 | "node": ">=8" 743 | } 744 | }, 745 | "node_modules/shebang-regex": { 746 | "version": "3.0.0", 747 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 748 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 749 | "engines": { 750 | "node": ">=8" 751 | } 752 | }, 753 | "node_modules/signal-exit": { 754 | "version": "3.0.7", 755 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 756 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 757 | }, 758 | "node_modules/string-width": { 759 | "version": "5.1.2", 760 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 761 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 762 | "dependencies": { 763 | "eastasianwidth": "^0.2.0", 764 | "emoji-regex": "^9.2.2", 765 | "strip-ansi": "^7.0.1" 766 | }, 767 | "engines": { 768 | "node": ">=12" 769 | }, 770 | "funding": { 771 | "url": "https://github.com/sponsors/sindresorhus" 772 | } 773 | }, 774 | "node_modules/strip-ansi": { 775 | "version": "7.0.1", 776 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", 777 | "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", 778 | "dependencies": { 779 | "ansi-regex": "^6.0.1" 780 | }, 781 | "engines": { 782 | "node": ">=12" 783 | }, 784 | "funding": { 785 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 786 | } 787 | }, 788 | "node_modules/strip-final-newline": { 789 | "version": "2.0.0", 790 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 791 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 792 | "engines": { 793 | "node": ">=6" 794 | } 795 | }, 796 | "node_modules/strip-json-comments": { 797 | "version": "2.0.1", 798 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 799 | "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", 800 | "engines": { 801 | "node": ">=0.10.0" 802 | } 803 | }, 804 | "node_modules/supports-color": { 805 | "version": "7.2.0", 806 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 807 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 808 | "dependencies": { 809 | "has-flag": "^4.0.0" 810 | }, 811 | "engines": { 812 | "node": ">=8" 813 | } 814 | }, 815 | "node_modules/type-fest": { 816 | "version": "2.19.0", 817 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", 818 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", 819 | "engines": { 820 | "node": ">=12.20" 821 | }, 822 | "funding": { 823 | "url": "https://github.com/sponsors/sindresorhus" 824 | } 825 | }, 826 | "node_modules/update-check": { 827 | "version": "1.5.4", 828 | "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", 829 | "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", 830 | "dependencies": { 831 | "registry-auth-token": "3.3.2", 832 | "registry-url": "3.1.0" 833 | } 834 | }, 835 | "node_modules/uri-js": { 836 | "version": "4.4.1", 837 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 838 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 839 | "dependencies": { 840 | "punycode": "^2.1.0" 841 | } 842 | }, 843 | "node_modules/uri-js/node_modules/punycode": { 844 | "version": "2.3.0", 845 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 846 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 847 | "engines": { 848 | "node": ">=6" 849 | } 850 | }, 851 | "node_modules/vary": { 852 | "version": "1.1.2", 853 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 854 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 855 | "engines": { 856 | "node": ">= 0.8" 857 | } 858 | }, 859 | "node_modules/which": { 860 | "version": "2.0.2", 861 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 862 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 863 | "dependencies": { 864 | "isexe": "^2.0.0" 865 | }, 866 | "bin": { 867 | "node-which": "bin/node-which" 868 | }, 869 | "engines": { 870 | "node": ">= 8" 871 | } 872 | }, 873 | "node_modules/widest-line": { 874 | "version": "4.0.1", 875 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", 876 | "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", 877 | "dependencies": { 878 | "string-width": "^5.0.1" 879 | }, 880 | "engines": { 881 | "node": ">=12" 882 | }, 883 | "funding": { 884 | "url": "https://github.com/sponsors/sindresorhus" 885 | } 886 | }, 887 | "node_modules/wrap-ansi": { 888 | "version": "8.1.0", 889 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 890 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 891 | "dependencies": { 892 | "ansi-styles": "^6.1.0", 893 | "string-width": "^5.0.1", 894 | "strip-ansi": "^7.0.1" 895 | }, 896 | "engines": { 897 | "node": ">=12" 898 | }, 899 | "funding": { 900 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 901 | } 902 | } 903 | }, 904 | "dependencies": { 905 | "@zeit/schemas": { 906 | "version": "2.29.0", 907 | "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", 908 | "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==" 909 | }, 910 | "accepts": { 911 | "version": "1.3.8", 912 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 913 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 914 | "requires": { 915 | "mime-types": "~2.1.34", 916 | "negotiator": "0.6.3" 917 | } 918 | }, 919 | "ajv": { 920 | "version": "8.11.0", 921 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", 922 | "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", 923 | "requires": { 924 | "fast-deep-equal": "^3.1.1", 925 | "json-schema-traverse": "^1.0.0", 926 | "require-from-string": "^2.0.2", 927 | "uri-js": "^4.2.2" 928 | } 929 | }, 930 | "ansi-align": { 931 | "version": "3.0.1", 932 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", 933 | "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 934 | "requires": { 935 | "string-width": "^4.1.0" 936 | }, 937 | "dependencies": { 938 | "ansi-regex": { 939 | "version": "5.0.1", 940 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 941 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 942 | }, 943 | "emoji-regex": { 944 | "version": "8.0.0", 945 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 946 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 947 | }, 948 | "string-width": { 949 | "version": "4.2.3", 950 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 951 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 952 | "requires": { 953 | "emoji-regex": "^8.0.0", 954 | "is-fullwidth-code-point": "^3.0.0", 955 | "strip-ansi": "^6.0.1" 956 | } 957 | }, 958 | "strip-ansi": { 959 | "version": "6.0.1", 960 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 961 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 962 | "requires": { 963 | "ansi-regex": "^5.0.1" 964 | } 965 | } 966 | } 967 | }, 968 | "ansi-regex": { 969 | "version": "6.0.1", 970 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 971 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" 972 | }, 973 | "ansi-styles": { 974 | "version": "6.2.1", 975 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 976 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" 977 | }, 978 | "arch": { 979 | "version": "2.2.0", 980 | "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", 981 | "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" 982 | }, 983 | "arg": { 984 | "version": "5.0.2", 985 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 986 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 987 | }, 988 | "balanced-match": { 989 | "version": "1.0.2", 990 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 991 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 992 | }, 993 | "boxen": { 994 | "version": "7.0.0", 995 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", 996 | "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", 997 | "requires": { 998 | "ansi-align": "^3.0.1", 999 | "camelcase": "^7.0.0", 1000 | "chalk": "^5.0.1", 1001 | "cli-boxes": "^3.0.0", 1002 | "string-width": "^5.1.2", 1003 | "type-fest": "^2.13.0", 1004 | "widest-line": "^4.0.1", 1005 | "wrap-ansi": "^8.0.1" 1006 | } 1007 | }, 1008 | "brace-expansion": { 1009 | "version": "1.1.11", 1010 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1011 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1012 | "requires": { 1013 | "balanced-match": "^1.0.0", 1014 | "concat-map": "0.0.1" 1015 | } 1016 | }, 1017 | "bytes": { 1018 | "version": "3.0.0", 1019 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 1020 | "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" 1021 | }, 1022 | "camelcase": { 1023 | "version": "7.0.1", 1024 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", 1025 | "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==" 1026 | }, 1027 | "chalk": { 1028 | "version": "5.0.1", 1029 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", 1030 | "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==" 1031 | }, 1032 | "chalk-template": { 1033 | "version": "0.4.0", 1034 | "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", 1035 | "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", 1036 | "requires": { 1037 | "chalk": "^4.1.2" 1038 | }, 1039 | "dependencies": { 1040 | "ansi-styles": { 1041 | "version": "4.3.0", 1042 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1043 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1044 | "requires": { 1045 | "color-convert": "^2.0.1" 1046 | } 1047 | }, 1048 | "chalk": { 1049 | "version": "4.1.2", 1050 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1051 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1052 | "requires": { 1053 | "ansi-styles": "^4.1.0", 1054 | "supports-color": "^7.1.0" 1055 | } 1056 | } 1057 | } 1058 | }, 1059 | "cli-boxes": { 1060 | "version": "3.0.0", 1061 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", 1062 | "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" 1063 | }, 1064 | "clipboardy": { 1065 | "version": "3.0.0", 1066 | "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", 1067 | "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", 1068 | "requires": { 1069 | "arch": "^2.2.0", 1070 | "execa": "^5.1.1", 1071 | "is-wsl": "^2.2.0" 1072 | } 1073 | }, 1074 | "color-convert": { 1075 | "version": "2.0.1", 1076 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1077 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1078 | "requires": { 1079 | "color-name": "~1.1.4" 1080 | } 1081 | }, 1082 | "color-name": { 1083 | "version": "1.1.4", 1084 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1085 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1086 | }, 1087 | "compressible": { 1088 | "version": "2.0.18", 1089 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", 1090 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", 1091 | "requires": { 1092 | "mime-db": ">= 1.43.0 < 2" 1093 | } 1094 | }, 1095 | "compression": { 1096 | "version": "1.7.4", 1097 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", 1098 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", 1099 | "requires": { 1100 | "accepts": "~1.3.5", 1101 | "bytes": "3.0.0", 1102 | "compressible": "~2.0.16", 1103 | "debug": "2.6.9", 1104 | "on-headers": "~1.0.2", 1105 | "safe-buffer": "5.1.2", 1106 | "vary": "~1.1.2" 1107 | } 1108 | }, 1109 | "concat-map": { 1110 | "version": "0.0.1", 1111 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1112 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 1113 | }, 1114 | "content-disposition": { 1115 | "version": "0.5.2", 1116 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 1117 | "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" 1118 | }, 1119 | "cross-spawn": { 1120 | "version": "7.0.6", 1121 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 1122 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 1123 | "requires": { 1124 | "path-key": "^3.1.0", 1125 | "shebang-command": "^2.0.0", 1126 | "which": "^2.0.1" 1127 | } 1128 | }, 1129 | "debug": { 1130 | "version": "2.6.9", 1131 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1132 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1133 | "requires": { 1134 | "ms": "2.0.0" 1135 | } 1136 | }, 1137 | "deep-extend": { 1138 | "version": "0.6.0", 1139 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 1140 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 1141 | }, 1142 | "eastasianwidth": { 1143 | "version": "0.2.0", 1144 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 1145 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 1146 | }, 1147 | "emoji-regex": { 1148 | "version": "9.2.2", 1149 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1150 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 1151 | }, 1152 | "execa": { 1153 | "version": "5.1.1", 1154 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 1155 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 1156 | "requires": { 1157 | "cross-spawn": "^7.0.3", 1158 | "get-stream": "^6.0.0", 1159 | "human-signals": "^2.1.0", 1160 | "is-stream": "^2.0.0", 1161 | "merge-stream": "^2.0.0", 1162 | "npm-run-path": "^4.0.1", 1163 | "onetime": "^5.1.2", 1164 | "signal-exit": "^3.0.3", 1165 | "strip-final-newline": "^2.0.0" 1166 | } 1167 | }, 1168 | "fast-deep-equal": { 1169 | "version": "3.1.3", 1170 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1171 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 1172 | }, 1173 | "fast-url-parser": { 1174 | "version": "1.1.3", 1175 | "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", 1176 | "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", 1177 | "requires": { 1178 | "punycode": "^1.3.2" 1179 | } 1180 | }, 1181 | "get-stream": { 1182 | "version": "6.0.1", 1183 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 1184 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" 1185 | }, 1186 | "has-flag": { 1187 | "version": "4.0.0", 1188 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1189 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 1190 | }, 1191 | "human-signals": { 1192 | "version": "2.1.0", 1193 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 1194 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" 1195 | }, 1196 | "ini": { 1197 | "version": "1.3.8", 1198 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 1199 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 1200 | }, 1201 | "is-docker": { 1202 | "version": "2.2.1", 1203 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 1204 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" 1205 | }, 1206 | "is-fullwidth-code-point": { 1207 | "version": "3.0.0", 1208 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1209 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1210 | }, 1211 | "is-port-reachable": { 1212 | "version": "4.0.0", 1213 | "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", 1214 | "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==" 1215 | }, 1216 | "is-stream": { 1217 | "version": "2.0.1", 1218 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 1219 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 1220 | }, 1221 | "is-wsl": { 1222 | "version": "2.2.0", 1223 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", 1224 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", 1225 | "requires": { 1226 | "is-docker": "^2.0.0" 1227 | } 1228 | }, 1229 | "isexe": { 1230 | "version": "2.0.0", 1231 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1232 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 1233 | }, 1234 | "json-schema-traverse": { 1235 | "version": "1.0.0", 1236 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 1237 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 1238 | }, 1239 | "merge-stream": { 1240 | "version": "2.0.0", 1241 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 1242 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 1243 | }, 1244 | "mime-db": { 1245 | "version": "1.52.0", 1246 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1247 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1248 | }, 1249 | "mime-types": { 1250 | "version": "2.1.35", 1251 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1252 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1253 | "requires": { 1254 | "mime-db": "1.52.0" 1255 | } 1256 | }, 1257 | "mimic-fn": { 1258 | "version": "2.1.0", 1259 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1260 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 1261 | }, 1262 | "minimatch": { 1263 | "version": "3.1.2", 1264 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1265 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1266 | "requires": { 1267 | "brace-expansion": "^1.1.7" 1268 | } 1269 | }, 1270 | "minimist": { 1271 | "version": "1.2.8", 1272 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1273 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" 1274 | }, 1275 | "ms": { 1276 | "version": "2.0.0", 1277 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1278 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 1279 | }, 1280 | "negotiator": { 1281 | "version": "0.6.3", 1282 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 1283 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 1284 | }, 1285 | "npm-run-path": { 1286 | "version": "4.0.1", 1287 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 1288 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 1289 | "requires": { 1290 | "path-key": "^3.0.0" 1291 | } 1292 | }, 1293 | "on-headers": { 1294 | "version": "1.0.2", 1295 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 1296 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" 1297 | }, 1298 | "onetime": { 1299 | "version": "5.1.2", 1300 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 1301 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 1302 | "requires": { 1303 | "mimic-fn": "^2.1.0" 1304 | } 1305 | }, 1306 | "path-is-inside": { 1307 | "version": "1.0.2", 1308 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1309 | "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" 1310 | }, 1311 | "path-key": { 1312 | "version": "3.1.1", 1313 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1314 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 1315 | }, 1316 | "path-to-regexp": { 1317 | "version": "2.2.1", 1318 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", 1319 | "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" 1320 | }, 1321 | "punycode": { 1322 | "version": "1.4.1", 1323 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1324 | "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" 1325 | }, 1326 | "range-parser": { 1327 | "version": "1.2.0", 1328 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 1329 | "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" 1330 | }, 1331 | "rc": { 1332 | "version": "1.2.8", 1333 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 1334 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 1335 | "requires": { 1336 | "deep-extend": "^0.6.0", 1337 | "ini": "~1.3.0", 1338 | "minimist": "^1.2.0", 1339 | "strip-json-comments": "~2.0.1" 1340 | } 1341 | }, 1342 | "registry-auth-token": { 1343 | "version": "3.3.2", 1344 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", 1345 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", 1346 | "requires": { 1347 | "rc": "^1.1.6", 1348 | "safe-buffer": "^5.0.1" 1349 | } 1350 | }, 1351 | "registry-url": { 1352 | "version": "3.1.0", 1353 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 1354 | "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", 1355 | "requires": { 1356 | "rc": "^1.0.1" 1357 | } 1358 | }, 1359 | "require-from-string": { 1360 | "version": "2.0.2", 1361 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 1362 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 1363 | }, 1364 | "safe-buffer": { 1365 | "version": "5.1.2", 1366 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1367 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1368 | }, 1369 | "serve": { 1370 | "version": "14.2.0", 1371 | "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.0.tgz", 1372 | "integrity": "sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg==", 1373 | "requires": { 1374 | "@zeit/schemas": "2.29.0", 1375 | "ajv": "8.11.0", 1376 | "arg": "5.0.2", 1377 | "boxen": "7.0.0", 1378 | "chalk": "5.0.1", 1379 | "chalk-template": "0.4.0", 1380 | "clipboardy": "3.0.0", 1381 | "compression": "1.7.4", 1382 | "is-port-reachable": "4.0.0", 1383 | "serve-handler": "6.1.5", 1384 | "update-check": "1.5.4" 1385 | } 1386 | }, 1387 | "serve-handler": { 1388 | "version": "6.1.5", 1389 | "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", 1390 | "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", 1391 | "requires": { 1392 | "bytes": "3.0.0", 1393 | "content-disposition": "0.5.2", 1394 | "fast-url-parser": "1.1.3", 1395 | "mime-types": "2.1.18", 1396 | "minimatch": "3.1.2", 1397 | "path-is-inside": "1.0.2", 1398 | "path-to-regexp": "2.2.1", 1399 | "range-parser": "1.2.0" 1400 | }, 1401 | "dependencies": { 1402 | "mime-db": { 1403 | "version": "1.33.0", 1404 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 1405 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" 1406 | }, 1407 | "mime-types": { 1408 | "version": "2.1.18", 1409 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 1410 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 1411 | "requires": { 1412 | "mime-db": "~1.33.0" 1413 | } 1414 | } 1415 | } 1416 | }, 1417 | "shebang-command": { 1418 | "version": "2.0.0", 1419 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1420 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1421 | "requires": { 1422 | "shebang-regex": "^3.0.0" 1423 | } 1424 | }, 1425 | "shebang-regex": { 1426 | "version": "3.0.0", 1427 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1428 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 1429 | }, 1430 | "signal-exit": { 1431 | "version": "3.0.7", 1432 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1433 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 1434 | }, 1435 | "string-width": { 1436 | "version": "5.1.2", 1437 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 1438 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1439 | "requires": { 1440 | "eastasianwidth": "^0.2.0", 1441 | "emoji-regex": "^9.2.2", 1442 | "strip-ansi": "^7.0.1" 1443 | } 1444 | }, 1445 | "strip-ansi": { 1446 | "version": "7.0.1", 1447 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", 1448 | "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", 1449 | "requires": { 1450 | "ansi-regex": "^6.0.1" 1451 | } 1452 | }, 1453 | "strip-final-newline": { 1454 | "version": "2.0.0", 1455 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 1456 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" 1457 | }, 1458 | "strip-json-comments": { 1459 | "version": "2.0.1", 1460 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1461 | "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" 1462 | }, 1463 | "supports-color": { 1464 | "version": "7.2.0", 1465 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1466 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1467 | "requires": { 1468 | "has-flag": "^4.0.0" 1469 | } 1470 | }, 1471 | "type-fest": { 1472 | "version": "2.19.0", 1473 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", 1474 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" 1475 | }, 1476 | "update-check": { 1477 | "version": "1.5.4", 1478 | "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", 1479 | "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", 1480 | "requires": { 1481 | "registry-auth-token": "3.3.2", 1482 | "registry-url": "3.1.0" 1483 | } 1484 | }, 1485 | "uri-js": { 1486 | "version": "4.4.1", 1487 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1488 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1489 | "requires": { 1490 | "punycode": "^2.1.0" 1491 | }, 1492 | "dependencies": { 1493 | "punycode": { 1494 | "version": "2.3.0", 1495 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 1496 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" 1497 | } 1498 | } 1499 | }, 1500 | "vary": { 1501 | "version": "1.1.2", 1502 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1503 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 1504 | }, 1505 | "which": { 1506 | "version": "2.0.2", 1507 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1508 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1509 | "requires": { 1510 | "isexe": "^2.0.0" 1511 | } 1512 | }, 1513 | "widest-line": { 1514 | "version": "4.0.1", 1515 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", 1516 | "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", 1517 | "requires": { 1518 | "string-width": "^5.0.1" 1519 | } 1520 | }, 1521 | "wrap-ansi": { 1522 | "version": "8.1.0", 1523 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1524 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1525 | "requires": { 1526 | "ansi-styles": "^6.1.0", 1527 | "string-width": "^5.0.1", 1528 | "strip-ansi": "^7.0.1" 1529 | } 1530 | } 1531 | } 1532 | } 1533 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webappswg", 3 | "version": "1.0.0", 4 | "description": "WebApps WG homepage", 5 | "main": "index.html", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/w3c/WebAppsWG.git" 12 | }, 13 | "author": "", 14 | "license": "W3C", 15 | "bugs": { 16 | "url": "https://github.com/w3c/WebAppsWG/issues" 17 | }, 18 | "homepage": "https://github.com/w3c/WebAppsWG#readme", 19 | "dependencies": { 20 | "serve": "^14.2.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "headers": [ 3 | { 4 | "source": "**/*.*", 5 | "headers": [ 6 | { 7 | "key": "Cache-Control", 8 | "value": "no-cache, no-store, must-revalidate" 9 | }, 10 | { 11 | "key": "Expires", 12 | "value": "0" 13 | } 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ${name} 7 | 8 | 9 | 10 | 13 | 300 | 301 | 302 | 303 |
304 |

${name}

305 | 331 |
332 |
333 |
334 |

Mission

335 |

${description}

336 |
337 |
338 |

Specs

339 |
340 |
341 |
342 |
${title} - ${latest-status}
343 |
${description}
344 |
345 |
346 |

Group hasn't produced or inherited any specifications.

347 |
348 |
349 |
350 |

Repos

351 |
352 |
353 |
354 |
${owner.login}/${name} 355 | (${w3c.repo-type})
356 |
357 |

${description}

358 |
359 |
360 |
361 |

Group has no repositories.

362 |
363 |
364 | 380 |
381 |

Contacts

382 |
383 |
Chairs:
384 |
385 |
386 | 387 | ${name} 388 | ${name}, 389 |
390 |
391 |
Team contacts:
392 |
393 |
394 | 395 | ${name} 396 | ${name}, 397 |
398 |
399 |
400 |
401 |
402 |

Members

403 | 406 |
407 |
408 |
409 |

Invited Experts

410 |
    411 |
  • ${title}
  • 412 |
413 |
414 |
415 |
416 | 432 | 433 | 434 | 460 | 461 | 462 | 463 | 464 | -------------------------------------------------------------------------------- /tidyconfig.txt: -------------------------------------------------------------------------------- 1 | char-encoding: utf8 2 | indent: yes 3 | wrap: 80 4 | tidy-mark: no 5 | newline: LF 6 | custom-tags: yes 7 | -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "group": 114929 3 | , "contacts": ["siusin"] 4 | , "policy": "open" 5 | , "repo-type": "homepage" 6 | } 7 | --------------------------------------------------------------------------------