diff --git a/.github/tools/version.sh b/.github/tools/version.sh new file mode 100755 index 0000000..8110428 --- /dev/null +++ b/.github/tools/version.sh @@ -0,0 +1,18 @@ +#!/bin/bash +echo "Verifying that all packages have the same major and minor version (patch version can be different)..." +version_base=$(cat package.json | jq '.version' --raw-output) +version_base=${version_base%.*} +echo "Base Version: $version_base" + +find . -name "package.json" -type f -not -path "*/node_modules/*" -not -path "*/.next/*" -not -path "*/state/*" | sort | while read -r file; do + name_pkg=$(cat $file | jq '.name' --raw-output) + full_version_pkg=$(cat $file | jq '.version' --raw-output) + version_pkg="${full_version_pkg%.*}" + + if [ "$version_base" != "$version_pkg" ]; then + echo "- $name_pkg: mismatch! (at $full_version_pkg)" + exit 1 + else + echo "- $name_pkg: correct ($full_version_pkg)" + fi +done diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4e49a27..feb5d6f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: publish: runs-on: ubuntu-latest permissions: - contents: read + contents: write id-token: write strategy: max-parallel: 1 # has to be 1 (one) as there are dependencies between the published packages @@ -33,6 +33,7 @@ jobs: - name: Publish Packages env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | cd ${{ matrix.package }} echo "-- @krmx/${{ matrix.package }} --" @@ -81,4 +82,8 @@ jobs: # Publish the package npm publish --provenance --access public + + # Create a new tag for the published version of the package + git tag -a "${{ matrix.package }}@v$LOCAL_VERSION" -m "${{ matrix.package }}@v$LOCAL_VERSION" + git push origin "${{ matrix.package }}@v$LOCAL_VERSION" fi diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index f8d8033..756e730 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -19,3 +19,34 @@ jobs: node-version: '22.x' - name: Validate Packages run: npm run validate + + # Test tag creation and push + - name: Test Tag Push + run: | + # Set Git identity for the tag + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + + # Create a test tag with timestamp to ensure uniqueness + TIMESTAMP=$(date +%s) + TEST_TAG="test-tag-${TIMESTAMP}" + + echo "Creating test tag: ${TEST_TAG}" + git tag -a "${TEST_TAG}" -m "Test tag ${TEST_TAG}" + + # Push the tag using explicit credentials + echo "Pushing test tag to origin..." + git push https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "${TEST_TAG}" + + # Verify tag was pushed successfully + echo "Tag pushed successfully!" + sleep 15 # Wait for a few seconds to ensure the tag is available + + # Delete the tag both locally and remotely + echo "Deleting test tag..." + git tag -d "${TEST_TAG}" + git push https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git :refs/tags/${TEST_TAG} + + echo "Tag test completed successfully!" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml index c2ed9e5..4ca2754 100644 --- a/.github/workflows/version.yml +++ b/.github/workflows/version.yml @@ -12,23 +12,5 @@ jobs: steps: - uses: actions/checkout@v4 - name: Check versions - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} run: | - echo "Verifying that all packages have the same major and minor version (patch version can be different)..." - version_base=$(cat package.json | jq '.version' --raw-output) - version_base=${version_base%.*} - echo "Base Version: $version_base" - - find . -name "package.json" -type f -not -path "*/node_modules/*" -not -path "*/.next/*" -not -path "*/state/*" | sort | while read -r file; do - name_pkg=$(cat $file | jq '.name' --raw-output) - version_pkg=$(cat $file | jq '.version' --raw-output) - version_pkg="${version_pkg%.*}" - - if [ "$version_base" != "$version_pkg" ]; then - echo "- $name_pkg: mismatch! (at $version_pkg)" - exit 1 - else - echo "- $name_pkg: correct" - fi - done + .github/tools/version.sh diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5757e28 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[this form](https://www.simonkarman.nl/contact). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5d91461 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,73 @@ +# Contributing Guidelines + +Thank you for your interest in contributing to our project! This document provides guidelines and instructions for contributors to help maintain code quality and ensure smooth collaboration. + +## Getting Started + +1. Fork the repository +2. Clone your fork: `git clone https://github.com/yourusername/krmx.git` +3. Create a new branch: `git checkout -b feature/your-feature-name` +4. Run `npm install` to install dependencies +5. Make your changes +6. Test your changes thoroughly (run `npm run validate`) +7. Write documentation for your changes +8. Push your branch to your fork: `git push origin feature/your-feature-name` +9. Create a pull request to the main repository +10. Wait for your PR to be reviewed by maintainers + +### Reporting Bugs + +If you find a bug, please create an issue following these steps: +1. Check if the bug has already been reported +2. Include a clear title and description +3. Add steps to reproduce the bug +4. Include expected and actual behavior +5. Add relevant system information + +### Pull Requests + +When submitting a pull request: +1. Update documentation as needed +2. Add tests for new features +3. Follow the existing code style +4. Keep your changes focused and atomic +5. Link any related issues +6. Write a clear PR description + +## Development Process +After installing the project with `npm install`, linting and tests will run automatically on every commit. Make sure that all steps succeeded before submitting a PR. + +### Testing + +- Write tests for new features +- Ensure all tests pass before submitting +- Update existing tests as needed +- Include both unit and integration tests where appropriate + +## Documentation + +- Update README.md if needed +- Document new features in the [docs](./docs) directory +- Update API documentation +- Include inline documentation for complex code +- Add examples for new functionality + +## Review Process + +1. Maintainers will review your PR +2. Address any requested changes +3. Once approved, your PR will be merged +4. Your contribution will be acknowledged + +## Questions? + +If you have questions: +1. Check existing documentation +2. Search closed issues +3. Open a new issue with the question label +4. Join our community chat/forum + +## License +By contributing, you agree that your contributions will be licensed under the [project's license](./LICENSE). + +Thank you for contributing to our project! Your efforts help make this project better for everyone. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index 6799c63..3275546 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@ Krmx is a network protocol for realtime multi-user interactions. ## Getting Started If you want to build your own application using Krmx, you should start be reading the [Krmx documentation](https://simonkarman.github.io/krmx). -## Contributing -If you want to help improve Krmx or add new features. You can create a pull request. You can find the different components in these directories: + +## Project Structure +You can find the different components in these directories: - [docs/](./docs): documentation of both the Krmx protocol and the reference implementations - [base/](./base): shared code between the Krmx client and Krmx server in TypeScript @@ -17,9 +18,17 @@ If you want to help improve Krmx or add new features. You can create a pull requ The base, server, client, client-react, and state implementations are published on npm under the [krmx](https://www.npmjs.com/org/krmx) npmjs organisation. +## Contributing +If you want to help improve Krmx or add new features, then please read the [Contributing Guidelines](./CONTRIBUTING.md) before submitting pull requests or reporting issues. +By contributing to this project, you agree to abide by the [Code of Conduct](./CODE_OF_CONDUCT.md) and [license](./LICENSE) terms. + > Possible upcoming features and ideas can be found in [features.md](./features.md). -If you find any issues when using Krmx, then please create a ticket here: [krmx/issues](https://github.com/simonkarman/krmx/issues). +If you find any issues or bugs when using Krmx, then please create a ticket here: [krmx/issues](https://github.com/simonkarman/krmx/issues). ### Contributors - [Simon Karman](https://www.simonkarman.nl) - *creator of Krmx* + +## License + +This project is licensed under the GNU Lesser General Public License v3.0 or later - see the [LICENSE](./LICENSE) file for details diff --git a/base/package-lock.json b/base/package-lock.json index 4653b26..009b61b 100644 --- a/base/package-lock.json +++ b/base/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/base", "version": "0.6.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", diff --git a/base/package.json b/base/package.json index c949120..44fd927 100644 --- a/base/package.json +++ b/base/package.json @@ -26,7 +26,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/client-react/package-lock.json b/client-react/package-lock.json index c1db198..5faeae7 100644 --- a/client-react/package-lock.json +++ b/client-react/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/client-react", "version": "0.6.5", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "@krmx/client": "file:../client" @@ -40,7 +40,7 @@ "../base": { "name": "@krmx/base", "version": "0.6.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", @@ -58,7 +58,7 @@ "../client": { "name": "@krmx/client", "version": "0.6.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base" }, @@ -82,7 +82,7 @@ "name": "@krmx/server", "version": "0.6.8", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "ws": "^8.13.0" diff --git a/client-react/package.json b/client-react/package.json index 6af3a4a..890097b 100644 --- a/client-react/package.json +++ b/client-react/package.json @@ -41,7 +41,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/client/package-lock.json b/client/package-lock.json index a315233..b0c2eeb 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/client", "version": "0.6.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base" }, @@ -30,7 +30,7 @@ "../base": { "name": "@krmx/base", "version": "0.6.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", @@ -49,7 +49,7 @@ "name": "@krmx/server", "version": "0.6.8", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "ws": "^8.13.0" diff --git a/client/package.json b/client/package.json index 9efae5d..e91df16 100644 --- a/client/package.json +++ b/client/package.json @@ -31,7 +31,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/docs/package-lock.json b/docs/package-lock.json index 8bb726b..cca5aaf 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/docs", "version": "0.6.0", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "next": "^13.4.12", "nextra": "^2.10.0", diff --git a/docs/package.json b/docs/package.json index 1478247..7d43342 100644 --- a/docs/package.json +++ b/docs/package.json @@ -25,7 +25,7 @@ "tailwindcss": "^3.3.3", "typedoc": "^0.25.9" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/features.md b/features.md index 981c099..b87031d 100644 --- a/features.md +++ b/features.md @@ -14,4 +14,4 @@ To see what Krmx currently has to offer read the [Krmx documentation](https://si 2. Class Serialization - Allow serialization of data that contains classes with custom toJson and fromJson implementations ### Krmx Starter -1. Npx Command - Publish a `npx create krmx-app` command that bootstraps a new Krmx application with a basic setup including Krmx State. +1. Npx Command - Publish a `npx create krmx-app` command that bootstraps a new Krmx application with a basic setup including Krmx State. See [Krmx Starter](https://github.com/simonkarman/krmx-starter) for the starter application. diff --git a/package-lock.json b/package-lock.json index e3c65cc..bb5f038 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "@krmx/root", "version": "0.6.0", "hasInstallScript": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "husky": "^4.3.8", "npm-run-all": "^4.1.5" @@ -337,9 +337,9 @@ } }, "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "license": "MIT", "dependencies": { "nice-try": "^1.0.4", @@ -1173,7 +1173,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1577,7 +1577,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "bin": { "semver": "bin/semver" } @@ -1919,7 +1919,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "isexe": "^2.0.0" }, diff --git a/package.json b/package.json index d183217..1154e1d 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "dev:client": "sleep 500 && npm run --prefix client dev", "dev:client-react": "sleep 750 && npm run --prefix client-react dev", "dev:docs": "npm run --prefix docs dev", - "versions": "npm install && npm --prefix base run postversion && npm --prefix server run postversion && npm --prefix client run postversion && npm --prefix client-react run postversion && npm --prefix state run versions" + "versions": "npm install && npm --prefix base run postversion && npm --prefix server run postversion && npm --prefix client run postversion && npm --prefix client-react run postversion && npm --prefix state run versions && .github/tools/version.sh" }, "dependencies": { "npm-run-all": "^4.1.5", @@ -25,7 +25,7 @@ "pre-commit": "npm run validate" } }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/server/package-lock.json b/server/package-lock.json index e58456d..a890c53 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/server", "version": "0.6.8", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "file:../base", "ws": "^8.13.0" @@ -31,7 +31,7 @@ "../base": { "name": "@krmx/base", "version": "0.6.4", - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "@types/jest": "^29.5.1", "@types/ws": "^8.5.9", diff --git a/server/package.json b/server/package.json index 8642137..e780e4e 100644 --- a/server/package.json +++ b/server/package.json @@ -33,7 +33,7 @@ "ts-node": "^10.9.1", "typescript": "^5.0.2" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/base/package-lock.json b/state/base/package-lock.json index 5a042ad..5bb8dfd 100644 --- a/state/base/package-lock.json +++ b/state/base/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state", "version": "0.0.5", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "immer": "^10.1.1", diff --git a/state/base/package.json b/state/base/package.json index e03dbcf..169925d 100644 --- a/state/base/package.json +++ b/state/base/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.1.0", "typescript": "^5.0.2" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/client-react/package-lock.json b/state/client-react/package-lock.json index c41f692..19e6b75 100644 --- a/state/client-react/package-lock.json +++ b/state/client-react/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state-client-react", "version": "0.0.6", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "@krmx/client": "^0.6.3", diff --git a/state/client-react/package.json b/state/client-react/package.json index 0da564d..50d3e1f 100644 --- a/state/client-react/package.json +++ b/state/client-react/package.json @@ -41,7 +41,7 @@ "typescript": "^5.0.2", "ws": "^8.13.0" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/package-lock.json b/state/package-lock.json index 3783bbd..d708914 100644 --- a/state/package-lock.json +++ b/state/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state-root", "hasInstallScript": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "devDependencies": { "husky": "^4.3.8" } @@ -568,7 +568,7 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, - "license": "ISC", + "license": "LGPL-3.0-or-later", "engines": { "node": ">= 6" } diff --git a/state/package.json b/state/package.json index d022388..eda5502 100644 --- a/state/package.json +++ b/state/package.json @@ -17,7 +17,7 @@ "pre-commit": "npm run validate" } }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ { diff --git a/state/server/package-lock.json b/state/server/package-lock.json index 30127b3..1f0c01f 100644 --- a/state/server/package-lock.json +++ b/state/server/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "@krmx/state-server", "version": "0.0.6", - "license": "ISC", + "license": "LGPL-3.0-or-later", "dependencies": { "@krmx/base": "^0.6.3", "@krmx/server": "^0.6.7", diff --git a/state/server/package.json b/state/server/package.json index ea8153c..2f91b3e 100644 --- a/state/server/package.json +++ b/state/server/package.json @@ -33,7 +33,7 @@ "ts-jest": "^29.1.0", "typescript": "^5.0.2" }, - "license": "ISC", + "license": "LGPL-3.0-or-later", "homepage": "https://simonkarman.github.io/krmx", "contributors": [ {