Skip to content

Commit 406d5e9

Browse files
committed
chore: support for Yarn 4 (zwave-js#6949)
1 parent 44349e9 commit 406d5e9

File tree

12 files changed

+2736
-2693
lines changed

12 files changed

+2736
-2693
lines changed

.github/actions/prepare-env/action.yml

+4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ inputs:
1212
runs:
1313
using: 'composite'
1414
steps:
15+
- name: Enable Corepack
16+
shell: bash
17+
run: corepack enable
18+
1519
- name: Use Node.js ${{ inputs.node-version }}
1620
uses: actions/setup-node@v4
1721
with:

.github/workflows-disabled/approve-workflow-runs.yml

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ jobs:
1515
- name: Checkout code
1616
uses: actions/checkout@v4
1717

18+
- name: Enable Corepack
19+
shell: bash
20+
run: corepack enable
21+
1822
- name: Use Node.js ${{ matrix.node-version }}
1923
uses: actions/setup-node@v4
2024
with:

.github/workflows/generate-docs.yml

+4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ jobs:
3232
with:
3333
fetch-depth: 0
3434

35+
- name: Enable Corepack
36+
shell: bash
37+
run: corepack enable
38+
3539
- name: Use Node.js ${{ matrix.node-version }}
3640
uses: actions/setup-node@v4
3741
with:

.github/workflows/nightly-config-publish.yml

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ jobs:
1919
with:
2020
fetch-depth: 0 # Fetch the history, or this action won't work
2121

22+
- name: Enable Corepack
23+
shell: bash
24+
run: corepack enable
25+
2226
- name: Use Node.js ${{ matrix.node-version }}
2327
uses: actions/setup-node@v4
2428
with:

.github/workflows/zwave-js-bot_comment.yml

+16
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ jobs:
5858
- name: Switch to a branch
5959
run: git switch -c temp
6060

61+
- name: Enable Corepack
62+
shell: bash
63+
run: corepack enable
64+
6165
- name: Use Node.js ${{ matrix.node-version }}
6266
uses: actions/setup-node@v4
6367
with:
@@ -400,6 +404,10 @@ jobs:
400404
return bot.checkAuthorized({github, context});
401405
402406
# These steps only run if the check was successful
407+
- name: Enable Corepack
408+
shell: bash
409+
run: corepack enable
410+
403411
- name: Use Node.js ${{ matrix.node-version }}
404412
if: steps.check-permissions.outputs.result == 'true'
405413
uses: actions/setup-node@v4
@@ -508,6 +516,10 @@ jobs:
508516
return bot.checkAuthorized({github, context});
509517
510518
# These steps only run if the check was successful
519+
- name: Enable Corepack
520+
shell: bash
521+
run: corepack enable
522+
511523
- name: Use Node.js ${{ matrix.node-version }}
512524
if: steps.check-permissions.outputs.result == 'true'
513525
uses: actions/setup-node@v4
@@ -628,6 +640,10 @@ jobs:
628640
return bot.checkAuthorized({github, context});
629641
630642
# These steps only run if the check was successful
643+
- name: Enable Corepack
644+
shell: bash
645+
run: corepack enable
646+
631647
- name: Use Node.js ${{ matrix.node-version }}
632648
if: steps.check-permissions.outputs.result == 'true'
633649
uses: actions/setup-node@v4
+7-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
/* eslint-disable */
2+
//prettier-ignore
23
module.exports = {
34
name: "@yarnpkg/plugin-changed",
45
factory: function (require) {
5-
var plugin;(()=>{"use strict";var e={d:(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:()=>f});const o=require("@yarnpkg/cli"),n=require("clipanion"),r=require("@yarnpkg/core");function a(e){const{project:t}=e,o=new Set;return function e({manifest:n}){for(const a of r.Manifest.hardDependencies)for(const r of n.getForScope(a).values()){const n=t.tryWorkspaceByDescriptor(r);n&&!o.has(n)&&(o.add(n),e(n))}}(e),[...o]}function s(e){const t=new Set;for(const o of e.project.workspaces){a(o).some(t=>r.structUtils.areLocatorsEqual(t.locator,e.locator))&&t.add(o)}return[...t]}var i=function(e,t,o,n){var r,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(s=(a<3?r(s):a>3?r(t,o,s):r(t,o))||s);return a>3&&s&&Object.defineProperty(t,o,s),s};class c extends o.BaseCommand{async listWorkspaces(e){const{stdout:t}=await r.execUtils.execvp("git",["diff","--name-only",...this.gitRange?[this.gitRange]:[]],{cwd:e.cwd,strict:!0}),o=function(e,t){const o=new Set;for(const n of e.workspaces){if(t.some(e=>e.startsWith(n.relativeCwd))&&!o.has(n)){o.add(n);for(const e of s(n))o.add(e)}}return[...o]}(e,t.split(/\r?\n/)),n=this.include||[],a=this.exclude||[];return o.filter(e=>{const t=r.structUtils.stringifyIdent(e.locator);if(t){if(n.length&&!n.includes(t))return!1;if(a.length&&a.includes(t))return!1}return!0})}}i([n.Command.String("--git-range")],c.prototype,"gitRange",void 0),i([n.Command.Array("--include")],c.prototype,"include",void 0),i([n.Command.Array("--exclude")],c.prototype,"exclude",void 0);var d=function(e,t,o,n){var r,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(s=(a<3?r(s):a>3?r(t,o,s):r(t,o))||s);return a>3&&s&&Object.defineProperty(t,o,s),s};class l extends c{constructor(){super(...arguments),this.json=!1}async execute(){const e=await r.Configuration.find(this.context.cwd,this.context.plugins),{project:t,workspace:n}=await r.Project.find(e,this.context.cwd);if(!n)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);return(await r.StreamReport.start({configuration:e,json:this.json,stdout:this.context.stdout},async e=>{const o=await this.listWorkspaces(t);for(const t of o)e.reportInfo(null,t.relativeCwd),e.reportJson({name:t.manifest.name?r.structUtils.stringifyIdent(t.manifest.name):null,location:t.relativeCwd})})).exitCode()}}l.usage=n.Command.Usage({description:"List changed workspaces and their dependents",details:"\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n ",examples:[["Find changed files within a Git range","yarn changed list --git-range 93a9ed8..4ef2c61"],["Include or exclude workspaces","yarn changed list --include @foo/a --exclude @foo/b"]]}),d([n.Command.Boolean("--json")],l.prototype,"json",void 0),d([n.Command.Path("changed","list")],l.prototype,"execute",null);var p=function(e,t,o,n){var r,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(s=(a<3?r(s):a>3?r(t,o,s):r(t,o))||s);return a>3&&s&&Object.defineProperty(t,o,s),s};class u extends c{constructor(){super(...arguments),this.args=[],this.verbose=!1,this.parallel=!1,this.interlaced=!1,this.topological=!1}async execute(){const e=await r.Configuration.find(this.context.cwd,this.context.plugins),{project:t,workspace:n}=await r.Project.find(e,this.context.cwd);if(!n)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);const a=await this.listWorkspaces(t);if(!a.length){return(await r.StreamReport.start({configuration:e,stdout:this.context.stdout},async e=>{e.reportInfo(null,"No workspaces changed")})).exitCode()}return this.cli.run(["workspaces","foreach",...a.reduce((e,t)=>[...e,"--include",r.structUtils.stringifyIdent(t.locator)],[]),...this.verbose?["--verbose"]:[],...this.parallel?["--parallel"]:[],...this.interlaced?["--interlaced"]:[],...this.topological?["--topological"]:[],...this.jobs?["--jobs",""+this.jobs]:[],this.commandName,...this.args],{cwd:t.cwd})}}u.usage=n.Command.Usage({description:"Run a command on changed workspaces and their dependents",details:"\n This command will run a given sub-command on changed workspaces and workspaces depends on them.\n\n Check the documentation for `yarn workspace foreach` for more details.\n ",examples:[["Run build scripts on changed workspaces","yarn changed foreach run build"],["Find changed files within a Git range","yarn changed foreach --git-range 93a9ed8..4ef2c61 run build"]]}),p([n.Command.String()],u.prototype,"commandName",void 0),p([n.Command.Proxy()],u.prototype,"args",void 0),p([n.Command.Boolean("-v,--verbose")],u.prototype,"verbose",void 0),p([n.Command.Boolean("-p,--parallel")],u.prototype,"parallel",void 0),p([n.Command.Boolean("-i,--interlaced")],u.prototype,"interlaced",void 0),p([n.Command.Boolean("-t,--topological")],u.prototype,"topological",void 0),p([n.Command.String("-j,--jobs")],u.prototype,"jobs",void 0),p([n.Command.Path("changed","foreach")],u.prototype,"execute",null);const f={commands:[l,u]};plugin=t})();
6+
"use strict";var plugin=(()=>{var b=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var i=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,e)=>(typeof require<"u"?require:o)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var N=(t,o)=>{for(var e in o)b(t,e,{get:o[e],enumerable:!0})},O=(t,o,e,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of I(o))!U.call(t,s)&&s!==e&&b(t,s,{get:()=>o[s],enumerable:!(r=R(o,s))||r.enumerable});return t};var q=t=>O(b({},"__esModule",{value:!0}),t);var J={};N(J,{default:()=>E});var B=i("@yarnpkg/cli"),g=i("clipanion"),w=i("@yarnpkg/core");var P=i("@yarnpkg/core");var v=i("@yarnpkg/core");function W(t){let{project:o}=t,e=new Set;function r({manifest:s}){for(let c of v.Manifest.hardDependencies)for(let l of s.getForScope(c).values()){let n=o.tryWorkspaceByDescriptor(l);n&&!e.has(n)&&(e.add(n),r(n))}}return r(t),[...e]}function y(t){let o=new Set;for(let e of t.project.workspaces)W(e).some(s=>P.structUtils.areLocatorsEqual(s.anchoredLocator,t.anchoredLocator))&&o.add(e);return[...o]}function j(t,o){let e=new Set;for(let r of t.workspaces)if(o.some(c=>c.startsWith(r.relativeCwd))&&!e.has(r)){e.add(r);for(let c of y(r))e.add(c)}return[...e]}var m=class extends B.BaseCommand{constructor(){super(...arguments);this.gitRange=g.Option.String("--git-range");this.cached=g.Option.Boolean("--cached",!1);this.include=g.Option.Array("--include");this.exclude=g.Option.Array("--exclude")}async listWorkspaces(e){let{stdout:r}=await w.execUtils.execvp("git",["diff","--name-only",...this.cached?["--cached"]:[],...this.gitRange?[this.gitRange]:[]],{cwd:e.cwd,strict:!0}),s=r.split(/\r?\n/),c=j(e,s),l=this.include||[],n=this.exclude||[];return c.filter(h=>{let x=w.structUtils.stringifyIdent(h.anchoredLocator);return!(x&&(l.length&&!l.includes(x)||n.length&&n.includes(x)))})}};var k=i("clipanion"),d=i("@yarnpkg/core"),S=i("@yarnpkg/cli"),f=class extends m{constructor(){super(...arguments);this.json=k.Option.Boolean("--json",!1)}async execute(){let e=await d.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:s}=await d.Project.find(e,this.context.cwd);if(!s)throw new S.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await d.StreamReport.start({configuration:e,json:this.json,stdout:this.context.stdout},async l=>{let n=await this.listWorkspaces(r);for(let h of n)l.reportInfo(null,h.relativeCwd),l.reportJson({name:h.manifest.name?d.structUtils.stringifyIdent(h.manifest.name):null,location:h.relativeCwd})})).exitCode()}};f.usage=k.Command.Usage({description:"List changed workspaces and their dependents",details:"\n If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n ",examples:[["Find changed files within a Git range","yarn changed list --git-range 93a9ed8..4ef2c61"],["Include or exclude workspaces","yarn changed list --include @foo/a --exclude @foo/b"]]}),f.paths=[["changed","list"]];var a=i("clipanion"),p=i("@yarnpkg/core"),D=i("@yarnpkg/cli"),u=class extends m{constructor(){super(...arguments);this.commandName=a.Option.String();this.args=a.Option.Proxy();this.verbose=a.Option.Boolean("-v,--verbose",!1);this.parallel=a.Option.Boolean("-p,--parallel",!1);this.interlaced=a.Option.Boolean("-i,--interlaced",!1);this.topological=a.Option.Boolean("-t,--topological",!1);this.all=a.Option.Boolean("-A,--all",!1);this.recursive=a.Option.Boolean("-R,--recursive",!1);this.worktree=a.Option.Boolean("-W,--worktree",!1);this.jobs=a.Option.String("-j,--jobs")}async execute(){let e=await p.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:s}=await p.Project.find(e,this.context.cwd);if(!s)throw new D.WorkspaceRequiredError(r.cwd,this.context.cwd);let c=await this.listWorkspaces(r);return c.length?this.cli.run(["workspaces","foreach",...c.reduce((l,n)=>[...l,"--include",p.structUtils.stringifyIdent(n.anchoredLocator)],[]),...this.verbose?["--verbose"]:[],...this.parallel?["--parallel"]:[],...this.interlaced?["--interlaced"]:[],...this.topological?["--topological"]:[],...this.all?["--all"]:[],...this.recursive?["--recursive"]:[],...this.worktree?["--worktree"]:[],...this.jobs?["--jobs",`${this.jobs}`]:[],this.commandName,...this.args],{cwd:r.cwd}):(await p.StreamReport.start({configuration:e,stdout:this.context.stdout},async n=>{n.reportInfo(null,"No workspaces changed")})).exitCode()}};u.usage=a.Command.Usage({description:"Run a command on changed workspaces and their dependents",details:`
7+
This command will run a given sub-command on changed workspaces and workspaces depends on them.
8+
9+
Check the documentation for \`yarn workspace foreach\` for more details.
10+
`,examples:[["Run build scripts on changed workspaces","yarn changed foreach run build"],["Find changed files within a Git range","yarn changed foreach --git-range 93a9ed8..4ef2c61 run build"]]}),u.paths=[["changed","foreach"]];var A={commands:[f,u]},E=A;return q(J);})();
611
return plugin;
712
}
8-
};
13+
};

.yarnrc.yml

+5-12
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
1+
compressionLevel: mixed
2+
13
enableGlobalCache: true
24

35
nodeLinker: pnpm
46

57
plugins:
6-
- path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs
7-
spec: "@yarnpkg/plugin-typescript"
8-
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
9-
spec: "@yarnpkg/plugin-workspace-tools"
10-
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
11-
spec: "@yarnpkg/plugin-interactive-tools"
12-
- path: .yarn/plugins/@yarnpkg/plugin-changed.cjs
13-
spec: "https://github.com/Dcard/yarn-plugins/releases/download/v0.7.2/plugin-changed.js"
14-
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
15-
spec: "@yarnpkg/plugin-version"
8+
- checksum: e09b9d94c3e4f271d75c0aa5364f424f9d654a086b7f6c8a16c7dd46ee6b0face259054cb4ac916080a1ec49a6519e04858b3f340fd3a9f325b6b344c34839c6
9+
path: .yarn/plugins/@yarnpkg/plugin-changed.cjs
10+
spec: "https://raw.githubusercontent.com/zwave-js/yarn-plugins/master/packages/changed/bundles/%40yarnpkg/plugin-changed.js"
1611

1712
preferInteractive: true
18-
19-
yarnPath: .yarn/releases/yarn-3.5.0.cjs

docs/development/intro.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ _Alright, here's a short introduction if you're new to this stuff. If you know t
77
`npm` and `yarn` are both package managers for `Node.js` projects. `npm` comes with `Node.js` by default, but especially new major releases are often buggy, so we've decided to use `yarn` instead.
88

99
> [!WARNING]
10-
> When working with Linux, you might already have a `yarn` executable on your system, but that is [not the correct one](https://stackoverflow.com/a/45551189/10179833). To install the correct one, run `npm i -g yarn`, which installs `yarn` the package manager globally on your system. If you're on Windows, **DO NOT** install `yarn` with an installer, as this version can mess things up.
10+
> When working with Linux, you might already have a `yarn` executable on your system, but that is [not the correct one](https://stackoverflow.com/a/45551189/10179833). To install the correct one, we rely on [corepack](https://github.com/nodejs/corepack), which automatically installs the correct version of `yarn` for you. If you're on Windows, **DO NOT** install `yarn` with an installer, as this version can mess things up.
1111
1212
`yarn` has a [bunch of commands](https://classic.yarnpkg.com/en/docs/usage) but you'll likely only need to use `yarn` (short for `yarn install`) to install all dependencies. **Don't** install missing dependencies one by one, **don't** install them globally.\
1313
`yarn` can also run package scripts for you, which we use extensively, e.g. `yarn run build` to compile TypeScript into JavaScript. You'll find most of the scripts in `package.json` under `"scripts"`.

package.json

+9-9
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@
3232
"@actions/exec": "^1.1.1",
3333
"@actions/github": "^6.0.0",
3434
"@alcalzone/jsonl-db": "^3.1.1",
35-
"@alcalzone/monopack": "^1.2.2",
35+
"@alcalzone/monopack": "^1.3.0",
3636
"@alcalzone/release-script": "~3.7.0",
3737
"@commitlint/cli": "^19.2.1",
3838
"@commitlint/config-conventional": "^19.1.0",
39-
"@dprint/formatter": "^0.2.1",
40-
"@dprint/json": "^0.19.2",
41-
"@dprint/markdown": "^0.16.4",
42-
"@dprint/typescript": "^0.90.0",
39+
"@dprint/formatter": "^0.3.0",
40+
"@dprint/json": "^0.19.3",
41+
"@dprint/markdown": "^0.17.1",
42+
"@dprint/typescript": "^0.91.1",
4343
"@microsoft/api-extractor": "^7.43.0",
4444
"@monorepo-utils/workspaces-to-typescript-project-references": "^2.10.4",
4545
"@tsconfig/node18": "^18.2.4",
@@ -54,7 +54,7 @@
5454
"@zwave-js/core": "workspace:*",
5555
"@zwave-js/eslint-plugin": "workspace:*",
5656
"@zwave-js/flash": "workspace:*",
57-
"@zwave-js/fmt": "^1.0.0",
57+
"@zwave-js/fmt": "^1.0.1",
5858
"@zwave-js/host": "workspace:*",
5959
"@zwave-js/maintenance": "workspace:*",
6060
"@zwave-js/nvmedit": "workspace:*",
@@ -68,7 +68,7 @@
6868
"commitizen": "^4.3.0",
6969
"cz-conventional-changelog": "^3.3.0",
7070
"del-cli": "^5.1.0",
71-
"dprint": "^0.45.0",
71+
"dprint": "^0.46.3",
7272
"esbuild": "0.20.2",
7373
"esbuild-register": "^3.5.0",
7474
"eslint": "^8.57.0",
@@ -131,7 +131,7 @@
131131
"test:firmware": "yarn ts test/firmware-extraction.ts",
132132
"nvmedit": "yarn ts packages/nvmedit/src/cli.ts",
133133
"ls-changed": "yarn changed list --exclude \"@zwave-js/repo\" --git-range=$(git describe --abbrev=0) --json | cut -d'\"' -f4",
134-
"for-changed": "yarn changed foreach --exclude \"@zwave-js/repo\" --git-range=$(git describe --abbrev=0)",
134+
"for-changed": "yarn changed foreach --all --exclude \"@zwave-js/repo\" --git-range=$(git describe --abbrev=0)",
135135
"codefind": "yarn ts packages/maintenance/src/codefind.ts",
136136
"configfind": "yarn ts packages/config/maintenance/find.ts",
137137
"extract-api": "FORCE_COLOR=1 yarn turbo run extract-api",
@@ -146,5 +146,5 @@
146146
"path": "./node_modules/cz-conventional-changelog"
147147
}
148148
},
149-
"packageManager": "yarn@3.5.0"
149+
"packageManager": "yarn@4.3.0"
150150
}

packages/maintenance/package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,21 @@
3636
"lint:ts:fix": "yarn run lint:ts --fix"
3737
},
3838
"devDependencies": {
39-
"@dprint/formatter": "^0.2.1",
40-
"@dprint/json": "^0.19.2",
41-
"@dprint/markdown": "^0.16.4",
42-
"@dprint/typescript": "^0.90.0",
39+
"@dprint/formatter": "^0.3.0",
40+
"@dprint/json": "^0.19.3",
41+
"@dprint/markdown": "^0.17.1",
42+
"@dprint/typescript": "^0.91.1",
4343
"@types/fs-extra": "^11.0.4",
4444
"@types/globrex": "^0.1.4",
4545
"@types/node": "^18.19.31",
4646
"@types/yargs": "^17.0.32",
4747
"@zwave-js/core": "workspace:*",
48-
"@zwave-js/fmt": "^1.0.0",
48+
"@zwave-js/fmt": "^1.0.1",
4949
"@zwave-js/shared": "workspace:*",
5050
"ansi-colors": "^4.1.3",
5151
"cli-highlight": "^2.1.11",
5252
"del-cli": "^5.1.0",
53-
"dprint": "^0.45.0",
53+
"dprint": "^0.46.3",
5454
"esbuild": "0.20.2",
5555
"esbuild-register": "^3.5.0",
5656
"execa": "^5.1.1",

packages/zwave-js/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
},
8787
"dependencies": {
8888
"@alcalzone/jsonl-db": "^3.1.1",
89-
"@alcalzone/pak": "^0.10.1",
89+
"@alcalzone/pak": "^0.11.0",
9090
"@homebridge/ciao": "^1.2.0",
9191
"@zwave-js/cc": "workspace:*",
9292
"@zwave-js/config": "workspace:*",

0 commit comments

Comments
 (0)