From 59a9e18e943b077a355aba7d1dc3122120a000f4 Mon Sep 17 00:00:00 2001 From: Nicolas Merget Date: Fri, 29 Nov 2024 08:42:31 +0100 Subject: [PATCH] feat: add cicd for release --- .github/dependabot.yml | 23 ++ .github/workflows/00-init.yml | 15 ++ .../workflows/actions/npm-cache/action.yml | 52 +++++ .github/workflows/release.yml | 45 ++++ .github/workflows/scripts/release/index.js | 26 +++ .../workflows/scripts/release/upload-asset.js | 42 ++++ .../workflows/scripts/release/zip-folder.js | 12 ++ CODE-OF-CONDUCT.md | 132 ++++++++++++ CODEOWNERS | 3 + CONTRIBUTING.md | 15 ++ LICENSE | 202 ++++++++++++++++++ package-lock.json | 16 ++ package.json | 22 +- packages/auto-sync/package.json | 2 +- packages/codegen/package.json | 2 +- packages/design-migration/package.json | 2 +- packages/handover/package.json | 2 +- packages/inspect/package.json | 2 +- 18 files changed, 603 insertions(+), 12 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/00-init.yml create mode 100644 .github/workflows/actions/npm-cache/action.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/scripts/release/index.js create mode 100644 .github/workflows/scripts/release/upload-asset.js create mode 100644 .github/workflows/scripts/release/zip-folder.js create mode 100644 CODE-OF-CONDUCT.md create mode 100644 CODEOWNERS create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5b11d01 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +--- +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + time: "01:00" + timezone: "Europe/Berlin" + pull-request-branch-name: + separator: "-" + + # Daily: Check minor and patch updates + - package-ecosystem: "npm" + directory: "/" + open-pull-requests-limit: 10 + schedule: + interval: "daily" + time: "01:00" + timezone: "Europe/Berlin" + pull-request-branch-name: + separator: "-" + versioning-strategy: increase diff --git a/.github/workflows/00-init.yml b/.github/workflows/00-init.yml new file mode 100644 index 0000000..f002684 --- /dev/null +++ b/.github/workflows/00-init.yml @@ -0,0 +1,15 @@ +name: Init Workflow + +on: + workflow_call: + +jobs: + init: + name: Init + runs-on: ubuntu-latest + steps: + - name: ⏬ Checkout repo + uses: actions/checkout@v4 + + - name: πŸ”„ Init Cache Default + uses: ./.github/actions/npm-cache diff --git a/.github/workflows/actions/npm-cache/action.yml b/.github/workflows/actions/npm-cache/action.yml new file mode 100644 index 0000000..0c72e4a --- /dev/null +++ b/.github/workflows/actions/npm-cache/action.yml @@ -0,0 +1,52 @@ +--- +name: "NPM Cache Action" +description: "Initialize NPM Cache" +inputs: + nodeModulesPath: + description: "Path for node_modules" + required: false + default: "**/node_modules" + packageLockPath: + description: "Path for package-lock.json" + required: false + default: "**/package-lock.json" + nodeVersion: + description: "Node version" + required: false + default: "20" +runs: + using: "composite" + steps: + - name: πŸ†™ Setup node + # pick the Node version to use and install it + # https://github.com/actions/setup-node + uses: actions/setup-node@v4 + with: + node-version: ${{ inputs.nodeVersion }} + + - name: Display node and npm version + shell: bash + run: | + node --version + npm --version + + - name: πŸ†’ Init Cache + uses: actions/cache@v4 + id: "cache" + with: + path: ${{ inputs.nodeModulesPath }} + key: ${{ runner.os }}-node-${{ inputs.nodeVersion }}-${{ hashFiles(inputs.packageLockPath) }} + restore-keys: | + ${{ runner.os }}-node-${{ inputs.nodeVersion }} + + - name: πŸŽ„πŸŽΈπŸ₯Š Log Cache Hit + shell: bash + env: + HIT: ${{ steps.cache.outputs.cache-hit }} + run: echo $HIT + + - name: ⏬ NPM ci + shell: bash + if: steps.cache.outputs.cache-hit != 'true' + run: | + npm ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..71adf7d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,45 @@ +--- +name: Upload Figma Plugin/Widget to release page + +on: + release: + types: [published] + +jobs: + init: + uses: ./.github/workflows/00-init.yml + + publish: + name: Upload Figma Plugin/Widget to release page + runs-on: ubuntu-latest + needs: [init] + strategy: + fail-fast: false + matrix: + package: [handover] + permissions: + id-token: write + contents: write + steps: + - name: ⏬ Checkout repo + uses: actions/checkout@v4 + + - name: πŸ”„ Init Cache + uses: ./.github/actions/npm-cache + + - name: πŸ”¨ Build Packages + run: npm run build:${{ matrix.package }} + + - name: ⏫ Upload Release Assets + id: upload-release-asset + uses: actions/github-script@v7 + env: + ICON_RELEASE_ID: ${{ vars.ICON_RELEASE_ID }} + with: + result-encoding: json + script: | + const { default: release } = await import('${{ github.workspace }}/.github/scripts/release/index.js'); + const workspace = '${{ github.workspace }}'; + const zipName = '${{ matrix.package }}'; + const srcDir = 'packages/${{ matrix.package }}'; + return await release({github, context, workspace, zipName, srcDir}) diff --git a/.github/workflows/scripts/release/index.js b/.github/workflows/scripts/release/index.js new file mode 100644 index 0000000..605a73e --- /dev/null +++ b/.github/workflows/scripts/release/index.js @@ -0,0 +1,26 @@ +/* + * Handles full release process for all assets + */ + +import uploadAsset from "./upload-asset.js"; +import zipFolder from "./zip-folder.js"; + +const release = async ({ github, context, workspace, zipName, srcDir }) => { + const { id: release_id } = context.payload.release; + + // 3. Upload latest icon assets + const destPath = `${workspace}/${srcDir}`; + const assetPath = `${destPath}/${zipName}.zip`; + await zipFolder(destPath, assetPath); + + // 3.1 Upload to current release + await uploadAsset({ + github, + context, + release_id, + assetName: zipName, + assetPath, + }); +}; + +export default release; diff --git a/.github/workflows/scripts/release/upload-asset.js b/.github/workflows/scripts/release/upload-asset.js new file mode 100644 index 0000000..98ebe7e --- /dev/null +++ b/.github/workflows/scripts/release/upload-asset.js @@ -0,0 +1,42 @@ +/* + * Uploads a file to a release + */ +import FS from 'node:fs'; + +const uploadAsset = async ({ + github, + context, + release_id, + assetName, + assetPath +}) => { + const { repo, owner } = context.repo; + + const uploadRelease = await github.rest.repos.getRelease({ + owner, + repo, + release_id + }); + + const { assets = [] } = uploadRelease.data; + + const foundAsset = assets?.find((asset) => asset.name === assetName); + + if (foundAsset) { + await github.rest.repos.deleteReleaseAsset({ + owner, + repo, + asset_id: foundAsset.id + }); + } + + return await github.rest.repos.uploadReleaseAsset({ + owner, + repo, + release_id, + name: assetName, + data: FS.readFileSync(assetPath) + }); +}; + +export default uploadAsset; diff --git a/.github/workflows/scripts/release/zip-folder.js b/.github/workflows/scripts/release/zip-folder.js new file mode 100644 index 0000000..ddca6d9 --- /dev/null +++ b/.github/workflows/scripts/release/zip-folder.js @@ -0,0 +1,12 @@ +/* Zips a complete folder */ + +import AdmZip from "adm-zip"; + +const zipFolder = async (destPath, assetPath) => { + const zip = new AdmZip(); + zip.addLocalFolder(`${destPath}/dist`); + zip.addLocalFile(`${destPath}/manifest.json`); + return zip.writeZipPromise(assetPath); +}; + +export default zipFolder; diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md new file mode 100644 index 0000000..fff1d73 --- /dev/null +++ b/CODE-OF-CONDUCT.md @@ -0,0 +1,132 @@ +# Contributor Covenant 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 +[db-ux-designsystem@deutschebahn.com](mailto:db-ux-designsystem@deutschebahn.com). +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/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..e98241e --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,3 @@ +# Global Repository owners +# see https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/about-code-owners for details of syntax +* maximilian.franzke@deutschebahn.com nicolas.merget@deutschebahn.com bruno.schadeck@deutschebahn.com diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a6d807c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,15 @@ +# Contributing + +Thanks for your interest in our project. Contributions are welcome. Feel free to [open an issue](https://github.com/db-ui/figma-hub/issues/new) with questions or reporting ideas and bugs, or [open pull requests](https://github.com/db-ui/figma-hub/compare) to contribute code. + +We are committed to fostering a welcoming, respectful, and harassment-free environment. Be kind! + +## Before you commit + +Please make sure that husky is installed correctly to validate your changes. + +Moreover, you need to duplicate `.env.template` as `.env` and type your own email address. This ensures that you have the correct email set for this project. + +### Conventions + +Please be aware that we have some [code and git commit (message and branch naming) conventions](docs/conventions.md), that we ensure with some linting tools. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/package-lock.json b/package-lock.json index 0de99b9..e510acb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,9 @@ ], "dependencies": { "npm-run-all": "4.1.5" + }, + "devDependencies": { + "adm-zip": "^0.5.16" } }, "node_modules/@alloc/quick-lru": { @@ -1762,6 +1765,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "dev": true, + "engines": { + "node": ">=12.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6124,6 +6136,7 @@ } }, "packages/auto-sync/ui": { + "name": "auto-sync-ui", "version": "0.0.0", "dependencies": { "@db-ui/react-components": "^0.5.5", @@ -6609,6 +6622,7 @@ } }, "packages/handover": { + "name": "@db-ui/handover", "version": "1.0.0", "license": "MIT", "workspaces": [ @@ -6803,6 +6817,7 @@ } }, "packages/handover/ui": { + "name": "handover-ui", "version": "0.0.0", "dependencies": { "@db-ui/react-components": "^0.5.5", @@ -6910,6 +6925,7 @@ } }, "packages/handover/widget": { + "name": "handover-widget", "version": "1.0.0", "devDependencies": { "@figma/eslint-plugin-figma-plugins": "*", diff --git a/package.json b/package.json index 3b8e3d2..450d9c6 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,25 @@ { - "name": "@db-ui/figma-hub", + "name": "@db-ux/figma-hub", "version": "1.0.0", "description": "", "main": "index.js", + "type": "module", "workspaces": [ "packages/**" ], "scripts": { "build": "npm-run-all -p build:*", - "build:codegen": "npm run build -w=@db-ui/codegen", - "build:inspect": "npm run build -w=@db-ui/inspect", - "build:design-migration": "npm run build -w=@db-ui/design-migration", + "build:codegen": "npm run build -w=@db-ux/codegen", + "build:inspect": "npm run build -w=@db-ux/inspect", + "build:handover": "npm run build -w=@db-ux/handover", + "build:auto-sync": "npm run build -w=@db-ux/auto-sync", + "build:design-migration": "npm run build -w=@db-ux/design-migration", "dev": "npm-run-all -p dev:*", - "dev:codegen": "npm run dev -w=@db-ui/codegen", - "dev:inspect": "npm run dev -w=@db-ui/inspect", - "dev:design-migration": "npm run dev -w=@db-ui/design-migration" + "dev:codegen": "npm run dev -w=@db-ux/codegen", + "dev:inspect": "npm run dev -w=@db-ux/inspect", + "dev:handover": "npm run dev -w=@db-ux/handover", + "dev:auto-sync": "npm run dev -w=@db-ux/auto-sync", + "dev:design-migration": "npm run dev -w=@db-ux/design-migration" }, "author": "", "license": "MIT", @@ -23,5 +28,8 @@ }, "overrides": { "cross-spawn": "~7.0.5" + }, + "devDependencies": { + "adm-zip": "^0.5.16" } } diff --git a/packages/auto-sync/package.json b/packages/auto-sync/package.json index c326c19..a7a5757 100644 --- a/packages/auto-sync/package.json +++ b/packages/auto-sync/package.json @@ -1,5 +1,5 @@ { - "name": "@db-ui/auto-sync", + "name": "@db-ux/auto-sync", "version": "1.0.0", "description": "", "workspaces": [ diff --git a/packages/codegen/package.json b/packages/codegen/package.json index 285bd28..5d489d1 100644 --- a/packages/codegen/package.json +++ b/packages/codegen/package.json @@ -1,5 +1,5 @@ { - "name": "@db-ui/codegen", + "name": "@db-ux/codegen", "version": "1.0.0", "description": "", "main": "index.js", diff --git a/packages/design-migration/package.json b/packages/design-migration/package.json index 0dc5fb3..1829a3c 100644 --- a/packages/design-migration/package.json +++ b/packages/design-migration/package.json @@ -1,5 +1,5 @@ { - "name": "@db-ui/design-migration", + "name": "@db-ux/design-migration", "version": "1.0.0", "description": "", "main": "index.js", diff --git a/packages/handover/package.json b/packages/handover/package.json index 51a98d8..9b423e9 100644 --- a/packages/handover/package.json +++ b/packages/handover/package.json @@ -1,5 +1,5 @@ { - "name": "@db-ui/handover", + "name": "@db-ux/handover", "version": "1.0.0", "description": "", "workspaces": [ diff --git a/packages/inspect/package.json b/packages/inspect/package.json index 62479b7..a5b98e9 100644 --- a/packages/inspect/package.json +++ b/packages/inspect/package.json @@ -1,5 +1,5 @@ { - "name": "@db-ui/inspect", + "name": "@db-ux/inspect", "version": "1.0.0", "description": "", "main": "index.js",