@wavyx/pdcli 0.6.0 → 0.8.0
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 +73 -2
- package/README.md +8 -0
- package/oclif.manifest.json +2591 -918
- package/package.json +8 -1
- package/src/base-command.js +27 -2
- package/src/commands/alias/list.js +31 -0
- package/src/commands/alias/set.js +97 -0
- package/src/commands/alias/unset.js +26 -0
- package/src/commands/config/set.js +14 -0
- package/src/commands/config/unset.js +32 -0
- package/src/commands/file/remote-link.js +56 -0
- package/src/commands/funnel.js +97 -2
- package/src/commands/lead/label/list.js +27 -0
- package/src/commands/metrics/coverage.js +251 -0
- package/src/commands/org/merge.js +97 -0
- package/src/commands/person/merge.js +91 -0
- package/src/hooks/command-not-found.js +68 -0
- package/src/lib/aliases.js +35 -0
- package/src/lib/analytics.js +142 -0
- package/src/lib/audit.js +107 -6
- package/src/lib/client.js +30 -0
- package/src/lib/confirm.js +15 -2
- package/src/lib/entity-view.js +15 -9
- package/src/lib/errors.js +10 -1
- package/src/lib/fields.js +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,77 @@ All notable changes to `pdcli` are documented here. Format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/); versions follow
|
|
5
5
|
[SemVer](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.8.0] - 2026-06-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `person merge <id> --into <survivor>` and `org merge <id> --into <survivor>`
|
|
12
|
+
— fold duplicate records via Pipedrive's native merge. The positional id is
|
|
13
|
+
the losing record (deleted); the confirmation names both records and
|
|
14
|
+
defaults to No. `--yes` skips the prompt for scripts.
|
|
15
|
+
- `funnel --exact` — mines real stage transitions from each deal's changelog
|
|
16
|
+
instead of approximating from final stages. Stage entry is derived from the
|
|
17
|
+
transition graph, so deals created mid-funnel count only the stages they
|
|
18
|
+
actually entered. Failed changelog fetches are skipped with a warning.
|
|
19
|
+
Machine output is `{ rows, won }`.
|
|
20
|
+
- `metrics coverage` — open pipeline vs the revenue still needed for quota.
|
|
21
|
+
The classic 3x rule drives the verdict on raw pipeline value; a
|
|
22
|
+
probability-weighted coverage ratio is reported alongside. Quota comes from
|
|
23
|
+
active revenue goals (Goals API) or `--target`. Goals in mixed currencies
|
|
24
|
+
refuse to sum (exit 64).
|
|
25
|
+
- `alias set/list/unset` — user-defined command shortcuts, expanded by the
|
|
26
|
+
command-not-found hook. Cycles, self-references, topic shadowing, and
|
|
27
|
+
dotted names are rejected at write time; runtime expansion is guarded
|
|
28
|
+
against cycles and runaway depth. Destructive payloads warn at set time.
|
|
29
|
+
- `--resolve-fields` — opt-in resolution of custom-field hash keys to names
|
|
30
|
+
(and option ids to labels) in JSON/yaml/csv output of single-record get
|
|
31
|
+
commands. Duplicate field names disambiguate instead of clobbering.
|
|
32
|
+
- `audit` duplicate-orgs now also reports fuzzy near-matches
|
|
33
|
+
(Jaro-Winkler 0.92+) with original org names and a score, tagged
|
|
34
|
+
`kind: "fuzzy"`.
|
|
35
|
+
- `config unset <key>`; `config set default_output` validates its value.
|
|
36
|
+
- `lead label list` and `file remote-link` (link a Google Drive file to a
|
|
37
|
+
deal, person, or organization).
|
|
38
|
+
- Animated terminal demo in the README; CONTRIBUTING guide (repo + docs site).
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- **audit output contract:** duplicate-orgs items now carry a `kind` field
|
|
43
|
+
(`exact` | `fuzzy` | `note`); fuzzy items use `names` (plural) and `score`.
|
|
44
|
+
The per-check `count` counts findings only (informational notes excluded)
|
|
45
|
+
and now includes fuzzy matches — consumers gating on duplicate-orgs counts
|
|
46
|
+
should account for the new kinds.
|
|
47
|
+
- Aborting a confirmation prompt with Ctrl-C or a closed stdin now exits
|
|
48
|
+
cleanly as "Aborted" instead of an internal error.
|
|
49
|
+
|
|
50
|
+
## [0.7.0] - 2026-06-05
|
|
51
|
+
|
|
52
|
+
### Added
|
|
53
|
+
|
|
54
|
+
- `default_output` profile config key is now honored: set
|
|
55
|
+
`pdcli config set default_output json` and every command (including
|
|
56
|
+
error output) defaults to that format when no `--output` flag is given.
|
|
57
|
+
An explicit flag still wins; invalid stored values fall back to the
|
|
58
|
+
table-in-TTY / JSON-when-piped default.
|
|
59
|
+
- Docs website redesigned with the "Clarity" design system: new landing
|
|
60
|
+
page (animated terminal, quickstart, feature grid, live CLI stats),
|
|
61
|
+
light-first theme with dark mode, custom header/footer, social cards,
|
|
62
|
+
and brand fonts (Plus Jakarta Sans + JetBrains Mono) across all pages.
|
|
63
|
+
- Homepage stats (version, command/topic/format counts) are generated
|
|
64
|
+
from the CLI manifest at docs-build time so they can never drift.
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- Command-reference, config, and exit-code tables on the docs site
|
|
69
|
+
rendered as raw pipe characters; all GFM tables now render properly.
|
|
70
|
+
- Documentation corrected against the implementation: autocomplete
|
|
71
|
+
shells, exit-code 64 semantics, JSON error-output trigger, rate-limit
|
|
72
|
+
header behavior, `--company`/`--api-token` flag scoping, and the
|
|
73
|
+
audit `--verbose` example.
|
|
74
|
+
- Accessibility on the docs site: theme-toggle labeling, decorative
|
|
75
|
+
terminal/SVG content hidden from screen readers, heading hierarchy,
|
|
76
|
+
and WCAG AA contrast for footer and small-text elements.
|
|
77
|
+
|
|
7
78
|
## [0.6.0] - 2026-06-04
|
|
8
79
|
|
|
9
80
|
### Added
|
|
@@ -16,7 +87,7 @@ All notable changes to `pdcli` are documented here. Format follows
|
|
|
16
87
|
`llms-small.txt`.
|
|
17
88
|
- Native tarballs (linux x64/arm64, macOS x64/arm64, Windows x64) attached
|
|
18
89
|
to every GitHub Release for non-npm installs.
|
|
19
|
-
- Shell completion docs (`pdcli autocomplete bash|zsh|
|
|
90
|
+
- Shell completion docs (`pdcli autocomplete bash|zsh|powershell`).
|
|
20
91
|
- `bin/dev.js` development runner (no manifest cache).
|
|
21
92
|
|
|
22
93
|
## [0.5.0] - 2026-06-04
|
|
@@ -100,7 +171,7 @@ All notable changes to `pdcli` are documented here. Format follows
|
|
|
100
171
|
pagination and `--limit`.
|
|
101
172
|
- Custom-field discovery and resolution: `field list/get` plus automatic
|
|
102
173
|
name/label resolution in table output.
|
|
103
|
-
- Global `search` (itemSearch).
|
|
174
|
+
- Global `search` (itemSearch) and `user me` (v1 users endpoint).
|
|
104
175
|
- Host-locked raw escape hatch: `pdcli api <METHOD> <path>` (v1 + v2).
|
|
105
176
|
- `doctor` diagnostics and `version`.
|
|
106
177
|
- Dual-API client: token-budget-aware 429 backoff, 429→403 hard stop,
|
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
[](https://codecov.io/gh/wavyx/pdcli)
|
|
5
5
|
[](https://www.npmjs.com/package/@wavyx/pdcli)
|
|
6
6
|
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="https://raw.githubusercontent.com/wavyx/pdcli/main/docs/demo.svg" alt="pdcli demo — running pipeline health and a winning deal update" width="720">
|
|
9
|
+
</p>
|
|
10
|
+
|
|
7
11
|
Command-line interface for [Pipedrive](https://www.pipedrive.com/) — fast, scriptable, built for terminals, CI pipelines, and AI agents.
|
|
8
12
|
|
|
9
13
|
> Not affiliated with or endorsed by Pipedrive.
|
|
@@ -74,9 +78,12 @@ pdcli person import people.csv # custom fields by name
|
|
|
74
78
|
```bash
|
|
75
79
|
pdcli metrics velocity --period 90d # the Sales Velocity Equation, in your terminal
|
|
76
80
|
pdcli funnel --pipeline 1 # stage-to-stage conversion
|
|
81
|
+
pdcli funnel --exact # mine real stage transitions per deal (one call each)
|
|
82
|
+
pdcli metrics coverage --target 500000 # weighted pipeline vs quota — the 3x coverage rule
|
|
77
83
|
pdcli pipeline health # per-stage value, weighted value, stale, no-next-step
|
|
78
84
|
pdcli audit # 11 data-hygiene checks (duplicates, stale, gaps)
|
|
79
85
|
pdcli audit --strict # exit 1 on must-severity findings — wire into CI
|
|
86
|
+
pdcli person merge 123 --into 456 # fold a duplicate into the survivor (deletes 123)
|
|
80
87
|
```
|
|
81
88
|
|
|
82
89
|
## Files, webhooks, backup
|
|
@@ -93,6 +100,7 @@ pdcli backup --dir ./pipedrive-backup # full account → JSON tree, --resume
|
|
|
93
100
|
```bash
|
|
94
101
|
pdcli api GET /api/v2/pipelines # raw, host-locked to YOUR domain
|
|
95
102
|
pdcli api POST /api/v2/deals --body '{"title":"Raw deal"}'
|
|
103
|
+
pdcli alias set wd "deal list --status won" # save a shortcut, then run: pdcli wd
|
|
96
104
|
pdcli doctor # diagnose auth/keychain/connectivity
|
|
97
105
|
```
|
|
98
106
|
|