@visulima/vis 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/config/index.d.ts +1226 -1216
- package/dist/packem_chunks/bloom-sync.js +1 -1
- package/dist/packem_chunks/cargo-lock.js +5 -0
- package/dist/packem_chunks/cargo-plan.js +3 -3
- package/dist/packem_chunks/catalog-detector.js +1 -1
- package/dist/packem_chunks/catalog.js +1 -94
- package/dist/packem_chunks/catalog2.js +11 -0
- package/dist/packem_chunks/cli-exec.js +1 -1
- package/dist/packem_chunks/cli-main.js +156 -174
- package/dist/packem_chunks/context.js +8 -0
- package/dist/packem_chunks/fix.js +1 -1
- package/dist/packem_chunks/handler10.js +1 -1
- package/dist/packem_chunks/handler12.js +1 -1
- package/dist/packem_chunks/handler13.js +1 -1
- package/dist/packem_chunks/handler14.js +1 -1
- package/dist/packem_chunks/handler15.js +1 -1
- package/dist/packem_chunks/handler19.js +5 -5
- package/dist/packem_chunks/handler2.js +1 -1
- package/dist/packem_chunks/handler20.js +1 -1
- package/dist/packem_chunks/handler21.js +1 -1
- package/dist/packem_chunks/handler23.js +1 -1
- package/dist/packem_chunks/handler24.js +1 -1
- package/dist/packem_chunks/handler25.js +1 -1
- package/dist/packem_chunks/handler28.js +1 -1
- package/dist/packem_chunks/handler3.js +1 -1
- package/dist/packem_chunks/handler31.js +1 -1
- package/dist/packem_chunks/handler32.js +1 -1
- package/dist/packem_chunks/handler33.js +1 -1
- package/dist/packem_chunks/handler34.js +3 -3
- package/dist/packem_chunks/handler35.js +1 -1
- package/dist/packem_chunks/handler36.js +1 -1
- package/dist/packem_chunks/handler38.js +2 -2
- package/dist/packem_chunks/handler39.js +5 -5
- package/dist/packem_chunks/handler4.js +4 -4
- package/dist/packem_chunks/handler40.js +1 -1
- package/dist/packem_chunks/handler41.js +1 -1
- package/dist/packem_chunks/handler42.js +1 -1
- package/dist/packem_chunks/handler43.js +1 -1
- package/dist/packem_chunks/handler44.js +1 -1
- package/dist/packem_chunks/handler45.js +1 -1
- package/dist/packem_chunks/handler46.js +1 -1
- package/dist/packem_chunks/handler47.js +1 -1
- package/dist/packem_chunks/handler48.js +1 -1
- package/dist/packem_chunks/handler49.js +1 -1
- package/dist/packem_chunks/handler5.js +4 -4
- package/dist/packem_chunks/handler50.js +5 -5
- package/dist/packem_chunks/handler52.js +1 -1
- package/dist/packem_chunks/handler54.js +2 -2
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler56.js +3 -3
- package/dist/packem_chunks/handler57.js +4 -4
- package/dist/packem_chunks/handler58.js +4 -4
- package/dist/packem_chunks/handler59.js +2 -2
- package/dist/packem_chunks/handler6.js +7 -7
- package/dist/packem_chunks/handler60.js +1 -1
- package/dist/packem_chunks/handler61.js +2 -2
- package/dist/packem_chunks/handler62.js +1 -1
- package/dist/packem_chunks/handler63.js +3 -3
- package/dist/packem_chunks/handler64.js +3 -3
- package/dist/packem_chunks/handler65.js +2 -2
- package/dist/packem_chunks/handler66.js +2 -2
- package/dist/packem_chunks/handler67.js +5 -5
- package/dist/packem_chunks/handler68.js +12 -25
- package/dist/packem_chunks/handler69.js +25 -22
- package/dist/packem_chunks/handler70.js +22 -10
- package/dist/packem_chunks/handler71.js +10 -133
- package/dist/packem_chunks/handler72.js +133 -23
- package/dist/packem_chunks/handler73.js +23 -323
- package/dist/packem_chunks/handler74.js +274 -659
- package/dist/packem_chunks/handler75.js +708 -48
- package/dist/packem_chunks/handler76.js +48 -27
- package/dist/packem_chunks/handler77.js +27 -3
- package/dist/packem_chunks/handler78.js +3 -191
- package/dist/packem_chunks/handler79.js +191 -0
- package/dist/packem_chunks/handler8.js +1 -1
- package/dist/packem_chunks/heal.js +2 -2
- package/dist/packem_chunks/help-command.js +1 -1
- package/dist/packem_chunks/index2.js +3 -58
- package/dist/packem_chunks/index3.js +40 -3
- package/dist/packem_chunks/index6.js +135 -7
- package/dist/packem_chunks/index7.js +7 -135
- package/dist/packem_chunks/keys-refresh.js +1 -1
- package/dist/packem_chunks/list.js +2 -2
- package/dist/packem_chunks/prune.js +1 -1
- package/dist/packem_chunks/python-plan.js +3 -3
- package/dist/packem_chunks/python-projects.js +1 -1
- package/dist/packem_chunks/python.js +1 -0
- package/dist/packem_chunks/run.js +1 -1
- package/dist/packem_chunks/snapshot.js +2 -2
- package/dist/packem_chunks/state.js +2 -2
- package/dist/packem_chunks/status.js +1 -1
- package/dist/packem_chunks/sync.js +1 -1
- package/dist/packem_chunks/verify-lockfile.js +1 -1
- package/dist/packem_chunks/version-resolver.js +1 -1
- package/dist/packem_chunks/workspace.js +2 -2
- package/dist/packem_shared/ReleaseClient-CWD9BC5w.js +1 -0
- package/dist/packem_shared/advisories-BodWQ5DQ.js +1 -0
- package/dist/packem_shared/{affected-selection-DGb6Xu5K.js → affected-selection-QaMUnFqe.js} +1 -1
- package/dist/packem_shared/{ai-analysis-pldoS_N4.js → ai-analysis-D7jlbJky.js} +3 -3
- package/dist/packem_shared/ai-cache-iSIyY3So.js +1 -0
- package/dist/packem_shared/{ai-fix-D9MxigBQ.js → ai-fix-CgCyO65Q.js} +6 -6
- package/dist/packem_shared/apply-DoeQAAGm.js +6 -0
- package/dist/packem_shared/apply-release-plan-BalHtK-g.js +15 -0
- package/dist/packem_shared/{bin-AZQv95jh.js → bin-LyW9KY0i.js} +1 -1
- package/dist/packem_shared/clean-package-json-rutwkKl-.js +1 -0
- package/dist/packem_shared/createAdapter-DMK4bBET.js +1 -0
- package/dist/packem_shared/createVersionActions-DXo4z8VN.js +1 -0
- package/dist/packem_shared/dependency-scan-DFnt1mni.js +1 -0
- package/dist/packem_shared/{ecosystem-gate-DiqQj0LJ.js → ecosystem-gate-Bdz-gK_Y.js} +1 -1
- package/dist/packem_shared/env-BSXG3QKH.js +4 -0
- package/dist/packem_shared/failure-log-DIsKBKaI.js +2 -0
- package/dist/packem_shared/formatBytes-_HvjOy8a-iHCer6uX.js +1 -0
- package/dist/packem_shared/glob-Cyk1H9ZL-DRlUeuow.js +1 -0
- package/dist/packem_shared/{index-JRb5wabN.js → index-B1ZsG3oa.js} +1 -1
- package/dist/packem_shared/index-CgNfNk12.js +1 -0
- package/dist/packem_shared/lifecycle-CQjeMPY0.js +2 -0
- package/dist/packem_shared/missing-package-json-dtwl6w-S.js +1 -0
- package/dist/packem_shared/multi-eco-lockfiles-CyIfYw4u.js +1 -0
- package/dist/packem_shared/npmrc-CHsOyMvA.js +2 -0
- package/dist/packem_shared/osv-C53WUoSW.js +1 -0
- package/dist/packem_shared/{package-version-KLwH0Ivy.js → package-version-DqYSd_ia.js} +1 -1
- package/dist/packem_shared/packument-CbTmbHU4.js +1 -0
- package/dist/packem_shared/{project-name-filter-B1ZCsbOW.js → project-name-filter-mwTJC1IK.js} +1 -1
- package/dist/packem_shared/{provenance-L1M2FPy_.js → provenance-SX1MxPUZ.js} +1 -1
- package/dist/packem_shared/publish-Dc0XGH3K.js +34 -0
- package/dist/packem_shared/registry-CkoaWkjP.js +81 -0
- package/dist/packem_shared/registry-keys-z038Ecb4.js +1 -0
- package/dist/packem_shared/removeSync-g1D5kONg-LbjATA8v.js +1 -0
- package/dist/packem_shared/renderToString-DR0zDUjh-C7p-L6AO.js +3 -0
- package/dist/packem_shared/{resolve-explicit-CQa37JSq.js → resolve-explicit-D9kdTNvl.js} +1 -1
- package/dist/packem_shared/{run-D-uVGHQ4.js → run-DLvd3RIZ.js} +1 -1
- package/dist/packem_shared/run-summary-utils-CMeURYtS.js +1 -0
- package/dist/packem_shared/s1ngularity-BuU9Cxpy.js +1 -0
- package/dist/packem_shared/{scaffold-files-DVyfB0yz.js → scaffold-files-Bje3_Ixv.js} +1 -1
- package/dist/packem_shared/scan-progress-D8ojNcKt.js +2 -0
- package/dist/packem_shared/{signatures-DIqFUOfs.js → signatures-CeL0bOEo.js} +1 -1
- package/dist/packem_shared/spinner-Bqjpz3i4.js +1 -0
- package/dist/packem_shared/table-DDAJalPF.js +1 -0
- package/dist/packem_shared/tabs-CC0GJLww.js +1 -0
- package/dist/packem_shared/{task-env-DzR4RkOj.js → task-env-C2lmxvzA.js} +1 -1
- package/dist/packem_shared/typosquats-BFKus_aM.js +1 -0
- package/dist/packem_shared/use-measured-height-_nYuZ-Au.js +1 -0
- package/dist/packem_shared/vis-update-app-Ba5ce8Jd.js +1 -0
- package/dist/packem_shared/{vis-user-error-CRmrBaD1.js → vis-user-error-D_ekz9rF.js} +1 -1
- package/dist/packem_shared/{watch-loop-D1_e-qIl.js → watch-loop-DWr41vHM.js} +1 -1
- package/dist/packem_shared/xxh3-BLHlvhgT.js +1 -0
- package/dist/release/core/package-managers/index.js +1 -1
- package/dist/release/core/version-actions/index.js +1 -1
- package/dist/release/index.js +1 -1
- package/index.js +26 -26
- package/package.json +9 -9
- package/dist/packem_chunks/orchestrator.js +0 -46
- package/dist/packem_shared/ReleaseClient-DAvbxCdo.js +0 -1
- package/dist/packem_shared/createAdapter-F7GidOzU.js +0 -1
- package/dist/packem_shared/createVersionActions-ByaJ1Nbv.js +0 -1
- package/dist/packem_shared/dependency-scan-CawAKoU_.js +0 -1
- package/dist/packem_shared/failure-log-BP-gCUb5.js +0 -2
- package/dist/packem_shared/formatBytes-_HvjOy8a-B_qQr4Hw.js +0 -4
- package/dist/packem_shared/glob-Cyk1H9ZL-Dxlf9Swz.js +0 -1
- package/dist/packem_shared/index-CDHP1kby.js +0 -1
- package/dist/packem_shared/lifecycle-DvmDIRbb.js +0 -2
- package/dist/packem_shared/missing-package-json-Cu5YVAot.js +0 -1
- package/dist/packem_shared/multi-eco-lockfiles-B2X3yhyo.js +0 -1
- package/dist/packem_shared/packument-zb18Jnlw.js +0 -1
- package/dist/packem_shared/registry-keys-DxdqMzyp.js +0 -1
- package/dist/packem_shared/s1ngularity-CO5GkkqX.js +0 -1
- package/dist/packem_shared/scan-progress-RwCRxJdX.js +0 -2
- package/dist/packem_shared/spinner-BJjbNl1F.js +0 -1
- package/dist/packem_shared/tabs--uxJGL8N.js +0 -1
- package/dist/packem_shared/typosquats-D4DEHhFy.js +0 -1
- package/dist/packem_shared/use-measured-height-DUZyyias.js +0 -1
- package/dist/packem_shared/vis-update-app-9b2kSk9f.js +0 -1
package/index.js
CHANGED
|
@@ -82,7 +82,7 @@ function requireNative() {
|
|
|
82
82
|
const binding = require('@visulima/vis-binding-android-arm64')
|
|
83
83
|
const bindingPackageVersion = require('@visulima/vis-binding-android-arm64/package.json').version
|
|
84
84
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
85
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
85
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
86
86
|
}
|
|
87
87
|
return binding
|
|
88
88
|
} catch (e) {
|
|
@@ -98,7 +98,7 @@ function requireNative() {
|
|
|
98
98
|
const binding = require('@visulima/vis-binding-android-arm-eabi')
|
|
99
99
|
const bindingPackageVersion = require('@visulima/vis-binding-android-arm-eabi/package.json').version
|
|
100
100
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
101
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
101
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
102
102
|
}
|
|
103
103
|
return binding
|
|
104
104
|
} catch (e) {
|
|
@@ -119,7 +119,7 @@ function requireNative() {
|
|
|
119
119
|
const binding = require('@visulima/vis-binding-win32-x64-gnu')
|
|
120
120
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-x64-gnu/package.json').version
|
|
121
121
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
122
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
122
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
123
123
|
}
|
|
124
124
|
return binding
|
|
125
125
|
} catch (e) {
|
|
@@ -135,7 +135,7 @@ function requireNative() {
|
|
|
135
135
|
const binding = require('@visulima/vis-binding-win32-x64-msvc')
|
|
136
136
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-x64-msvc/package.json').version
|
|
137
137
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
138
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
138
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
139
139
|
}
|
|
140
140
|
return binding
|
|
141
141
|
} catch (e) {
|
|
@@ -152,7 +152,7 @@ function requireNative() {
|
|
|
152
152
|
const binding = require('@visulima/vis-binding-win32-ia32-msvc')
|
|
153
153
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-ia32-msvc/package.json').version
|
|
154
154
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
155
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
155
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
156
156
|
}
|
|
157
157
|
return binding
|
|
158
158
|
} catch (e) {
|
|
@@ -168,7 +168,7 @@ function requireNative() {
|
|
|
168
168
|
const binding = require('@visulima/vis-binding-win32-arm64-msvc')
|
|
169
169
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-arm64-msvc/package.json').version
|
|
170
170
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
171
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
171
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
172
172
|
}
|
|
173
173
|
return binding
|
|
174
174
|
} catch (e) {
|
|
@@ -187,7 +187,7 @@ function requireNative() {
|
|
|
187
187
|
const binding = require('@visulima/vis-binding-darwin-universal')
|
|
188
188
|
const bindingPackageVersion = require('@visulima/vis-binding-darwin-universal/package.json').version
|
|
189
189
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
190
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
190
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
191
191
|
}
|
|
192
192
|
return binding
|
|
193
193
|
} catch (e) {
|
|
@@ -203,7 +203,7 @@ function requireNative() {
|
|
|
203
203
|
const binding = require('@visulima/vis-binding-darwin-x64')
|
|
204
204
|
const bindingPackageVersion = require('@visulima/vis-binding-darwin-x64/package.json').version
|
|
205
205
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
206
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
206
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
207
207
|
}
|
|
208
208
|
return binding
|
|
209
209
|
} catch (e) {
|
|
@@ -219,7 +219,7 @@ function requireNative() {
|
|
|
219
219
|
const binding = require('@visulima/vis-binding-darwin-arm64')
|
|
220
220
|
const bindingPackageVersion = require('@visulima/vis-binding-darwin-arm64/package.json').version
|
|
221
221
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
222
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
222
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
223
223
|
}
|
|
224
224
|
return binding
|
|
225
225
|
} catch (e) {
|
|
@@ -239,7 +239,7 @@ function requireNative() {
|
|
|
239
239
|
const binding = require('@visulima/vis-binding-freebsd-x64')
|
|
240
240
|
const bindingPackageVersion = require('@visulima/vis-binding-freebsd-x64/package.json').version
|
|
241
241
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
242
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
242
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
243
243
|
}
|
|
244
244
|
return binding
|
|
245
245
|
} catch (e) {
|
|
@@ -255,7 +255,7 @@ function requireNative() {
|
|
|
255
255
|
const binding = require('@visulima/vis-binding-freebsd-arm64')
|
|
256
256
|
const bindingPackageVersion = require('@visulima/vis-binding-freebsd-arm64/package.json').version
|
|
257
257
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
258
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
258
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
259
259
|
}
|
|
260
260
|
return binding
|
|
261
261
|
} catch (e) {
|
|
@@ -276,7 +276,7 @@ function requireNative() {
|
|
|
276
276
|
const binding = require('@visulima/vis-binding-linux-x64-musl')
|
|
277
277
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-x64-musl/package.json').version
|
|
278
278
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
279
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
279
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
280
280
|
}
|
|
281
281
|
return binding
|
|
282
282
|
} catch (e) {
|
|
@@ -292,7 +292,7 @@ function requireNative() {
|
|
|
292
292
|
const binding = require('@visulima/vis-binding-linux-x64-gnu')
|
|
293
293
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-x64-gnu/package.json').version
|
|
294
294
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
295
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
295
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
296
296
|
}
|
|
297
297
|
return binding
|
|
298
298
|
} catch (e) {
|
|
@@ -310,7 +310,7 @@ function requireNative() {
|
|
|
310
310
|
const binding = require('@visulima/vis-binding-linux-arm64-musl')
|
|
311
311
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm64-musl/package.json').version
|
|
312
312
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
313
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
313
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
314
314
|
}
|
|
315
315
|
return binding
|
|
316
316
|
} catch (e) {
|
|
@@ -326,7 +326,7 @@ function requireNative() {
|
|
|
326
326
|
const binding = require('@visulima/vis-binding-linux-arm64-gnu')
|
|
327
327
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm64-gnu/package.json').version
|
|
328
328
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
329
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
329
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
330
330
|
}
|
|
331
331
|
return binding
|
|
332
332
|
} catch (e) {
|
|
@@ -344,7 +344,7 @@ function requireNative() {
|
|
|
344
344
|
const binding = require('@visulima/vis-binding-linux-arm-musleabihf')
|
|
345
345
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm-musleabihf/package.json').version
|
|
346
346
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
347
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
347
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
348
348
|
}
|
|
349
349
|
return binding
|
|
350
350
|
} catch (e) {
|
|
@@ -360,7 +360,7 @@ function requireNative() {
|
|
|
360
360
|
const binding = require('@visulima/vis-binding-linux-arm-gnueabihf')
|
|
361
361
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm-gnueabihf/package.json').version
|
|
362
362
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
363
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
363
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
364
364
|
}
|
|
365
365
|
return binding
|
|
366
366
|
} catch (e) {
|
|
@@ -378,7 +378,7 @@ function requireNative() {
|
|
|
378
378
|
const binding = require('@visulima/vis-binding-linux-loong64-musl')
|
|
379
379
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-loong64-musl/package.json').version
|
|
380
380
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
381
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
381
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
382
382
|
}
|
|
383
383
|
return binding
|
|
384
384
|
} catch (e) {
|
|
@@ -394,7 +394,7 @@ function requireNative() {
|
|
|
394
394
|
const binding = require('@visulima/vis-binding-linux-loong64-gnu')
|
|
395
395
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-loong64-gnu/package.json').version
|
|
396
396
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
397
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
397
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
398
398
|
}
|
|
399
399
|
return binding
|
|
400
400
|
} catch (e) {
|
|
@@ -412,7 +412,7 @@ function requireNative() {
|
|
|
412
412
|
const binding = require('@visulima/vis-binding-linux-riscv64-musl')
|
|
413
413
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-riscv64-musl/package.json').version
|
|
414
414
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
415
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
415
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
416
416
|
}
|
|
417
417
|
return binding
|
|
418
418
|
} catch (e) {
|
|
@@ -428,7 +428,7 @@ function requireNative() {
|
|
|
428
428
|
const binding = require('@visulima/vis-binding-linux-riscv64-gnu')
|
|
429
429
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-riscv64-gnu/package.json').version
|
|
430
430
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
431
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
431
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
432
432
|
}
|
|
433
433
|
return binding
|
|
434
434
|
} catch (e) {
|
|
@@ -445,7 +445,7 @@ function requireNative() {
|
|
|
445
445
|
const binding = require('@visulima/vis-binding-linux-ppc64-gnu')
|
|
446
446
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-ppc64-gnu/package.json').version
|
|
447
447
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
448
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
448
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
449
449
|
}
|
|
450
450
|
return binding
|
|
451
451
|
} catch (e) {
|
|
@@ -461,7 +461,7 @@ function requireNative() {
|
|
|
461
461
|
const binding = require('@visulima/vis-binding-linux-s390x-gnu')
|
|
462
462
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-s390x-gnu/package.json').version
|
|
463
463
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
464
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
464
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
465
465
|
}
|
|
466
466
|
return binding
|
|
467
467
|
} catch (e) {
|
|
@@ -481,7 +481,7 @@ function requireNative() {
|
|
|
481
481
|
const binding = require('@visulima/vis-binding-openharmony-arm64')
|
|
482
482
|
const bindingPackageVersion = require('@visulima/vis-binding-openharmony-arm64/package.json').version
|
|
483
483
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
484
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
484
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
485
485
|
}
|
|
486
486
|
return binding
|
|
487
487
|
} catch (e) {
|
|
@@ -497,7 +497,7 @@ function requireNative() {
|
|
|
497
497
|
const binding = require('@visulima/vis-binding-openharmony-x64')
|
|
498
498
|
const bindingPackageVersion = require('@visulima/vis-binding-openharmony-x64/package.json').version
|
|
499
499
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
500
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
500
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
501
501
|
}
|
|
502
502
|
return binding
|
|
503
503
|
} catch (e) {
|
|
@@ -513,7 +513,7 @@ function requireNative() {
|
|
|
513
513
|
const binding = require('@visulima/vis-binding-openharmony-arm')
|
|
514
514
|
const bindingPackageVersion = require('@visulima/vis-binding-openharmony-arm/package.json').version
|
|
515
515
|
if (bindingPackageVersion !== '4.3.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
516
|
-
throw new Error(`Native binding package version mismatch, expected 6.1.
|
|
516
|
+
throw new Error(`Native binding package version mismatch, expected 6.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
517
517
|
}
|
|
518
518
|
return binding
|
|
519
519
|
} catch (e) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/vis",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"description": "A monorepo dev toolkit — task runner, remote caching, security scanning, git hooks, and AI agent integrations — powered by @visulima/task-runner",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"build",
|
|
@@ -148,14 +148,14 @@
|
|
|
148
148
|
}
|
|
149
149
|
},
|
|
150
150
|
"optionalDependencies": {
|
|
151
|
-
"@visulima/vis-binding-darwin-arm64": "6.1.
|
|
152
|
-
"@visulima/vis-binding-darwin-x64": "6.1.
|
|
153
|
-
"@visulima/vis-binding-linux-arm64-gnu": "6.1.
|
|
154
|
-
"@visulima/vis-binding-linux-arm64-musl": "6.1.
|
|
155
|
-
"@visulima/vis-binding-linux-x64-gnu": "6.1.
|
|
156
|
-
"@visulima/vis-binding-linux-x64-musl": "6.1.
|
|
157
|
-
"@visulima/vis-binding-win32-arm64-msvc": "6.1.
|
|
158
|
-
"@visulima/vis-binding-win32-x64-msvc": "6.1.
|
|
151
|
+
"@visulima/vis-binding-darwin-arm64": "6.1.1",
|
|
152
|
+
"@visulima/vis-binding-darwin-x64": "6.1.1",
|
|
153
|
+
"@visulima/vis-binding-linux-arm64-gnu": "6.1.1",
|
|
154
|
+
"@visulima/vis-binding-linux-arm64-musl": "6.1.1",
|
|
155
|
+
"@visulima/vis-binding-linux-x64-gnu": "6.1.1",
|
|
156
|
+
"@visulima/vis-binding-linux-x64-musl": "6.1.1",
|
|
157
|
+
"@visulima/vis-binding-win32-arm64-msvc": "6.1.1",
|
|
158
|
+
"@visulima/vis-binding-win32-x64-msvc": "6.1.1"
|
|
159
159
|
},
|
|
160
160
|
"engines": {
|
|
161
161
|
"node": "^22.14.0 || >=24.10.0"
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import{createRequire as ta}from"node:module";import{a as J}from"../packem_shared/index-B4AjSxHU.js";import{DEFAULT_CHANGES_DIR as oe,DEFAULT_DEPENDENCY_BUMP_RULES as ga,DEFAULT_CONFIG as ua}from"./DEFAULT_CLEAN_KEEP.js";import{VisReleaseError as E}from"../packem_shared/VisReleaseError-DZtgcKf8.js";import{l as ma,m as fa,p as ha,b as wa}from"./index2.js";import{L as ya}from"../packem_shared/index-BisalDCf.js";import{BUMP_LEVELS as be,maxBump as we,normaliseGroup as $e,bumpRank as ce}from"../release/types.js";import{isValidPackageName as va,escapeMarkdown as ka,assertValidPackageName as Pa}from"./security.js";import le from"./index.js";import{d as ba,c as $a}from"./index3.js";import{createShellRunner as re}from"./shell-runner.js";let ra;const ia=e=>(ra??=ta(import.meta.url))(e),ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Pe=e=>{if(typeof ne<"u"&&ne.versions&&ne.versions.node){const[a,s]=ne.versions.node.split(".").map(Number);if(a>22||a===22&&s>=3||a===20&&s>=16)return ne.getBuiltinModule(e)}return ia(e)},{readdir:oa,readFile:ca,writeFile:la,unlink:da}=Pe("node:fs/promises"),{resolve:W,sep:x,join:pa,dirname:ge}=Pe("node:path"),{realpathSync:Ce}=Pe("node:fs"),Ca=/^exit[\s-]prerelease\s*:\s*(.+)$/i,Ra=/^(.+)@(\d+\.\d+\.\d+(?:[-+].*)?)$/,Re=(e,a,s)=>{if(!va(e))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid replay condition "${a}": ${JSON.stringify(e)} is not a valid package name.`,packageName:e||void 0});return e},Aa=(e,a)=>{if(typeof e!="string"||e.trim()==="")throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid replay condition: ${JSON.stringify(e)}. Expected "name@1.2.0" or "exit-prerelease:name".`});const s=e.trim(),n=Ca.exec(s);if(n)return{kind:"exit-prerelease",package:Re((n[1]??"").trim(),s,a)};const t=Ra.exec(s);if(t)return{kind:"version",package:Re((t[1]??"").trim(),s,a),version:t[2]??""};throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid replay condition "${s}". Expected "name@1.2.0" or "exit-prerelease:name".`})},Na=(e,a)=>{if(!Array.isArray(e))throw new E({code:"BUMP_FILE_INVALID",file:a,message:'`replay` must be a list of conditions (e.g. ["name@1.2.0", "exit-prerelease:name"]).'});return e.map(s=>Aa(s,a))},ye=e=>!("bumps"in e.payload)&&Array.isArray(e.payload.replay)&&e.payload.replay.length>0,Ae=e=>/^\d+\.\d+\.\d+-/.test(e),Ea=(e,a)=>e.package!==a.name?!1:e.kind==="version"?a.newVersion===e.version:Ae(a.oldVersion)&&!Ae(a.newVersion),Ia=(e,a)=>{const s=new Map,n=[],t=[];for(const r of e){if(!ye(r))continue;const l=r.payload.replay;let c=!0;for(const i of l){const o=a.find(d=>Ea(i,d));if(o){const d=s.get(o.name)??[];d.some(u=>u.id===r.id)||d.push(r),s.set(o.name,d)}else c=!1}c?n.push(r):t.push(r)}return{consumed:n,injectionsByPackage:s,retained:t}},Ma=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/,Da=e=>{const a=Ma.exec(e);return a?{body:(a[2]??"").trim(),frontmatter:a[1]??""}:null},ja=/^(?:@[a-z0-9-]+\/)?[\w.-]+(?:\/[\w.-]+)*(?::[\w.-]+)?$/i,_a=214,Sa=e=>e.length===0||e.length>_a||e.startsWith(".")||e.startsWith("_")||e.startsWith("-")?!1:ja.test(e),ve=e=>typeof e=="string"&&be.includes(e),Va=/^ {0,3}(#{1,3})\s+\S/,Fa=/^ {0,3}(?:```|~~~)/,Ta=e=>{let a,s=0,n=!1;for(const t of e.split(/\r?\n/)){if(Fa.test(t)){n=!n;continue}if(n)continue;const r=Va.exec(t);if(!r)continue;const l=(r[1]??"").length,c=4-l;c>s&&(s=c,a=l===1?"major":l===2?"minor":"patch")}return a},La=/^\s*(pr|commit|author)\s*:\s*(.+?)\s*$/i,Oa=e=>{const a=e.split(/\r?\n/),s={};let n=0;for(const r of a){if(r.trim()===""){n+=1;continue}const l=La.exec(r);if(!l)break;const[,c="",i=""]=l;switch(c.toLowerCase()){case"author":{s.author=i.startsWith("@")?i:`@${i}`;break}case"commit":{s.commit=i;break}case"pr":{const d=Number.parseInt(i,10);!Number.isNaN(d)&&d>0&&(s.pr=d);break}}n+=1}const t=a.slice(n).join(`
|
|
2
|
-
`).trim();return{meta:Object.keys(s).length>0?s:void 0,remainder:t}},Ne=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("bump"in e||"replay"in e),Ba=(e,a,s)=>{const n=a.replay!==void 0;if(n&&a.bump!==void 0)throw new E({code:"BUMP_FILE_INVALID",file:s,message:`"${e}" sets both \`bump\` and \`replay\`. Replay files are changelog-only and never bump — remove \`bump\`, or drop \`replay\` to make this a normal change file.`,packageName:e});const t=a.bump===void 0&&n?"none":a.bump;if(!ve(t))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid bump level for "${e}": ${JSON.stringify(a.bump)}. Expected one of: ${be.join(", ")}`,packageName:e});const r={bump:t,package:e};if(n&&(r.replay=Na(a.replay,s)),a.releaseAs!==void 0){if(typeof a.releaseAs!="string"||!/^\d+\.\d+\.\d+(?:[-+].*)?$/.test(a.releaseAs))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid releaseAs for "${e}": ${JSON.stringify(a.releaseAs)}. Expected a semver string like "2.0.0" or "2.0.0-rc.1".`,packageName:e});r.releaseAs=a.releaseAs}if(a.cascade!==void 0){if(typeof a.cascade!="object"||a.cascade===null||Array.isArray(a.cascade))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Cascade block for "${e}" must be an object mapping package globs to bump levels.`,packageName:e});const l={};for(const[c,i]of Object.entries(a.cascade)){if(!ve(i))throw new E({code:"BUMP_FILE_INVALID",file:s,message:`Invalid cascade bump level for "${c}": ${JSON.stringify(i)}.`,packageName:e});l[c]=i}r.cascade=l}return r},ue=e=>e.replaceAll(/^.*[/\\]/g,"").replace(/\.md$/i,""),Ga=(e,a)=>{const s=Da(e);if(!s)throw new E({code:"BUMP_FILE_INVALID",file:a,message:"Change file is missing YAML frontmatter (expected `---` delimiters)."});let n;try{n=ya(s.frontmatter,{strict:!0})}catch(i){throw new E({cause:i,code:"BUMP_FILE_INVALID",file:a,message:`YAML parse failed: ${i.message}`})}if(n==null)return{body:s.body.trim(),id:ue(a),path:a,payload:{bumps:{}}};if(typeof n!="object"||Array.isArray(n))throw new E({code:"BUMP_FILE_INVALID",file:a,message:"Frontmatter must be a YAML object mapping package names to bump levels."});const t=Object.entries(n);if(t.length===0)return{body:s.body.trim(),id:ue(a),path:a,payload:{bumps:{}}};for(const[i]of t)if(!Sa(i))throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid package name: ${JSON.stringify(i)}.`,packageName:i});let r;if(t.length===1&&Ne(t[0][1])){const[i,o]=t[0];r=Ba(i,o,a)}else{const i={},o=[];for(const[d,u]of t){if(Ne(u))throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Mixed simple + nested entries are not allowed. Package "${d}" uses the nested shape but the file has multiple top-level entries.`,packageName:d});if(u==null||u===""){o.push(d);continue}if(!ve(u))throw new E({code:"BUMP_FILE_INVALID",file:a,message:`Invalid bump level for "${d}": ${JSON.stringify(u)}. Expected one of: ${be.join(", ")}`,packageName:d});i[d]=u}if(o.length>0){const d=Ta(s.body);if(!d)throw new E({code:"BUMP_FILE_INVALID",file:a,message:`No bump level for ${o.map(u=>`"${u}"`).join(", ")}: the entry is empty and the body has no markdown heading to infer one from. Add an explicit level (e.g. \`${o[0]}: minor\`) or a heading (\`# major\`, \`## minor\`, \`### patch\`).`,packageName:o[0]});for(const u of o)i[u]=d}r={bumps:i}}const{meta:l,remainder:c}=Oa(s.body);return{body:c,id:ue(a),meta:l,path:a,payload:r}},Bs=(e,a)=>{let s;if("bumps"in e){const n=Object.entries(e.bumps).map(([t,r])=>`${me(t)}: ${r}`);s=n.length>0?n.join(`
|
|
3
|
-
`):"{}"}else{const n=[`${me(e.package)}:`,` bump: ${e.bump}`];if(e.releaseAs&&n.push(` releaseAs: ${e.releaseAs}`),e.cascade){n.push(" cascade:");for(const[t,r]of Object.entries(e.cascade))n.push(` ${me(t)}: ${r}`)}if(e.replay&&e.replay.length>0){n.push(" replay:");for(const t of e.replay){const r=t.kind==="version"?`${t.package}@${t.version}`:`exit-prerelease:${t.package}`;n.push(` - "${r}"`)}}s=n.join(`
|
|
4
|
-
`)}return`---
|
|
5
|
-
${s}
|
|
6
|
-
---
|
|
7
|
-
${a.trim()===""?"":`${a.trim()}
|
|
8
|
-
`}`},me=e=>/^[a-z0-9-]/.test(e)?e:`"${e}"`,Ha=e=>{const a=new Map,s=t=>t==="major"?3:t==="minor"?2:t==="patch"?1:0,n=(t,r)=>{const l=a.get(t);(l===void 0||s(r)>s(l))&&a.set(t,r)};for(const t of e)if("bumps"in t.payload)for(const[r,l]of Object.entries(t.payload.bumps))n(r,l);else n(t.payload.package,t.payload.bump);return a},Ee=(e,a)=>a.filter(s=>"bumps"in s.payload?Object.hasOwn(s.payload.bumps,e):s.payload.package===e),Wa=new Set(["README.md","readme.md"]),Ua=async e=>{const a=e.changesDir??oe,s=W(e.cwd),n=W(e.cwd,a),t=n,r=s.endsWith(x)?s:`${s}${x}`;if(n!==s&&!n.startsWith(r))throw new E({code:"CONFIG_INVALID",message:`changesDir resolves outside the workspace: ${n} (workspace: ${s}). Set release.changesDir to a path inside the repo.`});const l=[];let c;try{c=await oa(t)}catch(d){if(d.code==="ENOENT")return{files:[],warnings:[]};throw new E({cause:d,code:"CONFIG_INVALID",message:`Cannot read change-files directory ${t}: ${d.message}`})}const i=c.filter(d=>!Wa.has(d)&&d.endsWith(".md"));return{files:await Promise.all(i.map(async d=>{const u=pa(t,d),g=await ca(u,"utf8");return Ga(g,u)})),warnings:l}},Ka=(e,a)=>{if(!a)return;if(Object.hasOwn(a,e)){const n=Object.keys(a).filter(t=>t!==e&&Me(t)&&le(t,e));return Ie(e,a[e],n)}const s=[];for(const[n]of Object.entries(a))Me(n)&&le(n,e)&&s.push(n);if(s.length>0){const[n,...t]=s;return Ie(e,a[n],t)}},Ie=(e,a,s=[])=>{let{tag:n}=a;return n==="branch-name"&&(n=za(e)),{branch:e,mode:a.mode??"auto-publish",...s.length>0?{overlapping:s}:{},prerelease:a.prerelease,range:a.range,tag:n}},za=e=>e.toLowerCase().replaceAll(/[^a-z0-9.-]/g,"-").replaceAll(/^-+|-+$/g,"")||"branch",Ya=/[!()*+?@[\]{|}]/,Me=e=>Ya.test(e),Ja=async(e,a)=>{try{const s=await a.run("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e,silent:!0});if(s.exitCode!==0)return;const n=s.stdout.trim();return n==="HEAD"||n===""?void 0:n}catch{return}},qa=["dependencies","devDependencies","peerDependencies","optionalDependencies"];class Xa{dependents;dependenciesByPackage;packagesByName;constructor(a){this.dependents=new Map,this.dependenciesByPackage=new Map,this.packagesByName=new Map;for(const s of a){if(this.packagesByName.has(s.name))throw new E({code:"DUPLICATE_PACKAGE_NAME",message:`Duplicate package name "${s.name}" — found at ${this.packagesByName.get(s.name).dir} and ${s.dir}.`,packageName:s.name});this.packagesByName.set(s.name,s),this.dependents.set(s.name,[]),this.dependenciesByPackage.set(s.name,[])}for(const s of a)for(const n of qa){const t=s.manifest[n];if(!(!t||typeof t!="object"))for(const[r,l]of Object.entries(t))this.packagesByName.has(r)&&(this.dependents.get(r).push({kind:n,name:s.name,range:l}),this.dependenciesByPackage.get(s.name).push({kind:n,name:r,range:l}))}}getPackage(a){return this.packagesByName.get(a)}allPackages(){return[...this.packagesByName.values()]}isInternal(a){return this.packagesByName.has(a)}getDependents(a){return this.dependents.get(a)??[]}getDependencies(a){return this.dependenciesByPackage.get(a)??[]}topologicalSort(a){const s=a?new Set(a):new Set(this.packagesByName.keys()),n=new Set,t=new Set,r=[],l=(c,i)=>{if(!n.has(c)){if(t.has(c)){const o=i.indexOf(c),d=o===-1?[...i,c]:[...i.slice(o),c];throw new E({code:"CYCLIC_DEPENDENCY",message:`Cyclic dependency detected: ${d.join(" → ")}`})}t.add(c);for(const o of this.getDependencies(c))s.has(o.name)&&o.kind!=="devDependencies"&&l(o.name,[...i,c]);t.delete(c),n.add(c),r.push(c)}};for(const c of s)l(c,[]);return r}get size(){return this.packagesByName.size}}const Za=e=>{const a="/version.rb";if(!e.endsWith(a))return!1;const s=e.length-a.length;let n;if(e.startsWith("lib/"))n=0;else{const r=e.indexOf("/lib/");if(r===-1)return!1;n=r+1}const t=e.slice(n+4,s);return t.length>0&&!/[\n\r\u2028\u2029]/.test(t)},Y=e=>e,Q=(e,a)=>(s,n)=>[...n.versionActions===e?[W(s.dir)]:[],...a===void 0?[]:(n.extraFiles??[]).filter(t=>a.test(t.path)).map(t=>ge(W(s.dir,t.path)))],Qa=e=>({managed:!0,versionActions:e}),Le=e=>a=>({managed:!0,...a.private?{}:{versionActions:e}}),ee=e=>async a=>({touched:await e(a),warnings:[]}),xa=Y({claimedDirs:(e,a)=>ma(e.dir,a).map(s=>ge(s)),configKey:"cargo",discover:async e=>{const{discoverCargoCrates:a}=await import("./index2.js").then(s=>s.q);return a(e)},id:"cargo",perPackage:Le("cargo"),toPackage:e=>e}),Oe=Y({claimedDirs:(e,a)=>a.versionActions==="python"||a.pythonProjectDir!==void 0?[W(e.dir,a.pythonProjectDir??".")]:[],configKey:"python",discover:async e=>{const{discoverPythonProjects:a}=await import("./python-projects.js");return a(e)},id:"python",perPackage:Le("python"),plan:async({context:e,pending:a,releases:s})=>{const{planPythonWorkspace:n}=await import("./python-plan.js"),t=s.flatMap(l=>{const c=e.depGraph.getPackage(l.name);return c?[{manifestPath:c.manifestPath,name:l.name,newVersion:l.newVersion}]:[]}),r=await n({cwd:e.cwd,dependents:e.packages.filter(l=>l.ecosystem==="python").map(l=>({dependencies:l.manifest.dependencies??{},name:l.name})),pending:a,releases:t});return{touched:r.touched,warnings:r.warnings}},toPackage:e=>e}),Be=Y({claimedDirs:(e,a)=>[...a.versionActions==="maven"||a.pomPath!==void 0?[a.pomPath??"pom.xml"]:[],...(a.extraFiles??[]).map(n=>n.path).filter(n=>/(?:^|\/)pom\.xml$/.test(n))].map(n=>ge(W(e.dir,n))),configKey:"maven",discover:async e=>{const{discoverMavenProjects:a}=await import("./maven-projects.js");return a(e)},id:"maven",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planMavenWorkspace:n}=await import("./maven-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ge=Y({claimedDirs:Q("gradle",/(?:^|\/)(?:build\.gradle(?:\.kts)?|gradle\.properties)$/),configKey:"gradle",discover:async e=>{const{discoverGradleProjects:a}=await import("./index2.js").then(s=>s.t);return a(e)},id:"gradle",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planGradleWorkspace:n}=await import("./gradle-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),es=Y({claimedDirs:Q("composer",/(?:^|\/)composer\.json$/),configKey:"composer",discover:async e=>{const{discoverComposerProjects:a}=await import("./composer-projects.js");return a(e)},id:"composer",perPackage:e=>e.perPackage,toPackage:e=>e.package}),He=Y({claimedDirs:Q("go",/(?:^|\/)go\.mod$/),configKey:"go",discover:async e=>{const{discoverGoProjects:a}=await import("./go-projects.js");return a(e)},id:"go",perPackage:e=>e.perPackage,toPackage:e=>e.package}),as=Q("swift",/(?:^|\/)Package\.swift$/),ss=Y({claimedDirs:(e,a,s)=>[...e.ecosystem===void 0&&W(e.dir)!==W(s)?[W(e.dir)]:[],...as(e,a)],configKey:"swift",discover:async e=>{const{discoverSwiftProjects:a}=await import("./swift-projects.js");return a(e)},id:"swift",perPackage:(e,a)=>({currentVersionResolver:"git-tag",managed:!0,versionActions:"swift",...W(e.package.dir)===W(a)?{releaseTagPattern:"{version}"}:{}}),toPackage:e=>e.package}),We=Y({claimedDirs:(e,a)=>{const s=a.versionActions==="gem"?[W(e.dir)]:[];for(const n of a.extraFiles??[]){const t=W(e.dir,n.path);if(/\.gemspec$/.test(n.path))s.push(ge(t));else if(Za(n.path)){const r=t.lastIndexOf(`${x}lib${x}`);r!==-1&&s.push(t.slice(0,r))}}return s},configKey:"gem",discover:async e=>{const{discoverGemProjects:a}=await import("./gem-projects.js");return a(e)},id:"gem",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planGemWorkspace:n}=await import("./gem-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ue=Y({claimedDirs:Q("hex",/(?:^|\/)mix\.exs$/),configKey:"hex",discover:async e=>{const{discoverHexProjects:a}=await import("./hex-projects.js");return a(e)},id:"hex",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planHexWorkspace:n}=await import("./hex-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ke=Y({claimedDirs:Q("nuget",/\.(?:cs|fs)proj$|(?:^|\/)Directory\.Build\.props$/),configKey:"nuget",discover:async e=>{const{discoverNuGetProjects:a}=await import("./nuget-projects.js");return a(e)},id:"nuget",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planNuGetWorkspace:n}=await import("./nuget-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),ze=Y({claimedDirs:Q("zig",/(?:^|\/)build\.zig\.zon$/),configKey:"zig",discover:async e=>{const{discoverZigProjects:a}=await import("./zig-projects.js");return a(e)},id:"zig",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planZigWorkspace:n}=await import("./zig-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),Ye=Y({claimedDirs:Q("dart",/(?:^|\/)pubspec\.yaml$/),configKey:"dart",discover:async e=>{const{discoverDartProjects:a}=await import("./dart-projects.js");return a(e)},id:"dart",plan:ee(async({pending:e,projects:a,releases:s})=>{const{planDartWorkspace:n}=await import("./dart-plan.js");return n({pending:e,projects:a,releases:s})}),toPackage:e=>e.package}),De=[xa,Oe,Be,Ge,es,He,ss,We,Ue,Ke,ze,Ye],ns=[Oe,Be,He,Ge,We,Ue,Ke,ze,Ye],ts=(e,a,s)=>e.perPackage?e.perPackage(a,s):Qa(e.id),je=(e,a)=>!!e[a.configKey]?.discover,rs=/\{(name|version|previousVersion|date|repo|contributors)\}/g,is=(e,a)=>e.replaceAll(rs,(s,n)=>a[n]??""),os=(e,a={})=>{const s=new Set;for(const r of a.internalAuthors??[]){const l=r.trim().toLowerCase().replace(/^@/,"");l.length>0&&s.add(l)}const n=new Set,t=[];for(const r of e){const l=r.meta?.author;if(l)for(const c of l.split(",")){const i=c.trim();if(!i)continue;const o=i.replace(/^@/,"");if(o.length===0)continue;const d=o.toLowerCase();n.has(d)||s.has(d)||(n.add(d),t.push(ka(i)))}}return t.length===0?"":t.map(r=>`- ${r}`).join(`
|
|
9
|
-
`)},de=e=>{const{current:a,prerelease:s}=e;let{bump:n}=e;if(!J.valid(a))throw new E({code:"CONFIG_INVALID",message:`Invalid current version: ${JSON.stringify(a)}`});const t=J.parse(a),r=t.prerelease[0],l=t.prerelease.length>0;if(t.major===0&&e.bumpMinorPreMajor&&(n==="major"&&(n="minor"),n==="minor"&&e.bumpPatchForMinorPreMajor&&(n="patch")),n==="none")return(r??void 0)===(s??void 0)?a:!l&&s?`${t.major}.${t.minor}.${t.patch}-${s}.0`:l&&!s?`${t.major}.${t.minor}.${t.patch}`:l&&s?`${t.major}.${t.minor}.${t.patch}-${s}.0`:a;if(l&&s&&r===s){const i=cs(t);if(_e[n]<=_e[i]){const u=J.inc(a,"prerelease",s);if(!u)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for prerelease bump on ${a}`});return u}const o=`${t.major}.${t.minor}.${t.patch}`,d=J.inc(o,n);if(!d)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${o}`});return`${d}-${s}.0`}if(s){const i=`${t.major}.${t.minor}.${t.patch}`,o=J.inc(i,n);if(!o)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${i}`});return`${o}-${s}.0`}if(l){const i=`${t.major}.${t.minor}.${t.patch}`,o=J.inc(i,n);if(!o)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${i}`});return o}const c=J.inc(a,n);if(!c)throw new E({code:"CONFIG_INVALID",message:`semver.inc returned null for ${n} bump on ${a}`});return c},_e={major:3,minor:2,patch:1},cs=e=>e.minor===0&&e.patch===0?"major":e.patch===0?"minor":"patch",ls=(e,a)=>{const s=Je(a);return s?J.satisfies(e,s,{includePrerelease:!0}):!0},Je=e=>{if(!e||e.startsWith("catalog:")||e==="*"||e==="workspace:*"||e==="workspace:^"||e==="workspace:~")return null;if(e.startsWith("workspace:")){const a=e.slice(10);return a==="*"||a==="^"||a==="~"?null:a}if(e.startsWith("npm:")){const a=e.lastIndexOf("@");return a>4?e.slice(a+1):null}return e},fe=100,X=(e,a,s,n,{isCascadeBump:t=!1,isDependencyBump:r=!1,isGroupBump:l=!1,source:c}={})=>{const i=e.get(a);if(i){const o=i.type;return i.type=we(i.type,s),i.reasons.add(n),r&&(i.isDependencyBump=!0),l&&(i.isGroupBump=!0),t&&(i.isCascadeBump=!0),c&&i.sources.set(c.name,{bumpType:c.bumpType,newVersion:c.newVersion}),i.type!==o}return e.set(a,{isCascadeBump:t,isDependencyBump:r,isGroupBump:l,name:a,proactiveSeen:!1,reasons:new Set([n]),sources:c?new Map([[c.name,{bumpType:c.bumpType,newVersion:c.newVersion}]]):new Map,type:s}),!0},ds=(e,a,s,n)=>{const t=s?.get(e)?.dependencyBumpRules?.[a];if(t!==void 0)return t;const r=n.dependencyBumpRules?.[a];return r!==void 0?r:ga[a]??!1},Se=(e,a)=>ce(e)>=ce(a),Ve=(e,a)=>a==="match"?e:a,ps=(e,a)=>a===!0?!0:Array.isArray(a)?a.includes(e):!1,gs=10,us=(e,a,s,n,t,r,l)=>{let c=!1;for(const i of e.values()){const o=a.getPackage(i.name);if(!o)continue;const d=n.currentVersions?.get(i.name)??o.version,u=s.get(i.name)??de({bump:i.type,bumpMinorPreMajor:n.bumpMinorPreMajor,bumpPatchForMinorPreMajor:n.bumpPatchForMinorPreMajor,current:d,prerelease:n.prerelease});s.set(i.name,u);for(const g of a.getDependents(i.name)){if(g.kind==="devDependencies"){if(!ps(i.name,r.bumpDevDependencies))continue;if(X(e,g.name,"patch","DEVDEPENDENCY_BUMPED",{isDependencyBump:!0,source:{bumpType:i.type,name:i.name,newVersion:u}})&&(c=!0,s.delete(g.name)),r.bumpDevDependencies===!0){let P=l.get(i.name);P||(P=new Set,l.set(i.name,P)),P.add(g.name)}continue}const p=Je(g.range);if(p===null||ls(u,p))continue;let f,k="DEPENDENCY_OUT_OF_RANGE";g.kind==="peerDependencies"?(f=i.type==="none"?"patch":i.type,k="PEER_DEP_MATCH",p.startsWith("^0.")&&f!=="patch"&&t.push(`^0.x peer dep "${i.name}" → "${g.name}" produced a ${f} bump. Consider widening the range manually.`)):f="patch",X(e,g.name,f,k,{isDependencyBump:!0,source:{bumpType:i.type,name:i.name,newVersion:u}})&&(c=!0,s.delete(g.name))}}return c},ms=(e,a,s)=>{let n=!1;for(const t of s.fixed??[]){const r=$e(t),l=pe(r.packages,a),c=l.filter(o=>e.has(o));if(c.length===0)continue;let i="none";for(const o of c)i=we(i,e.get(o).type);for(const o of l){if(!a.isInternal(o))continue;X(e,o,i,"FIXED_GROUP",{isGroupBump:!0})&&(n=!0)}}for(const t of s.linked??[]){const r=$e(t),c=pe(r.packages,a).filter(o=>e.has(o));if(c.length===0)continue;let i="none";for(const o of c)i=we(i,e.get(o).type);for(const o of c)X(e,o,i,"LINKED_GROUP",{isGroupBump:!0})&&(n=!0)}return n},Fe=new WeakMap,fs=/[!()*+?@[\]{|}]/,pe=(e,a)=>{let s=Fe.get(a);s||(s={allNames:a.allPackages().map(t=>t.name),matched:new Map},Fe.set(a,s));const n=new Set;for(const t of e){if(!fs.test(t)){n.add(t);continue}let r=s.matched.get(t);r||(r=s.allNames.filter(l=>le(t,l)),s.matched.set(t,r));for(const l of r)n.add(l)}return[...n]},hs=(e,a,s,n,t,r)=>{let l=!1;const c=n.updateInternalDependencies??"out-of-range",i=o=>{const d=r.get(o.name);if(d!==void 0)return d;const u=de({bump:o.type,bumpMinorPreMajor:t.bumpMinorPreMajor,bumpPatchForMinorPreMajor:t.bumpPatchForMinorPreMajor,current:t.currentVersions?.get(o.name)??s.getPackage(o.name).version,prerelease:t.prerelease});return r.set(o.name,u),u};for(const o of a){if("bumps"in o.payload||!o.payload.cascade)continue;const d=e.get(o.payload.package);if(!d)continue;const u=r.get(d.name)??de({bump:d.type,bumpMinorPreMajor:t.bumpMinorPreMajor,bumpPatchForMinorPreMajor:t.bumpPatchForMinorPreMajor,current:t.currentVersions?.get(d.name)??s.getPackage(d.name).version,prerelease:t.prerelease});r.set(d.name,u);for(const[g,p]of Object.entries(o.payload.cascade))for(const f of pe([g],s)){if(!s.isInternal(f))continue;X(e,f,p,"CASCADE",{isCascadeBump:!0,source:{bumpType:d.type,name:d.name,newVersion:u}})&&(l=!0)}}for(const o of e.values()){const d=t.perPackageConfig?.get(o.name)?.cascadeTo;if(d)for(const[u,g]of Object.entries(d)){if(!Se(o.type,g.trigger))continue;const p=Ve(o.type,g.bumpAs),f=i(o);for(const k of pe([u],s)){if(!s.isInternal(k))continue;X(e,k,p,"CASCADE_TO",{isCascadeBump:!0,source:{bumpType:o.type,name:o.name,newVersion:f}})&&(l=!0)}}}if(c==="out-of-range")return l;for(const o of e.values())if(!o.proactiveSeen&&!(c==="minor"&&ce(o.type)<ce("minor"))){for(const d of s.getDependents(o.name)){const u=ds(d.name,d.kind,t.perPackageConfig,n);if(u===!1||!Se(o.type,u.trigger))continue;const g=Ve(o.type,u.bumpAs);if(g==="none")continue;const p=i(o);X(e,d.name,g,"DEPENDENCY_BUMPED",{isDependencyBump:!0,source:{bumpType:o.type,name:o.name,newVersion:p}})&&(l=!0)}o.proactiveSeen=!0}return l},ws=(e,a,s,n={})=>{const t=e.filter(p=>ye(p)),r=t.length>0?e.filter(p=>!ye(p)):e,l=new Map,c=[],i=new Map;for(const[p,f]of Ha(r).entries()){if(!a.isInternal(p)){c.push(`Change file references non-workspace package "${p}" — ignored.`);continue}f!=="none"&&X(l,p,f,"EXPLICIT")}for(const p of n.catalogConsumers??[]){if(!a.isInternal(p.packageName))continue;const f=`catalog:${p.catalog}/${p.dep}`;X(l,p.packageName,"patch","CATALOG_CHANGED",{isDependencyBump:!0,source:{bumpType:"patch",name:f,newVersion:p.newVersion??""}})}const o=new Map,d=p=>{const f=Ee(p,r).map(w=>"releaseAs"in w.payload?{file:w.path,version:w.payload.releaseAs}:void 0).filter(w=>w!==void 0&&typeof w.version=="string"),k=new Set(f.map(w=>w.version));if(k.size>1)throw new E({code:"BUMP_FILE_INVALID",message:`Conflicting releaseAs values for ${p}: ${[...k].join(", ")}. Found in: ${f.map(w=>w.file).join(", ")}. Consolidate the change files to a single override.`,packageName:p});return f[0]?.version},u=new Map;for(const p of l.values()){if(p.type==="none")continue;const f=d(p.name);f&&(u.set(p.name,f),i.set(p.name,f))}for(let p=0;p<fe;p+=1){const f=us(l,a,i,n,c,s,o),k=ms(l,a,s),w=hs(l,r,a,s,n,i);if(!f&&!k&&!w)break;p===fe-1&&c.push(`Release plan did not converge after ${fe} iterations — releasing the current best plan. This usually indicates a config bug (cyclic cascade?).`)}for(const[p,f]of o){const k=f.size;k>gs&&c.push(`bumpDevDependencies: true triggered ${k} patch-cascades to distinct dependents from a single devdep bump (${p}). Consider scoping with the array form ['only', 'these', 'sources'].`)}const g=[];for(const p of l.values()){if(p.type==="none")continue;const f=a.getPackage(p.name);if(!f)continue;const k=Ee(p.name,r),w=u.get(p.name),N=n.currentVersions?.get(p.name)??f.version,P=w??i.get(p.name)??de({bump:p.type,bumpMinorPreMajor:n.bumpMinorPreMajor,bumpPatchForMinorPreMajor:n.bumpPatchForMinorPreMajor,current:N,prerelease:n.prerelease});g.push({changeFiles:k,isCascadeBump:p.isCascadeBump,isDependencyBump:p.isDependencyBump,isGroupBump:p.isGroupBump,name:p.name,newVersion:P,oldVersion:N,reasons:[...p.reasons],sources:[...p.sources.entries()].map(([b,y])=>({name:b,...y})),type:p.type})}if(g.sort((p,f)=>p.name.localeCompare(f.name)),t.length>0){const p=Ia(t,g);for(const[f,k]of p.injectionsByPackage){const w=g.find(N=>N.name===f);w&&(w.changeFiles=[...w.changeFiles,...k])}return{consumedChangeFiles:[...r,...p.consumed],releases:g,warnings:c}}return{consumedChangeFiles:r,releases:g,warnings:c}},qe=async(e,a,s={})=>{const n=await e.listPackages(),t=[],r=new Map,l=new Map,c=u=>{const g=W(u);try{return Ce.native(g)}catch{try{return Ce(g)}catch{return g}}},i=s.cwd===void 0?void 0:c(s.cwd),o=u=>u.replaceAll("\\","/"),d=[];for(const{manifest:u,manifestPath:g}of n){const p=ke(typeof u.name=="string"?u.name:"",u,a);if(u.napi!==void 0||p.versionActions==="native-addon"){const k=o(g.replace(/[/\\]package\.json$/i,""));d.push(`${k}/npm/`)}}for(const{manifest:u,manifestPath:g}of n){if(typeof u.name!="string"||u.name==="")continue;const p=o(g.replace(/[/\\]package\.json$/i,""));if(d.some(w=>p.startsWith(w)))continue;if(Pa(u.name),l.has(u.name))throw new E({code:"DUPLICATE_PACKAGE_NAME",message:`Duplicate package name "${u.name}" — at ${l.get(u.name)} and ${g}.`,packageName:u.name});if(l.set(u.name,g),i!==void 0){const w=c(g),N=i.endsWith(x)?i:`${i}${x}`,P=y=>x==="\\"?y.toLowerCase():y,b=P(w);if(b!==P(i)&&!b.startsWith(P(N)))throw new E({code:"CONFIG_INVALID",message:`Package manifest is outside the workspace: ${g} (workspace: ${i}).`,packageName:u.name})}const f=ke(u.name,u,a);if(!Xe(u.name,u,f,a))continue;const k=g.replace(/[/\\]package\.json$/i,"");t.push({dir:k,manifest:u,manifestPath:g,name:u.name,private:u.private===!0,version:typeof u.version=="string"?u.version:"0.0.0"}),r.set(u.name,f)}return{packages:t,perPackageConfig:r}},ke=(e,a,s)=>{const n=s.packages?.[e]??{},t=a["vis-release"]??{};return{...n,...t}},Xe=(e,a,s,n)=>s.managed===!1?!1:s.managed===!0?!0:Te(e,n.ignore??[])?!1:Te(e,n.include??[])?!0:a.private===!0&&!(n.privatePackages?.version??!1)?!1:n.defaultManaged??!1,Te=(e,a)=>a.some(s=>le(s,e)),Ze=(e,a)=>a.versionActions!==void 0?a.versionActions:e.manifest.napi!==void 0?"native-addon":e.private?"private":"npm",Gs=Object.defineProperty({__proto__:null,discoverPackages:qe,isPackageManaged:Xe,mergePerPackageConfig:ke,resolveVersionActionsId:Ze},Symbol.toStringTag,{value:"Module"}),Hs=async(e={})=>{const a=e.cwd??process.cwd(),s=re(),n=await ba(a),t=$a(n,s),r=await t.detectVersion(a);if(r&&!vs(r,t.minVersion))throw new E({code:"PM_VERSION_TOO_LOW",hint:`pnpm install -g ${t.id}@latest (or your equivalent)`,message:`${t.id} version ${r} is below the required minimum ${t.minVersion}. Upgrade ${t.id} to enable release operations.`});let l={};try{const{loadVisConfig:A}=await import("./CONFIG_FILES.js"),v=await A(a);v.release&&(l=v.release)}catch(A){const{code:v}=A,D=A.message??"";if(!(v==="ENOENT"||v==="MODULE_NOT_FOUND"||/cannot find module/i.test(D)))throw A}const c=ys(l,e.config??{});!c.acknowledgeUnstable&&process.env.VIS_RELEASE_SUPPRESS_UNSTABLE!=="1"&&process.stderr.write("[vis release] ⚠ This subsystem is flagged unstable. Set `release.acknowledgeUnstable: true` in vis.config.ts to suppress this warning. (RFC §21.2)\n");const i=e.channel??await Ja(a,s),o=i?Ka(i,c.channels):void 0,d=await import("node:fs/promises"),g=await qe({listPackages:async()=>{const A=await t.listWorkspacePackages(a);return(await Promise.all(A.map(async D=>{const F=`${D.path}/package.json`;try{const G=await d.readFile(F,"utf8");return{manifest:JSON.parse(G),manifestPath:F}}catch{return}}))).filter(D=>D!==void 0)}},c,{cwd:a}),{perPackageConfig:p}=g;let{packages:f}=g;const k=new Map;if(De.some(A=>je(c,A))){for(const v of De){if(!je(c,v))continue;const D=new Set;for(const G of f)for(const z of v.claimedDirs(G,p.get(G.name)??{},a))D.add(z);const F=await v.discover({claimedDirs:D,cwd:a});for(const G of F){const{name:z}=v.toPackage(G);p.set(z,{...ts(v,G,a),...c.packages?.[z]})}f=[...f,...F.map(G=>v.toPackage(G))],k.set(v.id,F)}const A=new Map;for(const v of f){const D=A.get(v.name);if(D!==void 0&&v.ecosystem!==void 0)throw new E({code:"CONFIG_INVALID",message:`${v.name} is discovered as a ${v.ecosystem} project, but ${D.dir} already has that name. Rename one of them in config.packages.`,packageName:v.name});A.set(v.name,v)}}{const{assertSupportedVersionFiles:A}=await import("./index2.js").then(v=>v.v);for(const[v,D]of p)A(v,D.versionFiles??[])}const w=new Xa(f),{files:N}=await Ua({changesDir:c.changesDir,cwd:a}),{readPreMode:P}=await import("./pre-mode.js"),b=await P(a,c.changesDir??".vis/release");let y;b?.mode==="pre"?y=b.tag:b?.mode==="exit-pending"?y=void 0:y=o?.prerelease;const m=e.firstRelease===!0,{resolveCurrentVersionsForWorkspace:_}=await import("./version-resolver.js"),{versions:R,warnings:S}=await _(f,w,c,p,{cwd:a,firstRelease:m,pm:t,runner:s,skipRegistryLookup:e.skipRegistryLookup===!0}),U=[],M=[];if(c.detectCatalogChanges===!0)try{const{detectCatalogChanges:A,findCatalogConsumers:v,parseCatalogs:D}=await import("./catalog-detector.js"),F=await t.readCatalogYaml(a),G=D(F);let z;try{const L=await s.run("git",["show","HEAD~1:pnpm-workspace.yaml"],{cwd:a,silent:!0});L.exitCode===0&&(z=L.stdout)}catch{}const h=D(z),V=A(h,G).filter(L=>L.oldVersion!==void 0&&L.newVersion!==void 0);if(V.length>0){const L=v(f,G);for(const T of V){const K=L.get(T.catalog)?.get(T.dep)??[];for(const H of K)U.push({catalog:T.catalog,dep:T.dep,newVersion:T.newVersion,oldVersion:T.oldVersion,packageName:H.packageName})}U.length>0&&M.push(`Catalog change-detection: ${V.length} catalog dep(s) moved; ${U.length} consumer-package patch bump(s) tagged CATALOG_CHANGED.`)}}catch(A){M.push(`Catalog change-detection skipped: ${A.message}.`)}const O=ws(N,w,c,{bumpMinorPreMajor:c.bumpMinorPreMajor,bumpPatchForMinorPreMajor:c.bumpPatchForMinorPreMajor,catalogConsumers:U,currentVersions:R,perPackageConfig:p,prerelease:y});if(M.length>0&&O.warnings.push(...M),S.length>0&&O.warnings.push(...S),m&&O.warnings.push('First-release mode: currentVersionResolver forced to "disk", remote tag-collision checks skipped. Drop --first-release after the initial wave lands.'),b?.mode==="pre"&&O.warnings.push(`Pre-mode is ACTIVE (tag "${b.tag}"); every version produces a prerelease. Exit with \`vis release pre exit\` when ready to ship stable.`),b?.mode==="exit-pending"&&O.warnings.push(`Pre-mode is EXIT-PENDING (was "${b.tag}"); the next \`vis release version\` will consolidate the prerelease and delete pre.json.`),o?.overlapping&&o.overlapping.length>0&&O.warnings.push(`Branch "${i}" matches multiple channel patterns: "${o.branch}" (active) plus ${o.overlapping.map(A=>`"${A}"`).join(", ")}. Reorder channels in vis.config.ts if this is unintentional.`),e.projects&&e.projects.length>0){const{default:A}=await import("./index.js"),v=e.projects;O.releases=O.releases.filter(D=>v.some(F=>D.name===F||A(F,D.name)))}{const A=O.releases.flatMap(v=>w.getPackage(v.name)?.ecosystem==="go"?[{name:v.name,newVersion:v.newVersion}]:[]);if(A.length>0){const{planGoWorkspace:v}=await import("./go-plan.js");v({projects:k.get("go")??[],releases:A})}}return{branch:i,channel:o?{mode:o.mode,prerelease:o.prerelease,tag:o.tag}:void 0,config:c,cwd:a,depGraph:w,firstRelease:m,packages:f,perPackageConfig:p,plan:O,pm:t,preMode:b,projectsByEcosystem:k}},ys=(...e)=>{let a={...ua};for(const s of e)a={...a,...s};return a},vs=(e,a)=>{const s=J.coerce(e)?.version??e;try{return J.gte(s,a)}catch{return!0}},te=async(e,a,s)=>{if(!a||a.trim()==="")return;const n=re(),t=process.platform==="win32",r=t?"cmd":"sh",l=t?["/c",a]:["-c",a],c=await n.run(r,l,{cwd:e,silent:!1});if(c.exitCode!==0)throw new Error(`${s} failed (exit ${c.exitCode}): ${a}`)},Qe=async(e,a,s,n={})=>{const{findConflictingPendingStages:t,readStagedRegistry:r,removePendingStages:l,writeStagedRegistry:c}=await import("./staged-registry.js"),i=e.config.changesDir??oe;let o=s??await r(e.cwd,i);if(o.pending.length===0)return;const d=new Map(e.plan.releases.map(w=>[w.name,w.newVersion])),u=[...d.keys()];let g=t(o,u).filter(w=>d.get(w.name)!==w.version);if(g.length===0)return;let p=[];if(!n.skipSelfHeal){const w=n.runner??re();p=(await Promise.all(g.map(async P=>{const b=await w.run("npm",["view",`${P.name}@${P.version}`,"dist.tarball","--silent"],{cwd:e.cwd,silent:!0});return b.exitCode===0&&b.stdout.trim().length>0?P.id:void 0}))).filter(P=>P!==void 0)}if(p.length>0){if(o=l(o,p),n.persistSelfHeal!==!1)try{await c(e.cwd,i,o)}catch{}if(g=t(o,u).filter(w=>d.get(w.name)!==w.version),g.length===0)return}const f=g.map(w=>` • ${w.name}@${w.version} — stage ${w.id} (${w.reason}, recorded ${w.stagedAt})`).join(`
|
|
10
|
-
`),k=a==="version"?"version":"publish";throw new E({code:"STAGE_PENDING",hint:"Resolve via `vis release stage approve <id>` / `--all` or `vis release stage reject <id>`, commit the updated staged.json, then retry.",message:`Refusing to ${k} — ${g.length} package(s) have a pending stage from a prior wave:
|
|
11
|
-
${f}`})},Ws=async(e,a={})=>{if(e.plan.releases.length===0)return{changedFiles:[],deletedFiles:[],plan:e.plan};if(await Qe(e,"version",void 0,{persistSelfHeal:!1}),!a.dryRun&&e.config.preVersionCommand&&await te(e.cwd,e.config.preVersionCommand,"preVersionCommand"),!a.dryRun&&e.config.groupPreVersionCommands){const{normaliseGroup:g}=await import("../release/types.js"),p=[...e.config.fixed??[],...e.config.linked??[]].map(k=>g(k)),{default:f}=await import("./index.js");for(const[k,w]of Object.entries(e.config.groupPreVersionCommands)){const N=Number.parseInt(k.replace(/^group-/,""),10),P=p[N];!P||!e.plan.releases.some(y=>P.packages.some(m=>y.name===m||f(m,y.name)))||await te(e.cwd,w,`groupPreVersionCommand[${k}]`)}}const s=await import("node:fs/promises"),{readFileSync:n}=await import("node:fs"),{resolveFormatter:t}=await import("./resolveFormatter.js"),{resolveGroupChangelogRouting:r}=await import("./workspace.js"),l=await t(e.config.changelog,e.cwd),c=new Date().toISOString().slice(0,10),i=r(e.config,e.packages,e.cwd),o=await fa(e.plan,e.depGraph,{changelogPath:g=>i.get(g.name)??`${g.dir}/CHANGELOG.md`,readChangelog:g=>{try{return n(g,"utf8")}catch{return}},readManifest:g=>{try{return n(g,"utf8")}catch{return}},renderChangelogEntry:g=>l({changeFiles:g.changeFiles,date:c,release:g,target:"changelog"})}),d=[];{const{applyExtraFilesForRelease:g}=await import("./extra-files.js"),{applyVersionFilesForRelease:p}=await import("./index2.js").then(y=>y.v),{cargoManifestPaths:f}=await import("./index2.js").then(y=>y.o),k=await Promise.all(e.plan.releases.map(async y=>{const m=e.depGraph.getPackage(y.name);if(!m)return{warnings:[],writes:[]};const _=e.perPackageConfig.get(y.name)?.extraFiles??[],R=e.config.publish?.extraFiles??[],S=e.perPackageConfig.get(y.name)?.versionFiles??[],M=_.length>0||R.length>0?await g(e.cwd,m.dir,y.newVersion,y.name,R,_):{warnings:[],writes:[]},O=S.length>0?await p(m.dir,S,y.newVersion,y.name,new Map(M.writes.map(A=>[A.path,A.content]))):{writes:[]};return{warnings:M.warnings,writes:[...M.writes,...O.writes]}})),w=new Map,N=new Set;for(const y of k){for(const m of y.writes)w.set(m.path,m.content),N.add(m.path);d.push(...y.warnings)}const P=e.packages.filter(y=>y.ecosystem==="cargo"),b=e.plan.releases.flatMap(y=>{const m=e.depGraph.getPackage(y.name);if(!m||m.ecosystem!==void 0&&m.ecosystem!=="cargo")return[];const _=m.ecosystem==="cargo"?[m.manifestPath]:f(m.dir,e.perPackageConfig.get(y.name)??{});return _.length>0||m.ecosystem==="cargo"?[{ecosystem:m.ecosystem,manifestPaths:_,name:y.name,newVersion:y.newVersion}]:[]});if(b.length>0){const y=new Set(P.map(R=>R.manifestPath));P.length>0&&y.add(W(e.cwd,"Cargo.toml"));for(const R of e.packages)if(R.ecosystem===void 0)for(const S of f(R.dir,e.perPackageConfig.get(R.name)??{}))y.add(S);const{planCargoWorkspace:m}=await import("./cargo-plan.js"),_=await m({crateManifests:P.map(R=>R.manifestPath),cwd:e.cwd,pending:w,releases:b,rewriteDependents:e.config.cargo?.discover===!0,scanManifests:[...y]});for(const R of _.touched)N.add(R);d.push(..._.warnings)}for(const y of ns){const m=e.plan.releases.flatMap(R=>e.depGraph.getPackage(R.name)?.ecosystem===y.id?[{name:R.name,newVersion:R.newVersion}]:[]);if(m.length===0||y.plan===void 0)continue;const _=await y.plan({context:e,pending:w,projects:e.projectsByEcosystem?.get(y.id)??[],releases:m});for(const R of _.touched)N.add(R);d.push(..._.warnings)}for(const y of N)o.writes.push({content:w.get(y),path:y});d.length>0&&e.plan.warnings.push(...d)}if(a.dryRun)return{changedFiles:o.writes.map(g=>g.path),deletedFiles:o.deletions,plan:e.plan};await Promise.all([...o.writes.map(g=>la(g.path,g.content)),...o.deletions.map(async g=>{try{await da(g)}catch{}})]);try{await e.pm.installLockfileOnly({cwd:e.cwd,silent:!0})}catch{}if(!a.dryRun&&e.config.formatChangedFiles&&await ks(o.writes.map(g=>g.path),e.cwd),e.config.plugins?.length){const{runApplyDraftHooks:g}=await import("./defineReleasePlugin.js");await g({config:e.config,cwd:e.cwd},e.plan)}let u;if(a.commit){const{stageAndCommit:g}=await import("./git.js"),p=re(),f=["pnpm-lock.yaml","package-lock.json","yarn.lock","bun.lock","bun.lockb"],k=await import("node:path"),w=[];for(const P of f)try{await s.access(k.join(e.cwd,P)),w.push(k.join(e.cwd,P))}catch{}const N=e.config.aggregateRelease===!0||typeof e.config.aggregateRelease=="object"&&e.config.aggregateRelease.enabled;if(e.config.oneCommitPerPackage===!0&&!N&&e.plan.releases.length>0){const P=e.channel?.tag??e.branch??"main",b=o.writes.map(_=>_.path),y=new Set,{releases:m}=e.plan;for(let _=0;_<m.length;_+=1){const R=m[_],S=e.depGraph.getPackage(R.name),U=S?`${S.dir}${k.sep}`:void 0,M=U?b.filter(v=>v.startsWith(U)):[];for(const v of M)y.add(v);const O=_===m.length-1?[...b.filter(v=>!y.has(v)),...o.deletions,...w]:[],A=[...M,...O];A.length!==0&&(u=await g({cwd:e.cwd,runner:p},A,`release(${P}): ${R.name}@${R.newVersion} [skip ci]`,{author:e.config.gitUser}))}}else{const P=a.commitMessage??Ps(e),b=[...o.writes.map(y=>y.path),...o.deletions,...w];u=await g({cwd:e.cwd,runner:p},b,P,{author:e.config.gitUser})}}if(!a.dryRun&&e.config.postVersionCommand&&await te(e.cwd,e.config.postVersionCommand,"postVersionCommand"),!a.dryRun&&e.preMode?.mode==="exit-pending"){const{deletePreMode:g,preModeFilePath:p}=await import("./pre-mode.js"),f=e.config.changesDir??".vis/release";await g(e.cwd,f)&&e.plan.warnings.push(`Pre-mode exited: \`${p(e.cwd,f)}\` was deleted. Commit the deletion so the registry stays consistent across CI runs.`)}return{changedFiles:o.writes.map(g=>g.path),commitSha:u,deletedFiles:o.deletions,plan:e.plan}},ks=async(e,a)=>{if(e.length===0)return;const{join:s}=await import("node:path");let n;try{const{createRequire:r}=await import("node:module"),{pathToFileURL:l}=await import("node:url"),c=r(s(a,"package.json"));n=await import(l(c.resolve("prettier")).href)}catch{return}const t=await import("node:fs/promises");for(const r of e)try{const l=await n.getFileInfo(r);if(l.ignored||!l.inferredParser)continue;const c=await t.readFile(r,"utf8"),i=await n.resolveConfig(r),o=await n.format(c,{...i,filepath:r});o!==c&&await t.writeFile(r,o)}catch{}},Ps=e=>{const a=e.channel?.tag??e.branch??"main",{releases:s}=e.plan,n=s.length<=3?s.map(r=>`${r.name}@${r.newVersion}`).join(", "):`version ${s.length} packages`,t=s.map(r=>`- ${r.name}: ${r.oldVersion} → ${r.newVersion}`).join(`
|
|
12
|
-
`);return`release(${a}): ${n} [skip ci]
|
|
13
|
-
|
|
14
|
-
${t}`},he=async(e,a,s,n,t)=>{const{stageAndCommitFile:r}=await import("./git.js"),{stateFilePath:l}=await import("./state.js");try{const c=await r({cwd:e.cwd,runner:a},l(e.cwd,s,!0),`chore(release): ${n} publish lock [skip ci]`,{author:e.config.gitUser,push:!t.noPush,sign:e.config.gitSignCommits===!0});!t.noPush&&c.committed&&!c.pushed&&process.stderr.write(`[vis release] Warning: publish lock (${n}) was committed locally but could not be pushed — cross-runner resume may use a stale lock.
|
|
15
|
-
`)}catch(c){process.stderr.write(`[vis release] Warning: could not commit publish lock (${n}): ${c.message}
|
|
16
|
-
`)}},bs=async e=>{const{defaultTagFor:a,floatingMajorTagFor:s,renderTagPattern:n}=await import("./git.js"),{resolveSyncTagGroups:t}=await import("./group-tags.js"),r=e.plan.releases.filter(d=>e.depGraph.getPackage(d.name)?.manifest?.private!==!0).map(d=>({name:d.name,version:d.newVersion})),l=t(e.config,r),c=l.groups.map(d=>d.tag),i=[],o=!!e.channel?.prerelease||!!e.preMode;for(const{name:d,version:u}of r){if(l.grouped.has(d))continue;const g=e.perPackageConfig.get(d),p=g?.releaseTagPattern??e.config.releaseTagPattern;if(c.push(p?n(p,{channel:e.channel?.tag,name:d,version:u}):a(d,u)),e.config.floatingMajorTag===!0&&!o&&!p?.includes("{major}")&&g?.skipNpmPublish!==!0){const f=s(d,u);f!==void 0&&i.push(f)}}return{created:c,updated:i}},$s=async(e,a,s)=>{if((await a.run("git",["remote","get-url","--push","origin"],{cwd:e.cwd,silent:!0})).exitCode!==0)return;const{getCurrentBranch:t,resolvePushCredentials:r,verifyPushAccess:l}=await import("./git.js"),c={cwd:e.cwd,runner:a},i=await l(c);if(i!==void 0)return`Cannot push to origin, nothing was published. Set VIS_GH_TOKEN (or GITHUB_TOKEN / GITLAB_TOKEN) with write access, or pass --no-push. git said: ${i}`;const{createRemoteClient:o,detectRemoteProvider:d}=await import("./detect.js");let u;try{u=await d(e.cwd,a,e.config.provider)}catch{return}if(u!=="github")return;const p=await o(u,{githubHost:e.config.githubHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,a);if(!p)return;const f=await r(c),k={...process.env};f!==void 0&&(k.GH_TOKEN=f.token),e.config.githubHost&&(k.GH_HOST=e.config.githubHost),e.config.httpProxy&&(k.HTTPS_PROXY=e.config.httpProxy,k.HTTP_PROXY=e.config.httpProxy);const{checkGithubPushRules:w}=await import("./github-push-rules.js"),N=s.noTag?{created:[],updated:[]}:await bs(e),P=await w(a,{branch:await t(c),createdTags:N.created,cwd:e.cwd,env:k,repo:p,signedCommits:e.config.gitSignCommits===!0,updatedTags:N.updated});for(const b of P.warnings)process.stderr.write(`[vis release] Warning: ${b}
|
|
17
|
-
`);if(P.blocked.length>0)return`GitHub push rules would reject this release, nothing was published:
|
|
18
|
-
- ${P.blocked.join(`
|
|
19
|
-
- `)}
|
|
20
|
-
Grant the pushing token a bypass, adjust the ruleset, or pass --no-push / --no-tag.`},Us=async(e,a={})=>{const s={failed:[],published:[],skipped:[],tags:[],tagsPushed:!1},n=re();if(e.plan.releases.length===0)return s;if(!a.dryRun&&e.channel?.mode==="version-pr"){const{createRemoteClient:i,detectRemoteProvider:o}=await import("./detect.js"),d=await o(e.cwd,n,e.config.provider),g=await i(d,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,n),p=e.config.versionPr?.branch??"vis-release/version-packages";if(g)try{const f=await n.run("gh",["pr","list","--head",p,"--state","open","--json","number"],{cwd:e.cwd,silent:!0});if(f.exitCode===0&&f.stdout.trim()&&f.stdout.trim()!=="[]"){const k=JSON.parse(f.stdout);if(k[0])return s.failed.push({name:"_preflight",reason:`Open release PR #${k[0].number} exists. Merge or close it before publishing locally. (Override: --no-push then \`git push --tags\` manually.)`}),s}}catch{}}if(!a.dryRun&&e.config.prePublishCommand)try{await te(e.cwd,e.config.prePublishCommand,"prePublishCommand")}catch(i){return s.failed.push({name:"_prePublishCommand",reason:i.message}),s}if(!a.dryRun&&!a.noPush){const i=await $s(e,n,{noTag:a.noTag===!0});if(i!==void 0)return s.failed.push({name:"_pushAccess",reason:i}),s}const t=e.config.changesDir??oe,{acquireLock:r,releaseLock:l}=await import("./state.js");let c=!1;if(!a.dryRun)try{await r(e.cwd,t),c=!0}catch(i){return s.failed.push({name:"_lock",reason:i.message}),s}try{const{clearState:i,filterPlanByState:o,newState:d,readState:u,writeState:g}=await import("./state.js"),{readStagedRegistry:p,removePendingStages:f,upsertPendingStages:k,writeStagedRegistry:w}=await import("./staged-registry.js"),N=e.config.changesDir??oe,P=e.config.publish?.lockInGit===!0;let b=a.resume||P?await u(e.cwd,N,P):void 0;b&&P&&(b.channel=e.channel?.tag);const y=async()=>{a.dryRun||!b||(await g(e.cwd,N,b,P),P&&await he(e,n,N,"progress",{noPush:a.noPush}))};let m=await p(e.cwd,N);await Qe(e,"publish",m,{runner:n}),m=await p(e.cwd,N);const _={...m,pending:[...m.pending]};let{releases:R}=e.plan;b?R=o(R,b):(b=d(e.channel?.tag,e.plan.releases),a.dryRun||(await g(e.cwd,N,b,P),P&&await he(e,n,N,"open",{noPush:a.noPush})));const S=await e.pm.readCatalogYaml(e.cwd),U=ha(S),M=e.depGraph.topologicalSort(R.map(h=>h.name)),O=new Map(R.map(h=>[h.name,h])),A=new Set,v=new Map;for(const h of e.plan.releases){const I=e.depGraph.getPackage(h.name);I&&v.set(h.name,{...I.manifest,version:h.newVersion})}const D={config:e.config,cwd:e.cwd},F=e.config.plugins?.length?await import("./defineReleasePlugin.js"):void 0;for(const h of M){const I=O.get(h);if(!I){s.skipped.push({name:h,reason:"topo-sort returned a name not in the release plan (internal bug)"});continue}const V=e.depGraph.getPackage(h);if(!V)continue;const L=[...new Set(e.depGraph.getDependencies(h).filter($=>$.kind!=="devDependencies"&&A.has($.name)).map($=>$.name))];if(L.length>0){s.skipped.push({name:h,reason:`dependency-failed: not published because ${L.join(", ")} failed to publish (publishing would orphan this package's dependency range)`}),A.add(h);continue}const T=e.perPackageConfig.get(h)??{},B=Ze(V,T),K=a.publishActionsOverride??wa(B),H=a.tag??e.channel?.tag;if(F){const $=await F.runWillPublishHooks(D,{dir:V.dir,name:h,oldVersion:I.oldVersion,version:I.newVersion});if($.skip){s.skipped.push({name:h,reason:`plugin-skipped${$.by?` by "${$.by}"`:""}`}),A.add(h);continue}}const q=m.pending.find($=>$.name===h&&$.version===I.newVersion);try{const $=await K.publish({catalogs:U,cleanPackageJsonConfig:e.config.publish?.cleanPackageJson,dryRun:a.dryRun,otp:a.otp,perPackageConfig:T,pkg:V,pm:e.pm,provenance:Es(e),registry:T.registry,release:I,resumeStageId:q?.id,tag:H,versionedManifestByName:v,workspaceConfig:e.config});if($.published||$.alreadyPublished){const C=m.pending.filter(j=>j.name===h&&j.version===I.newVersion).map(j=>j.id);C.length>0&&(m=f(m,C))}if($.published)s.published.push({name:h,stageId:$.stageId,tarball:$.tarball,version:I.newVersion}),b.published.push(`${h}@${I.newVersion}`),F&&await F.runAfterPublishHooks(D,{dir:V.dir,name:h,oldVersion:I.oldVersion,version:I.newVersion});else if($.alreadyPublished)s.skipped.push({name:h,reason:"already-published"}),b.published.push(`${h}@${I.newVersion}`);else if(s.skipped.push({name:h,reason:$.output??"skipped"}),$.stageId){const C=($.output??"").startsWith("stage-rejected")?"rejected":"timeout";m=k(m,[{id:$.stageId,name:h,reason:C,stagedAt:new Date().toISOString(),tag:H??"latest",version:I.newVersion}])}await y()}catch($){s.failed.push({name:h,reason:$.message}),A.add(h)}}F&&await F.runAfterPublishAllHooks(D,{failed:s.failed.map(h=>({name:h.name,reason:h.reason})),published:s.published.map(h=>({name:h.name,version:h.version})),skipped:s.skipped.map(h=>({name:h.name,reason:h.reason}))});const{resolveSyncTagGroups:G}=await import("./group-tags.js"),z=G(e.config,s.published);if(!a.dryRun&&!a.noTag&&s.published.length>0){const{createOrUpdateFloatingTag:h,createTag:I,defaultTagFor:V,floatingMajorTagFor:L,pushTags:T,renderTagPattern:B}=await import("./git.js"),K=e.config.releaseTagPattern,H=e.channel?.tag,q=e.config.floatingMajorTag===!0,$=!!e.channel?.prerelease||!!e.preMode;for(const{name:C,version:j}of s.published){if(z.grouped.has(C))continue;const se=e.perPackageConfig.get(C)?.releaseTagPattern??K,ie=se?B(se,{channel:H,name:C,version:j}):V(C,j);try{await I({cwd:e.cwd,runner:n},ie,`Release ${C}@${j}`,{signing:e.config.signing,skipRemoteCheck:e.firstRelease}),s.tags.push(ie)}catch(Z){e.firstRelease&&Z instanceof E&&Z.code==="TAG_COLLISION"?s.skipped.push({name:ie,reason:"tag-creation: tag already exists (first-release — skipped)"}):s.failed.push({name:ie,reason:`tag-creation: ${Z.message}`})}const xe=e.depGraph.getPackage(C),ea=e.perPackageConfig.get(C),aa=xe?.manifest?.private===!0,sa=ea?.skipNpmPublish===!0;if(q&&!$&&!se?.includes("{major}")&&!aa&&!sa){const Z=L(C,j);if(Z!==void 0)try{await h({cwd:e.cwd,runner:n},Z,{push:!a.noPush,signing:e.config.signing}),s.tags.push(Z)}catch(na){s.skipped.push({name:Z,reason:`floating-major-tag: ${na.message}`})}}}for(const C of z.groups)try{await I({cwd:e.cwd,runner:n},C.tag,`Release ${C.name} ${C.version}`,{signing:e.config.signing,skipRemoteCheck:e.firstRelease}),s.tags.push(C.tag)}catch(j){e.firstRelease&&j instanceof E&&j.code==="TAG_COLLISION"?s.skipped.push({name:C.tag,reason:"tag-creation: tag already exists (first-release — skipped)"}):s.failed.push({name:C.tag,reason:`tag-creation: ${j.message}`})}if(!a.noPush&&s.tags.length>0)try{await T({cwd:e.cwd,runner:n}),s.tagsPushed=!0}catch(C){s.tagsPushed=!1,s.failed.push({name:"_pushTags",reason:`git push --tags failed: ${C.message}. Retry with: git push --tags`})}b.tagged=[...s.tags],b.pushed=s.tagsPushed,await y(),s.failed.length===0&&!a.dryRun&&(await i(e.cwd,N,P),P&&await he(e,n,N,"close",{noPush:a.noPush}))}if(!a.dryRun){const h=_.pending.length,I=m.pending.length,V=await w(e.cwd,N,m);if(V.changed){const{stageAndCommitFile:L}=await import("./git.js");let T;if(V.removed)T="chore(release): clear pending stage registry [skip ci]";else if(I>h){const B=I-h;T=`chore(release): record ${B} new pending stage${B===1?"":"s"} [skip ci]`}else if(I<h){const B=h-I;T=`chore(release): drain ${B} resolved stage${B===1?"":"s"} [skip ci]`}else T=`chore(release): update pending stage registry (${I} pending) [skip ci]`;try{await L({cwd:e.cwd,runner:n},V.path,T,{author:e.config.gitUser,push:!a.noPush,sign:e.config.gitSignCommits===!0})}catch(B){process.stderr.write(`[vis release] Warning: could not commit ${V.path}: ${B.message}
|
|
21
|
-
`)}}}if(!a.dryRun&&s.published.length>0&&e.config.workspaceChangelog!==!1){const h=e.config.workspaceChangelog,I=typeof h=="object"?h:void 0,V=typeof e.config.aggregateRelease=="object"?e.config.aggregateRelease.enabled:e.config.aggregateRelease===!0;if(I!==void 0||V)try{const{writeWorkspaceChangelogWave:L}=await import("./workspace.js"),T=new Set(s.published.map(H=>H.name)),B=e.plan.releases.filter(H=>T.has(H.name)),K=await L({changelogConfig:e.config.changelog,cwd:e.cwd,workspaceChangelog:e.config.workspaceChangelog},B);if(K)try{const{stageAndCommitFile:H}=await import("./git.js");await H({cwd:e.cwd,runner:n},K,"chore(release): record wave [skip ci]",{author:e.config.gitUser,push:!a.noPush,sign:e.config.gitSignCommits===!0})}catch(H){process.stderr.write(`[vis release] Warning: could not commit workspace CHANGELOG.md: ${H.message}
|
|
22
|
-
`)}}catch(L){process.stderr.write(`[vis release] Warning: could not write workspace CHANGELOG.md wave entry: ${L.message}
|
|
23
|
-
`)}}if(!a.dryRun&&s.published.length>0&&s.tagsPushed){e.config.publish?.noRelease!==!0&&await Ns(e,s,n,z);try{const{walkSuccessfulRelease:h}=await import("./success-walk.js"),{createRemoteClient:I,detectRemoteProvider:V}=await import("./detect.js"),{resolveFormatter:L}=await import("./resolveFormatter.js"),T=await V(e.cwd,n,e.config.provider),B=I(T,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}),K=await B.detectRepoSlug(e.cwd,n),H=await L(e.config.changelog,e.cwd),{recordRecentlyWalked:q}=await import("./staged-registry.js"),$=new Set([...b.walked??[],...(m.recentlyWalked??[]).map(j=>j.key)]),C={...s,published:s.published.filter(j=>!$.has(`${j.name}@${j.version}`))};if(C.published.length>0){const j=await h(e,C,n,{client:B,formatter:H,repo:K}),ae=C.published.map(se=>`${se.name}@${se.version}`);b.walked=[...b.walked??[],...ae],await y(),m=q(m,ae),j.warnings.length>0&&e.plan.warnings.push(...j.warnings)}}catch(h){e.plan.warnings.push(`successWalk: could not run post-release walk: ${h.message}`)}if(e.config.notifications)try{const{dispatchNotifications:h}=await import("./interface.js"),{createRemoteClient:I,detectRemoteProvider:V}=await import("./detect.js"),L=await V(e.cwd,n,e.config.provider),B=await I(L,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}).detectRepoSlug(e.cwd,n);let K;try{const $=`${e.cwd}/package.json`,C=await import("node:fs/promises");K=JSON.parse(await C.readFile($,"utf8")).name}catch{}const H=new Set([...b.notified??[],...(m.recentlyNotified??[]).map($=>$.key)]),q=s.published.filter($=>!H.has(`${$.name}@${$.version}`));if(q.length>0){const $=await h(e.config.notifications,{channel:e.channel?.tag,completedAt:new Date().toISOString(),...K===void 0?{}:{monorepoName:K},published:q.map(C=>({name:C.name,tag:e.channel?.tag,...C.url===void 0?{}:{url:C.url},version:C.version})),...B===void 0?{}:{repo:B},skipped:s.skipped.map(C=>({name:C.name,reason:C.reason}))},{warn:C=>e.plan.warnings.push(C)});if($.succeeded.length>0){const C=q.map(ae=>`${ae.name}@${ae.version}`);b.notified=[...b.notified??[],...C],await y();const{recordRecentlyNotified:j}=await import("./staged-registry.js");m=j(m,C)}if($.failed.length>0||$.succeeded.length>0){const C=$.succeeded.length+$.failed.length;if($.failed.length>0){e.plan.warnings.push(`[notifications] dispatched ${$.succeeded.length}/${C} channels${$.succeeded.length>0?` (succeeded: ${$.succeeded.join(", ")})`:""}; ${$.failed.length} failed.`);for(const j of $.failed)e.plan.warnings.push(`[notifications:${j.id}] ${j.error}`)}}}}catch(h){e.plan.warnings.push(`notifications: dispatch failed: ${h.message}`)}if(!a.dryRun)try{const h=await w(e.cwd,N,m);if(h.changed){const{stageAndCommitFile:I}=await import("./git.js");try{await I({cwd:e.cwd,runner:n},h.path,"chore(release): record cross-runner notify/walk dedupe [skip ci]",{author:e.config.gitUser,push:!a.noPush,sign:e.config.gitSignCommits===!0})}catch(V){process.stderr.write(`[vis release] Warning: could not commit ${h.path} (notify/walk dedupe): ${V.message}
|
|
24
|
-
`)}}}catch(h){process.stderr.write(`[vis release] Warning: could not update cross-runner dedupe registry: ${h.message}
|
|
25
|
-
`)}}if(!a.dryRun&&e.config.postPublishCommand)try{await te(e.cwd,e.config.postPublishCommand,"postPublishCommand")}catch(h){s.failed.push({name:"_postPublishCommand",reason:h.message})}return s}finally{c&&await l(e.cwd,t)}},Cs=e=>e.length===0?"":`## Related releases
|
|
26
|
-
|
|
27
|
-
${e.map(s=>`- [${s.name}](${s.url})`).join(`
|
|
28
|
-
`)}`,Rs=(e,a,s)=>{if(!a||!a.header&&!a.footer)return e;const n=r=>is(r,{contributors:s.contributors??"",date:s.date,name:s.name,previousVersion:s.previousVersion,repo:s.repo,version:s.version}).replaceAll(/\n{3,}/g,`
|
|
29
|
-
|
|
30
|
-
`).replace(/\s+$/,""),t=[];if(a.header){const r=n(a.header);r.length>0&&t.push(r)}if(t.push(e),a.footer){const r=n(a.footer);r.length>0&&t.push(r)}return t.join(`
|
|
31
|
-
|
|
32
|
-
`)},As=e=>{if(!Array.isArray(e))return;const[a,s]=e;if(a!=="github"||typeof s!="object"||s===null)return;const{internalAuthors:n}=s;if(Array.isArray(n))return n.filter(t=>typeof t=="string")},Ns=async(e,a,s,n)=>{const{createRemoteClient:t,detectRemoteProvider:r}=await import("./detect.js"),l=await r(e.cwd,s,e.config.provider),c=t(l,{githubHost:e.config.githubHost,gitlabHost:e.config.gitlabHost,httpProxy:e.config.httpProxy}),i=await c.detectRepoSlug(e.cwd,s);if(!i)return;const o=typeof e.config.aggregateRelease=="object"?e.config.aggregateRelease:{enabled:e.config.aggregateRelease===!0},d=e.config.publish?.draftRelease===!0,u=e.config.publish?.discussionCategory,g=e.config.publish?.addReleases;if(o.enabled){const m=new Date().toISOString().slice(0,10),R=(o.title??"Release {date}").replaceAll("{date}",m),S=`release-${m}`,U=a.published.map(M=>`- \`${M.name}\` → ${M.version}`).join(`
|
|
33
|
-
`);try{const M=await c.createRelease(s,{body:U,cwd:e.cwd,discussionCategory:u,draft:d,repo:i,tag:S,title:R});if(M?.url)for(const O of a.published)O.url=M.url}catch{}return}const{defaultTagFor:p,renderTagPattern:f}=await import("./git.js"),k=e.config.releaseTagPattern,w=e.channel?.tag,N=e.config.publish?.releaseAssets??{},P=new Date().toISOString().slice(0,10),b=As(e.config.changelog),y=os(e.plan.consumedChangeFiles??[],{internalAuthors:b});for(const m of n.groups){const _=m.members.map(R=>`- \`${R}\` → ${a.published.find(S=>S.name===R)?.version??m.version}`).join(`
|
|
34
|
-
`);try{const R=await c.createRelease(s,{body:_,cwd:e.cwd,discussionCategory:u,draft:d,prerelease:m.version.includes("-"),repo:i,tag:m.tag,title:`${m.name} ${m.version}`});if(R?.url)for(const S of a.published)m.members.includes(S.name)&&(S.url=R.url)}catch(R){console.warn(`createRelease failed for group ${m.name} (tag ${m.tag}): ${R.message}`)}}for(const m of a.published){if(n.grouped.has(m.name))continue;const R=e.perPackageConfig.get(m.name)?.releaseTagPattern??k,S=R?f(R,{channel:w,name:m.name,version:m.version}):p(m.name,m.version),U=m.version.includes("-");let M=`Release of ${m.name}@${m.version}.`;if(m.stageId&&(M=`${M}
|
|
35
|
-
|
|
36
|
-
> ⏳ **Staged — not yet installable.** Approve via \`vis release stage approve ${m.stageId}\` or the npmjs.com web UI.`),N.stampHashes&&m.tarball&&(M=`${M}
|
|
37
|
-
|
|
38
|
-
### Tarball integrity
|
|
39
|
-
|
|
40
|
-
- size: \`${m.tarball.size}\` bytes
|
|
41
|
-
- sha256: \`${m.tarball.sha256}\`
|
|
42
|
-
- sha512: \`${m.tarball.sha512}\``),g!==void 0&&g!==!1)try{const v=S.lastIndexOf("@"),D=v>0?S.slice(0,v+1):"",F=await c.listRecentReleases(s,{cwd:e.cwd,excludeTag:S,limit:5,repo:i,tagPrefix:D}),G=Cs(F);G&&(M=g==="top"?`${G}
|
|
43
|
-
|
|
44
|
-
${M}`:`${M}
|
|
45
|
-
|
|
46
|
-
${G}`)}catch{}const{releaseNoteTemplate:O}=e.config;if(O){const D=e.plan.releases.find(F=>F.name===m.name)?.oldVersion??"";M=Rs(M,O,{contributors:y,date:P,name:m.name,previousVersion:D,repo:i,version:m.version})}const A=[];N.uploadTarball&&m.tarball&&A.push(m.tarball.path);try{const v=await c.createRelease(s,{assets:A.length>0?A:void 0,body:M,cwd:e.cwd,discussionCategory:u,draft:d,prerelease:U,repo:i,tag:S,title:`${m.name} v${m.version}`});v?.url&&(m.url=v.url)}catch(v){console.warn(`createRelease failed for ${m.name}@${m.version} (tag ${S}): ${v.message}`)}}},Es=e=>(e.config.publish?.publishArgs??[]).includes("--provenance")&&e.pm.id!=="bun";export{Ws as a,Hs as b,Ua as c,Ha as d,Bs as f,Us as p,Ze as r,Gs as w};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as i,a as d,p}from"../packem_chunks/orchestrator.js";const y=async(t={})=>{const e=await i(t),a=await d(e,{dryRun:t.dryRun});return{changedFiles:a.changedFiles,deletedFiles:a.deletedFiles,plan:a.plan}},w=async(t={})=>{const e=await i(t),{resolveFormatter:a}=await import("../packem_chunks/resolveFormatter.js"),n=await a(e.config.changelog,e.cwd),r=new Date().toISOString().slice(0,10),s=[];for(const c of e.plan.releases){const l=e.depGraph.getPackage(c.name);if(!l)continue;const o=await n({changeFiles:c.changeFiles,date:r,release:c,target:"changelog"});s.push({content:o,file:`${l.dir}/CHANGELOG.md`,package:c.name})}return{projectChangelogs:s}},F=async(t={})=>{const e=await i(t);return await p(e,{dryRun:t.dryRun,otp:t.otp,tag:t.tag})},m=async(t={})=>{const e=await i(t);let a=!1,n;const r=async()=>{if(n)return n;a=!0;const s=await d(e,{dryRun:t.dryRun});return n={changedFiles:s.changedFiles,deletedFiles:s.deletedFiles,plan:s.plan},n};return{apply:r,discard:()=>{a=!0},plan:e.plan,[Symbol.asyncDispose]:async()=>{a||await r()}}},R=async t=>{const e=await i(t),{runSnapshot:a}=await import("../packem_chunks/snapshot.js"),n=await a({context:e,dryRun:t.dryRun,registry:t.registry,tag:t.tag});return{failed:n.failed,published:n.published,skipped:n.skipped,snapshotVersion:n.snapshotVersion,tag:n.tag}},x=async(t={})=>{const e=await i(t),a=await d(e,{dryRun:t.dryRun}),n={changedFiles:a.changedFiles,deletedFiles:a.deletedFiles,plan:a.plan},{resolveFormatter:r}=await import("../packem_chunks/resolveFormatter.js"),s=await r(e.config.changelog,e.cwd),c=new Date().toISOString().slice(0,10),l=[];for(const g of a.plan.releases){const u=e.depGraph.getPackage(g.name);if(!u)continue;const f=await s({changeFiles:g.changeFiles,date:c,release:g,target:"changelog"});l.push({content:f,file:`${u.dir}/CHANGELOG.md`,package:g.name})}const o={projectChangelogs:l};if(t.skipPublish)return{changelog:o,publish:{failed:[],published:[],skipped:[]},version:n};const h=await p(e,{dryRun:t.dryRun,otp:void 0,tag:void 0});return{changelog:o,publish:h,version:n}};class k{constructor(e={}){this.config=e}config;releaseVersion(e={}){return y({...e,config:this.config})}releaseChangelog(e={}){return w({...e,config:this.config})}releasePublish(e={}){return F({...e,config:this.config})}releaseDraft(e={}){return m({...e,config:this.config})}releaseSnapshot(e){return R({...e,config:this.config})}}export{k as ReleaseClient,x as release,w as releaseChangelog,m as releaseDraft,F as releasePublish,R as releaseSnapshot,y as releaseVersion};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as r,d as t}from"../packem_chunks/index3.js";export{r as createAdapter,t as detectPackageManager};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"../packem_chunks/index2.js";export{r as createVersionActions};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as l,z as d}from"./index-BzhrR_iC.js";import{S as m}from"./lockfile-DhHAaHN5.js";import{k as g,l as D}from"../packem_chunks/catalog.js";import{y as S}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";const k={vite:"Separate vite copies each load their own plugin and config state. Pin one version with a package manager override.",vitest:"Separate vitest copies each keep their own expect, mocks and runner state. Pin one version with a package manager override."},P={bun:{file:"bun.lock",type:"bun"},npm:{aliases:["npm-shrinkwrap.json"],file:"package-lock.json",type:"npm"},pnpm:{file:"pnpm-lock.yaml",type:"pnpm"},yarn:{file:"yarn.lock",type:"yarn"}},b=t=>{const o=P[t];return o?[...o.aliases??[],o.file].map(n=>({file:n,type:o.type})):[]},h=(t,o)=>{const n=b(o);if(n.length!==0)return n.find(r=>S(l(t,r.file)))??n[n.length-1]},v=t=>{try{return JSON.parse(d(t))}catch{return}},y=t=>{const o=[],n=v(l(t,"package.json"));n&&o.push(n);const r=g(t);let c;if(r?c=r:n?.workspaces&&(Array.isArray(n.workspaces)?c=n.workspaces:n.workspaces.packages&&(c=n.workspaces.packages)),!c)return o;const i=D(t,c);for(const s of i){const e=v(l(t,s,"package.json"));e&&o.push(e)}return o},w=(t,o)=>{const n=new Set,r=[],c=new Map;for(const s of o){const e=c.get(s.name);e?e.push(s):c.set(s.name,[s])}const i=s=>{if(s)for(const e of Object.keys(s))n.has(e)||(n.add(e),r.push(e))};for(const s of y(t))i(s.dependencies),i(s.peerDependencies),i(s.optionalDependencies);for(;r.length>0;){const s=r.shift(),e=c.get(s);if(e){for(const a of e)for(const f of[a.dependencies,a.peerDependencies,a.optionalDependencies])if(f)for(const p of Object.keys(f))n.has(p)||(n.add(p),r.push(p))}}return n},L=(t,o,n={})=>{const r=h(t,o);if(!r)return[];let c;try{c=d(l(t,r.file))}catch{return[]}const i=m(c,r.type);if(i.length===0)return[];const e=n.includeDev??!0?void 0:w(t,i),a=new Set,f=[];for(const p of i){if(e&&!e.has(p.name))continue;const u=`${p.name}@${p.version}`;a.has(u)||(a.add(u),f.push({isDev:!1,name:p.name,version:p.version}))}return f},O=(t,o)=>{const n=h(t,o);if(!n)return[];let r;try{r=d(l(t,n.file))}catch{return[]}const c=m(r,n.type);if(c.length===0)return[];const i=new Map;for(const e of c)i.has(e.name)||i.set(e.name,new Set),i.get(e.name).add(e.version);const s=[];for(const[e,a]of i){if(a.size<=1)continue;const f={name:e,versions:[...a]};k[e]&&(f.hint=k[e]),s.push(f)}return s.sort((e,a)=>e.name.localeCompare(a.name))},M=(t,o)=>{const n=h(t,o);if(!n)return;let r;try{r=d(l(t,n.file))}catch{return}const c=m(r,n.type);if(c.length===0)return;const i=[],s=new Set;for(const e of y(t))for(const a of[e.dependencies,e.devDependencies,e.peerDependencies,e.optionalDependencies])if(a)for(const[f,p]of Object.entries(a)){const u=`${f}@${p}`;s.has(u)||(s.add(u),i.push({name:f,version:p}))}return{entries:c,roots:i}};export{P as L,M as a,O as f,L as l,h as r};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as p}from"node:module";import{e as j}from"./index-BzhrR_iC.js";import{a as F}from"./formatBytes-_HvjOy8a-B_qQr4Hw.js";let h;const m=t=>(h??=p(import.meta.url))(t),s=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,c=t=>{if(typeof s<"u"&&s.versions&&s.versions.node){const[e,r]=s.versions.node.split(".").map(Number);if(e>22||e===22&&r>=3||e===20&&r>=16)return s.getBuiltinModule(t)}return m(t)},{mkdirSync:f,writeFileSync:y,readdirSync:g}=c("node:fs"),{readFile:_}=c("node:fs/promises"),i=t=>F(t),a=(t,e)=>j(i(t),`${encodeURIComponent(e)}.json`);class R{#e;#t;constructor(e,r){this.#e=e,this.#t=r}printTaskTerminalOutput(e,r,o){if(r!=="failure")return;const n=i(this.#e);try{f(n,{recursive:!0})}catch{return}const u=e.overrides.command,d=e.projectRoot,l={command:u,cwd:d,exitCode:void 0,hash:e.hash,runId:this.#t,status:r,taskId:e.id,terminalOutput:o,timestamp:new Date().toISOString()};try{y(a(this.#e,e.id),`${JSON.stringify(l,void 0,2)}
|
|
2
|
-
`,"utf8")}catch{}}}const S=async(t,e)=>{const r=a(t,e);try{const o=await _(r,"utf8");return JSON.parse(o)}catch{return}},w=t=>{const e=i(t);let r;try{r=g(e)}catch{return[]}const o=[];for(const n of r)if(n.endsWith(".json"))try{o.push(decodeURIComponent(n.slice(0,-5)))}catch{}return o};export{R as F,S as a,w as l};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{createRequire as st}from"node:module";import{e as f}from"./index-BzhrR_iC.js";import{y as G}from"./isAccessibleSync-DYKTrrvc-C-_5cgwu.js";import{p as ht}from"./readJsonSync-CbryXYxN-EWl7_7KX.js";import{h as dt}from"./writeFileSync-DJoHk3Ks-BPRoepNw.js";let nt;const ot=t=>(nt??=st(import.meta.url))(t),x=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,I=t=>{if(typeof x<"u"&&x.versions&&x.versions.node){const[s,e]=x.versions.node.split(".").map(Number);if(s>22||s===22&&e>=3||s===20&&e>=16)return x.getBuiltinModule(t)}return ot(t)},{existsSync:it,readdirSync:Y,statSync:rt,rmSync:z,writeFileSync:at}=I("node:fs"),{spawn:F}=I("node:child_process"),{createHash:ct}=I("node:crypto"),{homedir:lt,platform:ut}=I("node:os"),pt=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],ft=12288,gt=65510,mt=[12288,12288,65281,65376,65504,65510],wt=8361,bt=65518,yt=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],St=32,Et=10630,xt=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],$t=4352,Mt=262141,V=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],$=(t,s)=>{let e=0,n=Math.floor(t.length/2)-1;for(;e<=n;){const r=Math.floor((e+n)/2),c=r*2;if(s<t[c])n=r-1;else if(s>t[c+1])e=r+1;else return!0}return!1},D=19968,[Bt,kt]=vt(V);function vt(t){let s=t[0],e=t[1];for(let n=0;n<t.length;n+=2){const r=t[n],c=t[n+1];if(D>=r&&D<=c)return[r,c];c-r>e-s&&(s=r,e=c)}return[s,e]}const Tt=t=>t<161||t>1114109?!1:$(pt,t),Rt=t=>t<ft||t>gt?!1:$(mt,t),It=t=>t<wt||t>bt?!1:$(yt,t),Wt=t=>t<St||t>Et?!1:$(xt,t),_t=t=>t>=Bt&&t<=kt?!0:t<$t||t>Mt?!1:$(V,t);function Ct(t){return Tt(t)?"ambiguous":Rt(t)?"fullwidth":It(t)?"halfwidth":Wt(t)?"narrow":_t(t)?"wide":"neutral"}function At(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function Z(t){return At(t),Ct(t)}const H=String.raw,j=H`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,Nt=()=>new RegExp(H`\p{RI}{2}|(?)${j}(?:\u200D${j})*`,"gu"),he=new Set(["\x1B",""]),de="\x07",pe="]8;;",fe=/[\u200B\uFEFF\u2060-\u2064]/g,U=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\)|\][^\u0007\u001B]{0,1000}(?:\u0007|\u001B\\))/g,ge=/\u001B\[[\d;]*m[^\u001B]*(?:\u001B\[[\d;]*m|$)/g,me=/\u001B\]8;[^\u0007\u001B]*(?:\u0007|\u001B\\)[^\u001B]*\u001B\]8;;(?:\u0007|\u001B\\)/g,v=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,q=Nt(),we=/[-_./\s]+/g,be=/(\u001B\[[0-9;]*[a-z])/i,ye=new RegExp("\\p{Script=Arabic}","u"),Se=new RegExp("\\p{Script=Bengali}","u"),Ee=new RegExp("\\p{Script=Cyrillic}","u"),xe=new RegExp("\\p{Script=Devanagari}","u"),$e=new RegExp("\\p{Script=Ethiopic}","u"),Me=new RegExp("\\p{Script=Greek}","u"),Be=new RegExp("\\p{Script=Greek}+|\\p{Script=Latin}+|[^\\p{Script=Greek}\\p{Script=Latin}]+","gu"),ke=new RegExp("\\p{Script=Gujarati}","u"),ve=new RegExp("\\p{Script=Gurmukhi}","u"),Te=new RegExp("\\p{Script=Hangul}","u"),Re=new RegExp("\\p{Script=Hebrew}","u"),Ie=new RegExp("\\p{Script=Hiragana}","u"),We=new RegExp("\\p{Script=Han}","u"),_e=new RegExp("\\p{Script=Kannada}","u"),Ce=new RegExp("\\p{Script=Katakana}","u"),Ae=new RegExp("\\p{Script=Khmer}","u"),Ne=new RegExp("\\p{Script=Lao}","u"),Fe=new RegExp("\\p{Script=Latin}","u"),De=new RegExp("\\p{Script=Malayalam}","u"),je=new RegExp("\\p{Script=Myanmar}","u"),Oe=new RegExp("\\p{Script=Oriya}","u"),Pe=new RegExp("\\p{Script=Sinhala}","u"),Ke=new RegExp("\\p{Script=Tamil}","u"),Le=new RegExp("\\p{Script=Telugu}","u"),Ye=new RegExp("\\p{Script=Thai}","u"),ze=new RegExp("\\p{Script=Tibetan}","u"),Ge=/[\u02BB\u02BC\u0027]/u,Ve=t=>t.replace(q,""),O=new Map,Ft=t=>[t.ambiguousIsNarrow?1:0,t.control,t.fullWidth,t.regular,t.wide].join("|"),Dt=t=>{const s=Ft(t.width);let e=O.get(s);return e||(e=new Map,O.set(s,e)),e},T=new RegExp(U.source,"y"),_=new RegExp(q.source,"uy"),R=/(?:[\u0020-\u007E\u00A0-\u00FF](?!\uFE0F)){1,1000}/y,J=t=>t>=32&&t<=126?"latin":t===8203||t===8204||t===8205||t===8288?"zero":t<=31||t>=127&&t<=159?"control":t>=160&&t<=255||t>=9472&&t<=9599?"latin":t>=4352&&t<=4607||t>=11904&&t<=40959||t>=44032&&t<=55215||t>=63744&&t<=64255||t>=65280&&t<=65519&&!(t>=65377&&t<=65439)||t>=12352&&t<=12543?"wide":t===8230?"latin":"other",jt=(t,s)=>{const e=Dt(s),n=Math.floor(t/65536),r=t%65536;let c=e.get(n);if(c||(c=new Map,e.set(n,c)),c.has(r))return c.get(r);let o;switch(J(t)){case"control":{o=s.width.control;break}case"latin":{o=s.width.regular;break}case"wide":{o=s.width.wide;break}case"zero":{o=0;break}default:switch(Z(t)){case"ambiguous":{o=s.width.ambiguousIsNarrow?s.width.regular:s.width.wide;break}case"fullwidth":{o=s.width.fullWidth;break}case"wide":{o=s.width.wide;break}default:o=s.width.regular}}return c.set(r,o),o},Ot=t=>t>=768&&t<=879||t>=6832&&t<=6911||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65056&&t<=65071||t>=917760&&t<=917999||t>=65024&&t<=65039||t>=3633&&t<=3642||t>=3655&&t<=3662||t>=3761&&t<=3769||t>=3771&&t<=3772||t>=3784&&t<=3789||t>=2304&&t<=2307||t>=2362&&t<=2383||t>=2385&&t<=2391||t>=2402&&t<=2403||t>=2433&&t<=2435||t>=2492&&t<=2500||t>=2509&&t<=2509||t>=2561&&t<=2563||t>=2620&&t<=2637||t>=1611&&t<=1631||t>=1648&&t<=1648||t>=1750&&t<=1773||t>=2276&&t<=2302||t>=1425&&t<=1469||t>=1471&&t<=1471||t>=1473&&t<=1474||t>=1476&&t<=1477||t>=1479&&t<=1479||t>=3893&&t<=3893||t>=3895&&t<=3895||t>=3897&&t<=3897||t>=3953&&t<=3966||t>=3968&&t<=3972||t>=3974&&t<=3975?!0:t>=768&&t<=777||t>=803&&t<=803,C=(t,s={})=>{if(!t||t.length===0)return{ellipsed:!1,index:0,truncated:!1,width:0};const e={truncation:{countAnsiEscapeCodes:s.countAnsiEscapeCodes??!1,ellipsis:s.ellipsis??"",ellipsisWidth:s.ellipsisWidth??(s.ellipsis?C(s.ellipsis,{...s,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width:0),limit:s.limit??Number.POSITIVE_INFINITY},width:{ambiguousIsNarrow:s.ambiguousIsNarrow??!1,ansi:s.ansiWidth??0,control:s.controlWidth??0,emoji:s.emojiWidth??2,fullWidth:s.fullWidth??2,halfWidth:s.halfWidth??1,regular:s.regularWidth??1,tab:s.tabWidth??8,wide:s.wideWidth??2}},n=Math.max(0,e.truncation.limit-e.truncation.ellipsisWidth),{length:r}=t,c=r>1e4;let o=0,i=0,a=r,l=!1;const p=t.includes("\x1B")||t.includes("");for(;o<r;){if(p&&(t[o]==="\x1B"||t[o]==="")){if(t.startsWith("\x1B]8;;",o)){const d="\x1B]8;;\x07",w=d.length,y=t.indexOf("\x07",o+5);if(y!==-1){const S=t.indexOf(d,y+1);if(S!==-1){const B=S+w,W=t.slice(y+1,S).replace(U,""),k=C(W,{ambiguousIsNarrow:e.width.ambiguousIsNarrow,ansiWidth:e.width.ansi,controlWidth:e.width.control,countAnsiEscapeCodes:!1,ellipsis:e.truncation.ellipsis,ellipsisWidth:e.truncation.ellipsisWidth,emojiWidth:e.width.emoji,fullWidth:e.width.fullWidth,halfWidth:e.width.halfWidth,limit:Math.max(0,n-i),regularWidth:e.width.regular,tabWidth:e.width.tab,wideWidth:e.width.wide}),E=k.width;if(k.truncated)l=!0,a=Math.min(a,o);else if(i+E>n&&(a=Math.min(a,o),l=!0,i+E>e.truncation.limit))break;if(i+=E,o=B,l&&i>=e.truncation.limit)break;continue}}}if(T.lastIndex=o,T.test(t)){const d=T.lastIndex-o,w=e.truncation.countAnsiEscapeCodes?d:e.width.ansi;if(i+w>n&&(a=Math.min(a,o),i+w>e.truncation.limit)){l=!0;break}i+=w,o=T.lastIndex;continue}}const u=t.codePointAt(o);if(u===8203||u===65279||u>=8288&&u<=8292){o+=1;continue}if(u===9){if(i+e.width.tab>n&&(a=Math.min(a,o),i+e.width.tab>e.truncation.limit)){l=!0;break}i+=e.width.tab,o+=1;continue}if(R.lastIndex=o,R.test(t)){const d=(R.lastIndex-o)*e.width.regular;if(i+d>n){const w=e.width.regular>0?Math.floor((n-i)/e.width.regular):0;if(a=Math.min(a,o+w),i+d>e.truncation.limit){l=!0;break}}i+=d,o=R.lastIndex;continue}if((u<=31||u>=127&&u<=159)&&(v.lastIndex=o,v.test(t))){const d=(v.lastIndex-o)*e.width.control;if(i+d>n){const w=e.width.control>0?Math.floor((n-i)/e.width.control):0;if(a=Math.min(a,o+w),i+d>e.truncation.limit){l=!0;break}}i+=d,o=v.lastIndex;continue}if(_.lastIndex=o,_.test(t)){if(i+e.width.emoji>n&&(a=Math.min(a,o),i+e.width.emoji>e.truncation.limit)){l=!0;break}i+=e.width.emoji,o=_.lastIndex;continue}const m=t.codePointAt(o)??0;if(Ot(m)){o+=m>65535?2:1;continue}let h;if(c)h=jt(m,e);else switch(J(m)){case"control":{h=e.width.control;break}case"latin":{h=e.width.regular;break}case"wide":{h=e.width.wide;break}case"zero":{h=0;break}default:switch(Z(m)){case"ambiguous":{h=e.width.ambiguousIsNarrow?e.width.regular:e.width.wide;break}case"fullwidth":{h=e.width.fullWidth;break}case"wide":{h=e.width.wide;break}default:h=e.width.regular}}if(i+h>n&&(a=Math.min(a,o),i+h>e.truncation.limit)){l=!0;break}i+=h,o+=m>65535?2:1}let g=i,b=!1;return l&&e.truncation.limit>=e.truncation.ellipsisWidth&&(g=e.truncation.limit,b=!0),{ellipsed:b,index:l?a:r,truncated:l,width:g}},Ze=(t,s={})=>C(t,{...s,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width,A=()=>f(lt(),".vis"),Pt=()=>f(A(),"cache"),He=()=>f(A(),"state"),Kt=t=>ct("sha256").update(t).digest("hex").slice(0,12),Ue=t=>f(A(),"workspaces",Kt(t)),Lt=".vis",N=t=>f(t,Lt),qe="node_modules/.cache/vis",Je=t=>f(N(t),"runs"),Xe=t=>f(N(t),"last-summary.json"),Qe=t=>f(N(t),"last-failures"),ts=t=>{const s=ut()==="win32";for(const e of[".task-runner",".task-runner-cache"]){const n=f(t,e);if(it(n))try{const r=s?F("cmd.exe",["/c","rmdir","/s","/q",n],{detached:!0,stdio:"ignore"}):F("rm",["-rf",n],{detached:!0,stdio:"ignore"});r.on("error",()=>{}),r.unref()}catch{}}},Yt="https://api.socket.dev/v0/purl?alerts=true",M=()=>f(Pt(),"socket-security"),zt=3600*1e3,X=.4,P=100,Gt=t=>typeof t=="object"&&t!==null&&"id"in t&&"type"in t&&"name"in t&&"version"in t&&"alerts"in t&&"score"in t&&t.type==="npm",Vt=()=>{dt(M())},Q=(t,s)=>`${encodeURIComponent(t)}@${encodeURIComponent(s)}`,Zt=(t,s)=>{const e=Q(t,s),n=f(M(),`${e}.json`);try{const r=ht(n);if(Date.now()-r.createdAt>r.ttlMs){z(n,{force:!0});return}return r.report}catch{return}},Ht=(t,s,e,n)=>{const r=Q(t,s),c={createdAt:Date.now(),report:e,ttlMs:n};at(f(M(),`${r}.json`),JSON.stringify(c),"utf8")},Ut=t=>{const s=[t.license,t.maintenance,t.quality,t.supplyChain,t.vulnerability];return Number((s.reduce((e,n)=>e+n,0)/s.length).toFixed(2))},qt=async(t,s={})=>{const{apiToken:e,cacheTtlMs:n=zt,timeoutMs:r=15e3}=s,c=new Map;if(t.length===0||!e)return c;const o=[];for(const l of t){const p=Zt(l.name,l.version);p?c.set(`${l.name}@${l.version}`,p):o.push(l)}if(o.length===0)return c;const i=`Basic ${Buffer.from(`${e}:`).toString("base64")}`;Vt();const a=[];for(let l=0;l<o.length;l+=P)a.push(o.slice(l,l+P));for(const l of a){const p=l.map(u=>({purl:`pkg:npm/${u.name}@${u.version}`})),g=new AbortController,b=setTimeout(()=>{g.abort()},r);try{const u=await fetch(Yt,{body:JSON.stringify({components:p}),headers:{Authorization:i,"Content-Type":"application/json","User-Agent":"@visulima/vis"},method:"POST",signal:g.signal});if(!u.ok)continue;const m=await u.text();Jt(m,l,c,n)}catch{}finally{clearTimeout(b)}}return c},Jt=(t,s,e,n)=>{const r=new Map;for(const o of s)r.set(`${o.name}@${o.version}`,o);const c=t.split(`}
|
|
2
|
-
`);for(const o of c){const i=o.trim();if(i)try{const a=JSON.parse(i.endsWith("}")?i:`${i}}`),p=`${a.namespace?`${a.namespace}/`:""}${a.name}`,g=`${p}@${a.version}`;if(!r.has(g))continue;const b=a.score.overall??Ut(a.score),u={alerts:a.alerts,author:a.author,id:a.id,license:a.license,name:a.name,score:{...a.score,overall:b},size:a.size,type:"npm",version:a.version};a.namespace&&(u.namespace=a.namespace),Gt(u)&&(e.set(g,u),Ht(p,a.version,u,n))}catch{}}},Xt=t=>t.namespace?`${t.namespace}/${t.name}`:t.name,es=t=>t>=.8?"excellent":t>=.6?"good":t>=.4?"fair":t>=.2?"poor":"critical",ss=t=>t>=.6?"green":t>=.4?"yellow":"red",ns=t=>{const s=Xt(t),e=`score: ${String(Math.round(t.score.overall*100))}%`,n=t.alerts.length,r=n>0?`${String(n)} alert${n===1?"":"s"}`:"no alerts";return`${s}@${t.version} (${e}, ${r})`},os=(t,s=X)=>{if(t.size===0)return"";let e=0,n=0,r=0,c=0,o=0,i=0;for(const l of t.values()){for(const p of l.alerts)switch(e++,p.severity){case"critical":{n++;break}case"high":{r++;break}case"medium":{c++;break}default:o++}l.score.overall<s&&i++}const a=[`Socket.dev: scanned ${String(t.size)} package${t.size===1?"":"s"}`];if(e>0){const l=[];n>0&&l.push(`${String(n)} critical`),r>0&&l.push(`${String(r)} high`),c>0&&l.push(`${String(c)} medium`),o>0&&l.push(`${String(o)} low`),a.push(` Alerts: ${String(e)} total (${l.join(", ")})`)}else a.push(" No security alerts found.");if(i>0){const l=Math.round(s*100);a.push(` ${String(i)} package${i===1?"":"s"} with low security score (<${String(l)}%)`)}return a.join(`
|
|
3
|
-
`)},Qt=()=>{const t=M();if(!G(t))return 0;const s=Y(t).filter(e=>e.endsWith(".json"));for(const e of s)z(f(t,e),{force:!0});return s.length},te=()=>{const t=M();if(!G(t))return{entries:0,newestEntry:void 0,oldestEntry:void 0,totalSizeBytes:0};const s=Y(t).filter(c=>c.endsWith(".json"));let e=0,n,r;for(const c of s){const o=rt(f(t,c));e+=o.size;const{mtimeMs:i}=o;(n===void 0||i<n)&&(n=i),(r===void 0||i>r)&&(r=i)}return{entries:s.length,newestEntry:r,oldestEntry:n,totalSizeBytes:e}},ee=(t,s)=>t?.enabled?{apiToken:t.apiToken??process.env.VIS_SOCKET_TOKEN,cacheTtlMs:t.cacheTtlMs,minimumScore:s??X,timeoutMs:t.timeoutMs}:void 0,is=(t,s,e,n)=>{if(!e)return;const r=Date.now(),c=i=>{if(i.expiresAt){const a=Date.parse(i.expiresAt);if(!Number.isNaN(a)&&a<r)return!1}return!(n&&i.policies&&!i.policies.includes(n))},o=`${t}@${s}`;if(e[o]&&c(e[o]))return e[o];if(e[t]&&c(e[t]))return e[t];for(const[i,a]of Object.entries(e))if(i.endsWith("*")&&t.startsWith(i.slice(0,-1))&&c(a))return a},rs=(t,s,e,n)=>[" // Add to security.acceptedRisks in vis.config.ts:",` ${`"${t}"`}: {`,` reason: "${n}",`,` acceptedAt: "${new Date().toISOString()}",`,` acceptedScore: ${String(e)},`,' policies: ["score"],'," },"].join(`
|
|
4
|
-
`),as=(t,s={})=>{const e=ee(t,s.minimumScore);if(e)return{clearCache:Qt,displayName:"Socket.dev",fetchReports:n=>qt(n,e),getCacheStats:te,id:"socket"}},cs=t=>{if(t===void 0)return!1;const s=t.trim().toLowerCase();return s!==""&&s!=="0"&&s!=="false"&&s!=="no"},tt={iec:[{long:"Bytes",short:"B"},{long:"Kibibytes",short:"KiB"},{long:"Mebibytes",short:"MiB"},{long:"Gibibytes",short:"GiB"},{long:"Tebibytes",short:"TiB"},{long:"Pebibytes",short:"PiB"},{long:"Exbibytes",short:"EiB"},{long:"Zebibytes",short:"ZiB"},{long:"Yobibytes",short:"YiB"}],iec_octet:[{long:"Octets",short:"o"},{long:"Kibioctets",short:"Kio"},{long:"Mebioctets",short:"Mio"},{long:"Gibioctets",short:"Gio"},{long:"Tebioctets",short:"Tio"},{long:"Pebioctets",short:"Pio"},{long:"Exbioctets",short:"Eio"},{long:"Zebioctets",short:"Zio"},{long:"Yobioctets",short:"Yio"}],metric:[{long:"Bytes",short:"Bytes"},{long:"Kilobytes",short:"KB"},{long:"Megabytes",short:"MB"},{long:"Gigabytes",short:"GB"},{long:"Terabytes",short:"TB"},{long:"Petabytes",short:"PB"},{long:"Exabytes",short:"EB"},{long:"Zettabytes",short:"ZB"},{long:"Yottabytes",short:"YB"}],metric_octet:[{long:"Octets",short:"o"},{long:"Kilo-octets",short:"ko"},{long:"Mega-octets",short:"Mo"},{long:"Giga-octets",short:"Go"},{long:"Tera-octets",short:"To"},{long:"Peta-octets",short:"Po"},{long:"Exa-octets",short:"Eo"},{long:"Zetta-octets",short:"Zo"},{long:"Yotta-octets",short:"Yo"}]},se=[{long:"bits",short:"bit"},{long:"Kilobits",short:"kbit"},{long:"Megabits",short:"Mbit"},{long:"Gigabits",short:"Gbit"},{long:"Terabits",short:"Tbit"},{long:"Petabits",short:"Pbit"},{long:"Exabits",short:"Ebit"},{long:"Zettabits",short:"Zbit"},{long:"Yottabits",short:"Ybit"}],K=new Map,L=(t,s)=>{const e=`${t}\0${JSON.stringify(s)}`;let n=K.get(e);return n===void 0&&(n=new Intl.NumberFormat(t,s),K.set(e,n)),n},ne=t=>{switch(t){case 2:return 1024;case 10:return 1e3;default:throw new Error("Unsupported base.")}},oe=(t,s,e)=>({maximumFractionDigits:t,minimumFractionDigits:t,...s,...e}),ie=(t,s,e,n)=>{if(t===void 0)return-1;const r=s.findIndex(c=>c.short===t);return r===-1&&n?tt[e].findIndex(c=>c.short===t):r},ls=(t,s)=>{if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("Bytesize is not a number.");const{base:e,bits:n,decimals:r,locale:c,long:o,signed:i,unit:a,units:l,...p}={base:2,bits:!1,decimals:0,locale:"en-US",long:!1,signed:!1,units:"metric",...s},g=ne(e),b=n?t*8:t,u=Math.abs(b),m=s?.space??!0?" ":"",h=n?se:tt[l],d=ie(a,h,l,n),w=r<0?void 0:r,y=i?{signDisplay:"exceptZero"}:{};if(b===0){const E=d===-1?0:Math.min(d,h.length-1),et=h[E][o?"long":"short"];return L(c,{...y,...p}).format(0)+m+et}const S=Math.max(0,Math.min(Math.floor(Math.log(u)/Math.log(g)),h.length-1)),B=d===-1?S:d,W=h[B][o?"long":"short"],k=b/g**B;return L(c,oe(w,y,p)).format(k)+m+W};export{je as $,Pe as A,Ee as B,ve as C,X as D,Ne as E,Te as F,$e as G,xe as H,Ae as I,Ye as J,Be as K,we as L,ke as M,Oe as N,Me as O,_e as P,ts as Q,q as R,ge as S,be as T,Fe as U,ze as V,Ce as W,me as X,De as Y,Ge as Z,U as _,Qe as a,C as a0,Rt as a1,_t as a2,fe as a3,he as a4,pe as a5,de as a6,as as a7,os as a8,qe as a9,te as aa,Qt as ab,Xe as ac,A as b,N as c,Je as d,Xt as e,is as f,Pt as g,ns as h,es as i,rs as j,cs as k,He as l,Ut as m,qt as n,Ze as o,Ue as p,Ve as q,We as r,ss as s,Ie as t,Re as u,Ke as v,Se as w,ye as x,Le as y,ls as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as t}from"../packem_chunks/catalog.js";const s=async(a,o)=>await t(a,o);export{s as l};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as k,D as S,f as L}from"./provenance-L1M2FPy_.js";import{g as $}from"./packument-zb18Jnlw.js";import{f}from"./formatBytes-_HvjOy8a-B_qQr4Hw.js";import{a as E}from"./build-scripts-CEDx_nJp.js";import{n as h}from"./license-DvlYdo6T.js";import{v as A,U as P,z as x}from"./index-BzhrR_iC.js";import{S as M}from"./lockfile-DhHAaHN5.js";import{L as b}from"./dependency-scan-CawAKoU_.js";import{M as O}from"../packem_chunks/catalog.js";const C=2,m=4,y={CRITICAL:0,HIGH:1,LOW:3,MODERATE:C,UNKNOWN:m},le=(e,s)=>{const n=y[(e.vulnerability.severity??"UNKNOWN").toUpperCase()]??m,t=y[(s.vulnerability.severity??"UNKNOWN").toUpperCase()]??m;return n-t||e.packageName.localeCompare(s.packageName)||e.packageVersion.localeCompare(s.packageVersion)},D=(e,s)=>{const n=y[s.toUpperCase()]??C;return(y[e.toUpperCase()]??m)<=n},R=["firstSeen","installScripts","license","malware","publisherChange","score","unexpectedDeps","vulnerability"],w=6e4,W=(e,s,n)=>{for(const t of n)if(t===e||t===`${e}@${s}`||t.endsWith("*")&&e.startsWith(t.slice(0,-1)))return!0;return!1},U=async(e,s)=>{const n=s.security?.policies?.firstSeen;if(n?.minutes===void 0||n.minutes<=0)return[];const{minutes:t}=n,r=n.exclude??[],c=s.security?.acceptedRisks,a=t*w,o=Date.now();return(await k(e.packages,S,async l=>{if(W(l.name,l.version,r))return;const p=await $(l.name,{workspaceRoot:e.workspaceRoot});if(p===void 0)return;const u=p.time?.[l.version];if(u===void 0)return;const d=Date.parse(u);if(Number.isNaN(d))return;const v=o-d;if(v>=a)return;const g=Math.max(0,Math.floor(v/w));return{acceptedRisk:f(l.name,l.version,c,"firstSeen"),data:{ageMinutes:g,minimumMinutes:t,publishedAt:u},packageName:l.name,policy:"firstSeen",reason:`${l.name}@${l.version} was published ${String(g)} min ago — below the ${String(t)} min firstSeen cooldown.`,severity:"block",version:l.version}})).filter(l=>l!==void 0)},_=(e,s)=>{const n=s.security?.policies?.installScripts;if(!n)return[];const t=n.allow??{},r=n.strict===!0;if(!r&&Object.keys(t).length===0)return[];const c=E(e.workspaceRoot,t,{pinVersions:s.security?.pinVersions===!0});if(c.unapproved.length===0)return[];const a=s.security?.acceptedRisks,o=r?"block":"warn";return c.unapproved.map(i=>({acceptedRisk:f(i.name,i.version??"*",a,"installScripts"),data:{hooks:i.hooks},packageName:i.name,policy:"installScripts",reason:`${i.name}${i.version?`@${i.version}`:""} declares unapproved build script(s): ${i.hooks.join(", ")}`,severity:o,version:i.version??"*"}))},I=new Set(["AND","OR"]),F=e=>{const s=e.replaceAll("("," ").replaceAll(")"," ").split(/\s+/).map(r=>r.trim()).filter(r=>r.length>0),n=[];let t=!1;for(const r of s){const c=r.toUpperCase();if(t){t=!1;continue}if(c==="WITH"){t=!0;continue}if(I.has(c))continue;const a=r.endsWith("+"),o=a?r.slice(0,-1):r,i=h(o)??o;n.push(i),a&&n.push(`${i}-or-later`)}return n},T=e=>{if(typeof e.license=="string"){const s=e.license.trim();return s.length>0?s:void 0}if(e.license&&typeof e.license=="object"&&typeof e.license.type=="string"){const s=e.license.type.trim();if(s.length>0)return s}if(Array.isArray(e.licenses)&&e.licenses.length>0){const s=e.licenses.map(n=>n&&typeof n.type=="string"?n.type.trim():"").filter(n=>n.length>0);if(s.length>0)return s.length===1?s[0]:`(${s.join(" OR ")})`}},V=(e,s)=>{if(s.length===0)return;const n=new Set(s.map(t=>h(t)??t).map(t=>t.toLowerCase()));for(const t of e)if(n.has(t.toLowerCase()))return t},K=(e,s)=>{if(s.length===0)return;const n=new Set(s.map(t=>h(t)??t).map(t=>t.toLowerCase()));for(const t of e)if(!n.has(t.toLowerCase()))return t},j=(e,s)=>{const n=s.security?.policies?.license;if(!n)return[];const t=n.allow??[],r=n.deny??[];if(t.length===0&&r.length===0)return[];const c=s.security?.acceptedRisks,a=[];for(const o of e.packages){const i=e.manifestData?.get(`${o.name}@${o.version}`),l=i?T(i):void 0;if(!l){t.length>0&&a.push({acceptedRisk:f(o.name,o.version,c,"license"),data:{declaredLicense:null},packageName:o.name,policy:"license",reason:`${o.name}@${o.version} declares no license; allow-list mode requires one of: ${t.join(", ")}`,severity:"block",version:o.version});continue}const p=F(l),u=V(p,r);if(u){a.push({acceptedRisk:f(o.name,o.version,c,"license"),data:{declaredLicense:l,deniedLicense:u},packageName:o.name,policy:"license",reason:`${o.name}@${o.version} uses denied license '${u}' (declared: ${l})`,severity:"block",version:o.version});continue}const d=K(p,t);d&&a.push({acceptedRisk:f(o.name,o.version,c,"license"),data:{allowList:t,declaredLicense:l,unallowedLicense:d},packageName:o.name,policy:"license",reason:`${o.name}@${o.version} uses license '${d}' which is not on the allow-list (declared: ${l})`,severity:"block",version:o.version})}return a},z=6e4,B=(e,s,n)=>{for(const t of n)if(t===e||t===`${e}@${s}`||t.endsWith("*")&&e.startsWith(t.slice(0,-1)))return!0;return!1},Y=async(e,s)=>{const n=s.security?.policies?.publisherChange;if(n?.mode!=="no-downgrade")return[];const t=n.exclude??[],r=typeof n.ignoreAfter=="number"?n.ignoreAfter*z:void 0,c=s.security?.acceptedRisks,a=Date.now();return(await k(e.packages,S,async i=>{if(B(i.name,i.version,t))return;const l=await $(i.name,{workspaceRoot:e.workspaceRoot});if(l===void 0)return;if(r!==void 0){const d=l.time?.[i.version],v=d===void 0?Number.NaN:Date.parse(d);if(!Number.isNaN(v)&&a-v>r)return}if(l.versions[i.version]?.dist?.attestations?.provenance!==void 0)return;const u=L(l,i.version);if(u!==void 0)return{acceptedRisk:f(i.name,i.version,c,"publisherChange"),data:{priorVersionWithProvenance:u},packageName:i.name,policy:"publisherChange",reason:`${i.name}@${i.version} dropped the provenance attestation that ${i.name}@${u} carried — publisher trust downgrade.`,severity:"block",version:i.version}})).filter(i=>i!==void 0)},H=e=>{for(const s of Object.values(b))for(const n of[s.file,...s.aliases??[]])if(e===n||e.endsWith(`/${n}`)||e.endsWith(`.${n}`))return s.type},q=(e,s,n)=>{const t=A(s)?s:P(e,s);let r;try{r=x(t)}catch{return}const c=H(t)??b[n]?.type;if(!c)return;const a=M(r,c);if(a.length===0)return;const o=new Set;for(const i of a)o.add(`${i.name}@${i.version}`);return o},G=(e,s)=>{for(const n of s)if(n===e||n.endsWith("*")&&e.startsWith(n.slice(0,-1)))return!0;return!1},X=(e,s)=>{const n=s.security?.policies?.unexpectedDeps;if(!n)return[];const t=n.allow??[],r=n.baselineLockfile;if(t.length===0&&!r)return[];const c=r?q(e.workspaceRoot,r,e.packageManager):void 0,a=s.security?.acceptedRisks,o=[];for(const i of e.packages){const l=t.length===0||G(i.name,t),p=c?c.has(`${i.name}@${i.version}`):!0;if(l&&p)continue;const u=[],d={};l||(u.push(`not on allow-list (${t.length} entr${t.length===1?"y":"ies"})`),d.allowList=t),!p&&c&&(u.push(`not present in baseline lockfile (${r})`),d.baselineLockfile=r),o.push({acceptedRisk:f(i.name,i.version,a,"unexpectedDeps"),data:d,packageName:i.name,policy:"unexpectedDeps",reason:`${i.name}@${i.version} is unexpected: ${u.join("; ")}`,severity:"block",version:i.version})}return o},J=(e,s)=>{if(!e.osvFindings||e.osvFindings.size===0)return[];const t=s.security?.policies?.vulnerability?.failOn,r=s.security?.acceptedRisks,c=[];for(const a of e.packages){const o=e.osvFindings.get(O(a.name,a.version))??e.osvFindings.get(a.name);if(!(!o||o.length===0))for(const i of o){const l=t?D(i.severity,t)?"block":"warn":"info";c.push({acceptedRisk:f(a.name,a.version,r,"vulnerability"),data:{advisoryId:i.id,aliases:i.aliases??[],cvssScore:i.cvssScore,fixedVersions:i.fixedVersions,severity:i.severity,summary:i.summary},packageName:a.name,policy:"vulnerability",reason:`${i.severity} ${i.id} affects ${a.name}@${a.version}: ${i.summary}`,severity:l,version:a.version})}}return c},N=[{evaluate:J,isConfigured:e=>e.security?.policies?.vulnerability!==void 0,name:"vulnerability",offlineSupported:!0,surfaces:["audit","doctor"]},{evaluate:j,isConfigured:e=>{const s=e.security?.policies?.license;return!!(s&&(s.allow&&s.allow.length>0||s.deny&&s.deny.length>0))},name:"license",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:_,isConfigured:e=>{const s=e.security?.policies?.installScripts;return!!(s&&(s.allow&&Object.keys(s.allow).length>0||s.strict===!0))},name:"installScripts",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:X,isConfigured:e=>{const s=e.security?.policies?.unexpectedDeps;return!!(s&&(s.allow&&s.allow.length>0||typeof s.baselineLockfile=="string"))},name:"unexpectedDeps",offlineSupported:!0,surfaces:["audit","doctor","install"]},{evaluate:U,isConfigured:e=>{const s=e.security?.policies?.firstSeen?.minutes;return typeof s=="number"&&s>0},name:"firstSeen",offlineSupported:!1,surfaces:["audit","doctor","install"]},{evaluate:Y,isConfigured:e=>e.security?.policies?.publisherChange?.mode==="no-downgrade",name:"publisherChange",offlineSupported:!1,surfaces:["audit","doctor","install"]}],Q=(e,s,n)=>N.filter(t=>t.surfaces.includes(e)?n!==void 0?n.has(t.name):t.isConfigured(s):!1),ue=async(e,s,n)=>{const t=Q(s,n.visConfig,n.enabledPolicies),r=[];for(const c of t){if(e.offline&&!c.offlineSupported){r.push({packageName:"*",policy:c.name,reason:`policy.${c.name} skipped: requires network (--offline)`,severity:"info",version:"*"});continue}try{const a=await c.evaluate(e,n.visConfig);r.push(...a)}catch(a){const o=a instanceof Error?a.message:String(a);r.push({packageName:"*",policy:c.name,reason:`policy.${c.name} failed: ${o}`,severity:"info",version:"*"})}}return r},Z=(()=>{const e=new Map;for(const s of R)e.set(s.toLowerCase(),s);return e})(),de=()=>N.map(e=>e.name),pe=(e,s)=>{if(e===void 0)return;const n=e.trim().toLowerCase();if(n===""||n==="none")return new Set;if(n==="all")return new Set(R);const t=new Set;for(const r of e.split(",").map(c=>c.trim()).filter(c=>c.length>0)){const c=r.replace(/^_+/,"").replaceAll(/_+([a-z])/g,(o,i)=>i.toUpperCase()),a=Z.get(c.toLowerCase());a===void 0?s?.(r):t.add(a)}return t};export{le as c,ue as e,de as g,pe as p,D as s};
|