@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.
- package/README.md +1 -1
- package/dist/amo-source.d.ts.map +1 -1
- package/dist/amo-source.js +5 -0
- package/dist/amo-source.js.map +1 -1
- package/dist/amowebstore-md.d.ts +39 -0
- package/dist/amowebstore-md.d.ts.map +1 -1
- package/dist/amowebstore-md.js +46 -4
- package/dist/amowebstore-md.js.map +1 -1
- package/dist/auto-update.d.ts +46 -3
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +94 -19
- package/dist/auto-update.js.map +1 -1
- package/dist/chromewebstore-md.d.ts +7 -0
- package/dist/chromewebstore-md.d.ts.map +1 -1
- package/dist/chromewebstore-md.js +20 -3
- package/dist/chromewebstore-md.js.map +1 -1
- package/dist/cli.js +33 -9
- package/dist/cli.js.map +1 -1
- package/dist/edgewebstore-md.d.ts +14 -0
- package/dist/edgewebstore-md.d.ts.map +1 -1
- package/dist/edgewebstore-md.js +20 -5
- package/dist/edgewebstore-md.js.map +1 -1
- package/dist/evidence-ingest.d.ts +67 -5
- package/dist/evidence-ingest.d.ts.map +1 -1
- package/dist/evidence-ingest.js +146 -21
- package/dist/evidence-ingest.js.map +1 -1
- package/dist/generate-listing.d.ts +33 -6
- package/dist/generate-listing.d.ts.map +1 -1
- package/dist/generate-listing.js +82 -19
- package/dist/generate-listing.js.map +1 -1
- package/dist/json-ld.d.ts +43 -5
- package/dist/json-ld.d.ts.map +1 -1
- package/dist/json-ld.js +53 -1
- package/dist/json-ld.js.map +1 -1
- package/dist/landing-sections.d.ts +21 -3
- package/dist/landing-sections.d.ts.map +1 -1
- package/dist/landing-sections.js +63 -17
- package/dist/landing-sections.js.map +1 -1
- package/dist/listing-data-flows.d.ts +140 -0
- package/dist/listing-data-flows.d.ts.map +1 -0
- package/dist/listing-data-flows.js +454 -0
- package/dist/listing-data-flows.js.map +1 -0
- package/dist/localize-parity.d.ts +26 -0
- package/dist/localize-parity.d.ts.map +1 -0
- package/dist/localize-parity.js +227 -0
- package/dist/localize-parity.js.map +1 -0
- package/dist/localize.d.ts +6 -0
- package/dist/localize.d.ts.map +1 -1
- package/dist/localize.js +4 -4
- package/dist/localize.js.map +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +1 -2
- package/dist/media.js.map +1 -1
- package/dist/package.d.ts +13 -0
- package/dist/package.d.ts.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/dist/page.d.ts +16 -0
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +49 -4
- package/dist/page.js.map +1 -1
- package/dist/permission-justifications.d.ts +19 -1
- package/dist/permission-justifications.d.ts.map +1 -1
- package/dist/permission-justifications.js +129 -0
- package/dist/permission-justifications.js.map +1 -1
- package/dist/png.d.ts.map +1 -1
- package/dist/png.js +92 -34
- package/dist/png.js.map +1 -1
- package/dist/project.d.ts +17 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +30 -0
- package/dist/project.js.map +1 -1
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +4 -23
- package/dist/publish.js.map +1 -1
- package/dist/review-checks.d.ts +40 -12
- package/dist/review-checks.d.ts.map +1 -1
- package/dist/review-checks.js +286 -24
- package/dist/review-checks.js.map +1 -1
- package/dist/review-render.d.ts +9 -1
- package/dist/review-render.d.ts.map +1 -1
- package/dist/review-render.js +13 -2
- package/dist/review-render.js.map +1 -1
- package/dist/review-risk.js +1 -1
- package/dist/review-risk.js.map +1 -1
- package/dist/screenshots.d.ts.map +1 -1
- package/dist/screenshots.js +2 -3
- package/dist/screenshots.js.map +1 -1
- package/dist/smoke.d.ts +54 -6
- package/dist/smoke.d.ts.map +1 -1
- package/dist/smoke.js +302 -26
- package/dist/smoke.js.map +1 -1
- package/dist/store-assets.d.ts +20 -3
- package/dist/store-assets.d.ts.map +1 -1
- package/dist/store-assets.js +13 -7
- package/dist/store-assets.js.map +1 -1
- package/package.json +2 -2
package/dist/page.d.ts
CHANGED
|
@@ -176,6 +176,20 @@ export declare function uploadLocalMedia(form: LandingForm, projectId: string, c
|
|
|
176
176
|
* the BFF renders it with the same builder — never the HTML file.
|
|
177
177
|
*/
|
|
178
178
|
export declare function runPagePublish(opts: PagePublishOptions): Promise<Record<string, unknown>>;
|
|
179
|
+
/**
|
|
180
|
+
* What a publish means for the visitor. "Live" only when the server fetched
|
|
181
|
+
* the public URL and got the stored bytes back (`live.status: verified`);
|
|
182
|
+
* a server without the check (older BFF) is reported as unverified.
|
|
183
|
+
*/
|
|
184
|
+
export declare function publishSummary(result: Record<string, unknown>, homepage: boolean): string;
|
|
185
|
+
/**
|
|
186
|
+
* `extenshi page verify`: fetch the registered homepage now and compare it with
|
|
187
|
+
* the hash recorded at publish (MCP verify_hosted_artifact kind=homepage).
|
|
188
|
+
* Exits non-zero unless it is `verified`.
|
|
189
|
+
*/
|
|
190
|
+
export declare function runPageVerify(opts: {
|
|
191
|
+
project: string;
|
|
192
|
+
}): Promise<Record<string, unknown>>;
|
|
179
193
|
export declare function runPageUnpublish(opts: {
|
|
180
194
|
project: string;
|
|
181
195
|
}): Promise<Record<string, unknown>>;
|
|
@@ -185,6 +199,8 @@ export interface PageDraftOptions {
|
|
|
185
199
|
chromeUrl?: string;
|
|
186
200
|
firefoxUrl?: string;
|
|
187
201
|
edgeUrl?: string;
|
|
202
|
+
/** Brand colour (#rrggbb), e.g. the Pay SDK theme.primaryColor — the server cannot see it. */
|
|
203
|
+
accent?: string;
|
|
188
204
|
}
|
|
189
205
|
/**
|
|
190
206
|
* `extenshi page draft`: a schema-v2 homepage drafted by the server from the
|
package/dist/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAGN,KAAK,WAAW,EAIhB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEN,KAAK,cAAc,EAInB,MAAM,uBAAuB,CAAA;AAiB9B,mFAAmF;AACnF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC9B,CAAA;AAEF,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAgBD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAoB3D;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAMxE;AA2BD,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkC5F;AAED,yIAAyI;AACzI,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAA;CACd,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAWvD;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAYD,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAejG;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yFAAyF;IACzF,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAMD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAmB,GACrF,OAAO,CAAC,MAAM,EAAE,CAAC,CAqCnB;AAcD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|
package/dist/page.js
CHANGED
|
@@ -306,9 +306,50 @@ export async function runPagePublish(opts) {
|
|
|
306
306
|
const locales = Array.isArray(result.locales) ? result.locales : [];
|
|
307
307
|
for (const l of locales.slice(1))
|
|
308
308
|
process.stderr.write(` ${l.locale}: ${l.url}\n`);
|
|
309
|
-
process.stderr.write(
|
|
310
|
-
|
|
311
|
-
|
|
309
|
+
process.stderr.write(`${publishSummary(result, opts.homepage !== false)}\n`);
|
|
310
|
+
return result;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* What a publish means for the visitor. "Live" only when the server fetched
|
|
314
|
+
* the public URL and got the stored bytes back (`live.status: verified`);
|
|
315
|
+
* a server without the check (older BFF) is reported as unverified.
|
|
316
|
+
*/
|
|
317
|
+
export function publishSummary(result, homepage) {
|
|
318
|
+
const url = String(result.url);
|
|
319
|
+
const version = typeof result.versionNumber === 'number' ? ` (version ${result.versionNumber})` : '';
|
|
320
|
+
const live = (result.live ?? null);
|
|
321
|
+
const registration = homepage
|
|
322
|
+
? 'Registered as the project homepage — regenerate the integration config (MCP get_project_state → integration.file) so HOMEPAGE_URL uses it.'
|
|
323
|
+
: 'Homepage registration unchanged.';
|
|
324
|
+
if (live?.status === 'verified')
|
|
325
|
+
return `Live at ${url}${version}. ${registration}`;
|
|
326
|
+
const why = live?.detail ? `: ${live.detail}` : '';
|
|
327
|
+
const recheck = homepage
|
|
328
|
+
? 'The version is stored and goes live as soon as the URL serves it; re-check with `extenshi page verify` (MCP verify_hosted_artifact {kind: "homepage"}).'
|
|
329
|
+
: 'The version is stored and goes live as soon as the URL serves it.';
|
|
330
|
+
if (live?.status === 'unreachable')
|
|
331
|
+
return `PUBLISHED BUT UNREACHABLE${version}: ${url} does not serve the page${why}. ${recheck}${homepage ? ' HOMEPAGE_URL would point at a page visitors cannot open — fix hosting before shipping it.' : ''}`;
|
|
332
|
+
if (live?.status === 'changed')
|
|
333
|
+
return `PUBLISHED BUT NOT SERVED${version}: ${url} answers with different content${why}. ${recheck}`;
|
|
334
|
+
return `Published${version} at ${url} — not verified (this server does not check the public URL). Open it before relying on it. ${registration}`;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* `extenshi page verify`: fetch the registered homepage now and compare it with
|
|
338
|
+
* the hash recorded at publish (MCP verify_hosted_artifact kind=homepage).
|
|
339
|
+
* Exits non-zero unless it is `verified`.
|
|
340
|
+
*/
|
|
341
|
+
export async function runPageVerify(opts) {
|
|
342
|
+
const projectId = projectIdSchema.safeParse(opts.project);
|
|
343
|
+
if (!projectId.success)
|
|
344
|
+
throw new InvalidInputError(projectId.error.issues[0]?.message ?? 'Invalid --project');
|
|
345
|
+
const result = await projectRequest(await loadConfig(), 'agentVerifyHostedArtifact', { projectId: projectId.data, kind: 'homepage' }, true);
|
|
346
|
+
console.log(JSON.stringify(result, null, 2));
|
|
347
|
+
if (result.status !== 'verified') {
|
|
348
|
+
throw new InvalidInputError(result.status === 'unreachable'
|
|
349
|
+
? `${String(result.url)} is unreachable — the homepage is registered but visitors cannot open it.`
|
|
350
|
+
: `${String(result.url)} answers with content that differs from the published page (status ${String(result.status)}).`);
|
|
351
|
+
}
|
|
352
|
+
process.stderr.write(`Verified: ${String(result.url)} serves the published page.\n`);
|
|
312
353
|
return result;
|
|
313
354
|
}
|
|
314
355
|
export async function runPageUnpublish(opts) {
|
|
@@ -330,9 +371,12 @@ export async function runPageDraft(opts) {
|
|
|
330
371
|
if (!projectId.success)
|
|
331
372
|
throw new InvalidInputError(projectId.error.issues[0]?.message ?? 'Invalid --project');
|
|
332
373
|
const storeUrls = Object.fromEntries(Object.entries({ chrome: opts.chromeUrl, firefox: opts.firefoxUrl, edge: opts.edgeUrl }).filter(([, v]) => v));
|
|
374
|
+
if (opts.accent !== undefined && !/^#[0-9a-fA-F]{6}$/.test(opts.accent))
|
|
375
|
+
throw new InvalidInputError('--accent must be a #rrggbb colour, e.g. #4f46e5');
|
|
333
376
|
const result = await projectRequest(await loadConfig(), 'agentDraftLandingPage', {
|
|
334
377
|
projectId: projectId.data,
|
|
335
378
|
...(Object.keys(storeUrls).length ? { storeUrls } : {}),
|
|
379
|
+
...(opts.accent ? { accentColor: opts.accent } : {}),
|
|
336
380
|
});
|
|
337
381
|
const out = toOut(opts.out ?? 'landing.json');
|
|
338
382
|
await writeFile(out, `${JSON.stringify({ form: result.form }, null, '\t')}\n`, 'utf8');
|
|
@@ -421,7 +465,8 @@ export async function runPageRollback(opts) {
|
|
|
421
465
|
throw new InvalidInputError('--version must be a version number (see extenshi page versions)');
|
|
422
466
|
const result = await projectRequest(await loadConfig(), 'agentRollbackLandingPage', { projectId: projectId.data, versionNumber, registerAsHomepage: opts.homepage !== false }, true);
|
|
423
467
|
console.log(JSON.stringify(result, null, 2));
|
|
424
|
-
process.stderr.write(`Restored v${versionNumber} as v${String(result.versionNumber)}
|
|
468
|
+
process.stderr.write(`Restored v${versionNumber} as v${String(result.versionNumber)}.\n`);
|
|
469
|
+
process.stderr.write(`${publishSummary(result, opts.homepage !== false)}\n`);
|
|
425
470
|
return result;
|
|
426
471
|
}
|
|
427
472
|
//# sourceMappingURL=page.js.map
|
package/dist/page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* write on their behalf — an invented justification submitted verbatim is a
|
|
11
11
|
* policy problem for them.
|
|
12
12
|
*/
|
|
13
|
-
import type
|
|
13
|
+
import { type Manifest } from './review-checks.js';
|
|
14
14
|
export type PermissionJustificationPrompt = {
|
|
15
15
|
question: string;
|
|
16
16
|
example: string;
|
|
@@ -36,4 +36,22 @@ export type JustificationRow = {
|
|
|
36
36
|
};
|
|
37
37
|
/** Store-justification prompts for the sensitive permissions declared. */
|
|
38
38
|
export declare function buildJustificationChecklist(manifest: Manifest): JustificationRow[];
|
|
39
|
+
export type ListingJustificationRow = {
|
|
40
|
+
/** Heading in the draft: the permission name, or `Host permissions`. */
|
|
41
|
+
permission: string;
|
|
42
|
+
question: string;
|
|
43
|
+
example?: string;
|
|
44
|
+
/** Host row only: every pattern with where the manifest declares it. */
|
|
45
|
+
patterns?: {
|
|
46
|
+
pattern: string;
|
|
47
|
+
source: string;
|
|
48
|
+
}[];
|
|
49
|
+
};
|
|
50
|
+
export declare const HOST_PERMISSIONS_ROW = "Host permissions";
|
|
51
|
+
/**
|
|
52
|
+
* One justification row per requested permission, plus one for host access.
|
|
53
|
+
* Host access comes first (the most-questioned entry), then the critical
|
|
54
|
+
* sensitive permissions, then the rest alphabetically.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildListingJustifications(manifest: Manifest): ListingJustificationRow[];
|
|
39
57
|
//# sourceMappingURL=permission-justifications.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-justifications.d.ts","sourceRoot":"","sources":["../src/permission-justifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"permission-justifications.d.ts","sourceRoot":"","sources":["../src/permission-justifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEN,KAAK,QAAQ,EAGb,MAAM,oBAAoB,CAAA;AAE3B,MAAM,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAmFpG,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kCAAkC,EAAE,SAAS,MAAM,EAK/D,CAAA;AAiBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAWrE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,0EAA0E;AAC1E,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAkBlF;AA2ED,MAAM,MAAM,uBAAuB,GAAG;IACrC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,oBAAoB,qBAAqB,CAAA;AAsBtD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,uBAAuB,EAAE,CAkCxF"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* write on their behalf — an invented justification submitted verbatim is a
|
|
11
11
|
* policy problem for them.
|
|
12
12
|
*/
|
|
13
|
+
import { isGlobalHost, requiredApiPermissions, requiredHostPermissions, } from './review-checks.js';
|
|
13
14
|
export const PERMISSION_JUSTIFICATION_PROMPTS = {
|
|
14
15
|
'<all_urls>': {
|
|
15
16
|
question: 'Which sites does the feature actually run on, and why can that not be expressed as a list of match patterns?',
|
|
@@ -142,4 +143,132 @@ export function buildJustificationChecklist(manifest) {
|
|
|
142
143
|
a.permission.localeCompare(b.permission));
|
|
143
144
|
return out;
|
|
144
145
|
}
|
|
146
|
+
// ── Every permission, for the listing drafts ─────────────────────────────────
|
|
147
|
+
//
|
|
148
|
+
// The store forms ask about EVERY permission, not only the sensitive ones:
|
|
149
|
+
// Chrome Web Store's Privacy practices tab lists "permissions that your
|
|
150
|
+
// extension uses (as declared in your manifest), with a field for you to state
|
|
151
|
+
// the justification for each permission"
|
|
152
|
+
// (https://developer.chrome.com/docs/webstore/cws-dashboard-privacy), and
|
|
153
|
+
// Partner Center's Privacy page carries the same per-permission list
|
|
154
|
+
// (https://learn.microsoft.com/en-us/microsoft-edge/extensions/publish/publish-extension).
|
|
155
|
+
// Content-script match patterns are permissions too — Chrome lists
|
|
156
|
+
// `content_scripts.matches` next to `host_permissions` as a way to "inject into
|
|
157
|
+
// one or more hosts" (https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions).
|
|
158
|
+
//
|
|
159
|
+
// Sensitive permissions keep the lockstep prompts above. These cover the common
|
|
160
|
+
// non-sensitive ones; anything else gets a generic question. Still questions,
|
|
161
|
+
// never answers.
|
|
162
|
+
const COMMON_PERMISSION_PROMPTS = {
|
|
163
|
+
activeTab: {
|
|
164
|
+
question: 'What does the user click or press to act on the current tab, and what do you do there?',
|
|
165
|
+
example: 'When the user clicks the toolbar icon we restyle the text of the page in that tab only.',
|
|
166
|
+
},
|
|
167
|
+
alarms: {
|
|
168
|
+
question: 'What runs on a schedule, and how often?',
|
|
169
|
+
example: 'Once a day we refresh the cached license so paid features keep working offline.',
|
|
170
|
+
},
|
|
171
|
+
bookmarks: {
|
|
172
|
+
question: 'What do you read from or change in bookmarks, and at whose request?',
|
|
173
|
+
example: 'The user saves the current page into a folder they pick; we never read other bookmarks.',
|
|
174
|
+
},
|
|
175
|
+
clipboardWrite: {
|
|
176
|
+
question: 'What do you copy to the clipboard, and what does the user do to trigger it?',
|
|
177
|
+
example: 'The Copy button puts the generated citation on the clipboard.',
|
|
178
|
+
},
|
|
179
|
+
contextMenus: {
|
|
180
|
+
question: 'Which right-click menu items do you add, and what does each one do?',
|
|
181
|
+
example: 'A "Read with ruler" item turns the reading ruler on for the selected text.',
|
|
182
|
+
},
|
|
183
|
+
declarativeNetRequest: {
|
|
184
|
+
question: 'Which requests do your rules block or modify, and where do the rules come from?',
|
|
185
|
+
example: 'A static rule set shipped in the package blocks known tracker domains; no request is read.',
|
|
186
|
+
},
|
|
187
|
+
identity: {
|
|
188
|
+
question: 'Which account do you sign the user into, and what do you do with the token?',
|
|
189
|
+
example: 'The user signs in with Google to sync their notes to their own Drive folder.',
|
|
190
|
+
},
|
|
191
|
+
notifications: {
|
|
192
|
+
question: 'What do you notify the user about, and how do they turn it off?',
|
|
193
|
+
example: 'A notification when a tracked price drops; the options page turns them off.',
|
|
194
|
+
},
|
|
195
|
+
offscreen: {
|
|
196
|
+
question: 'What does the offscreen document do that the service worker cannot?',
|
|
197
|
+
example: 'It parses the HTML of the user-selected file with DOMParser, which workers lack.',
|
|
198
|
+
},
|
|
199
|
+
sidePanel: {
|
|
200
|
+
question: 'What does the side panel show, and when does it open?',
|
|
201
|
+
example: 'The side panel shows the reading settings for the current page when the user opens it.',
|
|
202
|
+
},
|
|
203
|
+
storage: {
|
|
204
|
+
question: 'What do you store, in which storage area (local, sync, session), and does any of it leave the device?',
|
|
205
|
+
example: 'Font and ruler preferences in storage.sync so they follow the user to their other browsers.',
|
|
206
|
+
},
|
|
207
|
+
unlimitedStorage: {
|
|
208
|
+
question: 'What can grow past the default quota, and why must it be kept?',
|
|
209
|
+
example: 'Offline copies of the articles the user saved for later.',
|
|
210
|
+
},
|
|
211
|
+
webNavigation: {
|
|
212
|
+
question: 'Which navigation events do you listen to, and what do you do with them?',
|
|
213
|
+
example: 'We re-apply the user’s reading settings when a single-page app navigates without reloading.',
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
export const HOST_PERMISSIONS_ROW = 'Host permissions';
|
|
217
|
+
/** Host patterns from `host_permissions`, MV2 host-shaped `permissions`, and every `content_scripts[i].matches`. */
|
|
218
|
+
function hostPatterns(manifest) {
|
|
219
|
+
const out = [];
|
|
220
|
+
const seen = new Set();
|
|
221
|
+
const push = (pattern, source) => {
|
|
222
|
+
const key = `${pattern}\u0000${source}`;
|
|
223
|
+
if (seen.has(key))
|
|
224
|
+
return;
|
|
225
|
+
seen.add(key);
|
|
226
|
+
out.push({ pattern, source });
|
|
227
|
+
};
|
|
228
|
+
const declaredHosts = new Set(stringEntries(manifest.host_permissions));
|
|
229
|
+
for (const pattern of requiredHostPermissions(manifest)) {
|
|
230
|
+
push(pattern, declaredHosts.has(pattern) ? 'host_permissions' : 'permissions');
|
|
231
|
+
}
|
|
232
|
+
for (const [i, cs] of (manifest.content_scripts ?? []).entries()) {
|
|
233
|
+
for (const pattern of stringEntries(cs?.matches))
|
|
234
|
+
push(pattern, `content_scripts[${i}].matches`);
|
|
235
|
+
}
|
|
236
|
+
return out;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* One justification row per requested permission, plus one for host access.
|
|
240
|
+
* Host access comes first (the most-questioned entry), then the critical
|
|
241
|
+
* sensitive permissions, then the rest alphabetically.
|
|
242
|
+
*/
|
|
243
|
+
export function buildListingJustifications(manifest) {
|
|
244
|
+
const rows = [];
|
|
245
|
+
const patterns = hostPatterns(manifest);
|
|
246
|
+
if (patterns.length > 0) {
|
|
247
|
+
const global = patterns.some((p) => isGlobalHost(p.pattern));
|
|
248
|
+
const prompt = global
|
|
249
|
+
? promptFor('<all_urls>')
|
|
250
|
+
: {
|
|
251
|
+
question: 'Which feature needs these sites, and why can it not wait for activeTab (the user acting on the current tab)?',
|
|
252
|
+
example: 'We read the price on product pages of shop.example.com to draw the price-history chart there.',
|
|
253
|
+
};
|
|
254
|
+
rows.push({ permission: HOST_PERMISSIONS_ROW, ...prompt, patterns });
|
|
255
|
+
}
|
|
256
|
+
const api = [
|
|
257
|
+
...new Set(requiredApiPermissions(manifest)
|
|
258
|
+
.map((p) => p.trim())
|
|
259
|
+
.filter(Boolean)),
|
|
260
|
+
];
|
|
261
|
+
const critical = (p) => (JUSTIFICATION_CRITICAL_PERMISSIONS.includes(p) ? 0 : 1);
|
|
262
|
+
api.sort((a, b) => critical(a) - critical(b) || a.localeCompare(b));
|
|
263
|
+
for (const permission of api) {
|
|
264
|
+
const prompt = promptFor(permission) ??
|
|
265
|
+
(Object.hasOwn(COMMON_PERMISSION_PROMPTS, permission)
|
|
266
|
+
? COMMON_PERMISSION_PROMPTS[permission]
|
|
267
|
+
: undefined) ?? {
|
|
268
|
+
question: `Which user-visible feature calls the \`${permission}\` API, and what stops working without it?`,
|
|
269
|
+
};
|
|
270
|
+
rows.push({ permission, ...prompt });
|
|
271
|
+
}
|
|
272
|
+
return rows;
|
|
273
|
+
}
|
|
145
274
|
//# sourceMappingURL=permission-justifications.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-justifications.js","sourceRoot":"","sources":["../src/permission-justifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"permission-justifications.js","sourceRoot":"","sources":["../src/permission-justifications.ts"],"names":[],"mappings":"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"}
|
package/dist/png.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"png.d.ts","sourceRoot":"","sources":["../src/png.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"png.d.ts","sourceRoot":"","sources":["../src/png.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4FH;;;;GAIG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,GAAG,CAAC,EACf,IAAI,GAAE,SAAS,MAAM,EAAO,GAC1B,MAAM,CA0DR;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,6BAA6B;IAC7B,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAKD,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CA4D5D;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAC7B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,SAAS,MAAM,EAAO,GAC1B,MAAM,GAAG,IAAI,CASf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAKtD;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAEpD"}
|
package/dist/png.js
CHANGED
|
@@ -46,6 +46,54 @@ function paeth(a, b, c) {
|
|
|
46
46
|
const pc = Math.abs(p - c);
|
|
47
47
|
return pa <= pb && pa <= pc ? a : pb <= pc ? b : c;
|
|
48
48
|
}
|
|
49
|
+
/** A filtered byte's cost for the filter heuristic: its absolute value as a signed byte. */
|
|
50
|
+
const COST = (() => {
|
|
51
|
+
const table = new Uint8Array(256);
|
|
52
|
+
for (let v = 0; v < 256; v++)
|
|
53
|
+
table[v] = v < 128 ? v : 256 - v;
|
|
54
|
+
return table;
|
|
55
|
+
})();
|
|
56
|
+
/**
|
|
57
|
+
* Write the scanline for the row at `data[r]`: its filter type byte, then the
|
|
58
|
+
* row filtered with it. `prev[p]` is the row above — a zero row for the first.
|
|
59
|
+
* Typed-array stores wrap, so a negative difference lands as its byte value.
|
|
60
|
+
*/
|
|
61
|
+
function filterRow(out, o, type, data, r, prev, p, stride, channels) {
|
|
62
|
+
out[o++] = type;
|
|
63
|
+
if (type === 0) {
|
|
64
|
+
out.set(data.subarray(r, r + stride), o);
|
|
65
|
+
}
|
|
66
|
+
else if (type === 1) {
|
|
67
|
+
for (let i = 0; i < channels; i++)
|
|
68
|
+
out[o + i] = data[r + i];
|
|
69
|
+
for (let i = channels; i < stride; i++)
|
|
70
|
+
out[o + i] = data[r + i] - data[r + i - channels];
|
|
71
|
+
}
|
|
72
|
+
else if (type === 2) {
|
|
73
|
+
for (let i = 0; i < stride; i++)
|
|
74
|
+
out[o + i] = data[r + i] - prev[p + i];
|
|
75
|
+
}
|
|
76
|
+
else if (type === 3) {
|
|
77
|
+
for (let i = 0; i < channels; i++)
|
|
78
|
+
out[o + i] = data[r + i] - (prev[p + i] >> 1);
|
|
79
|
+
for (let i = channels; i < stride; i++)
|
|
80
|
+
out[o + i] = data[r + i] - ((data[r + i - channels] + prev[p + i]) >> 1);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Paeth with no left neighbour (a = c = 0) predicts b.
|
|
84
|
+
for (let i = 0; i < channels; i++)
|
|
85
|
+
out[o + i] = data[r + i] - prev[p + i];
|
|
86
|
+
for (let i = channels; i < stride; i++) {
|
|
87
|
+
const a = data[r + i - channels];
|
|
88
|
+
const b = prev[p + i];
|
|
89
|
+
const c = prev[p + i - channels];
|
|
90
|
+
const pa = Math.abs(b - c);
|
|
91
|
+
const pb = Math.abs(a - c);
|
|
92
|
+
const pc = Math.abs(a + b - c - c);
|
|
93
|
+
out[o + i] = data[r + i] - (pa <= pb && pa <= pc ? a : pb <= pc ? b : c);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
49
97
|
/**
|
|
50
98
|
* Encode raw 8-bit pixels; each row gets the filter with the smallest sum of
|
|
51
99
|
* absolute values. `keep` are whole chunks (colour space, pixel density) copied
|
|
@@ -53,41 +101,49 @@ function paeth(a, b, c) {
|
|
|
53
101
|
*/
|
|
54
102
|
export function encodePng(data, width, height, channels, keep = []) {
|
|
55
103
|
const stride = width * channels;
|
|
56
|
-
const out =
|
|
57
|
-
const
|
|
58
|
-
const best = Buffer.alloc(stride);
|
|
104
|
+
const out = new Uint8Array((stride + 1) * height);
|
|
105
|
+
const zero = new Uint8Array(stride);
|
|
59
106
|
for (let y = 0; y < height; y++) {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
107
|
+
const r = y * stride;
|
|
108
|
+
const prev = y > 0 ? data : zero;
|
|
109
|
+
const p = y > 0 ? r - stride : 0;
|
|
110
|
+
// Score all five filters in one pass over the row, then write only the
|
|
111
|
+
// winner: about 3× faster than filtering the row five times over.
|
|
112
|
+
let none = 0;
|
|
113
|
+
let sub = 0;
|
|
114
|
+
let up = 0;
|
|
115
|
+
let average = 0;
|
|
116
|
+
let paethCost = 0;
|
|
117
|
+
for (let i = 0; i < channels; i++) {
|
|
118
|
+
const x = data[r + i];
|
|
119
|
+
const b = prev[p + i];
|
|
120
|
+
none += COST[x];
|
|
121
|
+
sub += COST[x];
|
|
122
|
+
up += COST[(x - b) & 0xff];
|
|
123
|
+
average += COST[(x - (b >> 1)) & 0xff];
|
|
124
|
+
paethCost += COST[(x - b) & 0xff];
|
|
125
|
+
}
|
|
126
|
+
for (let i = channels; i < stride; i++) {
|
|
127
|
+
const x = data[r + i];
|
|
128
|
+
const a = data[r + i - channels];
|
|
129
|
+
const b = prev[p + i];
|
|
130
|
+
const c = prev[p + i - channels];
|
|
131
|
+
const pa = Math.abs(b - c);
|
|
132
|
+
const pb = Math.abs(a - c);
|
|
133
|
+
const pc = Math.abs(a + b - c - c);
|
|
134
|
+
none += COST[x];
|
|
135
|
+
sub += COST[(x - a) & 0xff];
|
|
136
|
+
up += COST[(x - b) & 0xff];
|
|
137
|
+
average += COST[(x - ((a + b) >> 1)) & 0xff];
|
|
138
|
+
paethCost += COST[(x - (pa <= pb && pa <= pc ? a : pb <= pc ? b : c)) & 0xff];
|
|
88
139
|
}
|
|
89
|
-
|
|
90
|
-
|
|
140
|
+
// A tie keeps the lower filter type.
|
|
141
|
+
const costs = [none, sub, up, average, paethCost];
|
|
142
|
+
let type = 0;
|
|
143
|
+
for (let t = 1; t <= 4; t++)
|
|
144
|
+
if (costs[t] < costs[type])
|
|
145
|
+
type = t;
|
|
146
|
+
filterRow(out, y * (stride + 1), type, data, r, prev, p, stride, channels);
|
|
91
147
|
}
|
|
92
148
|
const ihdr = Buffer.alloc(13);
|
|
93
149
|
ihdr.writeUInt32BE(width, 0);
|
|
@@ -98,7 +154,9 @@ export function encodePng(data, width, height, channels, keep = []) {
|
|
|
98
154
|
SIGNATURE,
|
|
99
155
|
chunk('IHDR', ihdr),
|
|
100
156
|
...keep,
|
|
101
|
-
|
|
157
|
+
// Level 6 (zlib's default), not 9: 5–8× faster on store-size screenshots
|
|
158
|
+
// for 3–4 % more bytes, and the stores have no tight size limit.
|
|
159
|
+
chunk('IDAT', deflateSync(out, { level: 6 })),
|
|
102
160
|
chunk('IEND', Buffer.alloc(0)),
|
|
103
161
|
]);
|
|
104
162
|
}
|