@myapihq/cli 2.13.0 → 2.14.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.
|
@@ -56,14 +56,24 @@ export async function list(flags) {
|
|
|
56
56
|
// that explicitly, having been bitten by the opposite in CRM search.
|
|
57
57
|
const shown = page.items?.length ?? 0;
|
|
58
58
|
info(shown === page.total ? `${shown} item${shown === 1 ? '' : 's'}` : `${shown} of ${page.total} items`);
|
|
59
|
+
// The table cannot carry a signed URL, a selector and a navigation trace, so
|
|
60
|
+
// it flags what exists and --json carries it. Saying nothing about a
|
|
61
|
+
// screenshot would leave a picture nobody knows to look for.
|
|
59
62
|
printTable((page.items ?? []).map(i => ({
|
|
60
63
|
id: i.id,
|
|
61
64
|
kind: i.kind,
|
|
62
65
|
status: i.status,
|
|
63
66
|
body: i.body.length > 60 ? `${i.body.slice(0, 57)}…` : i.body,
|
|
64
67
|
route: i.route ?? i.page_url ?? '',
|
|
68
|
+
// A failed signature still means a picture is there — distinguish that
|
|
69
|
+
// from having none, rather than showing both as blank.
|
|
70
|
+
shot: i.screenshot_url ? 'yes' : (i.screenshot_asset_id ? 'unsigned' : ''),
|
|
65
71
|
created: i.created_at ? formatDate(i.created_at) : '',
|
|
66
72
|
})), { flags, empty: 'No feedback yet. Put a widget on a page: myapi feedback widget create <name>' });
|
|
73
|
+
const withShots = (page.items ?? []).filter(i => i.screenshot_url || i.screenshot_asset_id).length;
|
|
74
|
+
if (withShots > 0 && !flags.json) {
|
|
75
|
+
info(`${withShots} item${withShots === 1 ? ' has' : 's have'} a screenshot — \`--json\` carries the link (signed, ~1h).`);
|
|
76
|
+
}
|
|
67
77
|
if (page.has_more)
|
|
68
78
|
info('More available — raise --limit or pass --offset.');
|
|
69
79
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: my-feedback-api
|
|
3
|
-
version: 1.
|
|
3
|
+
version: 1.4.0
|
|
4
4
|
description: >
|
|
5
5
|
Collect feedback from the people using what you built. A public widget key lets a page submit without a credential; you list, filter and resolve the results. Kind is chosen by the person reporting, not inferred from their wording.
|
|
6
6
|
triggers: [feedback, bug report, user feedback, feature request, widget, support, complaints, praise]
|
|
7
|
-
checksum: sha256-
|
|
7
|
+
checksum: sha256-b8a6dbed6fa4aa393e538225ae611f5f5d8c4fbb1ffea7922e4a0286d984eca4
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# MyFeedbackAPI
|
|
@@ -52,9 +52,15 @@ A wrong key does not break the page: the response is `application/javascript`
|
|
|
52
52
|
carrying a JS comment that names the fix, so a typo cannot throw a syntax error
|
|
53
53
|
in your app.
|
|
54
54
|
|
|
55
|
-
**
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
**Screenshots are automatic — you do not build a capture step.** When someone
|
|
56
|
+
opens the feedback sheet the widget fetches a renderer on demand and attaches
|
|
57
|
+
the picture itself, as a second call after the report is saved. That ordering is
|
|
58
|
+
deliberate: an image that fails to render or upload never costs the report.
|
|
59
|
+
|
|
60
|
+
The image is **stored private in your org's assets**, and listing feedback
|
|
61
|
+
returns a **signed link good for about an hour** (`screenshot_url`). It is
|
|
62
|
+
signed on read, so it is not stable — re-list rather than persisting it. PNG,
|
|
63
|
+
JPEG or WebP up to 3 MB; over that the feedback is kept without the picture.
|
|
58
64
|
|
|
59
65
|
### Submitting by hand (only if you cannot use the script)
|
|
60
66
|
|
|
@@ -86,6 +92,11 @@ processed signal.
|
|
|
86
92
|
|
|
87
93
|
### Reading it back
|
|
88
94
|
|
|
95
|
+
Each item also carries what was pointed at (`target_selector`, `target_region`,
|
|
96
|
+
`target_context`), how they got there (`trace`), the `viewport`, and
|
|
97
|
+
`screenshot_url` when there is a picture. The table flags which items have one;
|
|
98
|
+
`--json` carries the link.
|
|
99
|
+
|
|
89
100
|
`myapi feedback list` is newest first, filterable by `--kind` and `--status`
|
|
90
101
|
(`open` | `resolved`), paged with `--limit` / `--offset`. **`total` is the
|
|
91
102
|
number of matches, not the size of the page**, and `has_more` flags a truncated
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myapihq/cli",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.14.0",
|
|
5
5
|
"description": "MyAPI command-line interface",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"lint:skills:strict": "node scripts/copy-skills.js && node scripts/lint-skills.js --strict"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@myapihq/sdk": "^2.
|
|
49
|
+
"@myapihq/sdk": "^2.14.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/node": "^25.6.0",
|