@extenshi/cli 0.21.0 → 0.23.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 (128) hide show
  1. package/README.md +4 -0
  2. package/dist/amo-source-detect.d.ts +18 -0
  3. package/dist/amo-source-detect.d.ts.map +1 -0
  4. package/dist/amo-source-detect.js +41 -0
  5. package/dist/amo-source-detect.js.map +1 -0
  6. package/dist/amo-source.d.ts +41 -0
  7. package/dist/amo-source.d.ts.map +1 -0
  8. package/dist/amo-source.js +240 -0
  9. package/dist/amo-source.js.map +1 -0
  10. package/dist/amowebstore-md.d.ts +38 -0
  11. package/dist/amowebstore-md.d.ts.map +1 -0
  12. package/dist/amowebstore-md.js +118 -0
  13. package/dist/amowebstore-md.js.map +1 -0
  14. package/dist/auto-evidence.d.ts +154 -0
  15. package/dist/auto-evidence.d.ts.map +1 -0
  16. package/dist/auto-evidence.js +297 -0
  17. package/dist/auto-evidence.js.map +1 -0
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js +366 -11
  20. package/dist/cli.js.map +1 -1
  21. package/dist/domain.d.ts +40 -0
  22. package/dist/domain.d.ts.map +1 -0
  23. package/dist/domain.js +64 -0
  24. package/dist/domain.js.map +1 -0
  25. package/dist/edgewebstore-md.d.ts +26 -0
  26. package/dist/edgewebstore-md.d.ts.map +1 -0
  27. package/dist/edgewebstore-md.js +95 -0
  28. package/dist/edgewebstore-md.js.map +1 -0
  29. package/dist/evidence-ingest.d.ts +60 -0
  30. package/dist/evidence-ingest.d.ts.map +1 -0
  31. package/dist/evidence-ingest.js +141 -0
  32. package/dist/evidence-ingest.js.map +1 -0
  33. package/dist/extension-localization.d.ts +6 -1
  34. package/dist/extension-localization.d.ts.map +1 -1
  35. package/dist/extension-localization.js +4 -0
  36. package/dist/extension-localization.js.map +1 -1
  37. package/dist/firefox-rdp.d.ts +55 -0
  38. package/dist/firefox-rdp.d.ts.map +1 -0
  39. package/dist/firefox-rdp.js +203 -0
  40. package/dist/firefox-rdp.js.map +1 -0
  41. package/dist/gecko-id.d.ts +55 -0
  42. package/dist/gecko-id.d.ts.map +1 -0
  43. package/dist/gecko-id.js +132 -0
  44. package/dist/gecko-id.js.map +1 -0
  45. package/dist/generate-listing.d.ts +19 -8
  46. package/dist/generate-listing.d.ts.map +1 -1
  47. package/dist/generate-listing.js +66 -18
  48. package/dist/generate-listing.js.map +1 -1
  49. package/dist/icon.d.ts +18 -0
  50. package/dist/icon.d.ts.map +1 -1
  51. package/dist/icon.js +29 -20
  52. package/dist/icon.js.map +1 -1
  53. package/dist/landing-page.d.ts +22 -4
  54. package/dist/landing-page.d.ts.map +1 -1
  55. package/dist/landing-page.js +14 -11
  56. package/dist/landing-page.js.map +1 -1
  57. package/dist/landing-sections.d.ts +332 -0
  58. package/dist/landing-sections.d.ts.map +1 -0
  59. package/dist/landing-sections.js +1071 -0
  60. package/dist/landing-sections.js.map +1 -0
  61. package/dist/listing.d.ts +15 -0
  62. package/dist/listing.d.ts.map +1 -1
  63. package/dist/listing.js +1 -1
  64. package/dist/listing.js.map +1 -1
  65. package/dist/media.d.ts +42 -0
  66. package/dist/media.d.ts.map +1 -0
  67. package/dist/media.js +96 -0
  68. package/dist/media.js.map +1 -0
  69. package/dist/package.d.ts +163 -0
  70. package/dist/package.d.ts.map +1 -0
  71. package/dist/package.js +500 -0
  72. package/dist/package.js.map +1 -0
  73. package/dist/page.d.ts +110 -21
  74. package/dist/page.d.ts.map +1 -1
  75. package/dist/page.js +240 -10
  76. package/dist/page.js.map +1 -1
  77. package/dist/pay-contract.d.ts +42 -11
  78. package/dist/pay-contract.d.ts.map +1 -1
  79. package/dist/pay-contract.js +31 -0
  80. package/dist/pay-contract.js.map +1 -1
  81. package/dist/pay-test-cycle.d.ts +40 -0
  82. package/dist/pay-test-cycle.d.ts.map +1 -0
  83. package/dist/pay-test-cycle.js +207 -0
  84. package/dist/pay-test-cycle.js.map +1 -0
  85. package/dist/pay.d.ts +1 -1
  86. package/dist/pay.d.ts.map +1 -1
  87. package/dist/pay.js +1 -0
  88. package/dist/pay.js.map +1 -1
  89. package/dist/project.d.ts +69 -1
  90. package/dist/project.d.ts.map +1 -1
  91. package/dist/project.js +363 -54
  92. package/dist/project.js.map +1 -1
  93. package/dist/publish.d.ts +33 -0
  94. package/dist/publish.d.ts.map +1 -1
  95. package/dist/publish.js +113 -2
  96. package/dist/publish.js.map +1 -1
  97. package/dist/review-checks.d.ts +13 -0
  98. package/dist/review-checks.d.ts.map +1 -1
  99. package/dist/review-checks.js.map +1 -1
  100. package/dist/review-risk.d.ts +10 -1
  101. package/dist/review-risk.d.ts.map +1 -1
  102. package/dist/review-risk.js +1 -0
  103. package/dist/review-risk.js.map +1 -1
  104. package/dist/scan.d.ts +3 -2
  105. package/dist/scan.d.ts.map +1 -1
  106. package/dist/scan.js +4 -2
  107. package/dist/scan.js.map +1 -1
  108. package/dist/screenshots-scenes.d.ts +1383 -0
  109. package/dist/screenshots-scenes.d.ts.map +1 -0
  110. package/dist/screenshots-scenes.js +276 -0
  111. package/dist/screenshots-scenes.js.map +1 -0
  112. package/dist/screenshots.d.ts +143 -0
  113. package/dist/screenshots.d.ts.map +1 -0
  114. package/dist/screenshots.js +558 -0
  115. package/dist/screenshots.js.map +1 -0
  116. package/dist/smoke.d.ts +81 -0
  117. package/dist/smoke.d.ts.map +1 -0
  118. package/dist/smoke.js +491 -0
  119. package/dist/smoke.js.map +1 -0
  120. package/dist/store-assets.d.ts +139 -0
  121. package/dist/store-assets.d.ts.map +1 -0
  122. package/dist/store-assets.js +582 -0
  123. package/dist/store-assets.js.map +1 -0
  124. package/dist/zip.d.ts +57 -0
  125. package/dist/zip.d.ts.map +1 -0
  126. package/dist/zip.js +134 -0
  127. package/dist/zip.js.map +1 -0
  128. package/package.json +7 -6
@@ -1,18 +1,25 @@
1
1
  /**
2
- * `extenshi generate-listing <artifact>` — write CHROMEWEBSTORE.md from a live
3
- * package (ROADMAP it.2 T11).
2
+ * `extenshi generate-listing <artifact> [--store chrome|edge|firefox]` — write
3
+ * a per-store listing draft from a live package (ROADMAP it.2 T11; Edge/AMO
4
+ * added as part of the "Edge and Firefox are first-class" gap-analysis item).
4
5
  *
5
6
  * Pure transform: listing text (manifest + optional `--listing`) + the
6
7
  * justification checklist (it.1 T6) + the privacy-disclosure checklist (it.2 T5)
7
- * → markdown. The CLI only loads the artifact and writes the file. It does NOT
8
- * write listing / Privacy / visibility into Chrome Web Store.
8
+ * + (edge/firefox) store-specific manifest facts → markdown. The CLI only
9
+ * loads the artifact and writes the file. It does NOT write listing / Privacy
10
+ * / visibility into any store dashboard.
9
11
  *
10
- * `review-risk --listing CHROMEWEBSTORE.md` is the consumer — same draft as
11
- * listing.json, no third format.
12
+ * `review-risk --listing <file>` is the consumer for all three outputs — they
13
+ * share the Name / Short description / Description / Single purpose headings
14
+ * with CHROMEWEBSTORE.md, so `listingDraftFromChromeWebStoreMd` (keyed on
15
+ * headings, not filename) parses EDGE.md/AMO.md exactly the same way.
12
16
  */
13
17
  import fs from 'node:fs';
14
18
  import path from 'node:path';
19
+ import { detectMinifiedFiles } from './amo-source-detect.js';
20
+ import { AMO_FILENAME, renderAmoMd } from './amowebstore-md.js';
15
21
  import { CHROMEWEBSTORE_FILENAME, renderChromeWebStoreMd } from './chromewebstore-md.js';
22
+ import { EDGE_FILENAME, renderEdgeMd } from './edgewebstore-md.js';
16
23
  import { assembleListing } from './listing.js';
17
24
  import { buildJustificationChecklist } from './permission-justifications.js';
18
25
  import { loadArtifact } from './review-archive.js';
@@ -22,41 +29,82 @@ const MAX_ENTRY_BYTES = 4 * 1024 * 1024;
22
29
  const MAX_TOTAL_BYTES = 40 * 1024 * 1024;
23
30
  const TEXT_ENTRY_RE = /\.(?:m?js|cjs|html?|json)$/i;
24
31
  const SKIP_DIRS = new Set(['node_modules', '.git', '.yarn']);
32
+ // Placeholder gecko ids a scaffold/template might ship — same list
33
+ // store_compliance/firefox/src/checks/manifest-hygiene.ts treats as "not really set".
34
+ const PLACEHOLDER_GECKO_IDS = new Set(['extension@example.com', '@example', 'my-addon-id@example.org']);
35
+ function filenameForStore(store) {
36
+ if (store === 'edge')
37
+ return EDGE_FILENAME;
38
+ if (store === 'firefox')
39
+ return AMO_FILENAME;
40
+ return CHROMEWEBSTORE_FILENAME;
41
+ }
25
42
  /**
26
- * Assemble CHROMEWEBSTORE.md from an already-loaded package. No I/O except
43
+ * Assemble a listing draft from an already-loaded package. No I/O except
27
44
  * reading `--listing` through `assembleListing` when a path is passed.
28
45
  */
29
- export function generateChromeWebStoreMdFromPackage(input) {
46
+ export function generateListingMdFromPackage(input) {
47
+ const store = input.store ?? 'chrome';
30
48
  const listing = assembleListing(input.manifest, input.files, input.listingPath);
31
49
  const justifications = buildJustificationChecklist(input.manifest).map((row) => ({
32
50
  permission: row.permission,
33
51
  prompt: `${row.question}\n\nExample: ${row.example}`,
34
52
  }));
35
- const privacy = privacyPracticesForManifest(input.manifest);
36
53
  const loc = listing?.locales.find((l) => l.locale === listing.defaultLocale) ?? listing?.locales[0];
37
- return renderChromeWebStoreMd({
38
- listing,
39
- justifications,
40
- privacy,
41
- singlePurpose: loc?.shortDescription ?? loc?.name ?? '',
42
- });
54
+ const singlePurpose = loc?.shortDescription ?? loc?.name ?? '';
55
+ if (store === 'edge') {
56
+ const privacy = privacyPracticesForManifest(input.manifest);
57
+ return renderEdgeMd({
58
+ listing,
59
+ justifications,
60
+ needsPrivacyPolicy: privacy.length > 0,
61
+ singlePurpose,
62
+ });
63
+ }
64
+ if (store === 'firefox') {
65
+ const gecko = input.manifest.browser_specific_settings?.gecko;
66
+ const required = gecko?.data_collection_permissions?.required;
67
+ return renderAmoMd({
68
+ listing,
69
+ justifications,
70
+ singlePurpose,
71
+ gecko: {
72
+ id: gecko?.id,
73
+ isPlaceholder: gecko?.id ? PLACEHOLDER_GECKO_IDS.has(gecko.id.toLowerCase()) : false,
74
+ strictMinVersion: gecko?.strict_min_version,
75
+ dataCollectionRequired: Array.isArray(required)
76
+ ? required.filter((v) => typeof v === 'string')
77
+ : undefined,
78
+ },
79
+ minifiedFiles: detectMinifiedFiles(input.files),
80
+ });
81
+ }
82
+ const privacy = privacyPracticesForManifest(input.manifest);
83
+ return renderChromeWebStoreMd({ listing, justifications, privacy, singlePurpose });
84
+ }
85
+ /** @deprecated kept for existing callers/tests — same as `generateListingMdFromPackage` with `store: 'chrome'`. */
86
+ export function generateChromeWebStoreMdFromPackage(input) {
87
+ return generateListingMdFromPackage({ ...input, store: 'chrome' });
43
88
  }
44
89
  export async function runGenerateListing(opts) {
45
90
  if (!fs.existsSync(opts.artifactPath)) {
46
91
  throw new Error(`Artifact file not found: ${opts.artifactPath}`);
47
92
  }
93
+ const store = opts.store ?? 'chrome';
48
94
  const { manifest, files } = await loadPackage(opts.artifactPath);
49
- const markdown = generateChromeWebStoreMdFromPackage({
95
+ const markdown = generateListingMdFromPackage({
50
96
  manifest,
51
97
  files,
52
98
  listingPath: opts.listingPath,
99
+ store,
53
100
  });
54
- const outputPath = path.resolve(opts.outputPath ?? CHROMEWEBSTORE_FILENAME);
101
+ const outputPath = path.resolve(opts.outputPath ?? filenameForStore(store));
55
102
  fs.mkdirSync(path.dirname(outputPath), { recursive: true });
56
103
  fs.writeFileSync(outputPath, markdown, 'utf8');
104
+ const storeName = store === 'edge' ? 'Microsoft Edge Add-ons' : store === 'firefox' ? 'AMO' : 'Chrome Web Store';
57
105
  process.stdout.write(`Wrote ${outputPath}\n` +
58
106
  'This is the same listing draft `review-risk --listing` accepts. ' +
59
- 'Fill the Chrome Web Store dashboard by hand — the CLI does not write to the store.\n');
107
+ `Fill the ${storeName} dashboard by hand — the CLI does not write to the store.\n`);
60
108
  return outputPath;
61
109
  }
62
110
  async function loadPackage(artifactPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-listing.js","sourceRoot":"","sources":["../src/generate-listing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-listing.js","sourceRoot":"","sources":["../src/generate-listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAA+B,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAE7F,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACjC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AACvC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACxC,MAAM,aAAa,GAAG,6BAA6B,CAAA;AACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAI5D,mEAAmE;AACnE,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,uBAAuB,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAA;AAUvG,SAAS,gBAAgB,CAAC,KAAmB;IAC5C,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,aAAa,CAAA;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAA;IAC5C,OAAO,uBAAuB,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA2B;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAA;IACrC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/E,MAAM,cAAc,GAAG,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChF,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,gBAAgB,GAAG,CAAC,OAAO,EAAE;KACpD,CAAC,CAAC,CAAA;IACH,MAAM,GAAG,GAAG,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACnG,MAAM,aAAa,GAAG,GAAG,EAAE,gBAAgB,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,CAAA;IAE9D,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3D,OAAO,YAAY,CAAC;YACnB,OAAO;YACP,cAAc;YACd,kBAAkB,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;YACtC,aAAa;SACb,CAAC,CAAA;IACH,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAA;QAC7D,MAAM,QAAQ,GAAG,KAAK,EAAE,2BAA2B,EAAE,QAAQ,CAAA;QAC7D,OAAO,WAAW,CAAC;YAClB,OAAO;YACP,cAAc;YACd,aAAa;YACb,KAAK,EAAE;gBACN,EAAE,EAAE,KAAK,EAAE,EAAE;gBACb,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;gBACpF,gBAAgB,EAAE,KAAK,EAAE,kBAAkB;gBAC3C,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC9C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;oBAC/C,CAAC,CAAC,SAAS;aACZ;YACD,aAAa,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;SAC/C,CAAC,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3D,OAAO,sBAAsB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;AACnF,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,mCAAmC,CAAC,KAA2B;IAC9E,OAAO,4BAA4B,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;AACnE,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA4B;IACpE,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,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAA;IACpC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC7C,QAAQ;QACR,KAAK;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK;KACL,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,SAAS,GACd,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAA;IAC/F,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,SAAS,UAAU,IAAI;QACtB,kEAAkE;QAClE,YAAY,SAAS,6DAA6D,CACnF,CAAA;IACD,OAAO,UAAU,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,YAAoB;IAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAA;IAChE,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;IACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAA;IAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IACjC,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACd,yHAAyH,CACzH,CAAA;IACF,CAAC;IACD,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACJ,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAa,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oCAAqC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAY,IAAI,GAAG,EAAE,CAAA;IAChC,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,IAAI,UAAU,IAAI,eAAe;YAAE,OAAM;QACzC,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAChE,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,CAAA;gBACV,SAAQ;YACT,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA;YACnC,IAAI,IAAI,GAAG,eAAe;gBAAE,SAAQ;YACpC,IAAI,UAAU,GAAG,IAAI,GAAG,eAAe;gBAAE,OAAM;YAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe;gBAAE,SAAQ;YAC3C,UAAU,IAAI,IAAI,CAAC,MAAM,CAAA;YACzB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5E,CAAC;IACF,CAAC,CAAA;IACD,IAAI,CAAC,WAAW,CAAC,CAAA;IACjB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAC3B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QAAE,OAAO,MAAM,CAAA;IACxE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAY,CAAA;QACjC,IAAI,OAAoB,CAAA;QACxB,IAAI,CAAC;YACJ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;QAAC,MAAM,CAAC;YACR,SAAQ;QACT,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,GAAG,CAAC,WAAW,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBAClC,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,IAAI,CAAA;QACnE,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC"}
package/dist/icon.d.ts CHANGED
@@ -32,6 +32,24 @@ export declare const sanitizeSvgSource: typeof scrubSvgMarkup;
32
32
  export declare function displayNameFromFile(filePath: string): string;
33
33
  /** Resolve the HTML destination: explicit --output wins, else auto-named in cwd. */
34
34
  export declare function resolvePreviewPath(output: string | undefined, iconPath: string): string;
35
+ /** A validated icon/artwork source: sanitized SVG markup or signature-checked PNG bytes. */
36
+ export interface IconSource {
37
+ resolved: string;
38
+ isSvg: boolean;
39
+ /** PNG bytes (raster sources only). */
40
+ png?: Buffer;
41
+ /** Scrubbed SVG markup (SVG sources only). */
42
+ svgSource?: string;
43
+ dataUrl: string;
44
+ }
45
+ /**
46
+ * Read and validate an .svg / .png source. Shared by `icon preview` and
47
+ * `icon store-assets` so both refuse the same files for the same reasons.
48
+ */
49
+ export declare function readIconSource(iconPath: string, limits?: {
50
+ svgBytes: number;
51
+ pngBytes: number;
52
+ }): IconSource;
35
53
  /**
36
54
  * Command body. Exported for unit tests (call with `open: false`).
37
55
  * Throws plain Errors — runCommand() in cli.ts turns them into exit-1 output.
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../src/icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAM/C,MAAM,WAAW,qBAAqB;IACrC,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,uBAAiB,CAAA;AAE/C,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIvF;AAmBD;;;GAGG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAkDf"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../src/icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAM/C,MAAM,WAAW,qBAAqB;IACrC,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,uBAAiB,CAAA;AAE/C,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIvF;AAmBD,4FAA4F;AAC5F,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM;;;CAAuD,GAC3D,UAAU,CAqCZ;AAED;;;GAGG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
package/dist/icon.js CHANGED
@@ -59,10 +59,10 @@ function openInBrowser(target) {
59
59
  }
60
60
  }
61
61
  /**
62
- * Command body. Exported for unit tests (call with `open: false`).
63
- * Throws plain Errors — runCommand() in cli.ts turns them into exit-1 output.
62
+ * Read and validate an .svg / .png source. Shared by `icon preview` and
63
+ * `icon store-assets` so both refuse the same files for the same reasons.
64
64
  */
65
- export async function runIconPreview(iconPath, opts, cliVersion) {
65
+ export function readIconSource(iconPath, limits = { svgBytes: MAX_SVG_BYTES, pngBytes: MAX_PNG_BYTES }) {
66
66
  const resolved = path.resolve(process.cwd(), iconPath);
67
67
  if (!fs.existsSync(resolved)) {
68
68
  throw new Error(`Icon file not found: ${resolved}`);
@@ -72,34 +72,43 @@ export async function runIconPreview(iconPath, opts, cliVersion) {
72
72
  throw new Error(`Unsupported icon format "${ext || '(none)'}" — pass an .svg or .png file`);
73
73
  }
74
74
  const raw = fs.readFileSync(resolved);
75
- let dataUrl;
76
- let svgSource;
77
75
  if (ext === '.svg') {
78
- if (raw.length > MAX_SVG_BYTES) {
79
- throw new Error('SVG is larger than 512 KB — extension icons should be tiny');
76
+ if (raw.length > limits.svgBytes) {
77
+ throw new Error(`SVG is larger than ${Math.round(limits.svgBytes / 1024)} KB — extension icons should be tiny`);
80
78
  }
81
79
  const text = raw.toString('utf8');
82
80
  if (!text.includes('<svg')) {
83
81
  throw new Error('File does not contain an <svg> element');
84
82
  }
85
- svgSource = sanitizeSvgSource(text);
86
- dataUrl = `data:image/svg+xml;base64,${Buffer.from(svgSource, 'utf8').toString('base64')}`;
83
+ const svgSource = sanitizeSvgSource(text);
84
+ return {
85
+ resolved,
86
+ isSvg: true,
87
+ svgSource,
88
+ dataUrl: `data:image/svg+xml;base64,${Buffer.from(svgSource, 'utf8').toString('base64')}`,
89
+ };
87
90
  }
88
- else {
89
- if (raw.length > MAX_PNG_BYTES) {
90
- throw new Error('PNG is larger than 2 MB — extension icons should be tiny');
91
- }
92
- if (!raw.subarray(0, 8).equals(PNG_SIGNATURE)) {
93
- throw new Error('File does not look like a valid PNG (bad signature)');
94
- }
95
- dataUrl = `data:image/png;base64,${raw.toString('base64')}`;
91
+ if (raw.length > limits.pngBytes) {
92
+ throw new Error(`PNG is larger than ${Math.round(limits.pngBytes / 1024 / 1024)} MB — extension icons should be tiny`);
93
+ }
94
+ if (!raw.subarray(0, 8).equals(PNG_SIGNATURE)) {
95
+ throw new Error('File does not look like a valid PNG (bad signature)');
96
96
  }
97
+ return { resolved, isSvg: false, png: raw, dataUrl: `data:image/png;base64,${raw.toString('base64')}` };
98
+ }
99
+ /**
100
+ * Command body. Exported for unit tests (call with `open: false`).
101
+ * Throws plain Errors — runCommand() in cli.ts turns them into exit-1 output.
102
+ */
103
+ export async function runIconPreview(iconPath, opts, cliVersion) {
104
+ const source = readIconSource(iconPath);
105
+ const resolved = source.resolved;
97
106
  const html = renderIconPreviewHtml({
98
107
  name: opts.name?.trim() || displayNameFromFile(resolved),
99
108
  fileName: path.basename(resolved),
100
- dataUrl,
101
- isSvg: ext === '.svg',
102
- svgSource,
109
+ dataUrl: source.dataUrl,
110
+ isSvg: source.isSvg,
111
+ svgSource: source.svgSource,
103
112
  cliVersion,
104
113
  generatedAt: new Date(),
105
114
  });
package/dist/icon.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../src/icon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../src/icon.ts"],"names":[],"mappings":"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"}
@@ -19,14 +19,18 @@
19
19
  * tools/extenshi-mcp/src/landing-page.ts (copy for the published @extenshi/mcp)
20
20
  * tools/extenshi-cli/src/landing-page.ts (copy for the published @extenshi/cli)
21
21
  * The published packages cannot import workspace shared-types at runtime.
22
- * The copies differ from this file ONLY in the json-ld import specifier
22
+ * The copies differ from this file ONLY in the import specifiers
23
23
  * (`./json-ld.js` there, the package specifier here — see
24
24
  * module-specifiers.test.ts for why shared-types may not use relative ones).
25
+ * Schema v2 (sections, theme tokens, locales, SEO) lives in
26
+ * landing-sections.ts, copied the same way; `renderLandingForm` there is the
27
+ * entry point that dispatches v1 forms to buildLandingPage below.
25
28
  * `landing-page-sync.test.ts` in both packages fails when a copy drifts.
26
29
  * After editing, run:
27
- * sed '/^import/s#shared-types/#./#' shared-types/landing-page.ts > tools/extenshi-mcp/src/landing-page.ts
28
- * sed '/^import/s#shared-types/#./#' shared-types/landing-page.ts > tools/extenshi-cli/src/landing-page.ts
30
+ * sed "s#from 'shared-types\/#from './#" shared-types/landing-page.ts > tools/extenshi-mcp/src/landing-page.ts
31
+ * sed "s#from 'shared-types\/#from './#" shared-types/landing-page.ts > tools/extenshi-cli/src/landing-page.ts
29
32
  */
33
+ import type { LandingV2Fields } from './landing-sections.js';
30
34
  export type LandingBrowser = 'chrome' | 'firefox' | 'edge';
31
35
  export interface LandingFeature {
32
36
  title: string;
@@ -40,8 +44,10 @@ export interface LandingScreenshot {
40
44
  /**
41
45
  * Serializable form persisted as `page-generator` tool state (`{ form }`).
42
46
  * The optional fields were added later; rows saved before them still hydrate.
47
+ * The v2 fields (sections, tokens, seo, locales — landing-sections.ts) are read
48
+ * only when `schemaVersion` is 2; buildLandingPage below never looks at them.
43
49
  */
44
- export interface LandingForm {
50
+ export interface LandingForm extends LandingV2Fields {
45
51
  extensionName: string;
46
52
  tagline: string;
47
53
  description: string;
@@ -107,12 +113,24 @@ export declare function hydrateLandingForm(saved: {
107
113
  form?: Partial<LandingForm>;
108
114
  } | null | undefined, projectName?: string | null): LandingForm;
109
115
  export declare function landingFormToInput(form: LandingForm, logoSvg?: string): LandingPageInput;
116
+ /** Tolerates non-strings from hand-edited JSON or an old saved row. */
117
+ export declare function str(v: unknown): string;
118
+ export declare function esc(s: string): string;
119
+ export declare function safeHref(raw: string): string;
120
+ /** safeHref() for the support link only: http(s), or a validated mailto: address. */
121
+ export declare function safeSupportHref(raw: string): string;
122
+ /** Image src clamp: https, relative path, or raster data URI; '' when unsafe. */
123
+ export declare function safeImageSrc(raw: unknown): string;
124
+ export declare function canonicalUrl(raw: unknown): string;
125
+ /** Absolute https form of an image URL (for og:image / JSON-LD), or ''. */
126
+ export declare function absoluteImageUrl(raw: unknown, base: string): string;
110
127
  /**
111
128
  * Why an inline SVG logo is refused, or null when it is acceptable. A refusal
112
129
  * never throws: buildLandingPage falls back to logoUrl / the monogram, and the
113
130
  * MCP tool and CLI surface the reason instead of silently dropping the logo.
114
131
  */
115
132
  export declare function landingLogoSvgProblem(svg: string): string | null;
133
+ export declare const HEX_COLOR: RegExp;
116
134
  /**
117
135
  * Human-readable notes about input the page silently corrected (a link clamped
118
136
  * to "#", an unsafe image dropped, a refused logo). Same rules as the builder,
@@ -1 +1 @@
1
- {"version":3,"file":"landing-page.d.ts","sourceRoot":"","sources":["../src/landing-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC;AAED,2DAA2D;AAC3D,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAA;AAEV,eAAO,MAAM,oBAAoB,EAAE,WAgBlC,CAAA;AAED,MAAM,WAAW,gBAAgB;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EACzD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,WAAW,CAWb;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAgBxF;AA2FD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWhE;AAiBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA+CrE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAyJhE"}
1
+ {"version":3,"file":"landing-page.d.ts","sourceRoot":"","sources":["../src/landing-page.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,16 @@
19
19
  * tools/extenshi-mcp/src/landing-page.ts (copy for the published @extenshi/mcp)
20
20
  * tools/extenshi-cli/src/landing-page.ts (copy for the published @extenshi/cli)
21
21
  * The published packages cannot import workspace shared-types at runtime.
22
- * The copies differ from this file ONLY in the json-ld import specifier
22
+ * The copies differ from this file ONLY in the import specifiers
23
23
  * (`./json-ld.js` there, the package specifier here — see
24
24
  * module-specifiers.test.ts for why shared-types may not use relative ones).
25
+ * Schema v2 (sections, theme tokens, locales, SEO) lives in
26
+ * landing-sections.ts, copied the same way; `renderLandingForm` there is the
27
+ * entry point that dispatches v1 forms to buildLandingPage below.
25
28
  * `landing-page-sync.test.ts` in both packages fails when a copy drifts.
26
29
  * After editing, run:
27
- * sed '/^import/s#shared-types/#./#' shared-types/landing-page.ts > tools/extenshi-mcp/src/landing-page.ts
28
- * sed '/^import/s#shared-types/#./#' shared-types/landing-page.ts > tools/extenshi-cli/src/landing-page.ts
30
+ * sed "s#from 'shared-types\/#from './#" shared-types/landing-page.ts > tools/extenshi-mcp/src/landing-page.ts
31
+ * sed "s#from 'shared-types\/#from './#" shared-types/landing-page.ts > tools/extenshi-cli/src/landing-page.ts
29
32
  */
30
33
  import { jsonLdFromLanding, jsonLdScriptTag } from './json-ld.js';
31
34
  /** Input limits shared by the MCP tool and CLI schemas. */
@@ -98,10 +101,10 @@ export function landingFormToInput(form, logoSvg) {
98
101
  };
99
102
  }
100
103
  /** Tolerates non-strings from hand-edited JSON or an old saved row. */
101
- function str(v) {
104
+ export function str(v) {
102
105
  return typeof v === 'string' ? v.trim() : '';
103
106
  }
104
- function esc(s) {
107
+ export function esc(s) {
105
108
  return s
106
109
  .replaceAll('&', '&amp;')
107
110
  .replaceAll('<', '&lt;')
@@ -114,7 +117,7 @@ function esc(s) {
114
117
  // scheme, so a value like `javascript:alert(1)` would survive into the
115
118
  // downloaded page the developer publishes for their own users. Only http(s)
116
119
  // URLs are emitted verbatim; anything else collapses to "#".
117
- function safeHref(raw) {
120
+ export function safeHref(raw) {
118
121
  const u = raw.trim();
119
122
  return /^https?:\/\//i.test(u) ? esc(u) : '#';
120
123
  }
@@ -124,7 +127,7 @@ function safeHref(raw) {
124
127
  // `mailto:a@b.c%0d%0aBcc:x` and `mailto:javascript:` are both refused.
125
128
  const MAILTO = /^mailto:[A-Za-z0-9._+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+(?:\?subject=(?:[A-Za-z0-9._~-]|%(?![01][0-9a-f]|7f)[0-9a-f]{2})+)?$/i;
126
129
  /** safeHref() for the support link only: http(s), or a validated mailto: address. */
127
- function safeSupportHref(raw) {
130
+ export function safeSupportHref(raw) {
128
131
  const u = raw.trim();
129
132
  return MAILTO.test(u) ? esc(u) : safeHref(u);
130
133
  }
@@ -135,7 +138,7 @@ const DATA_IMAGE_URL = /^data:image\/(png|jpeg|gif|webp);base64,[A-Za-z0-9+/]+={
135
138
  // whitespace or quotes that could smuggle a second attribute.
136
139
  const RELATIVE_PATH = /^(?![a-z][a-z0-9+.-]*:)(?![/\\]{2})[^\s"'<>\\]+$/i;
137
140
  /** Image src clamp: https, relative path, or raster data URI; '' when unsafe. */
138
- function safeImageSrc(raw) {
141
+ export function safeImageSrc(raw) {
139
142
  const u = str(raw);
140
143
  if (!u)
141
144
  return '';
@@ -145,12 +148,12 @@ function safeImageSrc(raw) {
145
148
  return u;
146
149
  return '';
147
150
  }
148
- function canonicalUrl(raw) {
151
+ export function canonicalUrl(raw) {
149
152
  const u = str(raw);
150
153
  return HTTPS_URL.test(u) ? u : '';
151
154
  }
152
155
  /** Absolute https form of an image URL (for og:image / JSON-LD), or ''. */
153
- function absoluteImageUrl(raw, base) {
156
+ export function absoluteImageUrl(raw, base) {
154
157
  const u = str(raw);
155
158
  if (HTTPS_URL.test(u))
156
159
  return u;
@@ -212,7 +215,7 @@ const STORE_CTA_LABELS = {
212
215
  edge: 'Get for Edge',
213
216
  };
214
217
  const DEFAULT_ACCENT = '#5e5ce6';
215
- const HEX_COLOR = /^#[0-9a-fA-F]{3,8}$/;
218
+ export const HEX_COLOR = /^#[0-9a-fA-F]{3,8}$/;
216
219
  /**
217
220
  * Human-readable notes about input the page silently corrected (a link clamped
218
221
  * to "#", an unsafe image dropped, a refused logo). Same rules as the builder,
@@ -1 +1 @@
1
- {"version":3,"file":"landing-page.js","sourceRoot":"","sources":["../src/landing-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"landing-page.js","sourceRoot":"","sources":["../src/landing-page.ts"],"names":[],"mappings":"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"}