Twelve packages compile with importHelpers: true, so their emitted output
requires tslib at runtime, but none of them declared it as a dependency.
Consumers do not install devDependencies, so a global install fails with
"Cannot find module 'tslib'".
Verified against the published v1-x tarballs by extracting each one and
grepping the shipped lib/ output for require("tslib"):
cli-cm-import 32 files cli-cm-import-setup 13 files
cli-cm-export 26 files apps-cli 10 files
cli-external-migrate 25 files cli-cm-branches 8 files
cli-audit 16 files cli-cm-export-to-csv 7 files
cli-bulk-operations 16 files cli-cm-seed 5 files
cli-migration 15 files cli-cm-clone 3 files
apps-cli and cli-bulk-operations had tslib under devDependencies; the other
ten declared it nowhere.
Deliberately unchanged: cli-cm-bulk-publish, cli-cm-migrate-rte, cli-variants,
cli-cm-bootstrap and tsgen emit zero tslib requires; content-type and
cli-cm-export-query already declare it correctly.
Also upgrades dependencies to clear Snyk findings that blocked the commit:
adm-zip 0.6.0 -> 0.6.1 (3x High: symlink attack,
data amplification, memory
allocation)
moment 2.30.1 -> 2.31.0 (High: directory traversal)
axios 1.16.1, 1.18.1 -> 1.20.0
@contentstack/management 1.30.3, 1.30.4 -> 1.31.1
@contentstack/delivery-sdk 5.4.0 -> 5.6.0
@contentstack/marketplace-sdk 1.5.3 -> 1.5.4
@contentstack/cli-launch 1.11.1 -> 1.11.3
uuid 14.0.0, 14.0.1 -> 14.0.2
snyk test --all-projects --fail-on=all now reports 21 projects with no
vulnerable paths.
Also switches the .talismanrc pnpm-lock.yaml entry from a checksum pin to
ignore_detectors, so lockfile regeneration no longer invalidates it.
Refs: contentstack/cli#2629
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Problem
Twelve packages compile with
importHelpers: true, so their emitted output callsrequire("tslib")at runtime, but none declarestslibas a runtime dependency. Consumers do not install devDependencies, so a global install fails withCannot find module 'tslib'.Masked locally because
.npmrcsetsshamefully-hoist=true, which is not published.Same defect as contentstack/cli#2629, which was filed against 1.64.0 — a v1 release.
Evidence
Each published
v1-xtarball was downloaded from npm and its shippedlib/output grepped forrequire("tslib"), then compared against that tarball's ownpackage.json.tslibcli-cm-importcli-cm-exportcli-external-migratecli-auditcli-bulk-operationscli-migrationcli-cm-import-setupapps-clicli-cm-branchescli-cm-export-to-csvcli-cm-seedcli-cm-cloneDeliberately unchanged
cli-cm-bulk-publish,cli-cm-migrate-rte,cli-variants,cli-cm-bootstrapandtsgenemit zerotslibreferences, verified against published tarballs containing real compiled output.content-typeandcli-cm-export-queryalready declare it correctly.Dependency upgrades
The pre-commit Snyk gate blocked on four pre-existing High-severity findings unrelated to
tslib. Rather than bypass the gate, they are fixed here:adm-zipmomentCarried along in the same resolution:
axios@contentstack/management@contentstack/delivery-sdk@contentstack/marketplace-sdk@contentstack/cli-launchuuidsnyk test --all-projects --fail-on=allnow reports 21 projects with no vulnerable paths.Reviewer note:
axios,@contentstack/managementand@contentstack/delivery-sdkare minor-version upgrades, not patches, and account for most of the 4,182-line lockfile diff. They deserve more scrutiny than thetslibchange itself.Verification
pnpm install --frozen-lockfilepasses — lockfile and manifests agreepnpm buildpasses across all packagespnpm packofcli-cm-importproduces an artifact with 33 files requiringtslibanddependencies.tslib: ^2.8.1presentAlso included
.talismanrc'spnpm-lock.yamlentry moves from a checksum pin toignore_detectors, which was already stale and blocked committing any lockfile change.Notes
clirepo.Refs: contentstack/cli#2629
🤖 Generated with Claude Code