pm-csv 2026.7.27 → 2026.7.29
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 +36 -0
- package/dist/index.js +1 -1
- package/manifest.json +2 -2
- package/package.json +22 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.7.29 - 2026-07-29
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Enforce a real coverage gate by running tests against TypeScript sources ([pm-csv-0pmb](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/features/pm-csv-0pmb.toon))
|
|
8
|
+
|
|
9
|
+
### Other
|
|
10
|
+
|
|
11
|
+
- Adopt pm-cli 2026.7.29 ([pm-csv-vdnh](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/chores/pm-csv-vdnh.toon))
|
|
12
|
+
|
|
13
|
+
## 2026.7.28 - 2026-07-28
|
|
14
|
+
|
|
15
|
+
### Other
|
|
16
|
+
|
|
17
|
+
- Adopt pm-cli 2026.7.28 ([pm-csv-oenu](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/chores/pm-csv-oenu.toon))
|
|
18
|
+
|
|
3
19
|
## 2026.7.27 - 2026-07-27
|
|
4
20
|
|
|
5
21
|
### Fixed
|
|
@@ -28,6 +44,7 @@
|
|
|
28
44
|
|
|
29
45
|
### Other
|
|
30
46
|
|
|
47
|
+
- Adopt --respect-item-release in changelog scripts and close the shipped-but-stale export terminator tracker ([pm-csv-qnax](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/chores/pm-csv-qnax.toon))
|
|
31
48
|
- Redact local host paths (/home/<user\>) from tracker item history ([pm-csv-tl5j](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/chores/pm-csv-tl5j.toon))
|
|
32
49
|
|
|
33
50
|
## 2026.7.23 - 2026-07-23
|
|
@@ -62,6 +79,10 @@
|
|
|
62
79
|
|
|
63
80
|
## 2026.7.11 - 2026-07-11
|
|
64
81
|
|
|
82
|
+
### Added
|
|
83
|
+
|
|
84
|
+
- Full pm ecosystem production pass for pm-csv ([pm-csv-w1re](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/features/pm-csv-w1re.toon))
|
|
85
|
+
|
|
65
86
|
### Other
|
|
66
87
|
|
|
67
88
|
- Adopt current pm SDK and TypeScript 7 toolchain ([pm-csv-axm5](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-axm5.toon))
|
|
@@ -83,6 +104,12 @@
|
|
|
83
104
|
|
|
84
105
|
- Deep RFC-4180 import/export + idempotent upsert (SDK 2026.5.31) ([pm-csv-xim5](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/features/pm-csv-xim5.toon))
|
|
85
106
|
|
|
107
|
+
## 2026.6.8 - 2026-06-08
|
|
108
|
+
|
|
109
|
+
### Other
|
|
110
|
+
|
|
111
|
+
- Full-cycle hardening wave: pm-csv ([pm-csv-9jj1](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-9jj1.toon))
|
|
112
|
+
|
|
86
113
|
## 2026.6.7 - 2026-06-07
|
|
87
114
|
|
|
88
115
|
### Added
|
|
@@ -113,10 +140,15 @@
|
|
|
113
140
|
|
|
114
141
|
### Fixed
|
|
115
142
|
|
|
143
|
+
- Heavy edge-case tests + functional round-trip + manifest capabilities fix ([pm-csv-f0nz](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-f0nz.toon))
|
|
116
144
|
- Fix --key dedup duplication (pm tag case-folding) ([pm-csv-bvz5](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-bvz5.toon))
|
|
117
145
|
|
|
118
146
|
### Other
|
|
119
147
|
|
|
148
|
+
- Robust import: BOM, --map col=field, type coercion, malformed-row handling ([pm-csv-hp73](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-hp73.toon))
|
|
149
|
+
- Idempotent upsert: --key <col\> dedups via csv-key provenance tag ([pm-csv-u0xp](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-u0xp.toon))
|
|
150
|
+
- Export: TSV delimiter, --no-header, --crlf line endings ([pm-csv-bocj](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-bocj.toon))
|
|
151
|
+
- Investigate renderers capability (pm list --format csv) ([pm-csv-3d3b](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-3d3b.toon))
|
|
120
152
|
- validate exit-code policy ([pm-csv-yhp9](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/decisions/pm-csv-yhp9.toon))
|
|
121
153
|
- csv_source persisted as tag, not scalar field ([pm-csv-vp1u](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/decisions/pm-csv-vp1u.toon))
|
|
122
154
|
- Which extra pm fields to round-trip ([pm-csv-ry94](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/decisions/pm-csv-ry94.toon))
|
|
@@ -150,6 +182,10 @@
|
|
|
150
182
|
- csv import/export return error object instead of throwing (exit 0 on failure) ([pm-csv-e9v4](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/issues/pm-csv-e9v4.toon))
|
|
151
183
|
- csv import --dry-run silently ignored (still writes) ([pm-csv-zw3a](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/issues/pm-csv-zw3a.toon))
|
|
152
184
|
|
|
185
|
+
### Other
|
|
186
|
+
|
|
187
|
+
- Production-readiness audit 2026-05-28 ([pm-csv-7jbc](https://github.com/unbraind/pm-csv/blob/main/.agents/pm/tasks/pm-csv-7jbc.toon))
|
|
188
|
+
|
|
153
189
|
## 2026.5.28 - 2026-05-28
|
|
154
190
|
|
|
155
191
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -1716,7 +1716,7 @@ function buildCsvExport(pmRoot, opts) {
|
|
|
1716
1716
|
const defineExtension = (module) => module;
|
|
1717
1717
|
export default defineExtension({
|
|
1718
1718
|
name: "pm-csv",
|
|
1719
|
-
version: "2026.7.
|
|
1719
|
+
version: "2026.7.29",
|
|
1720
1720
|
activate(api) {
|
|
1721
1721
|
// -----------------------------------------------------------------------
|
|
1722
1722
|
// Schema: register an optional `csv_source` provenance field so imported
|
package/manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-csv",
|
|
3
|
-
"version": "2026.7.
|
|
3
|
+
"version": "2026.7.29",
|
|
4
4
|
"description": "CSV importer and exporter for pm-cli",
|
|
5
5
|
"author": "@unbraind",
|
|
6
6
|
"entry": "./dist/index.js",
|
|
7
7
|
"priority": 50,
|
|
8
|
-
"pm_min_version": "2026.7.
|
|
8
|
+
"pm_min_version": "2026.7.28",
|
|
9
9
|
"capabilities": [
|
|
10
10
|
"commands",
|
|
11
11
|
"importers",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-csv",
|
|
3
|
-
"version": "2026.7.
|
|
3
|
+
"version": "2026.7.29",
|
|
4
4
|
"description": "CSV importer and exporter for pm-cli",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,28 +22,43 @@
|
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build": "tsc",
|
|
24
24
|
"build:test": "tsc -p tsconfig.test.json",
|
|
25
|
-
"test": "npm run build && npm run build:test && node --test
|
|
25
|
+
"test": "npm run build && npm run build:test && node --test test/*.test.ts",
|
|
26
26
|
"prepack": "npm run build",
|
|
27
27
|
"typecheck": "tsc --noEmit",
|
|
28
28
|
"check": "npm run typecheck",
|
|
29
|
-
"audit:prod": "
|
|
29
|
+
"audit:prod": "node --input-type=module -e \"import { spawnSync } from 'node:child_process'; import { devNull } from 'node:os'; const env = { ...process.env, npm_config_userconfig: devNull, NPM_CONFIG_USERCONFIG: devNull }; for (const key of Object.keys(env)) if (key.toLowerCase() === 'npm_config_allow_scripts') delete env[key]; const win = process.platform === 'win32'; const r = spawnSync(win ? 'npm.cmd' : 'npm', ['audit', '--omit=dev', '--ignore-scripts'], { stdio: 'inherit', env, shell: win }); process.exit(r.status ?? 1);\"",
|
|
30
30
|
"pack:dry-run": "npm pack --dry-run",
|
|
31
31
|
"changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-csv/blob/main/.agents/pm --respect-item-release",
|
|
32
32
|
"changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-csv/blob/main/.agents/pm --respect-item-release",
|
|
33
33
|
"changelog:check": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-csv/blob/main/.agents/pm --respect-item-release --check || (pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-csv/blob/main/.agents/pm --respect-item-release && git diff --exit-code -- CHANGELOG.md)",
|
|
34
|
-
"release:check": "npm run typecheck && npm run build && npm
|
|
34
|
+
"release:check": "npm run typecheck && npm run build && npm run coverage && npm run audit:prod && npm run pack:dry-run && npm run changelog:check",
|
|
35
35
|
"prepublishOnly": "npm run release:check",
|
|
36
36
|
"release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-csv/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --github-step-summary",
|
|
37
37
|
"prepare": "node scripts/prepare-merge-driver.mjs",
|
|
38
38
|
"merge:install": "pm merge install",
|
|
39
|
-
"pm:validate": "pm validate --json"
|
|
39
|
+
"pm:validate": "pm validate --json",
|
|
40
|
+
"coverage": "npm run build && npm run build:test && node scripts/coverage-gate.ts"
|
|
41
|
+
},
|
|
42
|
+
"coverageGate": {
|
|
43
|
+
"sources": [
|
|
44
|
+
"."
|
|
45
|
+
],
|
|
46
|
+
"tests": [
|
|
47
|
+
"test/*.test.ts"
|
|
48
|
+
],
|
|
49
|
+
"thresholds": {
|
|
50
|
+
"lines": 81,
|
|
51
|
+
"branches": 74,
|
|
52
|
+
"functions": 88
|
|
53
|
+
},
|
|
54
|
+
"ignore": []
|
|
40
55
|
},
|
|
41
56
|
"peerDependencies": {
|
|
42
|
-
"@unbrained/pm-cli": ">=2026.7.
|
|
57
|
+
"@unbrained/pm-cli": ">=2026.7.29"
|
|
43
58
|
},
|
|
44
59
|
"devDependencies": {
|
|
45
60
|
"@types/node": "^26.1.1",
|
|
46
|
-
"@unbrained/pm-cli": "^2026.7.
|
|
61
|
+
"@unbrained/pm-cli": "^2026.7.29",
|
|
47
62
|
"pm-changelog": "^2026.7.25",
|
|
48
63
|
"typescript": "^7.0.2"
|
|
49
64
|
},
|