diff --git a/.config/scripts/run-publish-monorepo.mjs b/.config/scripts/run-publish-monorepo.mjs deleted file mode 100644 index 7096a6f..0000000 --- a/.config/scripts/run-publish-monorepo.mjs +++ /dev/null @@ -1,33 +0,0 @@ -import ScanPublishOrder from './scan-publish-order.mjs'; -import {fileURLToPath} from 'node:url'; -import * as path from 'node:path'; -import UpdateMonorepoPackagesVersion from './update-monorepo-packages-version.mjs'; -import {execSync} from 'node:child_process'; -import semanticReleaseConfig from '../semantic-release.json' assert {type: 'json'}; - -const __dirname = fileURLToPath(new URL('.', import.meta.url)); -const PACKAGES_PATH = path.join(__dirname, '..', '..', 'packages'); - -async function updateAllPackages() { - const packagesPathByOrder = await new ScanPublishOrder(PACKAGES_PATH).getReleaseOrder(); - - for (const packagePath of packagesPathByOrder) { - const packageJsonPath = path.join(packagePath, 'package.json'); - - const packageManage = new UpdateMonorepoPackagesVersion(packageJsonPath); - const packageContent = await packageManage.updatePackage(); - - packageContent.release = {...semanticReleaseConfig}; - packageContent.release.tagFormat = `${packageContent.name}@\${version}`; - - await packageManage.savePackageJson(); - - execSync('npm run release', {cwd: packagePath, stdio: 'inherit'}); - } -} - -async function main() { - await updateAllPackages(); -} - -await main(); diff --git a/.config/scripts/scan-publish-order.mjs b/.config/scripts/scan-publish-order.mjs deleted file mode 100644 index 2ec63fd..0000000 --- a/.config/scripts/scan-publish-order.mjs +++ /dev/null @@ -1,108 +0,0 @@ -import fs from 'fs/promises'; -import * as path from 'node:path'; - -const DEFAULT_ORGANIZATION_PACKAGE_VERSION = '0.0.1'; - -export default class ScanPublishOrder { - /** - * @typedef {{ - * [packageName: string]: string - * }} Dependencies - * - * @type {{ - * [packagePath: string]: { - * name: string, - * dependencies: Dependencies, - * devDependencies: Dependencies - * } - * }} - */ - #packagesContent = {}; - - /** - * Package name by dependency order - * @type {string[]} - */ - #packagesOrder = []; - - /** - * Package path by dependency order - * @returns {string[]} - */ - get #packagesOrderPath() { - const entries = Object.entries(this.#packagesContent); - return this.#packagesOrder.map(packageName => { - const packageFound = entries.find(([, packageContent]) => packageContent.name === packageName); - return packageFound[0]; - }); - } - - - /** - * - * @param scanLocation {string} - */ - constructor(scanLocation) { - this.scanLocation = scanLocation; - } - - async #readAllPackages() { - const packages = await fs.readdir(this.scanLocation, {withFileTypes: true}); - for (const packageState of packages) { - if (packageState.isFile()) continue; - - const packagePath = path.join(this.scanLocation, packageState.name); - const packageJsonPath = path.join(packagePath, 'package.json'); - if (await fs.stat(packageJsonPath).then(stat => stat.isFile())) { - const packageContent = await fs.readFile(packageJsonPath, 'utf-8').then(JSON.parse); - this.#packagesContent[packagePath] = packageContent; - } - } - } - - async #orderByDependencies() { - let somethingChanged = true; - - while (somethingChanged) { - somethingChanged = false; - for (const content of Object.values(this.#packagesContent)) { - if (this.#packagesOrder.includes(content.name)) { - continue; - } - - if (this.#checkOkToBeNextInOrder(content.dependencies)) { - this.#packagesOrder.push(content.name); - somethingChanged = true; - } - } - } - } - - /** - * Check if all package dependencies already published - * @param dependencies {Dependencies} - * @returns {boolean} - */ - #checkOkToBeNextInOrder(dependencies = {}) { - for (const [key, value] of Object.entries(dependencies)) { - if (value.endsWith(DEFAULT_ORGANIZATION_PACKAGE_VERSION) && !this.#packagesOrder.includes(key)) { - return false; - } - } - return true; - } - - #assertMissingPackages() { - const missingPackages = Object.values(this.#packagesContent).filter(content => !this.#packagesOrder.includes(content.name)); - if (missingPackages.length) { - throw new Error(`Missing packages: ${missingPackages.map(content => content.name).join(', ')}, probably circular dependencies`); - } - } - - async getReleaseOrder() { - await this.#readAllPackages(); - await this.#orderByDependencies(); - this.#assertMissingPackages(); - return this.#packagesOrderPath; - } -} diff --git a/.config/scripts/update-monorepo-packages-version.mjs b/.config/scripts/update-monorepo-packages-version.mjs deleted file mode 100644 index e257c06..0000000 --- a/.config/scripts/update-monorepo-packages-version.mjs +++ /dev/null @@ -1,67 +0,0 @@ -import fs from 'fs/promises'; - -export default class UpdateMonorepoPackagesVersion { - #packageContent; - #hadUpdate = false; - - /** - * Update versions of organization packages in `dependencies` and `devDependencies` objects - * @param packagePath {string} - */ - constructor(packagePath) { - this.packagePath = packagePath; - } - - /** - * Get default version of organization monorepo packages - * @returns {string} - */ - get defaultVersion() { - return this.#packageContent?.version; - } - - /** - * Update versions of organization packages in `dependencies` like object - * @param data {{[key: string]: string}} - */ - async #updateVersions(data = {}) { - for (const key in data) { - const value = data[key]; - if (key.startsWith('@') && this.defaultVersion === value) { - data[key] = await UpdateMonorepoPackagesVersion.getLatestVersion(key); - this.#hadUpdate = true; - } - } - } - - async #readPackageJson() { - this.#packageContent = await fs.readFile(this.packagePath, 'utf-8').then(JSON.parse); - } - - async savePackageJson() { - await fs.writeFile(this.packagePath, JSON.stringify(this.#packageContent, null, 2)); - } - - async updatePackage() { - await this.#readPackageJson(); - await this.#updateVersions(this.#packageContent.dependencies); - await this.#updateVersions(this.#packageContent.devDependencies); - - if (this.#hadUpdate) { - await this.savePackageJson(); - } - - return this.#packageContent; - } - - /** - * Get the latest version of package from npm registry - * @param packageName {string} - * @returns {Promise} - */ - static async getLatestVersion(packageName) { - const packageSearch = await fetch(`https://registry.npmjs.org/-/v1/search?text=${packageName}&size=1`); - const packageSearchJson = await packageSearch.json(); - return packageSearchJson.objects[0].package.version; - } -} diff --git a/.config/semantic-release.json b/.config/semantic-release.json deleted file mode 100644 index 2c4993d..0000000 --- a/.config/semantic-release.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "extends": "semantic-release-commit-filter", - "branches": [ - "main" - ], - "ci": true, - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": [ - { - "type": "docs", - "scope": "README", - "release": "patch" - }, - { - "type": "update", - "scope": "bind", - "release": "patch" - }, - { - "type": "refactor", - "release": "patch" - }, - { - "type": "style", - "release": "patch" - } - ], - "parserOpts": { - "noteKeywords": [ - "BREAKING CHANGE", - "BREAKING CHANGES", - "BREAKING" - ] - } - } - ], - [ - "@semantic-release/release-notes-generator", - { - "preset": "angular", - "presetConfig": { - "header": "Release Notes", - "types": [ - { - "type": "feat", - "section": "Features" - }, - { - "type": "fix", - "section": "Bug Fixes" - }, - { - "type": "chore", - "hidden": true - }, - { - "type": "docs", - "hidden": true - }, - { - "type": "style", - "hidden": true - }, - { - "type": "refactor", - "hidden": true - }, - { - "type": "perf", - "hidden": true - }, - { - "type": "test", - "hidden": true - } - ] - }, - "parserOpts": { - "noteKeywords": [ - "BREAKING CHANGE", - "BREAKING CHANGES", - "BREAKING" - ] - }, - "writerOpts": { - "commitsSort": [ - "subject", - "scope" - ] - } - } - ], - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/github" - ] -} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4f792d..e1306ac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: "20" - - name: Install modules & build + - name: Install modules run: | npm ci diff --git a/package-lock.json b/package-lock.json index 89dac2a..e3a7b59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,7 @@ "examples/*" ], "devDependencies": { - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^11.1.0", - "@semantic-release/npm": "^11.0.1", - "@semantic-release/release-notes-generator": "^12.1.0", - "semantic-release": "^22.0.8", - "semantic-release-commit-filter": "^1.0.2" + "semantic-release-npm-workspaces-monorepo": "^1.0.0" } }, "examples/simple-form": { @@ -815,6 +810,169 @@ "node": ">=18" } }, + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", + "dev": true, + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" + } + }, + "node_modules/@semantic-release/git/node_modules/@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", + "dev": true, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@semantic-release/git/node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/git/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@semantic-release/git/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/git/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@semantic-release/git/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/git/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@semantic-release/git/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/git/node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@semantic-release/github": { "version": "9.2.3", "dev": true, @@ -2467,6 +2625,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/common-ancestor-path": { "version": "1.0.1", "license": "ISC" @@ -2747,6 +2911,17 @@ "node": ">=4.0.0" } }, + "node_modules/defaults": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-3.0.0.tgz", + "integrity": "sha512-RsqXDEAALjfRTro+IFNKpcPCt0/Cy2FqHSIlnomiJp9YGadpQnrtbRpSgN2+np21qHcIKiva4fiOQGjS9/qR/A==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", @@ -5637,6 +5812,33 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", + "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", + "dev": true, + "dependencies": { + "which": "^1.2.10" + }, + "bin": { + "npm-path": "bin/npm-path" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm-path/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/npm-run-path": { "version": "5.1.0", "license": "MIT", @@ -5660,6 +5862,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", + "integrity": "sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==", + "dev": true, + "dependencies": { + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" + }, + "bin": { + "npm-which": "bin/npm-which.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/npm-which/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/npm/node_modules/@colors/colors": { "version": "1.5.0", "dev": true, @@ -9591,6 +9822,24 @@ "integrity": "sha512-LpIB1UN78oRmJnqgPdvA/qRgVitih5V1Ybyszv8GcOBAJWJBHGWI1PmSrOfdEmbf1ZvGkdK/NNDdBHbuSQqSyQ==", "dev": true }, + "node_modules/semantic-release-npm-workspaces-monorepo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semantic-release-npm-workspaces-monorepo/-/semantic-release-npm-workspaces-monorepo-1.0.0.tgz", + "integrity": "sha512-/A4ierb2j2efKUy//t0i8ixhFi4W9zPf56LzsMjJPEi2Bw2mBL3aP3aw6OCiejuMDEI2HjNEcbo8WYd/7KNB5A==", + "dev": true, + "dependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "cosmiconfig": "^8.3.6", + "defaults": "^3.0.0", + "npm-which": "^3.0.1", + "semantic-release": "^22.0.8", + "semantic-release-commit-filter": "^1.0.2" + }, + "bin": { + "semantic-release-npm-workspaces-monorepo": "dist/index.js" + } + }, "node_modules/semantic-release/node_modules/get-stream": { "version": "6.0.1", "dev": true, @@ -11575,7 +11824,7 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@astro-utils/formidable": "1.1.2", + "@astro-utils/formidable": "0.0.1", "@tinyhttp/accepts": "^2.2.0", "cookie": "^0.6.0", "express-serve-static-core": "0.1.1", @@ -11590,14 +11839,6 @@ "typescript": "^5.2.2" } }, - "packages/express-endpoints/node_modules/@astro-utils/formidable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@astro-utils/formidable/-/formidable-1.1.2.tgz", - "integrity": "sha512-2q5xNQx5UOSTx7UYt0pmrwOw21wIkr6LztCmNl+EPLE/H4R/LfILm/J6OSBIdiyVd/9opVVmIWya2Fmqzpx1PQ==", - "dependencies": { - "formidable": "^3.2.5" - } - }, "packages/express-endpoints/node_modules/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", @@ -11637,8 +11878,8 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@astro-utils/context": "1.1.2", - "@astro-utils/formidable": "1.1.2", + "@astro-utils/context": "0.0.1", + "@astro-utils/formidable": "0.0.1", "await-lock": "^2.2.2", "cookie": "^0.5.0", "csrf": "^3.1.0", @@ -11662,29 +11903,6 @@ "astro": "^3.5.5" } }, - "packages/forms/node_modules/@astro-utils/context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@astro-utils/context/-/context-1.1.2.tgz", - "integrity": "sha512-2w2xUJqNDMI4YuvVl+yelaR9/sYhft3/GdFAqd18gPU3A0+zdetBLCl+4mz1Y6koWCP6H6kQ2OH6DC253XEf3g==" - }, - "packages/forms/node_modules/@astro-utils/formidable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@astro-utils/formidable/-/formidable-1.1.2.tgz", - "integrity": "sha512-2q5xNQx5UOSTx7UYt0pmrwOw21wIkr6LztCmNl+EPLE/H4R/LfILm/J6OSBIdiyVd/9opVVmIWya2Fmqzpx1PQ==", - "dependencies": { - "formidable": "^3.2.5" - } - }, - "packages/forms/node_modules/defaults": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/forms/node_modules/typescript": { "version": "5.2.2", "dev": true, diff --git a/package.json b/package.json index e9bc31f..fc60320 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,16 @@ "examples/*" ], "scripts": { - "create-release": "node .config/scripts/run-publish-monorepo.mjs" + "create-release": "semantic-release-npm-workspaces-monorepo" + }, + "workspaceRelease": { + "release": { + "branches": [ + "main" + ] + } }, "devDependencies": { - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^11.1.0", - "@semantic-release/npm": "^11.0.1", - "@semantic-release/release-notes-generator": "^12.1.0", - "semantic-release": "^22.0.8", - "semantic-release-commit-filter": "^1.0.2" + "semantic-release-npm-workspaces-monorepo": "^1.0.0" } } diff --git a/packages/context/package.json b/packages/context/package.json index 23caf5c..0e88167 100644 --- a/packages/context/package.json +++ b/packages/context/package.json @@ -5,8 +5,7 @@ "type": "module", "scripts": { "build": "rm -r dist; tsc", - "prepack": "npm run build", - "release": "semantic-release" + "prepack": "npm run build" }, "keywords": [ "astro", diff --git a/packages/express-endpoints/package.json b/packages/express-endpoints/package.json index 0a7aa7b..c90cc0e 100644 --- a/packages/express-endpoints/package.json +++ b/packages/express-endpoints/package.json @@ -5,8 +5,7 @@ "type": "module", "scripts": { "build": "rm -r dist; tsc", - "prepack": "npm run build", - "release": "semantic-release" + "prepack": "npm run build" }, "files": [ "dist/*", diff --git a/packages/formidable/package.json b/packages/formidable/package.json index 40564ed..92913c3 100644 --- a/packages/formidable/package.json +++ b/packages/formidable/package.json @@ -14,8 +14,7 @@ ], "scripts": { "build": "rm -r dist; tsc", - "prepack": "npm run build", - "release": "semantic-release" + "prepack": "npm run build" }, "keywords": [ "astro", diff --git a/packages/forms/package.json b/packages/forms/package.json index a763228..8b99828 100644 --- a/packages/forms/package.json +++ b/packages/forms/package.json @@ -5,8 +5,7 @@ "type": "module", "scripts": { "build": "rm -r dist; tsc", - "prepack": "npm run build", - "release": "semantic-release" + "prepack": "npm run build" }, "keywords": [ "ASPX",