diff --git a/packages/create-sitecore-jss/package.json b/packages/create-sitecore-jss/package.json index d821bada3f..b6bcff5d25 100644 --- a/packages/create-sitecore-jss/package.json +++ b/packages/create-sitecore-jss/package.json @@ -50,6 +50,7 @@ "@types/minimist": "^1.2.2", "@types/mocha": "^10.0.1", "@types/node": "^20.14.2", + "@types/proxyquire": "^1.3.31", "@types/sinon": "10.0.6", "@types/sinon-chai": "^3.2.9", "chai": "^4.3.7", @@ -58,6 +59,7 @@ "eslint": "^8.32.0", "mocha": "^10.2.0", "nyc": "^15.1.0", + "proxyquire": "^2.1.3", "sinon": "^15.0.1", "sinon-chai": "^3.7.0", "ts-node": "^10.9.1", diff --git a/packages/create-sitecore-jss/src/common/processes/transform.test.ts b/packages/create-sitecore-jss/src/common/processes/transform.test.ts index 346c603704..a9c84c8548 100644 --- a/packages/create-sitecore-jss/src/common/processes/transform.test.ts +++ b/packages/create-sitecore-jss/src/common/processes/transform.test.ts @@ -10,6 +10,7 @@ import sinon, { SinonStub } from 'sinon'; import { currentPkg, partialPkg } from '../test-data/pkg'; import * as transform from './transform'; import * as helpers from '../utils/helpers'; +import proxyquire from 'proxyquire'; const { transformFilename, @@ -507,7 +508,6 @@ describe('transform', () => { globSyncStub = sinon.stub(glob, 'sync').returns([file]); ejsRenderFileStub = sinon.stub(ejs, 'renderFile').returns(Promise.resolve(renderFileOutput)); - diffAndWriteFilesStub = sinon.stub(transform, 'diffAndWriteFiles'); const answers = { destination: destinationPath, @@ -516,10 +516,17 @@ describe('transform', () => { force: false, }; - await transformFunc(templatePath, answers); + const transformModule = proxyquire('./transform', { + '../../../package.json': { version: '22.2.1-canary.33' }, + }); + + diffAndWriteFilesStub = sinon.stub(transformModule, 'diffAndWriteFiles'); + + await transformModule.transform(templatePath, answers); expect(ejsRenderFileStub).to.have.been.calledOnceWith(path.join(templatePath, file), { ...answers, + version: '22.2.1-canary.33', helper: { isDev: false, getPascalCaseName: helpers.getPascalCaseName, @@ -629,8 +636,6 @@ describe('transform', () => { fsExistsSyncStub = sinon.stub(fs, 'existsSync').returns(true); openJsonFileStub = sinon.stub(helpers, 'openJsonFile').returns(currentPkg); ejsRenderFileStub = sinon.stub(ejs, 'renderFile').returns(Promise.resolve(renderFileOutput)); - mergeStub = sinon.stub(transform, 'merge').returns(mergedPkg); - diffAndWriteFilesStub = sinon.stub(transform, 'diffAndWriteFiles'); const answers = { destination: destinationPath, @@ -639,10 +644,18 @@ describe('transform', () => { force: false, }; - await transformFunc(templatePath, answers); + const transformModule = proxyquire('./transform', { + '../../../package.json': { version: '22.2.1-canary.33' }, + }); + + diffAndWriteFilesStub = sinon.stub(transformModule, 'diffAndWriteFiles'); + mergeStub = sinon.stub(transformModule, 'merge').returns(mergedPkg); + + await transformModule.transform(templatePath, answers); expect(ejsRenderFileStub).to.have.been.calledOnceWith(path.join(templatePath, file), { ...answers, + version: '22.2.1-canary.33', helper: { isDev: false, getPascalCaseName: helpers.getPascalCaseName, @@ -670,8 +683,6 @@ describe('transform', () => { fsExistsSyncStub = sinon.stub(fs, 'existsSync').returns(true); openJsonFileStub = sinon.stub(helpers, 'openJsonFile').returns(currentJson); ejsRenderFileStub = sinon.stub(ejs, 'renderFile').returns(Promise.resolve(renderFileOutput)); - mergeStub = sinon.stub(transform, 'merge').returns(mergedPkg); - diffAndWriteFilesStub = sinon.stub(transform, 'diffAndWriteFiles'); const answers = { destination: destinationPath, @@ -680,10 +691,18 @@ describe('transform', () => { force: false, }; - await transformFunc(templatePath, answers); + const transformModule = proxyquire('./transform', { + '../../../package.json': { version: '22.2.1-canary.33' }, + }); + + mergeStub = sinon.stub(transformModule, 'merge').returns(mergedPkg); + diffAndWriteFilesStub = sinon.stub(transformModule, 'diffAndWriteFiles'); + + await transformModule.transform(templatePath, answers); expect(ejsRenderFileStub).to.have.been.calledOnceWith(path.join(templatePath, file), { ...answers, + version: '22.2.1-canary.33', helper: { isDev: false, getPascalCaseName: helpers.getPascalCaseName, @@ -711,8 +730,13 @@ describe('transform', () => { fsExistsSyncStub = sinon.stub(fs, 'existsSync').returns(true); fsReadFileSunc = sinon.stub(fs, 'readFileSync').returns(currentDotEnv); ejsRenderFileStub = sinon.stub(ejs, 'renderFile').returns(Promise.resolve(templateDotEnv)); - mergeEnvStub = sinon.stub(transform, 'mergeEnv').returns(concatDotEnv); - diffAndWriteFilesStub = sinon.stub(transform, 'diffAndWriteFiles'); + + const transformModule = proxyquire('./transform', { + '../../../package.json': { version: '22.2.1-canary.33' }, + }); + + mergeEnvStub = sinon.stub(transformModule, 'mergeEnv').returns(concatDotEnv); + diffAndWriteFilesStub = sinon.stub(transformModule, 'diffAndWriteFiles'); const answers = { destination: destinationPath, @@ -721,10 +745,11 @@ describe('transform', () => { force: false, }; - await transformFunc(templatePath, answers); + await transformModule.transform(templatePath, answers); expect(ejsRenderFileStub).to.have.been.calledOnceWith(path.join(templatePath, file), { ...answers, + version: '22.2.1-canary.33', helper: { isDev: false, getPascalCaseName: helpers.getPascalCaseName, diff --git a/packages/create-sitecore-jss/src/common/processes/transform.ts b/packages/create-sitecore-jss/src/common/processes/transform.ts index d6412c599f..3c4e8264f3 100644 --- a/packages/create-sitecore-jss/src/common/processes/transform.ts +++ b/packages/create-sitecore-jss/src/common/processes/transform.ts @@ -15,6 +15,7 @@ import { } from '../utils/helpers'; import { diffLines, diffJson, Change } from 'diff'; import { BaseArgs } from '../args/base'; +import { version } from '../../../package.json'; const FILE_FOR_COPY_REGEXP = /(index\.html)$|\.(gif|jpg|jpeg|tiff|png|svg|ashx|ico|pdf|jar|eot|woff|ttf|woff2)$/; @@ -196,6 +197,7 @@ export const populateEjsData = (answers: BaseArgs, destination?: string) => { // pass in helper to answers object const ejsData: Data = { ...answers, + version, helper: { isDev: isDevEnvironment(destination || answers.destination), getPascalCaseName: getPascalCaseName, diff --git a/packages/create-sitecore-jss/src/templates/angular/package.json b/packages/create-sitecore-jss/src/templates/angular/package.json index 0aaf5d313d..cf92e90437 100644 --- a/packages/create-sitecore-jss/src/templates/angular/package.json +++ b/packages/create-sitecore-jss/src/templates/angular/package.json @@ -1,6 +1,6 @@ { "name": "<%- appName %>", - "version": "22.2.0-canary", + "version": "<%- version %>", "description": "Application utilizing Sitecore JavaScript Services and Angular (angular-cli).", "config": { "appName": "<%- appName %>", @@ -57,7 +57,7 @@ "@apollo/client": "^3.3.12", "@ngx-translate/core": "~15.0.0", "@ngx-translate/http-loader": "~8.0.0", - "@sitecore-jss/sitecore-jss-angular": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-angular": "~<%- version %>", "apollo-angular": "~6.0.0", "bootstrap": "^5.3.3", "core-js": "~3.37.1", @@ -78,9 +78,9 @@ "@angular/cli": "~17.3.8", "@angular/compiler-cli": "~17.3.11", "@angular/language-service": "~17.3.11", - "@sitecore-jss/sitecore-jss-angular-schematics": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-angular-schematics": "~<%- version %>", + "@sitecore-jss/sitecore-jss-cli": "~<%- version %>", + "@sitecore-jss/sitecore-jss-dev-tools": "~<%- version %>", "@types/jasmine": "~3.6.7", "@types/jasminewd2": "~2.0.8", "@types/node": "~20.14.10", diff --git a/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json b/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json index cc2658a5d5..f1723a9537 100644 --- a/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json +++ b/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json @@ -4,7 +4,7 @@ "nprogress": "~0.2.0" }, "devDependencies": { - "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-dev-tools": "~<%- version %>", "@types/nprogress": "^0.2.0" }, "scripts": { diff --git a/packages/create-sitecore-jss/src/templates/nextjs/package.json b/packages/create-sitecore-jss/src/templates/nextjs/package.json index 7665d0d39a..c7084b745c 100644 --- a/packages/create-sitecore-jss/src/templates/nextjs/package.json +++ b/packages/create-sitecore-jss/src/templates/nextjs/package.json @@ -1,7 +1,7 @@ { "name": "<%- appName %>", "description": "Application utilizing Sitecore JavaScript Services and Next.js", - "version": "22.2.0-canary", + "version": "<%- version %>", "private": true, "config": { "appName": "<%- appName %>", @@ -25,7 +25,7 @@ }, "license": "Apache-2.0", "dependencies": { - "@sitecore-jss/sitecore-jss-nextjs": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-nextjs": "~<%- version %>", "graphql": "~15.8.0", "graphql-tag": "^2.12.6", "next": "^14.2.7", @@ -43,8 +43,8 @@ "@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-codegen/typescript-resolvers": "^4.0.1", "@graphql-typed-document-node/core": "^3.2.0", - "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-cli": "~<%- version %>", + "@sitecore-jss/sitecore-jss-dev-tools": "~<%- version %>", "@types/node": "^20.14.2", "@types/react": "^18.2.22", "@types/react-dom": "^18.0.5", diff --git a/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json b/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json index 3017c0be2b..180586991d 100644 --- a/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json +++ b/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json @@ -1,6 +1,6 @@ { "name": "node-headless-ssr-experience-edge-sample", - "version": "22.2.0-canary", + "version": "<%- version %>", "description": "Node server-side-rendering sample for running JSS apps under Node hosting using Experience Edge", "scripts": { "start": "ts-node ./src/index.ts" @@ -19,7 +19,7 @@ "homepage": "https://jss.sitecore.com", "license": "Apache-2.0", "dependencies": { - "@sitecore-jss/sitecore-jss": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss": "~<%- version %>", "compression": "^1.7.4", "express": "^4.18.2", "dotenv": "^16.0.3" diff --git a/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json b/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json index 5286e053b1..5dd99a6059 100644 --- a/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json +++ b/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json @@ -1,6 +1,6 @@ { "name": "node-headless-ssr-proxy-sample", - "version": "22.2.0-canary", + "version": "<%- version %>", "description": "Node server-side-rendering proxy sample for running JSS apps under Node hosting", "scripts": { "start": "ts-node ./src/index.ts" @@ -19,8 +19,8 @@ "homepage": "https://jss.sitecore.com", "license": "Apache-2.0", "dependencies": { - "@sitecore-jss/sitecore-jss": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-proxy": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss": "~<%- version %>", + "@sitecore-jss/sitecore-jss-proxy": "~<%- version %>", "agentkeepalive": "^4.2.1", "compression": "~1.7.4", "express": "~4.19.2", diff --git a/packages/create-sitecore-jss/src/templates/node-xmcloud-proxy/package.json b/packages/create-sitecore-jss/src/templates/node-xmcloud-proxy/package.json index b05cf0f709..4d7af2e399 100644 --- a/packages/create-sitecore-jss/src/templates/node-xmcloud-proxy/package.json +++ b/packages/create-sitecore-jss/src/templates/node-xmcloud-proxy/package.json @@ -1,6 +1,6 @@ { "name": "node-xmcloud-sample", - "version": "22.2.0-canary", + "version": "<%- version %>", "description": "Node XM Cloud Proxy sample for running XM Cloud JSS SPA apps", "author": { "name": "Sitecore Corporation", @@ -10,14 +10,14 @@ "start": "ts-node ./src/index.ts" }, "dependencies": { - "@sitecore-jss/sitecore-jss-proxy": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-proxy": "~<%- version %>", "compression": "^1.7.4", "express": "^4.18.2", "dotenv": "^16.0.3", "http-proxy-middleware": "^3.0.0" }, "devDependencies": { - "@sitecore-jss/sitecore-jss": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss": "~<%- version %>", "@types/compression": "^1.7.2", "@types/express": "^4.17.17", "ts-node": "^10.9.1", diff --git a/packages/create-sitecore-jss/src/templates/react-native/package.json b/packages/create-sitecore-jss/src/templates/react-native/package.json index 3735cfba46..ca352662ec 100644 --- a/packages/create-sitecore-jss/src/templates/react-native/package.json +++ b/packages/create-sitecore-jss/src/templates/react-native/package.json @@ -1,6 +1,6 @@ { "name": "<%- appName %>", - "version": "22.2.0-canary", + "version": "<%- version %>", "description": "A basic React Native app utilizing Sitecore JavaScript Services", "config": { "appName": "<%- appName %>", @@ -23,7 +23,7 @@ }, "dependencies": { "@react-native-community/masked-view": "^0.1.10", - "@sitecore-jss/sitecore-jss-react-native": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-react-native": "~<%- version %>", "prop-types": "^15.6.0", "react": "16.13.1", "react-native": "^0.63.4", @@ -37,8 +37,8 @@ }, "private": true, "devDependencies": { - "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-cli": "~<%- version %>", + "@sitecore-jss/sitecore-jss-dev-tools": "~<%- version %>", "babel-core": "^6.26.0", "babel-eslint": "^8.2.1", "babel-plugin-inline-replace-variables": "^1.3.1", diff --git a/packages/create-sitecore-jss/src/templates/react/package.json b/packages/create-sitecore-jss/src/templates/react/package.json index cab94ed384..bb0997927a 100644 --- a/packages/create-sitecore-jss/src/templates/react/package.json +++ b/packages/create-sitecore-jss/src/templates/react/package.json @@ -1,7 +1,7 @@ { "name": "<%- appName %>", "description": "Application utilizing Sitecore JavaScript Services and React (create-react-app).", - "version": "22.2.0-canary", + "version": "<%- version %>", "private": true, "config": { "appName": "<%- appName %>", @@ -28,7 +28,7 @@ "license": "Apache-2.0", "dependencies": { "@apollo/client": "^3.7.1", - "@sitecore-jss/sitecore-jss-react": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-react": "~<%- version %>", "axios": "^1.2.0", "bootstrap": "^5.2.3", "cross-fetch": "^3.1.5", @@ -53,9 +53,9 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/register": "~7.18.9", - "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-rendering-host": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-cli": "~<%- version %>", + "@sitecore-jss/sitecore-jss-dev-tools": "~<%- version %>", + "@sitecore-jss/sitecore-jss-rendering-host": "~<%- version %>", "babel-loader": "~9.1.0", "babel-preset-react-app": "~10.0.1", "chalk": "~4.1.2", diff --git a/packages/create-sitecore-jss/src/templates/vue/package.json b/packages/create-sitecore-jss/src/templates/vue/package.json index 833e2b9b30..59a6095782 100644 --- a/packages/create-sitecore-jss/src/templates/vue/package.json +++ b/packages/create-sitecore-jss/src/templates/vue/package.json @@ -1,6 +1,6 @@ { "name": "<%- appName %>", - "version": "22.2.0-canary", + "version": "<%- version %>", "description": "Application utilizing Sitecore JavaScript Services and Vue (vue-cli).", "private": true, "config": { @@ -45,7 +45,7 @@ "dependencies": { "@apollo/client": "^3.7.4", "@panter/vue-i18next": "~0.15.2", - "@sitecore-jss/sitecore-jss-vue": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-vue": "~<%- version %>", "@vue/apollo-composable": "4.0.0-beta.2", "@vue/apollo-option": "^4.0.0-alpha.20", "@vue/apollo-ssr": "^4.0.0-alpha.18", @@ -64,8 +64,8 @@ "devDependencies": { "@babel/eslint-parser": "^7.19.1", "@babel/register": "7.18.9", - "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary", - "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary", + "@sitecore-jss/sitecore-jss-cli": "~<%- version %>", + "@sitecore-jss/sitecore-jss-dev-tools": "~<%- version %>", "@vue/cli-plugin-babel": "~5.0.8", "@vue/cli-plugin-eslint": "~5.0.8", "@vue/cli-service": "~5.0.8", diff --git a/yarn.lock b/yarn.lock index a86a675ad3..7776ed6e83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7235,6 +7235,13 @@ __metadata: languageName: node linkType: hard +"@types/proxyquire@npm:^1.3.31": + version: 1.3.31 + resolution: "@types/proxyquire@npm:1.3.31" + checksum: 945024495fc991f6152686795ac6f2f2d0f571834e67fa41c1e84877eeb1a321a24ab8ff67fc5152d9227f5b39f6254213dced15deaf80ed7443059c2257e072 + languageName: node + linkType: hard + "@types/qs@npm:*": version: 6.9.10 resolution: "@types/qs@npm:6.9.10" @@ -12030,6 +12037,7 @@ __metadata: "@types/minimist": ^1.2.2 "@types/mocha": ^10.0.1 "@types/node": ^20.14.2 + "@types/proxyquire": ^1.3.31 "@types/sinon": 10.0.6 "@types/sinon-chai": ^3.2.9 chai: ^4.3.7 @@ -12047,6 +12055,7 @@ __metadata: minimist: ^1.2.7 mocha: ^10.2.0 nyc: ^15.1.0 + proxyquire: ^2.1.3 sinon: ^15.0.1 sinon-chai: ^3.7.0 ts-node: ^10.9.1 @@ -14714,6 +14723,16 @@ __metadata: languageName: node linkType: hard +"fill-keys@npm:^1.0.2": + version: 1.0.2 + resolution: "fill-keys@npm:1.0.2" + dependencies: + is-object: ~1.0.1 + merge-descriptors: ~1.0.0 + checksum: 6ac5ff60ff08f2f44d19e919c9ca579f4efaaa8c88232b4aab5a5b5522aeb8ec91501956e780cb2b44574fe4a4a337e9b43187829267d0b66a6bfedbafae893f + languageName: node + linkType: hard + "fill-range@npm:^4.0.0": version: 4.0.0 resolution: "fill-range@npm:4.0.0" @@ -16825,6 +16844,13 @@ __metadata: languageName: node linkType: hard +"is-object@npm:~1.0.1": + version: 1.0.2 + resolution: "is-object@npm:1.0.2" + checksum: 971219c4b1985b9751f65e4c8296d3104f0457b0e8a70849e848a4a2208bc47317d73b3b85d4a369619cb2df8284dc22584cb2695a7d99aca5e8d0aa64fc075a + languageName: node + linkType: hard + "is-path-cwd@npm:^2.2.0": version: 2.2.0 resolution: "is-path-cwd@npm:2.2.0" @@ -19721,6 +19747,13 @@ __metadata: languageName: node linkType: hard +"merge-descriptors@npm:~1.0.0": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1 + languageName: node + linkType: hard + "merge-stream@npm:^1.0.1": version: 1.0.1 resolution: "merge-stream@npm:1.0.1" @@ -20462,6 +20495,13 @@ __metadata: languageName: node linkType: hard +"module-not-found-error@npm:^1.0.1": + version: 1.0.1 + resolution: "module-not-found-error@npm:1.0.1" + checksum: ebd65339d4d5980dd55cd32dbf112ec02b8e33f30866312b94caeee4783322259f18cf2270e9d2e600df3bd1876c35612b87f5c2525c21885fb1f83e85a9b9b0 + languageName: node + linkType: hard + "moo@npm:^0.5.0": version: 0.5.2 resolution: "moo@npm:0.5.2" @@ -22829,6 +22869,17 @@ __metadata: languageName: node linkType: hard +"proxyquire@npm:^2.1.3": + version: 2.1.3 + resolution: "proxyquire@npm:2.1.3" + dependencies: + fill-keys: ^1.0.2 + module-not-found-error: ^1.0.1 + resolve: ^1.11.1 + checksum: a320f1a04d65aeb41625bfd6bbf848492523b730b07926b6c1ed48f9342f2a30c4a4c0b399e07391e76691b65f604773327767c33a8578e5e4ab19299ba46a02 + languageName: node + linkType: hard + "prr@npm:~1.0.1": version: 1.0.1 resolution: "prr@npm:1.0.1" @@ -23804,7 +23855,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:1.22.8, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.5.0": +"resolve@npm:1.22.8, resolve@npm:^1.10.0, resolve@npm:^1.11.1, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.5.0": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -23837,7 +23888,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.5.0#~builtin": +"resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.11.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.5.0#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" dependencies: