Skip to content

fix: Pin npm and core#67

Merged
dawsontoth merged 10 commits intomainfrom
pins
Apr 9, 2026
Merged

fix: Pin npm and core#67
dawsontoth merged 10 commits intomainfrom
pins

Conversation

@dawsontoth
Copy link
Copy Markdown
Contributor

@dawsontoth dawsontoth commented Apr 3, 2026

I introduced a new npm run core:sync script to make core sync easier, and to take over some of what npm run package was doing with dependencies.

With that new core sync, we now:

  1. Update to the latest commit from core.
  2. Grab the lock file from core.
  3. Grab the overrides and optionalDependencies from core.
  4. npm install after that, which will update the lockfile with our pro particulars, but leave the dependency versions untouched.

That means the package process is stable, with regards to versions:

  1. We can npm ci instead of npm install.
  2. @datadog/pprof was already a dependency of core, we don't need to npm install @datadog/pprof as a result -- which was updating the version at package time to an untested, unvalidated version.
  3. We package.json remains untouched during packages. The lock gets translated to shrinkwrap, and then restored at the conclusion of the build script.

The end result of all this should be:

  1. Stable dependencies that we control.
  2. Renovate can then keep them up to date. To avoid duplicate dependency maintenance work between harper and harper-pro, I've disabled renovate looking at the package.json in this repo.

@dawsontoth dawsontoth requested review from a team as code owners April 3, 2026 21:10
@socket-security
Copy link
Copy Markdown

socket-security Bot commented Apr 3, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
High CVE: Prototype Pollution via parse() in NodeJS npm flatted

CVE: GHSA-rf6f-7fwh-wjgh Prototype Pollution via parse() in NodeJS flatted (HIGH)

Affected versions: < 3.4.2

Patched version: 3.4.2

From: package-lock.jsonnpm/@typescript-eslint/parser@8.57.0npm/typescript-eslint@8.57.0npm/rewire@9.0.1npm/@harperdb/code-guidelines@0.0.6npm/flatted@3.4.1

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/flatted@3.4.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: npm lodash vulnerable to Code Injection via `_.template` imports key names

CVE: GHSA-r5fr-rjxr-66jc lodash vulnerable to Code Injection via _.template imports key names (HIGH)

Affected versions: >= 4.0.0 < 4.18.0

Patched version: 4.18.0

From: package-lock.jsonnpm/lodash@4.17.23

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/lodash@4.17.23. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Forge has a basicConstraints bypass in its certificate chain verification (RFC 5280 violation) in npm node-forge

CVE: GHSA-2328-f5f3-gj25 Forge has a basicConstraints bypass in its certificate chain verification (RFC 5280 violation) (HIGH)

Affected versions: < 1.4.0

Patched version: 1.4.0

From: package-lock.jsonnpm/node-forge@1.3.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-forge@1.3.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Forge has signature forgery in Ed25519 due to missing S > L check in npm node-forge

CVE: GHSA-q67f-28xg-22rw Forge has signature forgery in Ed25519 due to missing S > L check (HIGH)

Affected versions: < 1.4.0

Patched version: 1.4.0

From: package-lock.jsonnpm/node-forge@1.3.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-forge@1.3.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Forge has signature forgery in RSA-PKCS due to ASN.1 extra field in npm node-forge

CVE: GHSA-ppp5-5v6c-4jwp Forge has signature forgery in RSA-PKCS due to ASN.1 extra field (HIGH)

Affected versions: < 1.4.0

Patched version: 1.4.0

From: package-lock.jsonnpm/node-forge@1.3.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-forge@1.3.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input in npm node-forge

CVE: GHSA-5m6q-g25r-mvwx Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input (HIGH)

Affected versions: < 1.4.0

Patched version: 1.4.0

From: package-lock.jsonnpm/node-forge@1.3.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-forge@1.3.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Picomatch has a ReDoS vulnerability via extglob quantifiers

CVE: GHSA-c2c7-rcm5-vvqj Picomatch has a ReDoS vulnerability via extglob quantifiers (HIGH)

Affected versions: >= 4.0.0 < 4.0.4; >= 3.0.0 < 3.0.2; < 2.3.2

Patched version: 2.3.2

From: package-lock.jsonnpm/micromatch@4.0.8npm/picomatch@2.3.1

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/picomatch@2.3.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Picomatch has a ReDoS vulnerability via extglob quantifiers

CVE: GHSA-c2c7-rcm5-vvqj Picomatch has a ReDoS vulnerability via extglob quantifiers (HIGH)

Affected versions: >= 4.0.0 < 4.0.4; >= 3.0.0 < 3.0.2; < 2.3.2

Patched version: 4.0.4

From: package-lock.jsonnpm/@typescript-eslint/parser@8.57.0npm/typescript-eslint@8.57.0npm/picomatch@4.0.3

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/picomatch@4.0.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString() in npm serialize-javascript

CVE: GHSA-5c6j-r48x-rmvq Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString() (HIGH)

Affected versions: < 7.0.3

Patched version: 7.0.3

From: package-lock.jsonnpm/mocha@11.7.5npm/serialize-javascript@6.0.2

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/serialize-javascript@6.0.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm @harperfast/extended-iterable

Location: Package overview

From: package-lock.jsonnpm/@harperfast/extended-iterable@1.0.3

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@harperfast/extended-iterable@1.0.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Deprecated by its maintainer: npm glob

Reason: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me

From: package-lock.jsonnpm/mocha@11.7.5npm/glob@10.5.0

ℹ Read more on: This package | This alert | What is a deprecated package?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/glob@10.5.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Deprecated by its maintainer: npm glob

Reason: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me

From: package-lock.jsonnpm/mqtt@4.3.8npm/glob@7.2.3

ℹ Read more on: This package | This alert | What is a deprecated package?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/glob@7.2.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Deprecated by its maintainer: npm inflight

Reason: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.

From: package-lock.jsonnpm/mqtt@4.3.8npm/inflight@1.0.6

ℹ Read more on: This package | This alert | What is a deprecated package?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/inflight@1.0.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm node-unix-socket-darwin-arm64

Location: Package overview

From: package-lock.jsonnpm/node-unix-socket@0.2.7npm/node-unix-socket-darwin-arm64@0.2.7

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-unix-socket-darwin-arm64@0.2.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm node-unix-socket-darwin-x64

Location: Package overview

From: package-lock.jsonnpm/node-unix-socket@0.2.7npm/node-unix-socket-darwin-x64@0.2.7

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-unix-socket-darwin-x64@0.2.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm node-unix-socket-linux-arm-gnueabihf

Location: Package overview

From: package-lock.jsonnpm/node-unix-socket@0.2.7npm/node-unix-socket-linux-arm-gnueabihf@0.2.7

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-unix-socket-linux-arm-gnueabihf@0.2.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm why-is-node-still-running

Location: Package overview

From: package-lock.jsonnpm/why-is-node-still-running@1.0.0

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/why-is-node-still-running@1.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copy link
Copy Markdown
Member

@kriszyp kriszyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this worked (I don't think it installed any dependencies).

@dawsontoth
Copy link
Copy Markdown
Contributor Author

Tests are failing due to HarperFast/harper#325

@dawsontoth dawsontoth requested a review from a team April 6, 2026 15:46
@dawsontoth dawsontoth changed the title fix: Pin and npm ci fix: Pin npm Apr 6, 2026
@dawsontoth dawsontoth changed the title fix: Pin npm fix: Pin npm and core Apr 7, 2026
@cb1kenobi cb1kenobi self-requested a review April 7, 2026 16:34
Comment thread package.json Outdated
@dawsontoth
Copy link
Copy Markdown
Contributor Author

@kriszyp when you have a few spare cycles, I'd love your input on this change! See the PR description for the bullet points of what I propose changing and why.

The dependencies in the package.json are maintained by our core repo, this will reduce noise. Instead, we’ll make a habit of regularly synchronizing core into here.
@dawsontoth
Copy link
Copy Markdown
Contributor Author

HarperFast/harper#327 will fix the integration test failures, I believe.

I just watched a documentary on the Titan submersible tragedy, so this commit title feels… wrong… in all the right ways. ;D
@dawsontoth dawsontoth requested review from a team and removed request for a team April 7, 2026 17:40
Comment thread package.json
@cb1kenobi cb1kenobi self-requested a review April 7, 2026 18:09
Copy link
Copy Markdown
Contributor

@cb1kenobi cb1kenobi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

So what's the general flow for updating our local repo? git pull origin main && npm run core:sync?

@dawsontoth
Copy link
Copy Markdown
Contributor Author

It depends on if you want to pull in changes in core or not, the sync script will change the commit it references for the sub module if a newer one is available on main. Make sense?

@dawsontoth
Copy link
Copy Markdown
Contributor Author

@cb1kenobi so probably git pull origin main && git submodule update --init --recursive, normally. I use a GUI so I don't remember exactly 😉 -- and for those times when you've made changes in core, or someone else did and you're pulling it in, then yeah npm run core:sync will pull them in so you can commit them to this repo.

@dawsontoth
Copy link
Copy Markdown
Contributor Author

Yay, socket is happy now! 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳 🥳

@dawsontoth
Copy link
Copy Markdown
Contributor Author

... we'll wait to merge this PR until Kris gets back and has a chance to look at it, IMO!

@cb1kenobi
Copy link
Copy Markdown
Contributor

I have been doing git pull origin main && git submodule update && npm i && npm run build. It's a lot of steps.

@dawsontoth
Copy link
Copy Markdown
Contributor Author

I mean, we could add husky to the mix, that's the typical solution to that. But then it'll run whenever you switch branches which can get really annoying if you're a rapid branch switcher during rebases, etc.

Copy link
Copy Markdown
Member

@kriszyp kriszyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So does core-sync update harper-pro submodule reference to point to the latest in the current core branch? I thought git submodule update did the reverse, it updated the core branch/commit to the reference currently pointed to by the parent.
And what if I don't want to run npm install when I update the reference to core (or update core to the reference), because I don't want it to remove my npm symlinks? (which is the case 99% of the time for me)

Comment thread build-tools/build-pro.sh
@dawsontoth
Copy link
Copy Markdown
Contributor Author

What npm links do you have? The submodule gets pointed to the latest from the main branch of harper - I think I have an extra update in there, confusing things. The remote update is the one that actually does something. I pulled in the fix for the exported port env var with this script, for example. And then the removal of the old node 16 based free space module. So I know it's functional.

I'm envisioning this being run from a workflow that gets invoked whenever core is updated, opening a PR here with the changes applied. That will keep the dependencies in sync, and let the tests in pro run.

@kriszyp
Copy link
Copy Markdown
Member

kriszyp commented Apr 8, 2026

What npm links do you have?

rocksdb-js, lmdb-js, msgpackr, cbor-extract, ordered-binary, weak-lru-cache.

The submodule gets pointed to the latest from the main branch of harper

What if I want to point to a different branch? This is something I frequently do for coordinated PRs (and it is very intuitive because it is just using git).

@dawsontoth
Copy link
Copy Markdown
Contributor Author

I mean, you can still do it manually :) with the workflow we could pass the branch name as an arg

@dawsontoth
Copy link
Copy Markdown
Contributor Author

@kriszyp I added a script to set the tracked branch by name, which is a passthrough to the appropriate git command. I also added a flag to skip NPM install, which will place the lockfile into an inconsistent state, but it will maintain your links. An untested workflow was created for synchronizing core, too. The permissions of it might be off.

Comment thread .github/workflows/sync-core.yaml
Co-authored-by: Chris Barber <chris@harperdb.io>
Copy link
Copy Markdown
Member

@kriszyp kriszyp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, that sounds good, and yeah, it seems fine and easy to just use standard git commands when I am updating core without any dependency changes.
Also: my intention was that @datadog/pprof be a dependency of harper-pro and not harper (which shouldn't be using). Maybe it never got removed from harper (and should be), but how do we maintain dependency "additions" of harper-pro?

@dawsontoth
Copy link
Copy Markdown
Contributor Author

@kriszyp for that, we'll need to do some more engineering, or maintain the dependencies manually. Or actually rely on harper as a sub-dependency. The logic right now (that I fixed up to use a lockfile and respect the optional deps and overrides) is a big copy-paste at the moment.

echo -e "\n📦 Copying lock file from core"
cp core/package-lock.json ./

echo -e "\n📦 Copying dependencies & devDependencies from core"
deps=$(cd core && npm pkg get dependencies)
npm pkg set "dependencies=${deps}" --json
devDeps=$(cd core && npm pkg get devDependencies)
npm pkg set "devDependencies=${devDeps}" --json
overrides=$(cd core && npm pkg get overrides)
npm pkg set "overrides=${overrides}" --json
optionalDependencies=$(cd core && npm pkg get optionalDependencies)
npm pkg set "optionalDependencies=${optionalDependencies}" --json

@dawsontoth
Copy link
Copy Markdown
Contributor Author

Created #74 to track that work

@dawsontoth dawsontoth merged commit 3afa378 into main Apr 9, 2026
49 of 54 checks passed
@dawsontoth dawsontoth deleted the pins branch April 9, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants