@extenshi/cli 0.14.2 → 0.15.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/dist/cli.js +13 -6
- package/dist/cli.js.map +1 -1
- package/dist/compliance-review.d.ts +6 -2
- package/dist/compliance-review.d.ts.map +1 -1
- package/dist/compliance-review.js +33 -12
- package/dist/compliance-review.js.map +1 -1
- package/dist/cws-policies.d.ts.map +1 -1
- package/dist/cws-policies.js +5 -0
- package/dist/cws-policies.js.map +1 -1
- package/dist/expected-error.d.ts +34 -0
- package/dist/expected-error.d.ts.map +1 -0
- package/dist/expected-error.js +37 -0
- package/dist/expected-error.js.map +1 -0
- package/dist/listing.d.ts +25 -7
- package/dist/listing.d.ts.map +1 -1
- package/dist/listing.js +84 -24
- package/dist/listing.js.map +1 -1
- package/dist/review-catalog.d.ts +41 -1
- package/dist/review-catalog.d.ts.map +1 -1
- package/dist/review-catalog.js +95 -3
- package/dist/review-catalog.js.map +1 -1
- package/dist/review-checks.d.ts +7 -0
- package/dist/review-checks.d.ts.map +1 -1
- package/dist/review-checks.js +146 -12
- package/dist/review-checks.js.map +1 -1
- package/dist/review-risk.d.ts.map +1 -1
- package/dist/review-risk.js +21 -7
- package/dist/review-risk.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -34,6 +34,7 @@ import * as readline from 'node:readline/promises';
|
|
|
34
34
|
import { program } from 'commander';
|
|
35
35
|
import { checkAutoUpdate } from './auto-update.js';
|
|
36
36
|
import { CONFIG_PATH, loadConfig, readTelemetryPreference, saveConfig, saveTelemetryPreference, } from './config.js';
|
|
37
|
+
import { isExpectedError } from './expected-error.js';
|
|
37
38
|
import { runIconPreview } from './icon.js';
|
|
38
39
|
import { makeLoginBff } from './login-bff.js';
|
|
39
40
|
import { runBrowserLogin } from './login-flow.js';
|
|
@@ -75,12 +76,18 @@ async function runCommand(command, action) {
|
|
|
75
76
|
await flushTelemetry();
|
|
76
77
|
}
|
|
77
78
|
catch (err) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
// Classified once and threaded into both uses below, so the reported
|
|
80
|
+
// error_kind and the capture decision can never disagree about what failed.
|
|
81
|
+
const kind = classifyError(err);
|
|
82
|
+
// The failure count is always tracked, so how often callers hit each
|
|
83
|
+
// condition (incl. a bad path or a billing gate) stays visible.
|
|
84
|
+
captureEvent('cli_command_failed', { command, error_kind: kind, duration_ms: Date.now() - startedAt });
|
|
85
|
+
// …but only genuine faults are shipped as exceptions. Expected,
|
|
86
|
+
// user-actionable failures (a missing artifact, a bad key, an exhausted
|
|
87
|
+
// quota, a rate limit) print the message below and exit non-zero — they
|
|
88
|
+
// must not open self-reopening error-tracking issues.
|
|
89
|
+
if (!isExpectedError(err, kind))
|
|
90
|
+
captureError(err, { command });
|
|
84
91
|
const msg = err instanceof Error ? err.message : String(err);
|
|
85
92
|
// Multi-line messages (help blocks like MISSING_KEY_HELP) are printed
|
|
86
93
|
// as-is; bare single-line messages get the "Error: " prefix.
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EACN,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,UAAU,EACV,uBAAuB,GACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,GACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAEzG,MAAM,gBAAgB,GACrB,8EAA8E;IAC9E,IAAI;IACJ,8EAA8E;IAC9E,mFAAmF;IACnF,+BAA+B;IAC/B,IAAI;IACJ,yBAAyB;IACzB,IAAI;IACJ,qFAAqF;IACrF,sFAAsF;IACtF,iEAAiE,CAAA;AAElE,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,CAAwB,CAAA;AAE9D,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;AAEvD;;;;;;GAMG;AACH,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,MAA2B;IACrE,MAAM,2BAA2B,CAAC,kBAAkB,EAAE,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,YAAY,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;IACxE,IAAI,CAAC;QACJ,MAAM,MAAM,EAAE,CAAA;QACd,YAAY,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;QACvF,MAAM,cAAc,EAAE,CAAA;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,qEAAqE;QACrE,4EAA4E;QAC5E,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAC/B,qEAAqE;QACrE,gEAAgE;QAChE,YAAY,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;QACtG,gEAAgE;QAChE,wEAAwE;QACxE,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC;YAAE,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,sEAAsE;QACtE,6DAA6D;QAC7D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;QACzD,MAAM,cAAc,EAAE,CAAA;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;AACF,CAAC;AAED,OAAO;KACL,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAEtB,OAAO;KACL,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CACN,6BAA6B,EAC7B,2LAA2L,CAC3L;KACA,MAAM,CACN,iBAAiB,EACjB,uHAAuH,CACvH;KACA,MAAM,CAAC,WAAW,EAAE,gEAAgE,CAAC;KACrF,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACnE,MAAM,CACN,qBAAqB,EACrB,yIAAyI,CACzI;KACA,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,CAAC;KACrF,MAAM,CAAC,aAAa,EAAE,wEAAwE,CAAC;KAC/F,MAAM,CAAC,iBAAiB,EAAE,oEAAoE,CAAC;KAC/F,MAAM,CACN,iBAAiB,EACjB,oHAAoH,CACpH;KACA,MAAM,CACN,2BAA2B,EAC3B,6EAA6E,CAC7E;KACA,MAAM,CACN,6BAA6B,EAC7B,wKAAwK,CACxK;KACA,MAAM,CACN,kBAAkB,EAClB,yGAAyG;IACxG,8GAA8G;IAC9G,oEAAoE,CACrE;KACA,MAAM,CACN,KAAK,EACJ,QAAgB,EAChB,IAaC,EACA,EAAE;IACH,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE5C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClC,CAAC;QAED,oDAAoD;QACpD,MAAM,eAAe,EAAE,CAAA;QAEvB,IAAI,YAAuC,CAAA;QAC3C,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAClD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC3D,CAAC;YACD,YAAY,GAAG,GAAG,CAAA;QACnB,CAAC;QAED,gEAAgE;QAChE,4DAA4D;QAC5D,IAAI,MAAkC,CAAA;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAA;YAC9E,CAAC;YACD,MAAM,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACrC,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;QAE9E,MAAM,OAAO,CAAC;YACb,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU;YACV,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK;YAC1C,mEAAmE;YACnE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,YAAY;YACZ,UAAU,EAAE,GAAG,CAAC,OAAO;YACvB,iFAAiF;YACjF,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,IAAI,KAAK;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,IAAI,CAAC,OAAO;SACzB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,OAAO;KACL,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CACX,kFAAkF;IACjF,2FAA2F;IAC3F,4FAA4F;IAC5F,iDAAiD,CAClD;KACA,MAAM,CACN,iBAAiB,EACjB,8FAA8F,CAC9F;KACA,MAAM,CAAC,2BAA2B,EAAE,wDAAwD,CAAC;KAC7F,MAAM,CAAC,wBAAwB,EAAE,iDAAiD,CAAC;KACnF,MAAM,CAAC,YAAY,EAAE,kDAAkD,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CACN,qBAAqB,EACrB,iFAAiF,CACjF;KACA,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC1C,MAAM,CACN,KAAK,EACJ,QAAgB,EAChB,IAQC,EACA,EAAE;IACH,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACtC,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QACjC,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACzB,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;QACpD,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,WAA+B,CAAA;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC/D,CAAC;QACF,CAAC;QAED,MAAM,UAAU,CAAC;YAChB,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,MAAuD;YAC/D,mBAAmB,EAAE,IAAI,CAAC,eAAe;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;YACpC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW;SACX,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,OAAO;KACL,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CACX,qFAAqF;IACpF,gFAAgF;IAChF,wFAAwF;IACxF,yFAAyF;IACzF,qCAAqC,CACtC;KACA,MAAM,CACN,qBAAqB,EACrB,gHAAgH,CAChH;KACA,MAAM,CAAC,qBAAqB,EAAE,sEAAsE,CAAC;KACrG,MAAM,CACN,iBAAiB,EACjB,kHAAkH,CAClH;KACA,MAAM,CACN,kBAAkB,EAClB,yGAAyG;IACxG,yGAAyG;IACzG,+CAA+C,CAChD;KACA,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC5C,MAAM,CACN,KAAK,EACJ,QAAgB,EAChB,IAMC,EACA,EAAE;IACH,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC1C,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,QAAQ,GAAkD;YAC/D,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,MAAM;SACZ,CAAA;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,CAAC;QAED,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QACjC,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,aAAa,CAAC;YACnB,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACzE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;YAClC,KAAK;YACL,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;SAC9B,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,OAAO;KACL,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CACX,8FAA8F;IAC7F,4FAA4F;IAC5F,8FAA8F;IAC9F,sCAAsC,CACvC;KACA,MAAM,CACN,iBAAiB,EACjB,uHAAuH,CACvH;KACA,MAAM,CACN,eAAe,EACf,iJAAiJ,CACjJ;KACA,MAAM,CAAC,qBAAqB,EAAE,sEAAsE,CAAC;KACrG,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;KACnC,MAAM,CACN,KAAK,EACJ,QAA8B,EAC9B,IAA4E,EAC3E,EAAE;IACH,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,QAAgB,CAAA;YACpB,IAAI,CAAC;gBACJ,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,0BAA0B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnG,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClC,CAAC;QACD,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,OAAO,CAAC;YACb,IAAI;YACJ,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1F,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;SAC9B,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,MAAM,IAAI,GAAG,OAAO;KAClB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC,CAAA;AAE5E,IAAI;KACF,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CACX,mFAAmF;IAClF,iFAAiF;IACjF,yFAAyF,CAC1F;KACA,MAAM,CACN,eAAe,EACf,mFAAmF,CACnF;KACA,MAAM,CACN,iBAAiB,EACjB,kGAAkG,CAClG;KACA,MAAM,CAAC,WAAW,EAAE,4DAA4D,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAwD,EAAE,EAAE;IAC5F,MAAM,UAAU,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEH;;;;;;;GAOG;AACH,OAAO;KACL,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,gFAAgF,CAAC;KAC7F,MAAM,CAAC,CAAC,KAAc,EAAE,EAAE;IAC1B,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE1D,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAA;QACxC,uEAAuE;QACvE,oDAAoD;QACpD,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChD,OAAO,CAAC,GAAG,CACV,MAAM,KAAK,SAAS;YACnB,CAAC,CAAC,gFAAgF;YAClF,CAAC,CAAC,8BAA8B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CACzD,CAAA;QACD,IAAI,WAAW;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,6DAA6D,CAAC,CAAA;QACzF,OAAM;IACP,CAAC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/C,qEAAqE;QACrE,oEAAoE;QACpE,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,4BAA4B,CAAC,CAAA;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,uEAAuE;IACvE,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,0EAA0E;IAC1E,0DAA0D;IAC1D,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,KAAK,IAAI,CAAC,CAAA;QAC7D,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,cAAc,SAAS,GAAG,CAAC,CAAA;IACnF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/D,OAAO,CAAC,KAAK,CAAC,uCAAuC,WAAW,MAAM,MAAM,EAAE,CAAC,CAAA;QAC/E,OAAO,CAAC,KAAK,CAAC,0BAA0B,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAA;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;AACF,CAAC,CAAC,CAAA;AAEH;;;;GAIG;AACH,KAAK,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,CAAC,KAAK,CACZ,8FAA8F,CAC9F,CAAA;IACD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACrF,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACJ,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1D,CAAC;YAAS,CAAC;QACV,EAAE,CAAC,KAAK,EAAE,CAAA;IACX,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;AACjD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,MAAe;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEhC,MAAM,OAAO,GAAG,MAAM,eAAe,CACpC;QACC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1C,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QAClD,YAAY;QACZ,WAAW;QACX,KAAK;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,6EAA6E;QAC7E,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;KACxC,EACD;QACC,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;KACvB,CACD,CAAA;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YAChE,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,SAAS,GAAG,CAAC,CAAA;YACxG,OAAM;QACP,CAAC;QACD,KAAK,QAAQ;YACZ,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC1E,KAAK,SAAS;YACb,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;QAC3F,KAAK,WAAW;YACf,MAAM,IAAI,KAAK,CACd,2DAA2D;gBAC1D,mFAAmF,CACpF,CAAA;QACF,KAAK,aAAa;YACjB,oEAAoE;YACpE,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAA;YAC3F,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;YAC1B,OAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,mDAAmD,CAAC,CAAA;IACxF,CAAC;AACF,CAAC;AAED,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,OAAO,CAAC,wDAAwD,CAAC;KACjE,WAAW,CACX,8FAA8F;IAC7F,oGAAoG,CACrG;KACA,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,IAA2D,EAAE,EAAE;IAC7E,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACpC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;QACpC,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YACvE,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;YAChD,OAAM;QACP,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/B,OAAM;QACP,CAAC;QAED,wEAAwE;QACxE,0DAA0D;QAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACd,qFAAqF;gBACpF,sEAAsE,CACvE,CAAA;QACF,CAAC;QAED,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEH,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* `summarizeComplianceReview(body)` reader — the same additive-payload-key pattern
|
|
19
19
|
* the server-driven `compliance` / `riskAssessment` keys already use.
|
|
20
20
|
*/
|
|
21
|
+
import { type ListingSource } from './listing.js';
|
|
21
22
|
import { type ReviewFinding, type Verdict } from './review-checks.js';
|
|
22
23
|
/** Serializable shape folded into the scan body under `complianceReview`. */
|
|
23
24
|
export interface ComplianceReviewPayload {
|
|
@@ -49,8 +50,11 @@ export interface ListingReviewPayload {
|
|
|
49
50
|
available: boolean;
|
|
50
51
|
/** Present when available === false. */
|
|
51
52
|
reason?: string;
|
|
52
|
-
/**
|
|
53
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Where the text came from: `artifact` = the package's own; `draft` = overlaid
|
|
55
|
+
* with `--listing`; `catalog` = gaps filled from the PUBLISHED listing.
|
|
56
|
+
*/
|
|
57
|
+
source?: ListingSource;
|
|
54
58
|
/** The locale a store visitor sees by default. */
|
|
55
59
|
defaultLocale?: string;
|
|
56
60
|
/** Every locale whose text was read. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compliance-review.d.ts","sourceRoot":"","sources":["../src/compliance-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"compliance-review.d.ts","sourceRoot":"","sources":["../src/compliance-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAGN,KAAK,aAAa,EAGlB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAGN,KAAK,aAAa,EAIlB,KAAK,OAAO,EACZ,MAAM,oBAAoB,CAAA;AAE3B,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACvC,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAA;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACpC,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,uBAAuB,CAAA;IAC/B,OAAO,EAAE,oBAAoB,CAAA;CAC7B;AAED,MAAM,WAAW,4BAA4B;IAC5C,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAOD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,4BAA4B,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAmFjC"}
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
* `summarizeComplianceReview(body)` reader — the same additive-payload-key pattern
|
|
19
19
|
* the server-driven `compliance` / `riskAssessment` keys already use.
|
|
20
20
|
*/
|
|
21
|
-
import { assembleListing, listingCoverageNotes } from './listing.js';
|
|
21
|
+
import { assembleListing, listingCoverageNotes, listingFromCatalog, } from './listing.js';
|
|
22
22
|
import { LISTING_DICTIONARY_VERSION } from './listing-checks.js';
|
|
23
23
|
import { loadArtifact } from './review-archive.js';
|
|
24
|
-
import { fetchPriorManifest } from './review-catalog.js';
|
|
24
|
+
import { fetchCatalogListing, fetchPriorManifest } from './review-catalog.js';
|
|
25
25
|
import { runChecks, runListingOnlyChecks, summarize, } from './review-checks.js';
|
|
26
26
|
/** Empty (zeroed) counts — also the shape returned when the review can't run. */
|
|
27
27
|
function emptyCounts() {
|
|
@@ -65,22 +65,37 @@ export async function buildComplianceReview(opts) {
|
|
|
65
65
|
// supplied. Best-effort: a failure just downgrades to a note, never throws.
|
|
66
66
|
let priorManifest = null;
|
|
67
67
|
let diffNote;
|
|
68
|
+
let catalogListing = null;
|
|
69
|
+
let catalogReason;
|
|
68
70
|
if (opts.extensionId) {
|
|
71
|
+
const args = {
|
|
72
|
+
bffUrl: opts.bffUrl,
|
|
73
|
+
extensionId: opts.extensionId,
|
|
74
|
+
apiKey: opts.apiKey,
|
|
75
|
+
store: opts.store,
|
|
76
|
+
};
|
|
69
77
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
// Parallel, and independently fail-soft: the listing read must not be able
|
|
79
|
+
// to cost the caller the auto-disable diff, nor the other way round.
|
|
80
|
+
const [prior, published] = await Promise.all([
|
|
81
|
+
fetchPriorManifest(args).catch((err) => ({ manifest: null, reason: err.message })),
|
|
82
|
+
fetchCatalogListing(args).catch((err) => ({ listing: null, reason: err.message })),
|
|
83
|
+
]);
|
|
76
84
|
if (prior.manifest) {
|
|
77
85
|
priorManifest = prior.manifest;
|
|
78
86
|
}
|
|
79
87
|
else {
|
|
80
88
|
diffNote = `auto-disable diff skipped: ${prior.reason ?? 'last published manifest unavailable'}`;
|
|
81
89
|
}
|
|
90
|
+
catalogListing = published.listing ? listingFromCatalog(published.listing) : null;
|
|
91
|
+
if (!catalogListing)
|
|
92
|
+
catalogReason = published.reason;
|
|
82
93
|
}
|
|
83
94
|
catch (err) {
|
|
95
|
+
// Dead-code safety net: both reads carry their own .catch above, so nothing
|
|
96
|
+
// inside the try can reject today. The wording is deliberately the diff's,
|
|
97
|
+
// because that is the only failure this could plausibly regain — if a future
|
|
98
|
+
// refactor drops one of those .catch handlers, re-split this into two.
|
|
84
99
|
diffNote = `auto-disable diff skipped: ${err.message}`;
|
|
85
100
|
}
|
|
86
101
|
}
|
|
@@ -101,7 +116,7 @@ export async function buildComplianceReview(opts) {
|
|
|
101
116
|
counts: summary.counts,
|
|
102
117
|
findings,
|
|
103
118
|
},
|
|
104
|
-
listing: buildListingReview(manifest, files, opts.listingPath),
|
|
119
|
+
listing: buildListingReview(manifest, files, opts.listingPath, catalogListing, catalogReason),
|
|
105
120
|
};
|
|
106
121
|
}
|
|
107
122
|
/**
|
|
@@ -116,7 +131,7 @@ export async function buildComplianceReview(opts) {
|
|
|
116
131
|
* mistyped side-input is the worse trade. The reason is printed in the report's
|
|
117
132
|
* listing section, so it is stated rather than swallowed.
|
|
118
133
|
*/
|
|
119
|
-
function buildListingReview(manifest, files, listingPath) {
|
|
134
|
+
function buildListingReview(manifest, files, listingPath, catalog, catalogReason) {
|
|
120
135
|
const base = {
|
|
121
136
|
notes: [],
|
|
122
137
|
rulesVersion: LISTING_DICTIONARY_VERSION,
|
|
@@ -124,7 +139,7 @@ function buildListingReview(manifest, files, listingPath) {
|
|
|
124
139
|
};
|
|
125
140
|
let listing;
|
|
126
141
|
try {
|
|
127
|
-
listing = assembleListing(manifest, files, listingPath);
|
|
142
|
+
listing = assembleListing(manifest, files, listingPath, catalog);
|
|
128
143
|
}
|
|
129
144
|
catch (err) {
|
|
130
145
|
return { ...base, available: false, reason: err.message };
|
|
@@ -136,12 +151,18 @@ function buildListingReview(manifest, files, listingPath) {
|
|
|
136
151
|
const [note = 'no listing text found in the package'] = listingCoverageNotes(null, listingPath);
|
|
137
152
|
return { ...base, available: false, reason: note };
|
|
138
153
|
}
|
|
154
|
+
const notes = listingCoverageNotes(listing, listingPath, catalog != null);
|
|
155
|
+
// Why the published listing was NOT used earns a line of its own: a developer
|
|
156
|
+
// who passed --extension-id expecting the full description to be covered would
|
|
157
|
+
// otherwise read the plain "not in the package" note as the whole story.
|
|
158
|
+
if (catalogReason)
|
|
159
|
+
notes.push(`published listing not used: ${catalogReason}`);
|
|
139
160
|
return {
|
|
140
161
|
available: true,
|
|
141
162
|
source: listing.source,
|
|
142
163
|
defaultLocale: listing.defaultLocale,
|
|
143
164
|
locales: listing.locales.map((l) => l.locale),
|
|
144
|
-
notes
|
|
165
|
+
notes,
|
|
145
166
|
rulesVersion: LISTING_DICTIONARY_VERSION,
|
|
146
167
|
findings: runListingOnlyChecks(listing),
|
|
147
168
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compliance-review.js","sourceRoot":"","sources":["../src/compliance-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"compliance-review.js","sourceRoot":"","sources":["../src/compliance-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cws-policies.d.ts","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,SAAS;IACzB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAA;CACX;AAMD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaqB,CAAA;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAA;AAEpD,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"cws-policies.d.ts","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,SAAS;IACzB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAA;CACX;AAMD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaqB,CAAA;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAA;AAEpD,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAAgC,CAAA;AAqDjF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAU1E;AAED,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAiC,CAAA;AAEnF,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAAqC,CAAA"}
|
package/dist/cws-policies.js
CHANGED
|
@@ -75,6 +75,11 @@ const POLICY_BY_CHECK = {
|
|
|
75
75
|
'listing-testimonial-block': CWS_POLICIES.LISTING_REQUIREMENTS,
|
|
76
76
|
'listing-impossible-claim': CWS_POLICIES.UNEXPECTED_BEHAVIOR,
|
|
77
77
|
'listing-unverifiable-superlative': CWS_POLICIES.UNEXPECTED_BEHAVIOR,
|
|
78
|
+
// ── Privacy disclosure (iteration 2) ──────────────────────────────────────
|
|
79
|
+
// The checklist is about what the dashboard will make you declare, and the
|
|
80
|
+
// privacy-policy requirement is the half with teeth, so it maps to PRIVACY
|
|
81
|
+
// rather than PERMISSIONS.
|
|
82
|
+
'privacy-disclosure-required': CWS_POLICIES.PRIVACY,
|
|
78
83
|
// ── Process advisories, not policy rules ──────────────────────────────────
|
|
79
84
|
// Editing the listing re-triggers a full manual review. That is how review
|
|
80
85
|
// scheduling works, not something the developer can violate — so it has no
|
package/dist/cws-policies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cws-policies.js","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cws-policies.js","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which command failures are EXPECTED, user-actionable outcomes rather than
|
|
3
|
+
* bugs — the CLI mirror of the MCP surface's isExpectedError
|
|
4
|
+
* (tools/extenshi-mcp/src/tools.ts).
|
|
5
|
+
*
|
|
6
|
+
* Every command runs inside runCommand() (cli.ts), which used to ship EVERY
|
|
7
|
+
* thrown error to error tracking as a `$exception`. That turned routine user
|
|
8
|
+
* input into self-reopening error-tracking issues: on 2026-08-12 `extenshi
|
|
9
|
+
* review-risk <path>` pointed at a missing file filed one exception per run
|
|
10
|
+
* (classified `invalid_artifact`), which reads as a crash when it is only "that
|
|
11
|
+
* path does not exist".
|
|
12
|
+
*
|
|
13
|
+
* These kinds still emit `cli_command_failed` (the failure metric is kept) and
|
|
14
|
+
* still print an actionable message with a non-zero exit code — they are just
|
|
15
|
+
* NOT reported as exceptions.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* `invalid_artifact` — the artifact the user pointed at is missing / not a file /
|
|
19
|
+
* not a real package. On the CLI the path is the user's own argument, so a bad
|
|
20
|
+
* one is user error, not a fault. (The MCP set omits it: there the artifact can
|
|
21
|
+
* arrive as an agent-built payload, where a malformed one may be a real bug.)
|
|
22
|
+
* `auth` — missing / rejected API key. `quota` — exhausted free allowance.
|
|
23
|
+
* `rate_limit` — asked to slow down. All four are actionable conditions the
|
|
24
|
+
* command surfaces to the user, never code exceptions.
|
|
25
|
+
*/
|
|
26
|
+
export declare const EXPECTED_ERROR_KINDS: Set<string>;
|
|
27
|
+
/**
|
|
28
|
+
* True when a thrown error is an expected, user-facing condition rather than a
|
|
29
|
+
* bug worth an exception report. `kind` defaults to classifying `err`; pass one
|
|
30
|
+
* to reuse a classification the caller already made, so the reported
|
|
31
|
+
* `error_kind` and this decision can never disagree.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isExpectedError(err: unknown, kind?: string): boolean;
|
|
34
|
+
//# sourceMappingURL=expected-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expected-error.d.ts","sourceRoot":"","sources":["../src/expected-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,aAA+D,CAAA;AAEhG;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,MAA2B,GAAG,OAAO,CAExF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which command failures are EXPECTED, user-actionable outcomes rather than
|
|
3
|
+
* bugs — the CLI mirror of the MCP surface's isExpectedError
|
|
4
|
+
* (tools/extenshi-mcp/src/tools.ts).
|
|
5
|
+
*
|
|
6
|
+
* Every command runs inside runCommand() (cli.ts), which used to ship EVERY
|
|
7
|
+
* thrown error to error tracking as a `$exception`. That turned routine user
|
|
8
|
+
* input into self-reopening error-tracking issues: on 2026-08-12 `extenshi
|
|
9
|
+
* review-risk <path>` pointed at a missing file filed one exception per run
|
|
10
|
+
* (classified `invalid_artifact`), which reads as a crash when it is only "that
|
|
11
|
+
* path does not exist".
|
|
12
|
+
*
|
|
13
|
+
* These kinds still emit `cli_command_failed` (the failure metric is kept) and
|
|
14
|
+
* still print an actionable message with a non-zero exit code — they are just
|
|
15
|
+
* NOT reported as exceptions.
|
|
16
|
+
*/
|
|
17
|
+
import { classifyError } from './telemetry.js';
|
|
18
|
+
/**
|
|
19
|
+
* `invalid_artifact` — the artifact the user pointed at is missing / not a file /
|
|
20
|
+
* not a real package. On the CLI the path is the user's own argument, so a bad
|
|
21
|
+
* one is user error, not a fault. (The MCP set omits it: there the artifact can
|
|
22
|
+
* arrive as an agent-built payload, where a malformed one may be a real bug.)
|
|
23
|
+
* `auth` — missing / rejected API key. `quota` — exhausted free allowance.
|
|
24
|
+
* `rate_limit` — asked to slow down. All four are actionable conditions the
|
|
25
|
+
* command surfaces to the user, never code exceptions.
|
|
26
|
+
*/
|
|
27
|
+
export const EXPECTED_ERROR_KINDS = new Set(['invalid_artifact', 'auth', 'quota', 'rate_limit']);
|
|
28
|
+
/**
|
|
29
|
+
* True when a thrown error is an expected, user-facing condition rather than a
|
|
30
|
+
* bug worth an exception report. `kind` defaults to classifying `err`; pass one
|
|
31
|
+
* to reuse a classification the caller already made, so the reported
|
|
32
|
+
* `error_kind` and this decision can never disagree.
|
|
33
|
+
*/
|
|
34
|
+
export function isExpectedError(err, kind = classifyError(err)) {
|
|
35
|
+
return EXPECTED_ERROR_KINDS.has(kind);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=expected-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expected-error.js","sourceRoot":"","sources":["../src/expected-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;AAEhG;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY,EAAE,OAAe,aAAa,CAAC,GAAG,CAAC;IAC9E,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC"}
|
package/dist/listing.d.ts
CHANGED
|
@@ -19,14 +19,16 @@
|
|
|
19
19
|
* check the full description, and the only thing an unpublished
|
|
20
20
|
* extension has at all.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* catalog — the PUBLISHED listing, fetched by `--extension-id`. This is the
|
|
23
|
+
* only source other than a draft that has the full description,
|
|
24
|
+
* and the only one a developer gets without writing a file. It
|
|
25
|
+
* describes what is LIVE, not what is about to be published, so it
|
|
26
|
+
* only ever FILLS fields the other two left empty (see
|
|
27
|
+
* `mergeListings`) and the report has to say it was used.
|
|
26
28
|
*/
|
|
27
29
|
import type { FileMap, Manifest } from './review-checks.js';
|
|
28
30
|
/** Where a listing's text came from — reported so a developer can see what was checked. */
|
|
29
|
-
export type ListingSource = 'artifact' | 'draft';
|
|
31
|
+
export type ListingSource = 'artifact' | 'draft' | 'catalog';
|
|
30
32
|
/** One locale's listing text. Every field is optional: sources differ in coverage. */
|
|
31
33
|
export interface ListingLocale {
|
|
32
34
|
/** BCP-47-ish locale tag as the store spells it (`en`, `en_GB`, `ru`). */
|
|
@@ -88,6 +90,22 @@ export declare function parseListingFile(raw: unknown): Listing;
|
|
|
88
90
|
* the draft as a whole would silently drop every locale it does not mention.
|
|
89
91
|
*/
|
|
90
92
|
export declare function mergeListings(artifact: Listing | null, draft: Listing): Listing;
|
|
93
|
+
/**
|
|
94
|
+
* The published catalog listing as an overlay.
|
|
95
|
+
*
|
|
96
|
+
* `appliesToAllLocales` is the honest shape: the catalog holds ONE text per
|
|
97
|
+
* extension, not one per locale, so this text is not the `en` block of anything
|
|
98
|
+
* — it is whatever the store served. Marking it flat routes it through the
|
|
99
|
+
* fill-never-override branch of `mergeListings`, which is exactly the semantics
|
|
100
|
+
* this source needs: the package's localized name is what that locale actually
|
|
101
|
+
* shows and must win, while the full description — which no package can carry —
|
|
102
|
+
* lands wherever it is missing.
|
|
103
|
+
*/
|
|
104
|
+
export declare function listingFromCatalog(text: {
|
|
105
|
+
name?: string;
|
|
106
|
+
shortDescription?: string;
|
|
107
|
+
description?: string;
|
|
108
|
+
}): Listing | null;
|
|
91
109
|
/**
|
|
92
110
|
* Assemble the listing to check: the package's localized name/description,
|
|
93
111
|
* overlaid with the draft file when one was passed.
|
|
@@ -101,7 +119,7 @@ export declare function mergeListings(artifact: Listing | null, draft: Listing):
|
|
|
101
119
|
* listing passed. A package with no listing text at all resolves to null and
|
|
102
120
|
* the listing rules simply do not run.
|
|
103
121
|
*/
|
|
104
|
-
export declare function assembleListing(manifest: Manifest, files: FileMap, listingPath?: string): Listing | null;
|
|
122
|
+
export declare function assembleListing(manifest: Manifest, files: FileMap, listingPath?: string, catalog?: Listing | null): Listing | null;
|
|
105
123
|
/**
|
|
106
124
|
* What the listing rules covered, stated plainly.
|
|
107
125
|
*
|
|
@@ -114,5 +132,5 @@ export declare function assembleListing(manifest: Manifest, files: FileMap, list
|
|
|
114
132
|
* Returned as data (not printed) so the terminal, the Markdown report and the
|
|
115
133
|
* HTML report all state the same coverage instead of each inventing wording.
|
|
116
134
|
*/
|
|
117
|
-
export declare function listingCoverageNotes(listing: Listing | null, listingPath?: string): string[];
|
|
135
|
+
export declare function listingCoverageNotes(listing: Listing | null, listingPath?: string, usedCatalog?: boolean): string[];
|
|
118
136
|
//# sourceMappingURL=listing.d.ts.map
|
package/dist/listing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE3D,2FAA2F;AAC3F,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAA;AAE5D,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC7B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAmED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAgCtF;AAuBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA8BtD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAyD/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,OAAO,GAAG,IAAI,CAkBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,GACtB,OAAO,GAAG,IAAI,CAqChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,OAAO,GACnB,MAAM,EAAE,CAoBV"}
|
package/dist/listing.js
CHANGED
|
@@ -19,10 +19,12 @@
|
|
|
19
19
|
* check the full description, and the only thing an unpublished
|
|
20
20
|
* extension has at all.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* catalog — the PUBLISHED listing, fetched by `--extension-id`. This is the
|
|
23
|
+
* only source other than a draft that has the full description,
|
|
24
|
+
* and the only one a developer gets without writing a file. It
|
|
25
|
+
* describes what is LIVE, not what is about to be published, so it
|
|
26
|
+
* only ever FILLS fields the other two left empty (see
|
|
27
|
+
* `mergeListings`) and the report has to say it was used.
|
|
26
28
|
*/
|
|
27
29
|
import fs from 'node:fs';
|
|
28
30
|
const DEFAULT_LOCALE_FALLBACK = 'default';
|
|
@@ -192,6 +194,11 @@ export function parseListingFile(raw) {
|
|
|
192
194
|
* the draft as a whole would silently drop every locale it does not mention.
|
|
193
195
|
*/
|
|
194
196
|
export function mergeListings(artifact, draft) {
|
|
197
|
+
// NOTE: the result carries the OVERLAY's `source`, not a fixed label. A caller
|
|
198
|
+
// that stacks more than one overlay therefore ends up labelled by whichever it
|
|
199
|
+
// applied last, which is not always the strongest provenance — `assembleListing`
|
|
200
|
+
// re-stamps `draft` for exactly that reason. Set the label yourself after the
|
|
201
|
+
// call rather than inferring it from the return.
|
|
195
202
|
if (!artifact)
|
|
196
203
|
return draft;
|
|
197
204
|
const byLocale = new Map();
|
|
@@ -242,7 +249,38 @@ export function mergeListings(artifact, draft) {
|
|
|
242
249
|
: locales.some((l) => l.locale === artifact.defaultLocale)
|
|
243
250
|
? artifact.defaultLocale
|
|
244
251
|
: (locales[0]?.locale ?? draft.defaultLocale);
|
|
245
|
-
return { source:
|
|
252
|
+
return { source: draft.source, defaultLocale, locales };
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* The published catalog listing as an overlay.
|
|
256
|
+
*
|
|
257
|
+
* `appliesToAllLocales` is the honest shape: the catalog holds ONE text per
|
|
258
|
+
* extension, not one per locale, so this text is not the `en` block of anything
|
|
259
|
+
* — it is whatever the store served. Marking it flat routes it through the
|
|
260
|
+
* fill-never-override branch of `mergeListings`, which is exactly the semantics
|
|
261
|
+
* this source needs: the package's localized name is what that locale actually
|
|
262
|
+
* shows and must win, while the full description — which no package can carry —
|
|
263
|
+
* lands wherever it is missing.
|
|
264
|
+
*/
|
|
265
|
+
export function listingFromCatalog(text) {
|
|
266
|
+
// Trim at the boundary: a whitespace-only column is the catalog's idea of
|
|
267
|
+
// empty, and carrying it through would make the empty-field rules accuse the
|
|
268
|
+
// developer of a blank name that our own handling invented.
|
|
269
|
+
const clean = (v) => (v?.trim() ? v.trim() : undefined);
|
|
270
|
+
const entry = {
|
|
271
|
+
locale: DEFAULT_LOCALE_FALLBACK,
|
|
272
|
+
name: clean(text.name),
|
|
273
|
+
shortDescription: clean(text.shortDescription),
|
|
274
|
+
description: clean(text.description),
|
|
275
|
+
};
|
|
276
|
+
if (!hasText(entry))
|
|
277
|
+
return null;
|
|
278
|
+
return {
|
|
279
|
+
source: 'catalog',
|
|
280
|
+
defaultLocale: DEFAULT_LOCALE_FALLBACK,
|
|
281
|
+
locales: [entry],
|
|
282
|
+
appliesToAllLocales: true,
|
|
283
|
+
};
|
|
246
284
|
}
|
|
247
285
|
/**
|
|
248
286
|
* Assemble the listing to check: the package's localized name/description,
|
|
@@ -257,26 +295,43 @@ export function mergeListings(artifact, draft) {
|
|
|
257
295
|
* listing passed. A package with no listing text at all resolves to null and
|
|
258
296
|
* the listing rules simply do not run.
|
|
259
297
|
*/
|
|
260
|
-
export function assembleListing(manifest, files, listingPath) {
|
|
298
|
+
export function assembleListing(manifest, files, listingPath, catalog) {
|
|
261
299
|
const fromArtifact = listingFromArtifact(manifest, files);
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
300
|
+
let listing = fromArtifact;
|
|
301
|
+
if (listingPath) {
|
|
302
|
+
if (!fs.existsSync(listingPath)) {
|
|
303
|
+
throw new Error(`Listing file not found: ${listingPath}`);
|
|
304
|
+
}
|
|
305
|
+
let parsed;
|
|
306
|
+
try {
|
|
307
|
+
parsed = JSON.parse(fs.readFileSync(listingPath, 'utf8'));
|
|
308
|
+
}
|
|
309
|
+
catch (err) {
|
|
310
|
+
throw new Error(`Listing file is not valid JSON: ${err.message}`);
|
|
311
|
+
}
|
|
312
|
+
try {
|
|
313
|
+
listing = mergeListings(fromArtifact, parseListingFile(parsed));
|
|
314
|
+
}
|
|
315
|
+
catch (err) {
|
|
316
|
+
throw new Error(`${listingPath}: ${err.message}`);
|
|
317
|
+
}
|
|
276
318
|
}
|
|
277
|
-
|
|
278
|
-
|
|
319
|
+
// The catalog goes LAST, and that ordering is the whole design.
|
|
320
|
+
//
|
|
321
|
+
// Every overlay here fills rather than overrides, so whoever is applied first
|
|
322
|
+
// wins the field. The catalog holds what is PUBLISHED, while the package and
|
|
323
|
+
// the draft hold what is about to BE published — so the catalog must lose
|
|
324
|
+
// every field the other two supply, or a developer rewriting their description
|
|
325
|
+
// would get findings against the copy they are replacing. Applying it after the
|
|
326
|
+
// draft is what makes the draft win without needing override semantics that
|
|
327
|
+
// would also (wrongly) let a flat draft beat a localized package name.
|
|
328
|
+
if (catalog) {
|
|
329
|
+
const merged = mergeListings(listing, catalog);
|
|
330
|
+
// `mergeListings` labels the result with the overlay, but a draft is the
|
|
331
|
+
// stronger provenance and stays the honest answer when both were used.
|
|
332
|
+
listing = listingPath ? { ...merged, source: 'draft' } : merged;
|
|
279
333
|
}
|
|
334
|
+
return listing;
|
|
280
335
|
}
|
|
281
336
|
/**
|
|
282
337
|
* What the listing rules covered, stated plainly.
|
|
@@ -290,14 +345,19 @@ export function assembleListing(manifest, files, listingPath) {
|
|
|
290
345
|
* Returned as data (not printed) so the terminal, the Markdown report and the
|
|
291
346
|
* HTML report all state the same coverage instead of each inventing wording.
|
|
292
347
|
*/
|
|
293
|
-
export function listingCoverageNotes(listing, listingPath) {
|
|
348
|
+
export function listingCoverageNotes(listing, listingPath, usedCatalog) {
|
|
294
349
|
if (!listing) {
|
|
295
350
|
return ['no listing text found in the package — pass --listing <file> to check name and descriptions'];
|
|
296
351
|
}
|
|
297
352
|
const notes = [
|
|
298
353
|
`listing checked in ${listing.locales.length} locale(s): ${listing.locales.map((l) => l.locale).join(', ')}`,
|
|
299
354
|
];
|
|
300
|
-
if (
|
|
355
|
+
if (usedCatalog) {
|
|
356
|
+
// Said plainly because it changes what a finding MEANS: it may be about text
|
|
357
|
+
// the developer is in the middle of replacing, not about this upload.
|
|
358
|
+
notes.push('the full description came from your PUBLISHED catalog listing, not from this build — pass --listing <file> if you are changing it');
|
|
359
|
+
}
|
|
360
|
+
if (!listingPath && !usedCatalog && !listing.locales.some((l) => l.description)) {
|
|
301
361
|
notes.push('the full store description is not in the package — pass --listing <file> with it to check for keyword spam');
|
|
302
362
|
}
|
|
303
363
|
return notes;
|