@extenshi/cli 0.14.2 → 0.15.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.
@@ -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
- /** `artifact` = the package's own text; `draft` = overlaid with --listing. */
53
- source?: 'artifact' | 'draft';
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;AAMH,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,8EAA8E;IAC9E,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC7B,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,CAqEjC"}
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
- const prior = await fetchPriorManifest({
71
- bffUrl: opts.bffUrl,
72
- extensionId: opts.extensionId,
73
- apiKey: opts.apiKey,
74
- store: opts.store,
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: listingCoverageNotes(listing, listingPath),
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":"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"}
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;AA+CjF;;;;;;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"}
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"}
@@ -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
@@ -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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"}
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
- * Fetching the published listing out of the catalog by `--extension-id` is the
23
- * third source; it needs a BFF read that does not exist yet, so it is not wired
24
- * here. The contract below already carries `source`, so adding it later is
25
- * additive for every consumer.
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
@@ -1 +1 @@
1
- {"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE3D,2FAA2F;AAC3F,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,CAAA;AAEhD,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,CAmD/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAkBxG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAa5F"}
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
- * Fetching the published listing out of the catalog by `--extension-id` is the
23
- * third source; it needs a BFF read that does not exist yet, so it is not wired
24
- * here. The contract below already carries `source`, so adding it later is
25
- * additive for every consumer.
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: 'draft', defaultLocale, locales };
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
- if (!listingPath)
263
- return fromArtifact;
264
- if (!fs.existsSync(listingPath)) {
265
- throw new Error(`Listing file not found: ${listingPath}`);
266
- }
267
- let parsed;
268
- try {
269
- parsed = JSON.parse(fs.readFileSync(listingPath, 'utf8'));
270
- }
271
- catch (err) {
272
- throw new Error(`Listing file is not valid JSON: ${err.message}`);
273
- }
274
- try {
275
- return mergeListings(fromArtifact, parseListingFile(parsed));
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
- catch (err) {
278
- throw new Error(`${listingPath}: ${err.message}`);
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 (!listingPath && !listing.locales.some((l) => l.description)) {
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;
@@ -1 +1 @@
1
- {"version":3,"file":"listing.js","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listing.js","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,13 @@
5
5
  * whether *this* update adds an auto-disabling permission versus what's live.
6
6
  *
7
7
  * Talks to the public BFF tRPC gateway:
8
- * GET {bffUrl}/api/trpc/store.getLatestPublishedManifest?input=<json>
8
+ * GET {bffUrl}/api/trpc/catalog.getLatestPublishedManifest?input=<json>
9
+ *
10
+ * The namespace is `catalog`, NOT `store`: the BFF mounts its `storeRouter`
11
+ * under the `catalog` key (routers/index.ts). Getting this wrong does not fail
12
+ * loudly — tRPC answers "No procedure found" with HTTP 404, which this module
13
+ * reports as "the deployed catalog API predates this feature", i.e. exactly the
14
+ * message that makes a permanently-broken path look like a pending rollout.
9
15
  *
10
16
  * The BFF read path may be gated behind a developer API key, so we send the
11
17
  * `ek_` key when the caller has one. Everything here is fail-soft: any problem
@@ -40,4 +46,38 @@ export interface FetchPriorManifestOptions {
40
46
  store?: 'CHROME' | 'FIREFOX' | 'EDGE';
41
47
  }
42
48
  export declare function fetchPriorManifest(opts: FetchPriorManifestOptions): Promise<PriorManifestResult>;
49
+ /** The published listing text, or null with a reason when it could not be had. */
50
+ export interface CatalogListingResult {
51
+ /** Null when unavailable — `reason` says why. */
52
+ listing: {
53
+ name?: string;
54
+ shortDescription?: string;
55
+ description?: string;
56
+ } | null;
57
+ reason?: string;
58
+ meta?: {
59
+ store?: string;
60
+ version?: string;
61
+ fetchedAt?: string;
62
+ };
63
+ }
64
+ /**
65
+ * Fetch the PUBLISHED store listing for an extension.
66
+ *
67
+ * This exists for one field: the full description. It lives in the developer
68
+ * dashboard and never in the packaged artifact, so without it the listing rules
69
+ * can only read the name and short description a package happens to carry — and
70
+ * the full description is where keyword spam overwhelmingly lives.
71
+ *
72
+ * What comes back is what is LIVE in the store, not what the caller is about to
73
+ * publish. Callers must treat it as filling gaps, never as overriding the text
74
+ * in the artifact or in `--listing`, and must say so in the report — otherwise a
75
+ * developer rewriting their description gets findings against the old copy.
76
+ *
77
+ * Fail-soft on every path, exactly like `fetchPriorManifest`: a gated read, an
78
+ * unknown extension, a catalog older than this CLI or a flaky network all
79
+ * resolve to `{ listing: null, reason }` so the listing rules still run over the
80
+ * package text.
81
+ */
82
+ export declare function fetchCatalogListing(opts: FetchPriorManifestOptions): Promise<CatalogListingResult>;
43
83
  //# sourceMappingURL=review-catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-catalog.d.ts","sourceRoot":"","sources":["../src/review-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,mBAAmB;IACnC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACxC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/D;AAED,MAAM,WAAW,yBAAyB;IACzC,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CACrC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiFtG"}
1
+ {"version":3,"file":"review-catalog.d.ts","sourceRoot":"","sources":["../src/review-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,WAAW,mBAAmB;IACnC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACxC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/D;AAED,MAAM,WAAW,yBAAyB;IACzC,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CACrC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiFtG;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACpC,iDAAiD;IACjD,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoFxG"}
@@ -5,7 +5,13 @@
5
5
  * whether *this* update adds an auto-disabling permission versus what's live.
6
6
  *
7
7
  * Talks to the public BFF tRPC gateway:
8
- * GET {bffUrl}/api/trpc/store.getLatestPublishedManifest?input=<json>
8
+ * GET {bffUrl}/api/trpc/catalog.getLatestPublishedManifest?input=<json>
9
+ *
10
+ * The namespace is `catalog`, NOT `store`: the BFF mounts its `storeRouter`
11
+ * under the `catalog` key (routers/index.ts). Getting this wrong does not fail
12
+ * loudly — tRPC answers "No procedure found" with HTTP 404, which this module
13
+ * reports as "the deployed catalog API predates this feature", i.e. exactly the
14
+ * message that makes a permanently-broken path look like a pending rollout.
9
15
  *
10
16
  * The BFF read path may be gated behind a developer API key, so we send the
11
17
  * `ek_` key when the caller has one. Everything here is fail-soft: any problem
@@ -25,7 +31,7 @@ export async function fetchPriorManifest(opts) {
25
31
  }
26
32
  const query = opts.store ? { extensionId: id, store: opts.store } : { extensionId: id };
27
33
  const input = encodeURIComponent(JSON.stringify(query));
28
- const url = `${opts.bffUrl}/api/trpc/store.getLatestPublishedManifest?input=${input}`;
34
+ const url = `${opts.bffUrl}/api/trpc/catalog.getLatestPublishedManifest?input=${input}`;
29
35
  let res;
30
36
  try {
31
37
  res = await fetch(url, {
@@ -47,7 +53,7 @@ export async function fetchPriorManifest(opts) {
47
53
  if (res.status === 404) {
48
54
  return {
49
55
  manifest: null,
50
- reason: 'the deployed catalog API predates this feature (no getLatestPublishedManifest) — update once it ships',
56
+ reason: 'the catalog has no getLatestPublishedManifest endpoint (HTTP 404) — update this CLI, and if it persists the BFF route has moved',
51
57
  };
52
58
  }
53
59
  if (!res.ok) {
@@ -79,4 +85,90 @@ export async function fetchPriorManifest(opts) {
79
85
  meta: { store: data.store, version: data.version, fetchedAt: data.fetchedAt },
80
86
  };
81
87
  }
88
+ /**
89
+ * Fetch the PUBLISHED store listing for an extension.
90
+ *
91
+ * This exists for one field: the full description. It lives in the developer
92
+ * dashboard and never in the packaged artifact, so without it the listing rules
93
+ * can only read the name and short description a package happens to carry — and
94
+ * the full description is where keyword spam overwhelmingly lives.
95
+ *
96
+ * What comes back is what is LIVE in the store, not what the caller is about to
97
+ * publish. Callers must treat it as filling gaps, never as overriding the text
98
+ * in the artifact or in `--listing`, and must say so in the report — otherwise a
99
+ * developer rewriting their description gets findings against the old copy.
100
+ *
101
+ * Fail-soft on every path, exactly like `fetchPriorManifest`: a gated read, an
102
+ * unknown extension, a catalog older than this CLI or a flaky network all
103
+ * resolve to `{ listing: null, reason }` so the listing rules still run over the
104
+ * package text.
105
+ */
106
+ export async function fetchCatalogListing(opts) {
107
+ const id = Number(opts.extensionId);
108
+ if (!Number.isInteger(id) || id <= 0) {
109
+ return {
110
+ listing: null,
111
+ reason: `invalid --extension-id "${opts.extensionId}" (expected a positive number)`,
112
+ };
113
+ }
114
+ const query = opts.store ? { extensionId: id, store: opts.store } : { extensionId: id };
115
+ const input = encodeURIComponent(JSON.stringify(query));
116
+ const url = `${opts.bffUrl}/api/trpc/catalog.getLatestListing?input=${input}`;
117
+ let res;
118
+ try {
119
+ res = await fetch(url, {
120
+ headers: opts.apiKey ? { authorization: `Bearer ${opts.apiKey}` } : {},
121
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
122
+ });
123
+ }
124
+ catch (err) {
125
+ const e = err;
126
+ const why = e.name === 'TimeoutError' ? `timed out after ${FETCH_TIMEOUT_MS / 1000}s` : e.message;
127
+ return { listing: null, reason: `could not reach the catalog (${why})` };
128
+ }
129
+ if (res.status === 401) {
130
+ return {
131
+ listing: null,
132
+ reason: 'the catalog listing read is gated — set EXTENSHI_API_KEY (run `extenshi login`) to enable it',
133
+ };
134
+ }
135
+ if (res.status === 404) {
136
+ return {
137
+ listing: null,
138
+ reason: 'the catalog has no getLatestListing endpoint (HTTP 404) — update this CLI, and if it persists the BFF route has moved',
139
+ };
140
+ }
141
+ if (!res.ok)
142
+ return { listing: null, reason: `catalog returned HTTP ${res.status}` };
143
+ let body;
144
+ try {
145
+ body = await res.json();
146
+ }
147
+ catch {
148
+ return { listing: null, reason: 'catalog returned a non-JSON response' };
149
+ }
150
+ const error = body.error;
151
+ if (error)
152
+ return { listing: null, reason: `catalog error: ${error.message ?? 'unknown'}` };
153
+ const data = body.result?.data;
154
+ if (!data || data.found !== true) {
155
+ const reason = data?.reason === 'no_snapshot'
156
+ ? 'this extension has no catalog snapshot yet'
157
+ : data?.reason === 'no_listing_text'
158
+ ? 'the catalog snapshot carries no listing text'
159
+ : 'the catalog returned no listing for this extension';
160
+ return { listing: null, reason };
161
+ }
162
+ // Trims as well as rejecting blanks, so the name says what it does: a
163
+ // whitespace-only column is the catalog's way of storing "empty".
164
+ const trimmed = (v) => v?.trim() || undefined;
165
+ return {
166
+ listing: {
167
+ name: trimmed(data.name),
168
+ shortDescription: trimmed(data.shortDescription),
169
+ description: trimmed(data.description),
170
+ },
171
+ meta: { store: data.store, version: data.version, fetchedAt: data.fetchedAt },
172
+ };
173
+ }
82
174
  //# sourceMappingURL=review-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-catalog.js","sourceRoot":"","sources":["../src/review-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-catalog.js","sourceRoot":"","sources":["../src/review-catalog.ts"],"names":[],"mappings":"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"}
@@ -141,6 +141,13 @@ export declare function checkServiceWorker(m: Manifest, files: FileMap): ReviewF
141
141
  export declare function checkActiveTabAdvisor(m: Manifest): ReviewFinding[];
142
142
  export declare const OFFLINE_CHECKED_PERMISSIONS: readonly string[];
143
143
  export declare function checkUnusedPermissions(m: Manifest, files: FileMap): ReviewFinding[];
144
+ /**
145
+ * What the store will ask this package to declare, derived from its manifest.
146
+ *
147
+ * Optional permissions count: the declaration covers what the extension can
148
+ * request, and an optional permission ships in the package and is grantable.
149
+ */
150
+ export declare function checkPrivacyDisclosure(manifest: Manifest): ReviewFinding[];
144
151
  export interface ReviewInputs {
145
152
  manifest: Manifest;
146
153
  files: FileMap;
@@ -1 +1 @@
1
- {"version":3,"file":"review-checks.d.ts","sourceRoot":"","sources":["../src/review-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAK3C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC7B,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAChB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wBAAwB;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC1D;AAED,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;IAClF,UAAU,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KACpB,CAAA;IACD,MAAM,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACzD,cAAc,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACjE,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACpD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACnD,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACpB;AAED,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAazC,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkChE,CAAA;AA2BD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKnD;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAE5D;AAED,0GAA0G;AAC1G,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAE7D;AAID,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAerD;AAID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAkBjE;AAID;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,aAAa,EAAE,CAe5D;AAID;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,aAAa,EAAE,CAoEjG;AA8ED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,CAwC/D;AASD,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,CAwFzE;AAgDD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,CAkD/E;AAYD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CA6BlE;AA2BD,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EA2BxD,CAAA;AA0DD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,CA6BnF;AAID,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,0EAA0E;IAC1E,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CACxB;AAuCD,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,EAAE,CAc9D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,aAAa,EAAE,CAE7E;AAoBD,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/B,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,CAKlE"}
1
+ {"version":3,"file":"review-checks.d.ts","sourceRoot":"","sources":["../src/review-checks.ts"],"names":[],"mappings":"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"}
@@ -698,6 +698,138 @@ export function checkUnusedPermissions(m, files) {
698
698
  citation: `Chrome extensions: declare permissions — ${DOC_PERMISSIONS}`,
699
699
  }));
700
700
  }
701
+ // ── Check: privacy-disclosure checklist (pre-publish) ────────────────────────
702
+ //
703
+ // Chrome Web Store makes you fill in "Privacy practices" at submission: which
704
+ // data types the extension handles, and a privacy policy URL. Which questions
705
+ // you get is driven by what your manifest asks for, so the answer is knowable
706
+ // from the package alone — before you ever open the dashboard.
707
+ //
708
+ // This is a REQUIREMENTS CHECKLIST, not an accusation. It says what the store
709
+ // will ask you to declare; it never claims you failed to declare it. That
710
+ // distinction is what makes it safe to run on a package with no listing at all,
711
+ // which is the case it exists for: an unpublished extension has no store
712
+ // declaration to compare against, so nothing else in this suite can help.
713
+ //
714
+ // The catalog-side counterpart deliberately does NOT do the mirror of this.
715
+ // Comparing a held permission against a published declaration and calling the
716
+ // difference "undeclared" is unsound: holding `history` does not prove
717
+ // collection — reading it on-device to render a UI obtains no copy — and
718
+ // measured on the live catalog that rule would fire on 2 282 extensions, 2 005
719
+ // of them merely `NO_COLLECTION` holders of the permission. The sound
720
+ // server-side check is the existing data-FLOW matcher, which needs evidence the
721
+ // data actually moves. See dags/.../declaration_matchers.py.
722
+ const DOC_PRIVACY_PRACTICES = 'https://developer.chrome.com/docs/webstore/cws-dashboard-privacy';
723
+ const PRIVACY_POLICY_GENERATOR = 'https://dojo.extenshi.io/privacy-policy-generator';
724
+ /**
725
+ * Deliberately absent, recorded so nobody re-opens them without the reason:
726
+ * `tabs`, `<all_urls>` and host permissions — held by most legitimate
727
+ * extensions; a checklist that tells everyone they handle everything is one
728
+ * nobody reads.
729
+ * `cookies` — a cookie is only auth data sometimes, and the permission is
730
+ * routinely used for non-identifying preferences. The catalog matcher makes
731
+ * the same call: it maps `cookies_api_exfiltration`, never plain access.
732
+ * `downloads` — sees file names the user chose to download, not a declarable
733
+ * category on its own.
734
+ * `browsingData` — CLEARS data, it does not read it. Nothing to declare.
735
+ * `webNavigation` — real browsing activity, but a common plumbing permission
736
+ * and the mapping is arguable; omitted under the same when-unsure rule the
737
+ * rest of this file follows.
738
+ */
739
+ const PERMISSION_DISCLOSURES = [
740
+ {
741
+ permission: 'history',
742
+ dataType: 'Web history',
743
+ reason: 'chrome.history reads the list of pages the user visited',
744
+ },
745
+ {
746
+ permission: 'topSites',
747
+ dataType: 'Web history',
748
+ reason: 'chrome.topSites returns most-visited sites, derived from history',
749
+ },
750
+ {
751
+ permission: 'geolocation',
752
+ dataType: 'Location',
753
+ reason: 'the geolocation API reads the physical location',
754
+ },
755
+ {
756
+ permission: 'clipboardRead',
757
+ dataType: 'User activity',
758
+ reason: 'reading the clipboard returns whatever the user last copied',
759
+ },
760
+ {
761
+ permission: 'identity',
762
+ dataType: 'Personally identifiable information',
763
+ reason: 'chrome.identity reads the signed-in account',
764
+ },
765
+ {
766
+ permission: 'identity.email',
767
+ dataType: 'Personally identifiable information',
768
+ reason: 'the account email address is PII',
769
+ },
770
+ {
771
+ permission: 'desktopCapture',
772
+ dataType: 'User activity',
773
+ reason: 'capturing the screen records whatever is on it',
774
+ },
775
+ {
776
+ permission: 'pageCapture',
777
+ dataType: 'Website content',
778
+ reason: 'chrome.pageCapture saves full page contents, including signed-in pages',
779
+ },
780
+ ];
781
+ /**
782
+ * What the store will ask this package to declare, derived from its manifest.
783
+ *
784
+ * Optional permissions count: the declaration covers what the extension can
785
+ * request, and an optional permission ships in the package and is grantable.
786
+ */
787
+ export function checkPrivacyDisclosure(manifest) {
788
+ const held = new Set();
789
+ for (const key of ['permissions', 'optional_permissions']) {
790
+ const raw = manifest[key];
791
+ if (!Array.isArray(raw))
792
+ continue;
793
+ for (const p of raw)
794
+ if (typeof p === 'string' && p.trim())
795
+ held.add(p.trim());
796
+ }
797
+ // Group by data type so a package asking for `history` AND `topSites` is told
798
+ // once what to declare, not twice — the developer ticks one box either way.
799
+ // No early return on an empty `held`: the `byType` check below is the only
800
+ // terminal condition, and a second guard saying the same thing can drift from
801
+ // it without anything noticing.
802
+ const byType = new Map();
803
+ for (const { permission, dataType, reason } of PERMISSION_DISCLOSURES) {
804
+ if (!held.has(permission))
805
+ continue;
806
+ const reasons = byType.get(dataType) ?? [];
807
+ reasons.push(`\`${permission}\` — ${reason}`);
808
+ byType.set(dataType, reasons);
809
+ }
810
+ if (byType.size === 0)
811
+ return [];
812
+ // Entries, not keys: the values travel with them, so there is no unreachable
813
+ // "key missing from its own map" branch to pretend to handle.
814
+ const grouped = [...byType.entries()].sort(([a], [b]) => a.localeCompare(b));
815
+ const types = grouped.map(([dataType]) => dataType);
816
+ return [
817
+ {
818
+ verdict: 'SLOW',
819
+ check: 'privacy-disclosure-required',
820
+ title: `Submission will require declaring ${types.length} data type${types.length === 1 ? '' : 's'} and a privacy policy`,
821
+ detail: 'Chrome Web Store derives the "Privacy practices" questions from your manifest, so these are ' +
822
+ 'settled before you open the dashboard. A submission whose declaration does not cover a permission ' +
823
+ 'it ships is a common rejection, and a privacy policy is mandatory once any of these apply — ' +
824
+ 'every published extension in our catalog has one.',
825
+ evidence: grouped.map(([dataType, reasons]) => `${dataType}: ${reasons.join('; ')}`).join(' | '),
826
+ recommendation: `Declare ${types.map((t) => `"${t}"`).join(', ')} under Privacy practices, and publish a privacy ` +
827
+ `policy URL that names the data you handle. Generate one at ${PRIVACY_POLICY_GENERATOR} if you ` +
828
+ 'do not have it yet. Dropping a permission you do not need removes its question entirely.',
829
+ citation: `Chrome Web Store: Privacy practices in the dashboard — ${DOC_PRIVACY_PRACTICES}`,
830
+ },
831
+ ];
832
+ }
701
833
  /**
702
834
  * Drop exact duplicates (same check + same evidence — a single bundled pattern
703
835
  * copied across N entry chunks would otherwise become N "REJECTED" rows) and cap
@@ -744,6 +876,7 @@ export function runChecks(input) {
744
876
  ...checkSlowReviewQueue(input.manifest),
745
877
  ...checkActiveTabAdvisor(input.manifest),
746
878
  ...checkUnusedPermissions(input.manifest, input.files),
879
+ ...checkPrivacyDisclosure(input.manifest),
747
880
  ...runListingChecks(input.listing ?? null),
748
881
  ...checkListingChangeReReview(),
749
882
  ]));
@@ -1 +1 @@
1
- {"version":3,"file":"review-checks.js","sourceRoot":"","sources":["../src/review-checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-checks.js","sourceRoot":"","sources":["../src/review-checks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-risk.d.ts","sourceRoot":"","sources":["../src/review-risk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAYH,MAAM,WAAW,iBAAiB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sFAAsF;IACtF,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8E1E"}
1
+ {"version":3,"file":"review-risk.d.ts","sourceRoot":"","sources":["../src/review-risk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAYH,MAAM,WAAW,iBAAiB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sFAAsF;IACtF,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6F1E"}
@@ -24,9 +24,9 @@
24
24
  */
25
25
  import fs from 'node:fs';
26
26
  import ora from 'ora';
27
- import { assembleListing, listingCoverageNotes } from './listing.js';
27
+ import { assembleListing, listingCoverageNotes, listingFromCatalog } from './listing.js';
28
28
  import { loadArtifact } from './review-archive.js';
29
- import { fetchPriorManifest } from './review-catalog.js';
29
+ import { fetchCatalogListing, fetchPriorManifest } from './review-catalog.js';
30
30
  import { runChecks, summarize } from './review-checks.js';
31
31
  import { renderReviewReport } from './review-render.js';
32
32
  const MAX_SIZE = 50 * 1024 * 1024; // 50 MB, matches `scan`
@@ -45,14 +45,23 @@ export async function runReviewRisk(opts) {
45
45
  // Optional manifest diff (check 3) — only when an extension id is supplied.
46
46
  let priorManifest = null;
47
47
  let diffNote = null;
48
+ // The published listing, used only to fill what the package and the draft
49
+ // cannot supply — in practice the full description.
50
+ let catalogListing = null;
48
51
  if (opts.extensionId) {
49
- const spinner = ora({ text: 'Fetching last published manifest…', stream: process.stderr }).start();
50
- const prior = await fetchPriorManifest({
52
+ const spinner = ora({
53
+ text: 'Fetching your published manifest and listing…',
54
+ stream: process.stderr,
55
+ }).start();
56
+ // One round trip each, in parallel: neither read depends on the other, and
57
+ // serialising them would double the only wait this command has.
58
+ const args = {
51
59
  bffUrl: opts.bffUrl,
52
60
  extensionId: opts.extensionId,
53
61
  apiKey: opts.apiKey,
54
62
  store: opts.store,
55
- });
63
+ };
64
+ const [prior, published] = await Promise.all([fetchPriorManifest(args), fetchCatalogListing(args)]);
56
65
  if (prior.manifest) {
57
66
  priorManifest = prior.manifest;
58
67
  const v = prior.meta?.version ? ` (published v${prior.meta.version})` : '';
@@ -62,12 +71,17 @@ export async function runReviewRisk(opts) {
62
71
  spinner.warn(`Auto-disable diff skipped: ${prior.reason}`);
63
72
  diffNote = prior.reason ?? 'last published manifest unavailable';
64
73
  }
74
+ catalogListing = published.listing ? listingFromCatalog(published.listing) : null;
75
+ if (!catalogListing && published.reason) {
76
+ process.stderr.write(`note: published listing not used: ${published.reason}\n`);
77
+ }
65
78
  }
66
79
  else {
67
80
  diffNote =
68
81
  'pass --extension-id <numeric catalog id> to diff against your last published manifest (auto-disable check)';
69
82
  }
70
- const listing = assembleListing(manifest, files, opts.listingPath);
83
+ const listing = assembleListing(manifest, files, opts.listingPath, catalogListing);
84
+ const usedCatalog = catalogListing !== null;
71
85
  const summary = summarize(runChecks({ manifest, files, priorManifest, listing }));
72
86
  if (opts.outputJson) {
73
87
  process.stdout.write(`${JSON.stringify({
@@ -97,7 +111,7 @@ export async function runReviewRisk(opts) {
97
111
  renderReviewReport(summary);
98
112
  if (diffNote)
99
113
  process.stderr.write(`note: ${diffNote}\n`);
100
- for (const note of listingCoverageNotes(listing, opts.listingPath))
114
+ for (const note of listingCoverageNotes(listing, opts.listingPath, usedCatalog))
101
115
  process.stderr.write(`note: ${note}\n`);
102
116
  }
103
117
  // Block a publish pipeline only on a definite rejection.
@@ -1 +1 @@
1
- {"version":3,"file":"review-risk.js","sourceRoot":"","sources":["../src/review-risk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAiB,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,wBAAwB;AAqB1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAuB;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9F,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;IAE5F,4EAA4E;IAC5E,IAAI,aAAa,GAAoB,IAAI,CAAA;IACzC,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAClC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QAClG,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAA;QACF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,aAAa,GAAG,KAAK,CAAC,QAAoB,CAAA;YAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1E,OAAO,CAAC,OAAO,CAAC,+CAA+C,CAAC,EAAE,CAAC,CAAA;QACpE,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YAC1D,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,qCAAqC,CAAA;QACjE,CAAC;IACF,CAAC;SAAM,CAAC;QACP,QAAQ;YACP,4GAA4G,CAAA;IAC9G,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IAEjF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,GAAG,IAAI,CAAC,SAAS,CAChB;YACC,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,eAAe,EAAE,QAAQ,CAAC,gBAAgB;YAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,qEAAqE;YACrE,uDAAuD;YACvD,OAAO,EAAE,OAAO;gBACf,CAAC,CAAC;oBACA,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC7C;gBACF,CAAC,CAAC,IAAI;YACP,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YACvD,eAAe,EAAE,QAAQ;SACzB,EACD,IAAI,EACJ,CAAC,CACD,IAAI,CACL,CAAA;IACF,CAAC;SAAM,CAAC;QACP,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC9D,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC3B,IAAI,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAA;QACzD,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"review-risk.js","sourceRoot":"","sources":["../src/review-risk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extenshi/cli",
3
- "version": "0.14.2",
3
+ "version": "0.15.0",
4
4
  "description": "Pre-publish security scanner for browser extensions",
5
5
  "type": "module",
6
6
  "publishConfig": {