@extenshi/cli 0.24.0 → 0.26.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.
Files changed (97) hide show
  1. package/README.md +1 -1
  2. package/dist/amo-source.d.ts.map +1 -1
  3. package/dist/amo-source.js +5 -0
  4. package/dist/amo-source.js.map +1 -1
  5. package/dist/amowebstore-md.d.ts +39 -0
  6. package/dist/amowebstore-md.d.ts.map +1 -1
  7. package/dist/amowebstore-md.js +46 -4
  8. package/dist/amowebstore-md.js.map +1 -1
  9. package/dist/auto-update.d.ts +46 -3
  10. package/dist/auto-update.d.ts.map +1 -1
  11. package/dist/auto-update.js +94 -19
  12. package/dist/auto-update.js.map +1 -1
  13. package/dist/chromewebstore-md.d.ts +7 -0
  14. package/dist/chromewebstore-md.d.ts.map +1 -1
  15. package/dist/chromewebstore-md.js +20 -3
  16. package/dist/chromewebstore-md.js.map +1 -1
  17. package/dist/cli.js +33 -9
  18. package/dist/cli.js.map +1 -1
  19. package/dist/edgewebstore-md.d.ts +14 -0
  20. package/dist/edgewebstore-md.d.ts.map +1 -1
  21. package/dist/edgewebstore-md.js +20 -5
  22. package/dist/edgewebstore-md.js.map +1 -1
  23. package/dist/evidence-ingest.d.ts +67 -5
  24. package/dist/evidence-ingest.d.ts.map +1 -1
  25. package/dist/evidence-ingest.js +146 -21
  26. package/dist/evidence-ingest.js.map +1 -1
  27. package/dist/generate-listing.d.ts +33 -6
  28. package/dist/generate-listing.d.ts.map +1 -1
  29. package/dist/generate-listing.js +82 -19
  30. package/dist/generate-listing.js.map +1 -1
  31. package/dist/json-ld.d.ts +43 -5
  32. package/dist/json-ld.d.ts.map +1 -1
  33. package/dist/json-ld.js +53 -1
  34. package/dist/json-ld.js.map +1 -1
  35. package/dist/landing-sections.d.ts +21 -3
  36. package/dist/landing-sections.d.ts.map +1 -1
  37. package/dist/landing-sections.js +63 -17
  38. package/dist/landing-sections.js.map +1 -1
  39. package/dist/listing-data-flows.d.ts +140 -0
  40. package/dist/listing-data-flows.d.ts.map +1 -0
  41. package/dist/listing-data-flows.js +454 -0
  42. package/dist/listing-data-flows.js.map +1 -0
  43. package/dist/localize-parity.d.ts +26 -0
  44. package/dist/localize-parity.d.ts.map +1 -0
  45. package/dist/localize-parity.js +227 -0
  46. package/dist/localize-parity.js.map +1 -0
  47. package/dist/localize.d.ts +6 -0
  48. package/dist/localize.d.ts.map +1 -1
  49. package/dist/localize.js +4 -4
  50. package/dist/localize.js.map +1 -1
  51. package/dist/media.d.ts.map +1 -1
  52. package/dist/media.js +1 -2
  53. package/dist/media.js.map +1 -1
  54. package/dist/package.d.ts +13 -0
  55. package/dist/package.d.ts.map +1 -1
  56. package/dist/package.js +1 -1
  57. package/dist/package.js.map +1 -1
  58. package/dist/page.d.ts +16 -0
  59. package/dist/page.d.ts.map +1 -1
  60. package/dist/page.js +49 -4
  61. package/dist/page.js.map +1 -1
  62. package/dist/permission-justifications.d.ts +19 -1
  63. package/dist/permission-justifications.d.ts.map +1 -1
  64. package/dist/permission-justifications.js +129 -0
  65. package/dist/permission-justifications.js.map +1 -1
  66. package/dist/png.d.ts.map +1 -1
  67. package/dist/png.js +92 -34
  68. package/dist/png.js.map +1 -1
  69. package/dist/project.d.ts +17 -0
  70. package/dist/project.d.ts.map +1 -1
  71. package/dist/project.js +30 -0
  72. package/dist/project.js.map +1 -1
  73. package/dist/publish.d.ts.map +1 -1
  74. package/dist/publish.js +4 -23
  75. package/dist/publish.js.map +1 -1
  76. package/dist/review-checks.d.ts +40 -12
  77. package/dist/review-checks.d.ts.map +1 -1
  78. package/dist/review-checks.js +286 -24
  79. package/dist/review-checks.js.map +1 -1
  80. package/dist/review-render.d.ts +9 -1
  81. package/dist/review-render.d.ts.map +1 -1
  82. package/dist/review-render.js +13 -2
  83. package/dist/review-render.js.map +1 -1
  84. package/dist/review-risk.js +1 -1
  85. package/dist/review-risk.js.map +1 -1
  86. package/dist/screenshots.d.ts.map +1 -1
  87. package/dist/screenshots.js +2 -3
  88. package/dist/screenshots.js.map +1 -1
  89. package/dist/smoke.d.ts +54 -6
  90. package/dist/smoke.d.ts.map +1 -1
  91. package/dist/smoke.js +302 -26
  92. package/dist/smoke.js.map +1 -1
  93. package/dist/store-assets.d.ts +20 -3
  94. package/dist/store-assets.d.ts.map +1 -1
  95. package/dist/store-assets.js +13 -7
  96. package/dist/store-assets.js.map +1 -1
  97. package/package.json +2 -2
package/README.md CHANGED
@@ -49,7 +49,7 @@ Only missing, untracked, source-changed or target-edited keys appear in the requ
49
49
 
50
50
  Apply requires a reviewed bundle and rejects unknown keys, empty messages, changed placeholders, changed positional substitutions or dollar escapes, missing protected terms, stale source hashes, invalid locale paths and symlinked workspace files. It validates all requested locales before writing and checks localized manifest lengths plus new findings from the existing listing risk rules against the default locale. Manifest checks resolve case-insensitive message names, static named placeholders and dollar escapes before measuring visible text. Manifest strings that require runtime positional arguments are rejected; use static content there. Checks are heuristic and cannot certify translation accuracy or store acceptance. Complete translations are required for each applied locale; sparse browser fallback catalogs need their missing keys translated first.
51
51
 
52
- `check` prints JSON and exits with status 1 for missing, stale, unreviewed or invalid translations, including target locales configured but not created. This workflow covers extension message catalogs, including localized manifest text. Full store descriptions and screenshots need separate localization. RTL text is accepted for supported locales, but visual direction, overflow and interaction need testing in the target browser.
52
+ `check` prints JSON and exits with status 1 for missing, stale, unreviewed or invalid translations, including target locales configured but not created. A project that keeps its own translations (for example a script that writes every `messages.json`) has no `.extenshi-localization.json`, so nothing there was ever reviewed through prepare/apply. Without that file `check` runs in `parity-only` mode, or run `check ./extension --parity-only` yourself: it compares every locale with the default locale for missing or extra keys, changed `$NAME$`, `$1` and `$$` tokens and `placeholders` definitions, empty or malformed messages, reserved `@@` names, case-only duplicates, a missing `default_locale` directory and locale directories Chrome ignores, plus the same listing-risk and manifest length findings review mode reports; it ignores review state. See the localization guide for the rule list. The JSON reports `"mode"` and, when the mode was chosen automatically, a `note`. This workflow covers extension message catalogs, including localized manifest text. Full store descriptions and screenshots need separate localization. RTL text is accepted for supported locales, but visual direction, overflow and interaction need testing in the target browser.
53
53
 
54
54
 
55
55
  ### Standalone Pay
@@ -1 +1 @@
1
- {"version":3,"file":"amo-source.d.ts","sourceRoot":"","sources":["../src/amo-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAQH,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AA2BtF,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IAC1D,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAA;IACjB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qGAAqG;IACrG,SAAS,EAAE,cAAc,GAAG,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;IAChB,kGAAkG;IAClG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,YAAY,EAAE,mBAAmB,EAAE,CAAA;IACnC,0FAA0F;IAC1F,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,oFAAoF;IACpF,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC3B;AA4CD,UAAU,UAAU;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CAChB;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAgB1D;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAO/F;AAED,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACd;AA0XD,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsGnF"}
1
+ {"version":3,"file":"amo-source.d.ts","sourceRoot":"","sources":["../src/amo-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAQH,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AA2BtF,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IAC1D,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAA;IACjB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qGAAqG;IACrG,SAAS,EAAE,cAAc,GAAG,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;IAChB,kGAAkG;IAClG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,YAAY,EAAE,mBAAmB,EAAE,CAAA;IACnC,0FAA0F;IAC1F,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,oFAAoF;IACpF,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC3B;AA4CD,UAAU,UAAU;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CAChB;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAgB1D;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAO/F;AAED,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACd;AA0XD,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0GnF"}
@@ -523,6 +523,11 @@ export async function runAmoSource(opts) {
523
523
  ? verifyTarget(projectDir, opts.verifyPackage, rebuildCommands)
524
524
  : undefined;
525
525
  fs.mkdirSync(path.dirname(zipPath), { recursive: true });
526
+ // JSZip adds the parent folder entries itself and stamps them with the
527
+ // current time, not the entry date: two runs on either side of a 2-second
528
+ // DOS-time tick gave different bytes. Pin every entry, folders included.
529
+ for (const entry of Object.values(zip.files))
530
+ entry.date = archive.date;
526
531
  const buf = await zip.generateAsync({ type: 'nodebuffer', compression: 'DEFLATE', platform: 'UNIX' });
527
532
  fs.writeFileSync(zipPath, buf);
528
533
  const verification = verifyRel
@@ -1 +1 @@
1
- {"version":3,"file":"amo-source.js","sourceRoot":"","sources":["../src/amo-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amo-source.js","sourceRoot":"","sources":["../src/amo-source.ts"],"names":[],"mappings":"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"}
@@ -15,15 +15,27 @@
15
15
  * https://extensionworkshop.com/documentation/publish/source-code-submission/
16
16
  * - listing best practices (summary ≤250 chars, categories, support):
17
17
  * https://extensionworkshop.com/documentation/develop/create-an-appealing-listing/
18
+ * - categories: at most 3 (MAX_CATEGORIES in addons-server
19
+ * src/olympia/constants/base.py), and "The \"other\" category cannot be
20
+ * combined with another category" (src/olympia/addons/fields.py) —
21
+ * https://github.com/mozilla/addons-server; publisher's amo-listing.ts
22
+ * enforces the same two limits before upload
23
+ * - requires payment: "Listings must disclose when payment is required to
24
+ * enable any add-on functionality" —
25
+ * https://extensionworkshop.com/documentation/publish/add-on-policies/
26
+ * (`## Requires payment` is read by publisher's parseAmoMarkdown)
18
27
  */
19
28
  import type { MinifiedFileFinding } from './amo-source-detect.js';
20
29
  import type { Listing } from './listing.js';
21
30
  export declare const AMO_FILENAME = "AMO.md";
31
+ /** The closing guidance of "Notes to reviewer" (rendered as a `_…_` line). */
32
+ export declare const AMO_REVIEWER_GUIDANCE = "Test accounts, steps to reach gated/paid features, and a plain-language pointer to the \"Source code\" section above if any file needs it.";
22
33
  export interface AmoGeckoInfo {
23
34
  id?: string;
24
35
  isPlaceholder?: boolean;
25
36
  strictMinVersion?: string;
26
37
  dataCollectionRequired?: string[];
38
+ dataCollectionOptional?: string[];
27
39
  }
28
40
  export declare function renderAmoMd(input: {
29
41
  listing: Listing | null;
@@ -34,5 +46,32 @@ export declare function renderAmoMd(input: {
34
46
  singlePurpose?: string;
35
47
  gecko?: AmoGeckoInfo;
36
48
  minifiedFiles?: readonly MinifiedFileFinding[];
49
+ /** data_collection_permissions values AMO rejects, and data flows the declaration misses. */
50
+ dataCollectionReview?: {
51
+ problems: readonly string[];
52
+ questions: readonly string[];
53
+ };
54
+ /**
55
+ * `yes`/`no` are written as the `## Requires payment` value (publish sends
56
+ * it); `unknown` leaves guidance only. `paymentEvidence` is one sentence
57
+ * saying why.
58
+ */
59
+ requiresPayment?: 'yes' | 'no' | 'unknown';
60
+ paymentEvidence?: string;
61
+ /** Notes to reviewer derived from the package; the guidance line follows them. */
62
+ reviewerNotes?: string;
63
+ /**
64
+ * The `license` owner decision of the Dojo project bound to the working
65
+ * directory: `value` once decided. Omitted outside a bound project.
66
+ */
67
+ licenseDecision?: {
68
+ value?: string;
69
+ };
70
+ /**
71
+ * AMO's license slugs (@extenshi/publisher's AMO_EXTENSION_LICENSES); a decided
72
+ * license is written as the value only when it is one of them. Absent when the
73
+ * installed publisher predates the list.
74
+ */
75
+ amoLicenses?: readonly string[];
37
76
  }): string;
38
77
  //# sourceMappingURL=amowebstore-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"amowebstore-md.d.ts","sourceRoot":"","sources":["../src/amowebstore-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,YAAY,WAAW,CAAA;AAEpC,MAAM,WAAW,YAAY;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,cAAc,CAAC,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAC9C,GAAG,MAAM,CA4GT"}
1
+ {"version":3,"file":"amowebstore-md.d.ts","sourceRoot":"","sources":["../src/amowebstore-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,YAAY,WAAW,CAAA;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,+IACyG,CAAA;AAK3I,MAAM,WAAW,YAAY;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,cAAc,CAAC,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;IAC9C,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE;QAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IACpF;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAA;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,GAAG,MAAM,CA8IT"}
@@ -15,8 +15,20 @@
15
15
  * https://extensionworkshop.com/documentation/publish/source-code-submission/
16
16
  * - listing best practices (summary ≤250 chars, categories, support):
17
17
  * https://extensionworkshop.com/documentation/develop/create-an-appealing-listing/
18
+ * - categories: at most 3 (MAX_CATEGORIES in addons-server
19
+ * src/olympia/constants/base.py), and "The \"other\" category cannot be
20
+ * combined with another category" (src/olympia/addons/fields.py) —
21
+ * https://github.com/mozilla/addons-server; publisher's amo-listing.ts
22
+ * enforces the same two limits before upload
23
+ * - requires payment: "Listings must disclose when payment is required to
24
+ * enable any add-on functionality" —
25
+ * https://extensionworkshop.com/documentation/publish/add-on-policies/
26
+ * (`## Requires payment` is read by publisher's parseAmoMarkdown)
18
27
  */
19
28
  export const AMO_FILENAME = 'AMO.md';
29
+ /** The closing guidance of "Notes to reviewer" (rendered as a `_…_` line). */
30
+ export const AMO_REVIEWER_GUIDANCE = 'Test accounts, steps to reach gated/paid features, and a plain-language pointer to the "Source code" section above if any file needs it.';
31
+ const AMO_CUSTOM_LICENSE_DOCS = 'https://docs.extenshi.io/developers/choose-a-license#a-license-outside-this-list';
20
32
  export function renderAmoMd(input) {
21
33
  const loc = input.listing?.locales.find((l) => l.locale === input.listing?.defaultLocale) ?? input.listing?.locales[0];
22
34
  const justifications = input.justifications ?? [];
@@ -32,9 +44,35 @@ export function renderAmoMd(input) {
32
44
  const strictMinLine = gecko.strictMinVersion
33
45
  ? `\`${gecko.strictMinVersion}\``
34
46
  : 'not set — recommended so `web-ext lint` can flag manifest keys/APIs unavailable on older Firefox.';
35
- const dataCollectionLine = gecko.dataCollectionRequired && gecko.dataCollectionRequired.length > 0
47
+ const declaredLine = gecko.dataCollectionRequired && gecko.dataCollectionRequired.length > 0
36
48
  ? `\`${JSON.stringify(gecko.dataCollectionRequired)}\``
37
49
  : '**NOT SET** — required for new add-ons submitted to AMO since 2025-11-03. Set `data_collection_permissions.required` to `["none"]` if nothing is collected, or list the categories collected.';
50
+ const optionalLine = gecko.dataCollectionOptional && gecko.dataCollectionOptional.length > 0
51
+ ? `\n\nOptional: \`${JSON.stringify(gecko.dataCollectionOptional)}\``
52
+ : '';
53
+ const review = input.dataCollectionReview;
54
+ const reviewLines = [
55
+ ...(review?.problems ?? []).map((p) => `- **AMO rejects this:** ${p}`),
56
+ ...(review?.questions ?? []).map((q) => `- **Check:** ${q}`),
57
+ ];
58
+ const dataCollectionLine = `${declaredLine}${optionalLine}${reviewLines.length > 0 ? `\n\n${reviewLines.join('\n')}` : ''}`;
59
+ const paymentBlock = input.requiresPayment === 'yes'
60
+ ? `Yes\n\n_${input.paymentEvidence ? `${input.paymentEvidence} ` : ''}AMO requires the listing to disclose when payment is required to enable any feature; \`publish --listing AMO.md\` sets the add-on's requires-payment flag from this value. Change it to No only if nothing is paid._`
61
+ : input.requiresPayment === 'no'
62
+ ? `No\n\n_${input.paymentEvidence ?? 'Set with --payment not-used.'}_`
63
+ : '_Yes if any feature needs payment (AMO requires the listing to disclose it); otherwise leave this empty. No payment SDK was found in the package._';
64
+ // The decided value is written bare (publish sends it); everything else is a
65
+ // `_…_` guidance line, which publish reads as "no license".
66
+ const decidedLicense = input.licenseDecision?.value;
67
+ const licenseBlock = !input.licenseDecision
68
+ ? "_One of AMO's license slugs, exactly as spelled: e.g. all-rights-reserved, MIT, MPL-2.0 or GPL-3.0-only. AMO publishes the chosen license alongside the add-on._"
69
+ : !decidedLicense
70
+ ? '_**NOT SET** — the project owner has not decided `license` in Dojo. AMO needs one for the first listed version: decide it on the project page (agents propose it with `extenshi project propose-decision license <value>`) and run generate-listing again._'
71
+ : !input.amoLicenses
72
+ ? `_The project owner decided \`${decidedLicense}\`, but this installation's @extenshi/publisher predates AMO's license list. Reinstall @extenshi/cli, or write the value here if it is one of AMO's license slugs._`
73
+ : input.amoLicenses.includes(decidedLicense)
74
+ ? `${decidedLicense}\n\n_Decided by the project owner in Dojo; \`publish --listing AMO.md\` sends it to AMO._`
75
+ : `_The project owner decided \`${decidedLicense}\`, which is not one of AMO's license slugs (${input.amoLicenses.join(', ')}), so AMO would reject it here. AMO needs it as \`customLicense\` (name and en-US text) in a JSON listing for \`publish --listing\` — see ${AMO_CUSTOM_LICENSE_DOCS}._`;
38
76
  const minified = input.minifiedFiles ?? [];
39
77
  const sourceBlock = minified.length === 0
40
78
  ? '_No minified/bundled files detected (filename or size/pattern heuristic) — re-check after adding a bundler._'
@@ -87,11 +125,15 @@ ${sourceBlock}
87
125
 
88
126
  ## License
89
127
 
90
- _e.g. MIT, GPL-3.0 — AMO publishes the chosen license alongside the add-on._
128
+ ${licenseBlock}
91
129
 
92
130
  ## Categories
93
131
 
94
- _Up to 2, e.g. "Appearance", "Other"._
132
+ _Up to 3, one per line, e.g. "Appearance" — "Other" only on its own, AMO rejects it next to another category._
133
+
134
+ ## Requires payment
135
+
136
+ ${paymentBlock}
95
137
 
96
138
  ## Support
97
139
 
@@ -108,7 +150,7 @@ ${justBlock}
108
150
 
109
151
  ## Notes to reviewer
110
152
 
111
- _Test accounts, steps to reach gated/paid features, and a plain-language pointer to the "Source code" section above if any file needs it._
153
+ ${input.reviewerNotes ?? `_${AMO_REVIEWER_GUIDANCE}_`}
112
154
 
113
155
  ## Version history
114
156
 
@@ -1 +1 @@
1
- {"version":3,"file":"amowebstore-md.js","sourceRoot":"","sources":["../src/amowebstore-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAA;AASpC,MAAM,UAAU,WAAW,CAAC,KAM3B;IACA,MAAM,GAAG,GACR,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3G,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAA;IACjD,MAAM,SAAS,GACd,cAAc,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEhF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/B,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE;QAC5B,CAAC,CAAC,+KAA+K;QACjL,CAAC,CAAC,KAAK,CAAC,aAAa;YACpB,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,0FAA0F;YACzG,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;IAErB,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB;QAC3C,CAAC,CAAC,KAAK,KAAK,CAAC,gBAAgB,IAAI;QACjC,CAAC,CAAC,mGAAmG,CAAA;IAEtG,MAAM,kBAAkB,GACvB,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;QACtE,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI;QACvD,CAAC,CAAC,+LAA+L,CAAA;IAEnM,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAA;IAC1C,MAAM,WAAW,GAChB,QAAQ,CAAC,MAAM,KAAK,CAAC;QACpB,CAAC,CAAC,8GAA8G;QAChH,CAAC,CAAC,QAAQ;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,mBAAmB;YACpB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,+JAA+J;YAC9K,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,gOAAgO,CAChP;aACA,IAAI,CAAC,IAAI,CAAC,CAAA;IAEf,OAAO;;;;;;;;;;;;EAYN,GAAG,EAAE,IAAI,IAAI,EAAE;;;;;;EAMf,GAAG,EAAE,gBAAgB,IAAI,EAAE;;;;;;EAM3B,GAAG,EAAE,WAAW,IAAI,EAAE;;;;EAItB,WAAW;;;;EAIX,aAAa;;;;EAIb,kBAAkB;;;;EAIlB,WAAW;;;;;;;;;;;;;;;;;EAiBX,KAAK,CAAC,aAAa,IAAI,GAAG,EAAE,gBAAgB,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE;;;;EAI/D,SAAS;;;;;;;;;CASV,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"amowebstore-md.js","sourceRoot":"","sources":["../src/amowebstore-md.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,27 @@
4
4
  * On each run:
5
5
  * 1. Check ~/.extenshi/last-update-check.json (24h TTL).
6
6
  * 2. If stale, fetch https://registry.npmjs.org/@extenshi/cli/latest (2s timeout, fail-soft).
7
+ * Looked up once per process, however many callers ask.
7
8
  * 3. Compare current vs latest via semver.diff:
8
- * - major → FATAL: print upgrade message and exit 1
9
- * - minor/patch → warn to stderr, continue
9
+ * - major → FATAL for the commands that opt in (fatalOnMajor): print upgrade message and exit 1
10
+ * - otherwise → warn to stderr once per process, continue
11
+ *
12
+ * installUpdateChecks() (cli.ts) runs the warn-only check before EVERY command
13
+ * and appends outdatedCliHint() to commander's "unknown command/option" errors —
14
+ * a command missing from an old global install is the usual way to find out it
15
+ * is old.
10
16
  *
11
17
  * Fail-soft: any network error or parse failure is silently ignored so the
12
18
  * scan itself is never blocked by a registry outage.
13
19
  */
20
+ import type { Command } from 'commander';
21
+ export interface UpdateCache {
22
+ /** Last successful lookup (0: none yet). */
23
+ checkedAt: number;
24
+ latestVersion: string;
25
+ /** Last failed lookup — older CLIs ignore the field and keep their old behaviour. */
26
+ failedAt?: number;
27
+ }
14
28
  export type UpdateAction = 'none' | 'minor' | 'major';
15
29
  /**
16
30
  * Pure decision: given the installed and registry-latest versions, decide what
@@ -22,5 +36,34 @@ export type UpdateAction = 'none' | 'minor' | 'major';
22
36
  * rather than throwing, honoring the contract that the scan is never blocked.
23
37
  */
24
38
  export declare function decideUpdateAction(currentVersion: string, latestVersion: string): UpdateAction;
25
- export declare function checkAutoUpdate(): Promise<void>;
39
+ export interface UpdateCheckOptions {
40
+ /**
41
+ * Exit 1 when a newer MAJOR is out. On for the commands that call this
42
+ * themselves (default); the check cli.ts runs before every command passes
43
+ * false, so a local command like `telemetry` still runs and just warns.
44
+ */
45
+ fatalOnMajor?: boolean;
46
+ }
47
+ export declare function checkAutoUpdate({ fatalOnMajor }?: UpdateCheckOptions): Promise<void>;
48
+ /**
49
+ * Text to append to commander's "unknown command" / "unknown option" error.
50
+ * A global install of 0.6.0 answered `extenshi project …` with a bare
51
+ * "error: unknown command 'project'" and never said it was months behind the
52
+ * release that added the command.
53
+ *
54
+ * Synchronous on purpose: commander exits right after printing the error, so
55
+ * this only reads the last cached registry answer (any run of any command
56
+ * refreshes it). Returns '' for other errors, and when a fresh cache says this
57
+ * build is the latest — then the name really does not exist and commander's
58
+ * own "Did you mean" suggestion is the useful part.
59
+ */
60
+ export declare function outdatedCliHint(message: string, currentVersion?: string, cache?: UpdateCache | null, now?: number): string;
61
+ /**
62
+ * Wire both checks into the fully registered program — call right before
63
+ * parse(). The preAction hook on the root runs before every subcommand's
64
+ * action, including the ones project.ts / pay.ts register with their own
65
+ * runners; the output override is set on each command because a command built
66
+ * outside program.command() keeps its own output configuration.
67
+ */
68
+ export declare function installUpdateChecks(program: Command): void;
26
69
  //# sourceMappingURL=auto-update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4DH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAErD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,YAAY,CAK9F;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAqCrD"}
1
+ {"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBxC,MAAM,WAAW,WAAW;IAC3B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAqCD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAErD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,YAAY,CAK9F;AA6BD,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAsB,eAAe,CAAC,EAAE,YAAmB,EAAE,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BrG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,MAAM,EACf,cAAc,SAAsB,EACpC,KAAK,GAAE,WAAW,GAAG,IAAkB,EACvC,GAAG,SAAa,GACd,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS1D"}
@@ -4,9 +4,15 @@
4
4
  * On each run:
5
5
  * 1. Check ~/.extenshi/last-update-check.json (24h TTL).
6
6
  * 2. If stale, fetch https://registry.npmjs.org/@extenshi/cli/latest (2s timeout, fail-soft).
7
+ * Looked up once per process, however many callers ask.
7
8
  * 3. Compare current vs latest via semver.diff:
8
- * - major → FATAL: print upgrade message and exit 1
9
- * - minor/patch → warn to stderr, continue
9
+ * - major → FATAL for the commands that opt in (fatalOnMajor): print upgrade message and exit 1
10
+ * - otherwise → warn to stderr once per process, continue
11
+ *
12
+ * installUpdateChecks() (cli.ts) runs the warn-only check before EVERY command
13
+ * and appends outdatedCliHint() to commander's "unknown command/option" errors —
14
+ * a command missing from an old global install is the usual way to find out it
15
+ * is old.
10
16
  *
11
17
  * Fail-soft: any network error or parse failure is silently ignored so the
12
18
  * scan itself is never blocked by a registry outage.
@@ -20,6 +26,10 @@ const CACHE_PATH = path.join(os.homedir(), '.extenshi', 'last-update-check.json'
20
26
  const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
21
27
  const REGISTRY_URL = 'https://registry.npmjs.org/@extenshi/cli/latest';
22
28
  const REGISTRY_TIMEOUT_MS = 2000;
29
+ // After a failed lookup, wait this long before asking the registry again: the
30
+ // check runs before every command, and an offline machine must not wait out
31
+ // REGISTRY_TIMEOUT_MS on each one.
32
+ const FAILED_LOOKUP_BACKOFF_MS = 60 * 60 * 1000;
23
33
  function getCurrentVersion() {
24
34
  // Read version from this package's package.json
25
35
  try {
@@ -40,10 +50,14 @@ function readCache() {
40
50
  return null;
41
51
  }
42
52
  }
43
- function writeCache(latestVersion) {
53
+ function writeCache(cache) {
44
54
  try {
45
55
  fs.mkdirSync(path.dirname(CACHE_PATH), { recursive: true });
46
- fs.writeFileSync(CACHE_PATH, JSON.stringify({ checkedAt: Date.now(), latestVersion }));
56
+ // Every command may write now: temp file + rename, so two concurrent runs
57
+ // can never leave a torn JSON behind.
58
+ const temp = `${CACHE_PATH}.${process.pid}.tmp`;
59
+ fs.writeFileSync(temp, JSON.stringify(cache));
60
+ fs.renameSync(temp, CACHE_PATH);
47
61
  }
48
62
  catch {
49
63
  // Non-fatal
@@ -80,27 +94,44 @@ export function decideUpdateAction(currentVersion, latestVersion) {
80
94
  // semver.diff is direction-agnostic; safe to use only after the gt() guard above.
81
95
  return semver.diff(currentVersion, latestVersion) === 'major' ? 'major' : 'minor';
82
96
  }
83
- export async function checkAutoUpdate() {
84
- const currentVersion = getCurrentVersion();
85
- let latestVersion = null;
86
- const cache = readCache();
87
- if (cache && Date.now() - cache.checkedAt < CACHE_TTL_MS) {
97
+ let latestLookup;
98
+ let notified = false;
99
+ /**
100
+ * Registry-latest version from the 24h cache, else the registry. Memoized per
101
+ * process: the every-command check and a command's own call share one lookup,
102
+ * so an offline run pays the 2s timeout once, not twice — and a failed lookup
103
+ * backs off for an hour across runs.
104
+ */
105
+ function lookupLatestVersion() {
106
+ latestLookup ??= (async () => {
107
+ const cache = readCache();
108
+ const now = Date.now();
88
109
  // Cache is fresh — use cached value
89
- latestVersion = cache.latestVersion;
90
- }
91
- else {
110
+ if (cache && now - cache.checkedAt < CACHE_TTL_MS)
111
+ return cache.latestVersion;
112
+ // The registry just failed — don't wait out the timeout again yet
113
+ if (cache?.failedAt && now - cache.failedAt < FAILED_LOOKUP_BACKOFF_MS)
114
+ return null;
92
115
  // Cache is stale (or missing) — fetch from registry
93
- latestVersion = await fetchLatestVersion();
94
- if (latestVersion) {
95
- writeCache(latestVersion);
96
- }
97
- }
116
+ const latestVersion = await fetchLatestVersion();
117
+ if (latestVersion)
118
+ writeCache({ checkedAt: now, latestVersion });
119
+ // Keep the last known version: the unknown-command hint still reads it.
120
+ else
121
+ writeCache({ ...(cache ?? { checkedAt: 0, latestVersion: '' }), failedAt: now });
122
+ return latestVersion;
123
+ })();
124
+ return latestLookup;
125
+ }
126
+ export async function checkAutoUpdate({ fatalOnMajor = true } = {}) {
127
+ const currentVersion = getCurrentVersion();
128
+ const latestVersion = await lookupLatestVersion();
98
129
  if (!latestVersion)
99
130
  return; // couldn't determine latest — skip check
100
131
  const action = decideUpdateAction(currentVersion, latestVersion);
101
132
  if (action === 'none')
102
133
  return;
103
- if (action === 'major') {
134
+ if (action === 'major' && fatalOnMajor) {
104
135
  // Fatal: major version incompatibility
105
136
  console.error(`\n❌ extenshi CLI is outdated (major version mismatch).\n` +
106
137
  ` Current: v${currentVersion} Latest: v${latestVersion}\n\n` +
@@ -108,8 +139,52 @@ export async function checkAutoUpdate() {
108
139
  ` npx @extenshi/cli@latest …\n`);
109
140
  process.exit(1);
110
141
  }
111
- // minor or patch — warn and continue
142
+ // Warn and continue — once per process, so a command that also checks itself
143
+ // does not print the same nag twice.
144
+ if (notified)
145
+ return;
146
+ notified = true;
112
147
  process.stderr.write(`⚠️ extenshi CLI update available: v${currentVersion} → v${latestVersion}\n` +
113
148
  ` Run via npx to always use the latest: npx @extenshi/cli@latest …\n\n`);
114
149
  }
150
+ /**
151
+ * Text to append to commander's "unknown command" / "unknown option" error.
152
+ * A global install of 0.6.0 answered `extenshi project …` with a bare
153
+ * "error: unknown command 'project'" and never said it was months behind the
154
+ * release that added the command.
155
+ *
156
+ * Synchronous on purpose: commander exits right after printing the error, so
157
+ * this only reads the last cached registry answer (any run of any command
158
+ * refreshes it). Returns '' for other errors, and when a fresh cache says this
159
+ * build is the latest — then the name really does not exist and commander's
160
+ * own "Did you mean" suggestion is the useful part.
161
+ */
162
+ export function outdatedCliHint(message, currentVersion = getCurrentVersion(), cache = readCache(), now = Date.now()) {
163
+ if (!/\bunknown (command|option)\b/.test(message))
164
+ return '';
165
+ if (cache && decideUpdateAction(currentVersion, cache.latestVersion) !== 'none')
166
+ return (`This may exist in a newer release: you have v${currentVersion}, the latest is v${cache.latestVersion}.\n` +
167
+ 'Run the latest without installing: npx @extenshi/cli@latest …\n');
168
+ if (cache && now - cache.checkedAt < CACHE_TTL_MS)
169
+ return '';
170
+ return `You are running @extenshi/cli v${currentVersion}. If this was added in a newer release, run: npx @extenshi/cli@latest …\n`;
171
+ }
172
+ /**
173
+ * Wire both checks into the fully registered program — call right before
174
+ * parse(). The preAction hook on the root runs before every subcommand's
175
+ * action, including the ones project.ts / pay.ts register with their own
176
+ * runners; the output override is set on each command because a command built
177
+ * outside program.command() keeps its own output configuration.
178
+ */
179
+ export function installUpdateChecks(program) {
180
+ // Outside runCommand()'s try/catch and before every action: a throw here must
181
+ // never stop a command, whatever the check runs into.
182
+ program.hook('preAction', () => checkAutoUpdate({ fatalOnMajor: false }).catch(() => { }));
183
+ const visit = (command) => {
184
+ command.configureOutput({ outputError: (text, write) => write(text + outdatedCliHint(text)) });
185
+ for (const sub of command.commands)
186
+ visit(sub);
187
+ };
188
+ visit(program);
189
+ }
115
190
  //# sourceMappingURL=auto-update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,13 @@ export declare function renderChromeWebStoreMd(input: {
30
30
  dataType: string;
31
31
  permission: string;
32
32
  }[];
33
+ /**
34
+ * The Data usage block derived from the package's data flows
35
+ * (listing-data-flows.ts). Supersedes `privacy` when set; the scaffold
36
+ * starter, which has no package yet, leaves it out.
37
+ */
38
+ dataUsage?: string;
39
+ privacyPolicy?: 'required' | 'conditional' | 'none';
33
40
  singlePurpose?: string;
34
41
  }): string;
35
42
  /** Starter file for get_project_scaffold. Same headings the parser reads. */
@@ -1 +1 @@
1
- {"version":3,"file":"chromewebstore-md.d.ts","sourceRoot":"","sources":["../src/chromewebstore-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,uBAAuB,sBAAsB,CAAA;AAe1D;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB,CAgBA;AAED,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,cAAc,CAAC,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClE,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,MAAM,CAmDT;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAUtF"}
1
+ {"version":3,"file":"chromewebstore-md.d.ts","sourceRoot":"","sources":["../src/chromewebstore-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,uBAAuB,sBAAsB,CAAA;AAe1D;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB,CAgBA;AAED,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOnF;AAUD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,cAAc,CAAC,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClE,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,CAAA;IACnD,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB,GAAG,MAAM,CA+DT;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAUtF"}
@@ -53,6 +53,13 @@ export function listingDraftFromChromeWebStoreMd(md) {
53
53
  draft.description = parsed.description;
54
54
  return draft;
55
55
  }
56
+ // The privacy-policy and certification lines below restate the dashboard's own
57
+ // rules: a policy for any product that handles user data, even data kept only
58
+ // in storage.sync (User Data FAQ #14,
59
+ // https://developer.chrome.com/docs/webstore/program-policies/user-data-faq),
60
+ // and disclosures that must match it plus the Limited Use certification
61
+ // (https://developer.chrome.com/docs/webstore/cws-dashboard-privacy).
62
+ const DOC_LIMITED_USE = 'https://developer.chrome.com/docs/webstore/program-policies/limited-use';
56
63
  export function renderChromeWebStoreMd(input) {
57
64
  const loc = input.listing?.locales.find((l) => l.locale === input.listing?.defaultLocale) ?? input.listing?.locales[0];
58
65
  const justifications = input.justifications ?? [];
@@ -60,9 +67,19 @@ export function renderChromeWebStoreMd(input) {
60
67
  const justBlock = justifications.length === 0
61
68
  ? '_No sensitive permissions need a dashboard justification yet._'
62
69
  : justifications.map((j) => `### ${j.permission}\n\n${j.prompt}`).join('\n\n');
63
- const privacyBlock = privacy.length === 0
64
- ? '_No Privacy-practices questions follow from the current permissions._'
65
- : privacy.map((p) => `- **${p.dataType}** (from \`${p.permission}\`)`).join('\n');
70
+ const policyLine = input.privacyPolicy === 'required'
71
+ ? '\n\n**Privacy policy URL: required** — at least one data type above certainly applies, and Chrome Web Store requires a policy from any product that handles user data.'
72
+ : input.privacyPolicy === 'conditional'
73
+ ? '\n\nPrivacy policy URL: required as soon as any "only if" line above is true.'
74
+ : '';
75
+ const certifyLine = input.dataUsage !== undefined && input.privacyPolicy !== 'none'
76
+ ? `\n\n_Tick the Limited Use certifications only if they hold (${DOC_LIMITED_USE}); what you tick must match the privacy policy._`
77
+ : '';
78
+ const privacyBlock = input.dataUsage !== undefined
79
+ ? `${input.dataUsage}${policyLine}${certifyLine}`
80
+ : privacy.length === 0
81
+ ? '_No Privacy-practices questions follow from the current permissions._'
82
+ : privacy.map((p) => `- **${p.dataType}** (from \`${p.permission}\`)`).join('\n');
66
83
  return `# CHROMEWEBSTORE.md
67
84
 
68
85
  Listing copy, permission justifications, single purpose and privacy