@extenshi/cli 0.18.0 → 0.19.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 +52 -0
- package/dist/cli.js +49 -0
- package/dist/cli.js.map +1 -1
- package/dist/cws-policies.d.ts.map +1 -1
- package/dist/cws-policies.js +1 -0
- package/dist/cws-policies.js.map +1 -1
- package/dist/extension-localization.d.ts +20 -0
- package/dist/extension-localization.d.ts.map +1 -0
- package/dist/extension-localization.js +94 -0
- package/dist/extension-localization.js.map +1 -0
- package/dist/listing-checks.d.ts +9 -1
- package/dist/listing-checks.d.ts.map +1 -1
- package/dist/listing-checks.js +89 -1
- package/dist/listing-checks.js.map +1 -1
- package/dist/localize-init.d.ts +9 -0
- package/dist/localize-init.d.ts.map +1 -0
- package/dist/localize-init.js +166 -0
- package/dist/localize-init.js.map +1 -0
- package/dist/localize.d.ts +27 -0
- package/dist/localize.d.ts.map +1 -0
- package/dist/localize.js +292 -0
- package/dist/localize.js.map +1 -0
- package/package.json +6 -6
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# @extenshi/cli
|
|
2
|
+
|
|
3
|
+
See the [CLI documentation](https://extenshi.io/cli) for scanning, project setup and publishing.
|
|
4
|
+
|
|
5
|
+
## Localizing an extension
|
|
6
|
+
|
|
7
|
+
For an unpacked extension with literal English manifest text, `localize init ./extension --output ./extension-localized` creates a new copy with localized manifest fields. The output must be new and outside the input, with an existing parent directory. HTML and JavaScript are preserved and listed for manual work in `LOCALIZATION-REPORT.md`; ZIP extraction and automatic UI rewriting are not included.
|
|
8
|
+
|
|
9
|
+
The free `localize` workflow operates on an **unpacked, internationalized extension directory**. It requires `manifest.json` with `default_locale` and `_locales/<default_locale>/messages.json`. It prepares requests for your own translator or coding agent; it does not call a translation service. The normal CLI telemetry preference still applies.
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
extenshi localize prepare ./extension --lang fr,de,es --output ./translation-request
|
|
13
|
+
# Translate messages in translation-request/localization-request.json.
|
|
14
|
+
# Review every requested message and add "reviewed": true to each locale object.
|
|
15
|
+
extenshi localize apply ./extension --translations ./translation-request/localization-request.json
|
|
16
|
+
extenshi localize check ./extension
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Optional `localization.json` in the extension root:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"version": 1,
|
|
24
|
+
"sourceLocale": "en",
|
|
25
|
+
"targetLocales": ["fr", "de", "es"],
|
|
26
|
+
"protectedTerms": ["Acme"]
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
With this configuration, `--lang` is optional. All three commands accept `--protect Acme,Product` to add exact terms that must remain when they occur in the original message. Prepared requests include the configured terms. Configure durable terms in `localization.json`, or repeat `--protect` when applying/checking.
|
|
31
|
+
|
|
32
|
+
A reviewed request has this shape (the actual source hashes come from `prepare`):
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"version": 1,
|
|
37
|
+
"sourceLocale": "en",
|
|
38
|
+
"locales": {
|
|
39
|
+
"fr": {
|
|
40
|
+
"reviewed": true,
|
|
41
|
+
"sourceHashes": { "greeting": "sha256-from-prepare" },
|
|
42
|
+
"messages": { "greeting": { "message": "Bonjour" } }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Only missing, untracked, source-changed or target-edited keys appear in the request. A locale may also include `removeKeys` for keys deleted from the source; review these removals before setting `reviewed: true`. Apply removes them from the target catalog and tracking state, and refuses removal if the key has returned in the source. Existing translations remain intact when other keys are applied. `.extenshi-localization.json` records source and reviewed target hashes only after successful apply; keep it in source control. Direct target edits require another review. Older source-only state also requires re-review before `check` passes. An unchanged second prepare contains no locale requests. Use a fresh output directory each time: prepare refuses to overwrite translator work.
|
|
49
|
+
|
|
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
|
+
|
|
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.
|
package/dist/cli.js
CHANGED
|
@@ -37,6 +37,8 @@ import { CONFIG_PATH, loadConfig, readTelemetryPreference, saveConfig, saveTelem
|
|
|
37
37
|
import { isExpectedError } from './expected-error.js';
|
|
38
38
|
import { runGenerateListing } from './generate-listing.js';
|
|
39
39
|
import { runIconPreview } from './icon.js';
|
|
40
|
+
import { applyLocalization, checkLocalization, prepareLocalization } from './localize.js';
|
|
41
|
+
import { initializeLocalization } from './localize-init.js';
|
|
40
42
|
import { makeLoginBff } from './login-bff.js';
|
|
41
43
|
import { runBrowserLogin } from './login-flow.js';
|
|
42
44
|
import { openBrowser, openLoopback, sleep } from './login-runtime.js';
|
|
@@ -267,6 +269,53 @@ program
|
|
|
267
269
|
});
|
|
268
270
|
});
|
|
269
271
|
});
|
|
272
|
+
const localize = program
|
|
273
|
+
.command('localize')
|
|
274
|
+
.description('Prepare, validate and apply extension message translations locally');
|
|
275
|
+
localize
|
|
276
|
+
.command('init <directory>')
|
|
277
|
+
.description('Copy an English extension to a new directory and localize literal manifest fields; HTML/JS stay unchanged')
|
|
278
|
+
.requiredOption('--output <directory>', 'New output directory outside the source directory')
|
|
279
|
+
.action(async (directory, opts) => {
|
|
280
|
+
await runCommand('localize-init', async () => {
|
|
281
|
+
console.log(JSON.stringify(initializeLocalization(directory, opts.output), null, 2));
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
localize
|
|
285
|
+
.command('prepare <directory>')
|
|
286
|
+
.option('--lang <locales>', 'Comma-separated target locales; defaults to localization.json')
|
|
287
|
+
.requiredOption('--output <directory>', 'Directory for a new localization-request.json')
|
|
288
|
+
.option('--protect <terms>', 'Comma-separated terms to preserve verbatim')
|
|
289
|
+
.action(async (directory, opts) => {
|
|
290
|
+
await runCommand('localize-prepare', async () => {
|
|
291
|
+
const result = prepareLocalization(directory, opts);
|
|
292
|
+
console.log(JSON.stringify({
|
|
293
|
+
output: `${opts.output}/localization-request.json`,
|
|
294
|
+
locales: Object.keys(result.locales),
|
|
295
|
+
keys: Object.values(result.locales).reduce((sum, item) => sum + Object.keys(item.messages).length, 0),
|
|
296
|
+
}));
|
|
297
|
+
});
|
|
298
|
+
});
|
|
299
|
+
localize
|
|
300
|
+
.command('apply <directory>')
|
|
301
|
+
.requiredOption('--translations <file>', 'Reviewed translation request JSON')
|
|
302
|
+
.option('--protect <terms>', 'Comma-separated terms to preserve verbatim')
|
|
303
|
+
.action(async (directory, opts) => {
|
|
304
|
+
await runCommand('localize-apply', async () => {
|
|
305
|
+
console.log(JSON.stringify(applyLocalization(directory, JSON.parse(await readFile(opts.translations, 'utf8')), opts.protect)));
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
localize
|
|
309
|
+
.command('check <directory>')
|
|
310
|
+
.option('--protect <terms>', 'Comma-separated terms to preserve verbatim')
|
|
311
|
+
.action(async (directory, opts) => {
|
|
312
|
+
await runCommand('localize-check', async () => {
|
|
313
|
+
const result = checkLocalization(directory, opts.protect);
|
|
314
|
+
console.log(JSON.stringify(result, null, 2));
|
|
315
|
+
if (result.errors.length)
|
|
316
|
+
process.exitCode = 1;
|
|
317
|
+
});
|
|
318
|
+
});
|
|
270
319
|
program
|
|
271
320
|
.command('generate-listing <artifact>')
|
|
272
321
|
.description('Generate CHROMEWEBSTORE.md from a packaged (.zip/.crx/.xpi) or unpacked extension: ' +
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cws-policies.d.ts","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,SAAS;IACzB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAA;CACX;AAMD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaqB,CAAA;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAA;AAEpD,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"cws-policies.d.ts","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,SAAS;IACzB,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAA;CACX;AAMD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaqB,CAAA;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,YAAY,CAAA;AAEpD,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAAgC,CAAA;AAsDjF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAU1E;AAED,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAiC,CAAA;AAEnF,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAAqC,CAAA"}
|
package/dist/cws-policies.js
CHANGED
|
@@ -75,6 +75,7 @@ const POLICY_BY_CHECK = {
|
|
|
75
75
|
'listing-testimonial-block': CWS_POLICIES.LISTING_REQUIREMENTS,
|
|
76
76
|
'listing-impossible-claim': CWS_POLICIES.UNEXPECTED_BEHAVIOR,
|
|
77
77
|
'listing-unverifiable-superlative': CWS_POLICIES.UNEXPECTED_BEHAVIOR,
|
|
78
|
+
'listing-gambling-content': CWS_POLICIES.SPAM_AND_ABUSE,
|
|
78
79
|
// ── Privacy disclosure (iteration 2) ──────────────────────────────────────
|
|
79
80
|
// The checklist is about what the dashboard will make you declare, and the
|
|
80
81
|
// privacy-policy requirement is the half with teeth, so it maps to PRIVACY
|
package/dist/cws-policies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cws-policies.js","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,GAAG,6DAA6D,CAAA;AAWjF,SAAS,MAAM,CAAC,EAAU,EAAE,KAAa;IACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,IAAI,EAAE,EAAE,EAAE,CAAA;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAC5E,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;IACvF,cAAc,EAAE,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC1D,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;IACjG,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAC/E,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC;IACxD,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;IAC9D,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;IACxE,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC;IACjD,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;CAC3C,CAAA;AAI9C,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAyB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAEjF;;;;;;;;GAQG;AACH,MAAM,eAAe,GAA+C;IACnE,8EAA8E;IAC9E,yBAAyB,EAAE,YAAY,CAAC,WAAW;IACnD,mBAAmB,EAAE,YAAY,CAAC,WAAW;IAC7C,kBAAkB,EAAE,YAAY,CAAC,WAAW;IAC5C,6BAA6B,EAAE,YAAY,CAAC,WAAW;IACvD,uBAAuB,EAAE,YAAY,CAAC,WAAW;IACjD,yBAAyB,EAAE,YAAY,CAAC,WAAW;IACnD,eAAe,EAAE,YAAY,CAAC,gBAAgB;IAC9C,sBAAsB,EAAE,YAAY,CAAC,gBAAgB;IACrD,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;IAC/C,IAAI,EAAE,YAAY,CAAC,gBAAgB;IACnC,oBAAoB,EAAE,YAAY,CAAC,gBAAgB;IAEnD,8EAA8E;IAC9E,qBAAqB,EAAE,YAAY,CAAC,oBAAoB;IACxD,4BAA4B,EAAE,YAAY,CAAC,oBAAoB;IAC/D,sBAAsB,EAAE,YAAY,CAAC,oBAAoB;IACzD,uBAAuB,EAAE,YAAY,CAAC,oBAAoB;IAC1D,2BAA2B,EAAE,YAAY,CAAC,oBAAoB;IAC9D,0BAA0B,EAAE,YAAY,CAAC,mBAAmB;IAC5D,kCAAkC,EAAE,YAAY,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"cws-policies.js","sourceRoot":"","sources":["../src/cws-policies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Pure extension message validation; mirrored in the standalone CLI with a parity test. */
|
|
2
|
+
export interface ExtensionMessage {
|
|
3
|
+
message: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
placeholders?: Record<string, {
|
|
6
|
+
content: string;
|
|
7
|
+
example?: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export type MessageCatalog = Record<string, ExtensionMessage>;
|
|
11
|
+
/** Chrome Web Store locale registry: https://developer.chrome.com/docs/extensions/reference/api/i18n#locales */
|
|
12
|
+
export declare const EXTENSION_LOCALES: readonly string[];
|
|
13
|
+
export declare function canonicalSerialize(value: unknown): string;
|
|
14
|
+
export declare function validateMessageCatalog(source: unknown, target: unknown, options?: {
|
|
15
|
+
protectedTerms?: string[];
|
|
16
|
+
allowMissing?: boolean;
|
|
17
|
+
}): string[];
|
|
18
|
+
/** Preview only: never call this a translation or publish it as a target locale. */
|
|
19
|
+
export declare function pseudoLocalizeCatalog(source: MessageCatalog): MessageCatalog;
|
|
20
|
+
//# sourceMappingURL=extension-localization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-localization.d.ts","sourceRoot":"","sources":["../src/extension-localization.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpE;AACD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAC7D,gHAAgH;AAChH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAG7C,CAAA;AACF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQzD;AAiDD,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACjE,MAAM,EAAE,CA8BV;AACD,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAO5E"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/** Chrome Web Store locale registry: https://developer.chrome.com/docs/extensions/reference/api/i18n#locales */
|
|
2
|
+
export const EXTENSION_LOCALES = 'ar am bg bn ca cs da de el en en_AU en_GB en_US es es_419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nl no pl pt_BR pt_PT ro ru sk sl sr sv sw ta te th tr uk vi zh_CN zh_TW'.split(' ');
|
|
3
|
+
export function canonicalSerialize(value) {
|
|
4
|
+
if (Array.isArray(value))
|
|
5
|
+
return `[${value.map(canonicalSerialize).join(',')}]`;
|
|
6
|
+
if (value && typeof value === 'object')
|
|
7
|
+
return `{${Object.keys(value)
|
|
8
|
+
.sort()
|
|
9
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalSerialize(value[key])}`)
|
|
10
|
+
.join(',')}}`;
|
|
11
|
+
return JSON.stringify(value) ?? 'null';
|
|
12
|
+
}
|
|
13
|
+
function record(value) {
|
|
14
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function tokens(message) {
|
|
17
|
+
return (message.match(/\${2,}|\$[A-Za-z0-9_]+\$|\$[1-9]|\$/g) ?? [])
|
|
18
|
+
.map((token) => token.toLowerCase())
|
|
19
|
+
.sort();
|
|
20
|
+
}
|
|
21
|
+
function inspect(value, label) {
|
|
22
|
+
if (!record(value))
|
|
23
|
+
return [`${label}: expected a messages object`];
|
|
24
|
+
const errors = [];
|
|
25
|
+
const seen = new Set();
|
|
26
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
27
|
+
if (!/^[A-Za-z0-9_]+$/.test(key) ||
|
|
28
|
+
['__proto__', 'constructor', 'prototype'].includes(key) ||
|
|
29
|
+
seen.has(key.toLowerCase()))
|
|
30
|
+
errors.push(`${label}.${key}: invalid or duplicate message key`);
|
|
31
|
+
seen.add(key.toLowerCase());
|
|
32
|
+
if (!record(entry) || typeof entry.message !== 'string' || !entry.message.trim()) {
|
|
33
|
+
errors.push(`${label}.${key}: non-empty message required`);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (entry.description !== undefined && typeof entry.description !== 'string')
|
|
37
|
+
errors.push(`${label}.${key}: invalid description`);
|
|
38
|
+
if (entry.placeholders !== undefined && !record(entry.placeholders)) {
|
|
39
|
+
errors.push(`${label}.${key}: invalid placeholders`);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const placeholders = (entry.placeholders ?? {});
|
|
43
|
+
const names = new Set();
|
|
44
|
+
for (const [name, placeholder] of Object.entries(placeholders)) {
|
|
45
|
+
if (!/^[A-Za-z0-9_]+$/.test(name) ||
|
|
46
|
+
names.has(name.toLowerCase()) ||
|
|
47
|
+
!record(placeholder) ||
|
|
48
|
+
typeof placeholder.content !== 'string')
|
|
49
|
+
errors.push(`${label}.${key}: invalid placeholder ${name}`);
|
|
50
|
+
names.add(name.toLowerCase());
|
|
51
|
+
}
|
|
52
|
+
for (const token of tokens(entry.message))
|
|
53
|
+
if (/^\$[a-z0-9_]+\$$/.test(token) && !names.has(token.slice(1, -1)))
|
|
54
|
+
errors.push(`${label}.${key}: undefined placeholder ${token}`);
|
|
55
|
+
}
|
|
56
|
+
return errors;
|
|
57
|
+
}
|
|
58
|
+
export function validateMessageCatalog(source, target, options = {}) {
|
|
59
|
+
const errors = [...inspect(source, 'source'), ...inspect(target, 'target')];
|
|
60
|
+
if (errors.length)
|
|
61
|
+
return errors;
|
|
62
|
+
const original = source;
|
|
63
|
+
const translated = target;
|
|
64
|
+
for (const key of Object.keys(translated))
|
|
65
|
+
if (!Object.hasOwn(original, key))
|
|
66
|
+
errors.push(`${key}: unknown message key`);
|
|
67
|
+
for (const [key, entry] of Object.entries(original)) {
|
|
68
|
+
const next = translated[key];
|
|
69
|
+
if (!next) {
|
|
70
|
+
if (!options.allowMissing)
|
|
71
|
+
errors.push(`${key}: missing translation`);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (canonicalSerialize(tokens(entry.message)) !== canonicalSerialize(tokens(next.message)))
|
|
75
|
+
errors.push(`${key}: placeholders or dollar escapes changed`);
|
|
76
|
+
const contents = (item) => Object.fromEntries(Object.entries(item.placeholders ?? {}).map(([name, value]) => [name.toLowerCase(), value.content]));
|
|
77
|
+
if (canonicalSerialize(contents(entry)) !== canonicalSerialize(contents(next)))
|
|
78
|
+
errors.push(`${key}: placeholder content changed`);
|
|
79
|
+
for (const term of options.protectedTerms ?? [])
|
|
80
|
+
if (term &&
|
|
81
|
+
entry.message.replace(/\${2,}/g, (run) => run.slice(1)).includes(term) &&
|
|
82
|
+
!next.message.replace(/\${2,}/g, (run) => run.slice(1)).includes(term))
|
|
83
|
+
errors.push(`${key}: protected term "${term}" changed`);
|
|
84
|
+
}
|
|
85
|
+
return errors;
|
|
86
|
+
}
|
|
87
|
+
/** Preview only: never call this a translation or publish it as a target locale. */
|
|
88
|
+
export function pseudoLocalizeCatalog(source) {
|
|
89
|
+
return Object.fromEntries(Object.entries(source).map(([key, entry]) => [
|
|
90
|
+
key,
|
|
91
|
+
{ ...entry, message: `[!! ${entry.message} ${'~'.repeat(Math.ceil(entry.message.length * 0.3))} !!]` },
|
|
92
|
+
]));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=extension-localization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-localization.js","sourceRoot":"","sources":["../src/extension-localization.ts"],"names":[],"mappings":"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"}
|
package/dist/listing-checks.d.ts
CHANGED
|
@@ -38,7 +38,14 @@ import type { ReviewFinding } from './review-checks.js';
|
|
|
38
38
|
* before and after a bump. Same discipline as `ANALYSIS_VERSION` on the
|
|
39
39
|
* permission-usage rows. Bump on any change to a dictionary or a threshold.
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Dictionary history: v3 — first FP repair over the v2 sample (claim denials,
|
|
43
|
+
* glued `#1`, ornamental stars, technical lists, Excel allow-list). v4 — new
|
|
44
|
+
* `listing-gambling-content` rule (real-money gambling promotion is banned
|
|
45
|
+
* listing content and a removal class the corpus adjudication surfaced —
|
|
46
|
+
* ROADMAP it.4 T4): no earlier rule read gambling terms at all.
|
|
47
|
+
*/
|
|
48
|
+
export declare const LISTING_DICTIONARY_VERSION = "4";
|
|
42
49
|
/**
|
|
43
50
|
* "If your product has a blank description field … it will be rejected."
|
|
44
51
|
*
|
|
@@ -88,6 +95,7 @@ export declare function checkTestimonialBlock(listing: Listing): ReviewFinding[]
|
|
|
88
95
|
export declare function checkImpossibleClaims(listing: Listing): ReviewFinding[];
|
|
89
96
|
/** Ranking / guarantee claims a reviewer cannot verify. */
|
|
90
97
|
export declare function checkUnverifiableClaims(listing: Listing): ReviewFinding[];
|
|
98
|
+
export declare function checkGamblingContent(listing: Listing): ReviewFinding[];
|
|
91
99
|
/** Every listing rule, over every locale. Returns [] when there is no listing. */
|
|
92
100
|
export declare function runListingChecks(listing: Listing | null): ReviewFinding[];
|
|
93
101
|
//# sourceMappingURL=listing-checks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-checks.d.ts","sourceRoot":"","sources":["../src/listing-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAmY7C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA8DzE;AASD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CAqDxE;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA6DlE;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA8BnE;AAID,iGAAiG;AACjG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA4BvE;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA8BvE;AAED,2DAA2D;AAC3D,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA4BzE;AAID,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"listing-checks.d.ts","sourceRoot":"","sources":["../src/listing-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAmY7C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA8DzE;AASD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CAqDxE;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA6DlE;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA8BnE;AAID,iGAAiG;AACjG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA4BvE;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA8BvE;AAED,2DAA2D;AAC3D,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA4BzE;AA+CD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CAwCtE;AAID,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,aAAa,EAAE,CAYzE"}
|
package/dist/listing-checks.js
CHANGED
|
@@ -36,7 +36,14 @@
|
|
|
36
36
|
* before and after a bump. Same discipline as `ANALYSIS_VERSION` on the
|
|
37
37
|
* permission-usage rows. Bump on any change to a dictionary or a threshold.
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Dictionary history: v3 — first FP repair over the v2 sample (claim denials,
|
|
41
|
+
* glued `#1`, ornamental stars, technical lists, Excel allow-list). v4 — new
|
|
42
|
+
* `listing-gambling-content` rule (real-money gambling promotion is banned
|
|
43
|
+
* listing content and a removal class the corpus adjudication surfaced —
|
|
44
|
+
* ROADMAP it.4 T4): no earlier rule read gambling terms at all.
|
|
45
|
+
*/
|
|
46
|
+
export const LISTING_DICTIONARY_VERSION = '4';
|
|
40
47
|
const DOC_LISTING = 'https://developer.chrome.com/docs/webstore/program-policies/listing-requirements';
|
|
41
48
|
const DOC_UNEXPECTED = 'https://developer.chrome.com/docs/webstore/program-policies/unexpected-behavior';
|
|
42
49
|
/**
|
|
@@ -722,6 +729,86 @@ export function checkUnverifiableClaims(listing) {
|
|
|
722
729
|
}
|
|
723
730
|
return out;
|
|
724
731
|
}
|
|
732
|
+
// ── Check: real-money gambling promotion ─────────────────────────────────────
|
|
733
|
+
/**
|
|
734
|
+
* Real-money gambling promotion is banned store content — it arrives as SEO
|
|
735
|
+
* spam wearing an unrelated extension name (a vocab quiz whose description is
|
|
736
|
+
* a redirect to a casino), and the removal-adjudication corpus named
|
|
737
|
+
* `spam-and-abuse` for it (ROADMAP it.4 T4). The terms below are the
|
|
738
|
+
* near-unambiguous ones only: every entry is a noun phrase whose presence in
|
|
739
|
+
* a store listing is gambling promotion rather than incidental vocabulary.
|
|
740
|
+
* `slots`, `bet`, `game`, `bonus` are deliberately absent — each has a common
|
|
741
|
+
* non-gambling sense and that is exactly how the earlier listing rules earned
|
|
742
|
+
* their false-positive reputation.
|
|
743
|
+
*
|
|
744
|
+
* Latin terms are matched with word boundaries; Cyrillic and Vietnamese terms
|
|
745
|
+
* are matched unanchored — JS `\b` is ASCII-only and never matches at a
|
|
746
|
+
* space→н boundary (same trap the claim dictionary documents). The matched
|
|
747
|
+
* TEXT is the subject, never prose, so a reworded rule does not orphan triage.
|
|
748
|
+
*/
|
|
749
|
+
const GAMBLING_TERMS = [
|
|
750
|
+
{ term: 'casino', boundary: true },
|
|
751
|
+
{ term: 'online casino', boundary: true },
|
|
752
|
+
{ term: 'slot machine', boundary: true },
|
|
753
|
+
{ term: 'sports betting', boundary: true },
|
|
754
|
+
{ term: 'betting site', boundary: true },
|
|
755
|
+
{ term: 'bookmaker', boundary: true },
|
|
756
|
+
{ term: 'jackpot', boundary: true },
|
|
757
|
+
{ term: 'roulette', boundary: true },
|
|
758
|
+
{ term: 'blackjack', boundary: true },
|
|
759
|
+
{ term: 'baccarat', boundary: true },
|
|
760
|
+
{ term: 'poker', boundary: true },
|
|
761
|
+
{ term: 'win real money', boundary: false },
|
|
762
|
+
{ term: 'no deposit bonus', boundary: false },
|
|
763
|
+
{ term: 'free spins', boundary: false },
|
|
764
|
+
{ term: 'казино', boundary: false },
|
|
765
|
+
{ term: 'букмекер', boundary: false },
|
|
766
|
+
{ term: 'джекпот', boundary: false },
|
|
767
|
+
{ term: 'ставки на спорт', boundary: false },
|
|
768
|
+
{ term: 'слот-машина', boundary: false },
|
|
769
|
+
{ term: 'Nhà cái', boundary: false },
|
|
770
|
+
{ term: 'casino trực tuyến', boundary: false },
|
|
771
|
+
{ term: 'Nổ hũ', boundary: false },
|
|
772
|
+
{ term: 'Game bài', boundary: false },
|
|
773
|
+
{ term: 'Bắn cá đổi thưởng', boundary: false },
|
|
774
|
+
];
|
|
775
|
+
export function checkGamblingContent(listing) {
|
|
776
|
+
const out = [];
|
|
777
|
+
for (const locale of listing.locales) {
|
|
778
|
+
for (const field of FIELDS) {
|
|
779
|
+
const value = fieldValue(locale, field.key);
|
|
780
|
+
if (!value)
|
|
781
|
+
continue;
|
|
782
|
+
const lowered = value.toLowerCase();
|
|
783
|
+
for (const { term, boundary } of GAMBLING_TERMS) {
|
|
784
|
+
const needle = term.toLowerCase();
|
|
785
|
+
const at = lowered.indexOf(needle);
|
|
786
|
+
if (at === -1)
|
|
787
|
+
continue;
|
|
788
|
+
if (boundary) {
|
|
789
|
+
const before = at === 0 ? ' ' : lowered[at - 1];
|
|
790
|
+
const after = at + needle.length >= lowered.length ? ' ' : lowered[at + needle.length];
|
|
791
|
+
if (/[a-z0-9]/i.test(before) || /[a-z0-9]/i.test(after))
|
|
792
|
+
continue;
|
|
793
|
+
}
|
|
794
|
+
out.push(advisory({
|
|
795
|
+
check: 'listing-gambling-content',
|
|
796
|
+
title: `The ${field.label} promotes real-money gambling`,
|
|
797
|
+
detail: 'Real-money gambling content is banned store material, and on the store it ' +
|
|
798
|
+
'arrives almost exclusively as SEO spam: an unrelated extension name wrapped ' +
|
|
799
|
+
'around a casino landing page. Spam and Abuse forbids this, and listings that ' +
|
|
800
|
+
'carry it are removed outright.',
|
|
801
|
+
evidence: stamp(`${where(locale, field.label)}: "${value.slice(at, at + needle.length)}" — real-money gambling term`),
|
|
802
|
+
recommendation: 'Remove the gambling content and any links to it. If the extension genuinely ' +
|
|
803
|
+
'serves a gambling site, the store is not a distribution channel for it.',
|
|
804
|
+
citation: 'Chrome Web Store: Spam and Abuse — https://developer.chrome.com/docs/webstore/program-policies/spam-and-abuse',
|
|
805
|
+
}));
|
|
806
|
+
break;
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
return out;
|
|
811
|
+
}
|
|
725
812
|
// ── Orchestration ────────────────────────────────────────────────────────────
|
|
726
813
|
/** Every listing rule, over every locale. Returns [] when there is no listing. */
|
|
727
814
|
export function runListingChecks(listing) {
|
|
@@ -735,6 +822,7 @@ export function runListingChecks(listing) {
|
|
|
735
822
|
...checkTestimonialBlock(listing),
|
|
736
823
|
...checkImpossibleClaims(listing),
|
|
737
824
|
...checkUnverifiableClaims(listing),
|
|
825
|
+
...checkGamblingContent(listing),
|
|
738
826
|
];
|
|
739
827
|
}
|
|
740
828
|
//# sourceMappingURL=listing-checks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-checks.js","sourceRoot":"","sources":["../src/listing-checks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listing-checks.js","sourceRoot":"","sources":["../src/listing-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface LocalizationInitResult {
|
|
2
|
+
outputDirectory: string;
|
|
3
|
+
extractedFields: string[];
|
|
4
|
+
untouchedFiles: string[];
|
|
5
|
+
copiedFiles: number;
|
|
6
|
+
}
|
|
7
|
+
/** Initialize an English manifest in a new copy. HTML/JS extraction requires a separate reviewed step. */
|
|
8
|
+
export declare function initializeLocalization(inputDirectory: string, outputDirectory: string): LocalizationInitResult;
|
|
9
|
+
//# sourceMappingURL=localize-init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize-init.d.ts","sourceRoot":"","sources":["../src/localize-init.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,sBAAsB;IACtC,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACnB;AAgBD,0GAA0G;AAC1G,wBAAgB,sBAAsB,CACrC,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACrB,sBAAsB,CAqJxB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
const MAX_BYTES = 100 * 1024 * 1024;
|
|
4
|
+
const MAX_FILE_BYTES = 25 * 1024 * 1024;
|
|
5
|
+
const MAX_ENTRIES = 10_000;
|
|
6
|
+
const RESERVED = ['_locales', 'localization.json', 'LOCALIZATION-REPORT.md', '.extenshi-localization.json'];
|
|
7
|
+
function exists(file) {
|
|
8
|
+
try {
|
|
9
|
+
fs.lstatSync(file);
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
if (error.code === 'ENOENT')
|
|
14
|
+
return false;
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function object(value) {
|
|
19
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
20
|
+
}
|
|
21
|
+
/** Initialize an English manifest in a new copy. HTML/JS extraction requires a separate reviewed step. */
|
|
22
|
+
export function initializeLocalization(inputDirectory, outputDirectory) {
|
|
23
|
+
const input = path.resolve(inputDirectory);
|
|
24
|
+
if (fs.lstatSync(input).isSymbolicLink() || !fs.statSync(input).isDirectory())
|
|
25
|
+
throw new Error('Input must be a directory, not a symlink');
|
|
26
|
+
const source = fs.realpathSync(input);
|
|
27
|
+
const requestedOutput = path.resolve(outputDirectory);
|
|
28
|
+
if (exists(requestedOutput))
|
|
29
|
+
throw new Error('Output directory already exists; choose a new directory');
|
|
30
|
+
// Require the parent to exist, so ownership of the one directory we create is unambiguous.
|
|
31
|
+
const destination = path.join(fs.realpathSync(path.dirname(requestedOutput)), path.basename(requestedOutput));
|
|
32
|
+
if (destination === source || destination.startsWith(`${source}${path.sep}`))
|
|
33
|
+
throw new Error('Output must be outside the source directory');
|
|
34
|
+
for (const relative of RESERVED) {
|
|
35
|
+
if (exists(path.join(source, relative)))
|
|
36
|
+
throw new Error(`Existing ${relative}; use localize prepare for a localized project or choose a clean source`);
|
|
37
|
+
}
|
|
38
|
+
const files = [];
|
|
39
|
+
const directories = [];
|
|
40
|
+
let bytes = 0;
|
|
41
|
+
let entries = 0;
|
|
42
|
+
function walk(relative, depth) {
|
|
43
|
+
if (depth > 64)
|
|
44
|
+
throw new Error('Source exceeds maximum directory depth (64)');
|
|
45
|
+
for (const entry of fs.readdirSync(path.join(source, relative), { withFileTypes: true })) {
|
|
46
|
+
if (++entries > MAX_ENTRIES)
|
|
47
|
+
throw new Error('Source exceeds 10,000 entries');
|
|
48
|
+
const child = path.join(relative, entry.name);
|
|
49
|
+
const stat = fs.lstatSync(path.join(source, child));
|
|
50
|
+
if (stat.isSymbolicLink())
|
|
51
|
+
throw new Error(`Symlinks are not supported: ${child}`);
|
|
52
|
+
if (entry.name === 'node_modules' || entry.name === '.git')
|
|
53
|
+
continue;
|
|
54
|
+
if (stat.isDirectory()) {
|
|
55
|
+
directories.push(child);
|
|
56
|
+
walk(child, depth + 1);
|
|
57
|
+
}
|
|
58
|
+
else if (stat.isFile()) {
|
|
59
|
+
bytes += stat.size;
|
|
60
|
+
if (stat.size > MAX_FILE_BYTES || bytes > MAX_BYTES)
|
|
61
|
+
throw new Error('Source exceeds copy limits (25 MiB per file, 100 MiB total)');
|
|
62
|
+
files.push({ relative: child, size: stat.size });
|
|
63
|
+
}
|
|
64
|
+
else
|
|
65
|
+
throw new Error(`Unsupported filesystem entry: ${child}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
walk('', 0);
|
|
69
|
+
function readSource(relative) {
|
|
70
|
+
const planned = files.find((file) => file.relative === relative);
|
|
71
|
+
if (!planned)
|
|
72
|
+
throw new Error(`Missing source file: ${relative}`);
|
|
73
|
+
const fd = fs.openSync(path.join(source, relative), fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW);
|
|
74
|
+
try {
|
|
75
|
+
const stat = fs.fstatSync(fd);
|
|
76
|
+
if (!stat.isFile() || stat.size !== planned.size)
|
|
77
|
+
throw new Error(`Source changed during copy: ${relative}`);
|
|
78
|
+
return fs.readFileSync(fd);
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
fs.closeSync(fd);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if ((files.find((file) => file.relative === 'manifest.json')?.size ?? 0) > 1024 * 1024)
|
|
85
|
+
throw new Error('manifest.json exceeds 1 MiB');
|
|
86
|
+
const manifest = JSON.parse(readSource('manifest.json').toString('utf8'));
|
|
87
|
+
if (!object(manifest))
|
|
88
|
+
throw new Error('manifest.json must be an object');
|
|
89
|
+
if ('default_locale' in manifest)
|
|
90
|
+
throw new Error('Existing default_locale; use localize prepare');
|
|
91
|
+
if (typeof manifest.name !== 'string' || !manifest.name.trim())
|
|
92
|
+
throw new Error('Manifest name must be a non-empty literal string');
|
|
93
|
+
const originalName = manifest.name;
|
|
94
|
+
const messages = {};
|
|
95
|
+
const extractedFields = [];
|
|
96
|
+
function extract(target, field, key, description, fieldPath = field) {
|
|
97
|
+
if (!(field in target))
|
|
98
|
+
return;
|
|
99
|
+
const text = target[field];
|
|
100
|
+
if (typeof text !== 'string' || !text.trim() || /__MSG_/i.test(text))
|
|
101
|
+
throw new Error(`${fieldPath} must be a non-empty literal string`);
|
|
102
|
+
messages[key] = { message: text.replaceAll('$', () => '$$'), description };
|
|
103
|
+
target[field] = `__MSG_${key}__`;
|
|
104
|
+
extractedFields.push(fieldPath);
|
|
105
|
+
}
|
|
106
|
+
extract(manifest, 'name', 'extensionName', 'Extension display name; preserve brand spelling.');
|
|
107
|
+
extract(manifest, 'description', 'extensionDescription', 'Manifest description of the actual extension features.');
|
|
108
|
+
extract(manifest, 'short_name', 'extensionShortName', 'Short extension display name for constrained UI.');
|
|
109
|
+
for (const [field, key] of [
|
|
110
|
+
['action', 'extensionActionTitle'],
|
|
111
|
+
['browser_action', 'extensionBrowserActionTitle'],
|
|
112
|
+
['page_action', 'extensionPageActionTitle'],
|
|
113
|
+
['sidebar_action', 'extensionSidebarActionTitle'],
|
|
114
|
+
]) {
|
|
115
|
+
if (!(field in manifest))
|
|
116
|
+
continue;
|
|
117
|
+
const action = manifest[field];
|
|
118
|
+
if (!object(action))
|
|
119
|
+
throw new Error(`Manifest ${field} must be an object`);
|
|
120
|
+
extract(action, 'default_title', key, `${field} tooltip or sidebar title.`, `${field}.default_title`);
|
|
121
|
+
}
|
|
122
|
+
manifest.default_locale = 'en';
|
|
123
|
+
const untouchedFiles = files
|
|
124
|
+
.filter(({ relative }) => /\.(?:html?|[cm]?jsx?|tsx?|vue|svelte)$/i.test(relative))
|
|
125
|
+
.map(({ relative }) => relative);
|
|
126
|
+
const report = [
|
|
127
|
+
'# Localization initialization report',
|
|
128
|
+
'',
|
|
129
|
+
'Scope: manifest-only initialization. Source copy is assumed to be English; verify this before translation.',
|
|
130
|
+
'HTML, JavaScript and framework templates remain byte-for-byte unchanged. Safe parser-based extraction and runtime wiring require a separate reviewed implementation.',
|
|
131
|
+
'',
|
|
132
|
+
'## Extracted manifest fields',
|
|
133
|
+
...extractedFields.map((field) => `- ${field}`),
|
|
134
|
+
'',
|
|
135
|
+
'## Source files requiring manual inspection',
|
|
136
|
+
...(untouchedFiles.length
|
|
137
|
+
? untouchedFiles.map((file) => `- ${JSON.stringify(file)}: extraction unsupported; review visible strings and runtime i18n wiring.`)
|
|
138
|
+
: ['No HTML/JS/template files were identified; inspect other source formats manually.']),
|
|
139
|
+
'',
|
|
140
|
+
'## Next steps',
|
|
141
|
+
'- Review the copied manifest and English messages. Configure targetLocales in localization.json or pass --lang to localize prepare.',
|
|
142
|
+
'- Review protectedTerms: the original extension name is protected by default.',
|
|
143
|
+
'- Translate and validate with localize prepare/apply/check. Review language quality, listing risk and RTL layout in each packaged browser build.',
|
|
144
|
+
'- node_modules and .git directories are excluded from this copy. Reinstall build dependencies when needed.',
|
|
145
|
+
'',
|
|
146
|
+
].join('\n');
|
|
147
|
+
fs.mkdirSync(destination);
|
|
148
|
+
try {
|
|
149
|
+
for (const directory of directories)
|
|
150
|
+
fs.mkdirSync(path.join(destination, directory), { recursive: true });
|
|
151
|
+
for (const { relative } of files)
|
|
152
|
+
fs.writeFileSync(path.join(destination, relative), readSource(relative), { flag: 'wx' });
|
|
153
|
+
fs.mkdirSync(path.join(destination, '_locales', 'en'), { recursive: true });
|
|
154
|
+
const writeJson = (relative, value) => fs.writeFileSync(path.join(destination, relative), `${JSON.stringify(value, null, '\t')}\n`);
|
|
155
|
+
writeJson('manifest.json', manifest);
|
|
156
|
+
writeJson('_locales/en/messages.json', messages);
|
|
157
|
+
writeJson('localization.json', { sourceLocale: 'en', targetLocales: [], protectedTerms: [originalName] });
|
|
158
|
+
fs.writeFileSync(path.join(destination, 'LOCALIZATION-REPORT.md'), report, { flag: 'wx' });
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
fs.rmSync(destination, { recursive: true, force: true });
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
return { outputDirectory: destination, extractedFields, untouchedFiles, copiedFiles: files.length };
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=localize-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize-init.js","sourceRoot":"","sources":["../src/localize-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type MessageCatalog } from './extension-localization.js';
|
|
2
|
+
interface LocaleTranslation {
|
|
3
|
+
removeKeys?: string[];
|
|
4
|
+
reviewed?: boolean;
|
|
5
|
+
sourceHashes: Record<string, string>;
|
|
6
|
+
messages: MessageCatalog;
|
|
7
|
+
}
|
|
8
|
+
export interface LocalizationBundle {
|
|
9
|
+
version: 1;
|
|
10
|
+
sourceLocale: string;
|
|
11
|
+
locales: Record<string, LocaleTranslation>;
|
|
12
|
+
}
|
|
13
|
+
export declare function prepareLocalization(directory: string, options: {
|
|
14
|
+
lang?: string;
|
|
15
|
+
output: string;
|
|
16
|
+
protect?: string;
|
|
17
|
+
}): LocalizationBundle;
|
|
18
|
+
export declare function applyLocalization(directory: string, translations: unknown, protect?: string): {
|
|
19
|
+
locales: string[];
|
|
20
|
+
keys: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function checkLocalization(directory: string, protect?: string): {
|
|
23
|
+
locales: string[];
|
|
24
|
+
errors: string[];
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=localize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize.d.ts","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,KAAK,cAAc,EAEnB,MAAM,6BAA6B,CAAA;AAIpC,UAAU,iBAAiB;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,QAAQ,EAAE,cAAc,CAAA;CACxB;AACD,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,CAAC,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAC1C;AAmHD,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,kBAAkB,CAsCpB;AA6ED,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4DrC;AACD,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BzC"}
|
package/dist/localize.js
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { canonicalSerialize, EXTENSION_LOCALES, validateMessageCatalog, } from './extension-localization.js';
|
|
5
|
+
import { listingFromArtifact } from './listing.js';
|
|
6
|
+
import { runListingOnlyChecks } from './review-checks.js';
|
|
7
|
+
const STATE = '.extenshi-localization.json';
|
|
8
|
+
function locale(value) {
|
|
9
|
+
if (typeof value !== 'string' || !EXTENSION_LOCALES.includes(value))
|
|
10
|
+
throw new Error(`Unsupported extension locale: ${String(value)}`);
|
|
11
|
+
}
|
|
12
|
+
function object(value) {
|
|
13
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
14
|
+
}
|
|
15
|
+
/** Reject symlink components, including dangling links, before reading or replacing workspace files. */
|
|
16
|
+
function safePath(root, relative) {
|
|
17
|
+
const result = path.resolve(root, relative);
|
|
18
|
+
if (!result.startsWith(`${root}${path.sep}`))
|
|
19
|
+
throw new Error('Path must stay inside extension directory');
|
|
20
|
+
let current = root;
|
|
21
|
+
for (const part of path.relative(root, result).split(path.sep)) {
|
|
22
|
+
current = path.join(current, part);
|
|
23
|
+
try {
|
|
24
|
+
if (fs.lstatSync(current).isSymbolicLink())
|
|
25
|
+
throw new Error(`Symlinks are not supported: ${current}`);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
if (error.code !== 'ENOENT')
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
function read(root, relative, fallback) {
|
|
35
|
+
const file = safePath(root, relative);
|
|
36
|
+
if (!fs.existsSync(file) && fallback !== undefined)
|
|
37
|
+
return fallback;
|
|
38
|
+
if (fs.statSync(file).size > 10 * 1024 * 1024)
|
|
39
|
+
throw new Error(`Localization file exceeds 10 MB: ${relative}`);
|
|
40
|
+
return JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
41
|
+
}
|
|
42
|
+
function catalogPath(code) {
|
|
43
|
+
locale(code);
|
|
44
|
+
return `_locales/${code}/messages.json`;
|
|
45
|
+
}
|
|
46
|
+
function hash(value) {
|
|
47
|
+
return createHash('sha256').update(canonicalSerialize(value)).digest('hex');
|
|
48
|
+
}
|
|
49
|
+
function assertValid(errors) {
|
|
50
|
+
if (errors.length)
|
|
51
|
+
throw new Error(errors.join('\n'));
|
|
52
|
+
}
|
|
53
|
+
function context(directory, protect) {
|
|
54
|
+
const root = fs.realpathSync(directory);
|
|
55
|
+
const manifest = read(root, 'manifest.json');
|
|
56
|
+
locale(manifest.default_locale);
|
|
57
|
+
const sourceLocale = manifest.default_locale;
|
|
58
|
+
const source = read(root, catalogPath(sourceLocale));
|
|
59
|
+
assertValid(validateMessageCatalog(source, source));
|
|
60
|
+
const config = read(root, 'localization.json', {});
|
|
61
|
+
if (config.sourceLocale && config.sourceLocale !== sourceLocale)
|
|
62
|
+
throw new Error('localization.json sourceLocale differs from manifest default_locale');
|
|
63
|
+
if (config.targetLocales &&
|
|
64
|
+
(!Array.isArray(config.targetLocales) || config.targetLocales.some((value) => typeof value !== 'string')))
|
|
65
|
+
throw new Error('Invalid targetLocales configuration');
|
|
66
|
+
if (config.protectedTerms &&
|
|
67
|
+
(!Array.isArray(config.protectedTerms) ||
|
|
68
|
+
config.protectedTerms.some((value) => typeof value !== 'string')))
|
|
69
|
+
throw new Error('Invalid protectedTerms configuration');
|
|
70
|
+
const protectedTerms = [...(config.protectedTerms ?? []), ...(protect?.split(',').filter(Boolean) ?? [])];
|
|
71
|
+
const state = read(root, STATE, { version: 1, locales: {} });
|
|
72
|
+
if (!object(state) || state.version !== 1 || !object(state.locales))
|
|
73
|
+
throw new Error('Invalid localization state');
|
|
74
|
+
if (state.targetHashes !== undefined && !object(state.targetHashes))
|
|
75
|
+
throw new Error('Invalid localization target hashes');
|
|
76
|
+
for (const [code, hashes] of [
|
|
77
|
+
...Object.entries(state.locales),
|
|
78
|
+
...Object.entries(state.targetHashes ?? {}),
|
|
79
|
+
]) {
|
|
80
|
+
locale(code);
|
|
81
|
+
if (!object(hashes) || Object.values(hashes).some((value) => typeof value !== 'string'))
|
|
82
|
+
throw new Error('Invalid localization state hashes');
|
|
83
|
+
}
|
|
84
|
+
return { root, manifest, sourceLocale, source, config, protectedTerms, state };
|
|
85
|
+
}
|
|
86
|
+
/** Stage every file first and restore originals if a rename fails. */
|
|
87
|
+
function writeBatch(root, files) {
|
|
88
|
+
const staged = [];
|
|
89
|
+
const written = [];
|
|
90
|
+
try {
|
|
91
|
+
for (const [relative, value] of Object.entries(files)) {
|
|
92
|
+
const file = safePath(root, relative);
|
|
93
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
94
|
+
const temp = `${file}.${randomUUID()}.tmp`;
|
|
95
|
+
const original = fs.existsSync(file) ? fs.readFileSync(file) : null;
|
|
96
|
+
staged.push({ file, temp, original });
|
|
97
|
+
fs.writeFileSync(temp, `${JSON.stringify(value, null, '\t')}\n`, { flag: 'wx' });
|
|
98
|
+
}
|
|
99
|
+
for (const item of staged) {
|
|
100
|
+
safePath(root, path.relative(root, item.file));
|
|
101
|
+
fs.renameSync(item.temp, item.file);
|
|
102
|
+
written.push(item);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
for (const item of written.reverse()) {
|
|
107
|
+
if (item.original)
|
|
108
|
+
fs.writeFileSync(item.file, item.original);
|
|
109
|
+
else
|
|
110
|
+
fs.rmSync(item.file, { force: true });
|
|
111
|
+
}
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
for (const item of staged)
|
|
116
|
+
fs.rmSync(item.temp, { force: true });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export function prepareLocalization(directory, options) {
|
|
120
|
+
const ctx = context(directory, options.protect);
|
|
121
|
+
const targets = [
|
|
122
|
+
...new Set(options.lang ? options.lang.split(',').map((code) => code.trim()) : (ctx.config.targetLocales ?? [])),
|
|
123
|
+
];
|
|
124
|
+
if (!targets.length)
|
|
125
|
+
throw new Error('Specify --lang fr,de,es or targetLocales in localization.json');
|
|
126
|
+
const bundle = { version: 1, sourceLocale: ctx.sourceLocale, locales: {} };
|
|
127
|
+
for (const code of targets) {
|
|
128
|
+
locale(code);
|
|
129
|
+
if (code === ctx.sourceLocale)
|
|
130
|
+
throw new Error('Target locale cannot be the default locale');
|
|
131
|
+
const existing = read(ctx.root, catalogPath(code), {});
|
|
132
|
+
assertValid(validateMessageCatalog(existing, existing));
|
|
133
|
+
const pending = Object.keys(ctx.source).filter((key) => !existing[key] ||
|
|
134
|
+
ctx.state.locales[code]?.[key] !== hash(ctx.source[key]) ||
|
|
135
|
+
ctx.state.targetHashes?.[code]?.[key] !== hash(existing[key]));
|
|
136
|
+
const removeKeys = Object.keys(existing).filter((key) => !Object.hasOwn(ctx.source, key));
|
|
137
|
+
if (pending.length || removeKeys.length)
|
|
138
|
+
bundle.locales[code] = {
|
|
139
|
+
removeKeys,
|
|
140
|
+
sourceHashes: Object.fromEntries(pending.map((key) => [key, hash(ctx.source[key])])),
|
|
141
|
+
messages: Object.fromEntries(pending.map((key) => [key, ctx.source[key]])),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
fs.mkdirSync(options.output, { recursive: true });
|
|
145
|
+
const output = fs.realpathSync(options.output);
|
|
146
|
+
const file = safePath(output, 'localization-request.json');
|
|
147
|
+
// Request files must never overwrite work a translator already started.
|
|
148
|
+
fs.writeFileSync(file, `${JSON.stringify({ ...bundle, instructions: 'REQUEST ONLY: translate messages for each locale; preserve sourceHashes, placeholders, dollar escapes and protected terms. Review every requested key, then add reviewed: true to each locale before apply.', protectedTerms: ctx.protectedTerms }, null, '\t')}\n`, { flag: 'wx' });
|
|
149
|
+
return bundle;
|
|
150
|
+
}
|
|
151
|
+
function listingGate(manifest, sourceLocale, source, target) {
|
|
152
|
+
const errors = [];
|
|
153
|
+
const resolvedManifest = (messages) => {
|
|
154
|
+
const resolved = { ...manifest };
|
|
155
|
+
for (const field of ['name', 'description']) {
|
|
156
|
+
const raw = manifest[field];
|
|
157
|
+
if (typeof raw !== 'string')
|
|
158
|
+
continue;
|
|
159
|
+
const match = /^__MSG_([A-Za-z0-9_]+)__$/.exec(raw);
|
|
160
|
+
if (!match)
|
|
161
|
+
continue;
|
|
162
|
+
const key = Object.keys(messages).find((item) => item.toLowerCase() === match[1].toLowerCase());
|
|
163
|
+
if (!key) {
|
|
164
|
+
errors.push(`Manifest ${field}: missing message ${match[1]}`);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const entry = messages[key];
|
|
168
|
+
const expandContent = (content) => content.replace(/\${2,}|\$[1-9]/g, (token) => {
|
|
169
|
+
if (token.startsWith('$$'))
|
|
170
|
+
return token.slice(1);
|
|
171
|
+
errors.push(`Manifest ${field}: positional substitutions require runtime arguments; use static text`);
|
|
172
|
+
return '';
|
|
173
|
+
});
|
|
174
|
+
resolved[field] = entry.message.replace(/\${2,}|\$[A-Za-z0-9_]+\$|\$[1-9]/g, (token) => {
|
|
175
|
+
if (token.startsWith('$$'))
|
|
176
|
+
return token.slice(1);
|
|
177
|
+
if (/^\$[1-9]$/.test(token))
|
|
178
|
+
return expandContent(token);
|
|
179
|
+
const name = Object.keys(entry.placeholders ?? {}).find((item) => item.toLowerCase() === token.slice(1, -1).toLowerCase());
|
|
180
|
+
return name ? expandContent(entry.placeholders?.[name]?.content ?? '') : token;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
return resolved;
|
|
184
|
+
};
|
|
185
|
+
const originalManifest = resolvedManifest(source);
|
|
186
|
+
const translatedManifest = resolvedManifest(target);
|
|
187
|
+
const findings = (messages) => runListingOnlyChecks(listingFromArtifact(messages === source ? originalManifest : translatedManifest, new Map([[catalogPath(sourceLocale), JSON.stringify(messages)]])));
|
|
188
|
+
// Preserve matched claim/pattern evidence too: a baseline ranking claim must
|
|
189
|
+
// never hide a new guarantee or a different field's finding.
|
|
190
|
+
const identity = (finding) => {
|
|
191
|
+
const evidence = (finding.evidence ?? '').replace(/^\[[^\]]+\]\s*/, '');
|
|
192
|
+
const field = evidence.split(':')[0].trim();
|
|
193
|
+
const pattern = evidence.includes(' — ') ? evidence.split(' — ').slice(1).join(' — ') : '';
|
|
194
|
+
return `${finding.check}:${finding.title}:${field}:${pattern}`;
|
|
195
|
+
};
|
|
196
|
+
const baseline = new Map();
|
|
197
|
+
for (const finding of findings(source))
|
|
198
|
+
baseline.set(identity(finding), (baseline.get(identity(finding)) ?? 0) + 1);
|
|
199
|
+
// Store limits apply to visible text after placeholder and escape expansion.
|
|
200
|
+
// https://developer.chrome.com/docs/extensions/reference/manifest
|
|
201
|
+
for (const [field, limit] of [
|
|
202
|
+
['name', 75],
|
|
203
|
+
['description', 132],
|
|
204
|
+
]) {
|
|
205
|
+
const message = translatedManifest[field];
|
|
206
|
+
if (typeof message === 'string' && message.length > limit)
|
|
207
|
+
errors.push(`Manifest ${field}: translation exceeds ${limit} characters`);
|
|
208
|
+
}
|
|
209
|
+
for (const finding of findings(target)) {
|
|
210
|
+
const remaining = baseline.get(identity(finding)) ?? 0;
|
|
211
|
+
if (remaining)
|
|
212
|
+
baseline.set(identity(finding), remaining - 1);
|
|
213
|
+
else
|
|
214
|
+
errors.push(`Translation introduces listing risk ${finding.check}: ${finding.title}`);
|
|
215
|
+
}
|
|
216
|
+
return errors;
|
|
217
|
+
}
|
|
218
|
+
export function applyLocalization(directory, translations, protect) {
|
|
219
|
+
const ctx = context(directory, protect);
|
|
220
|
+
if (!object(translations) ||
|
|
221
|
+
translations.version !== 1 ||
|
|
222
|
+
translations.sourceLocale !== ctx.sourceLocale ||
|
|
223
|
+
!object(translations.locales))
|
|
224
|
+
throw new Error('Invalid translation bundle or source locale');
|
|
225
|
+
const files = {};
|
|
226
|
+
let keys = 0;
|
|
227
|
+
for (const [code, value] of Object.entries(translations.locales)) {
|
|
228
|
+
locale(code);
|
|
229
|
+
if (code === ctx.sourceLocale)
|
|
230
|
+
throw new Error('Cannot replace the default locale');
|
|
231
|
+
if (!object(value) || value.reviewed !== true || !object(value.sourceHashes) || !object(value.messages))
|
|
232
|
+
throw new Error(`Invalid translation bundle for ${code}; set reviewed: true after reviewing each requested translation`);
|
|
233
|
+
assertValid(validateMessageCatalog(ctx.source, value.messages, {
|
|
234
|
+
allowMissing: true,
|
|
235
|
+
protectedTerms: ctx.protectedTerms,
|
|
236
|
+
}));
|
|
237
|
+
if (Object.keys(value.sourceHashes).length !== Object.keys(value.messages).length)
|
|
238
|
+
throw new Error(`${code}: sourceHashes must match translated keys`);
|
|
239
|
+
for (const key of Object.keys(value.messages))
|
|
240
|
+
if (value.sourceHashes[key] !== hash(ctx.source[key]))
|
|
241
|
+
throw new Error(`${code}.${key}: source changed; prepare translations again`);
|
|
242
|
+
const existing = read(ctx.root, catalogPath(code), {});
|
|
243
|
+
const removeKeys = value.removeKeys ?? [];
|
|
244
|
+
if (!Array.isArray(removeKeys) ||
|
|
245
|
+
removeKeys.some((key) => typeof key !== 'string' || Object.hasOwn(ctx.source, key) || !Object.hasOwn(existing, key)))
|
|
246
|
+
throw new Error(`${code}: invalid or stale removed keys; prepare translations again`);
|
|
247
|
+
const merged = { ...existing, ...value.messages };
|
|
248
|
+
for (const key of removeKeys)
|
|
249
|
+
delete merged[key];
|
|
250
|
+
assertValid(validateMessageCatalog(ctx.source, merged, { protectedTerms: ctx.protectedTerms }));
|
|
251
|
+
assertValid(listingGate(ctx.manifest, ctx.sourceLocale, ctx.source, merged));
|
|
252
|
+
files[catalogPath(code)] = merged;
|
|
253
|
+
ctx.state.locales[code] = { ...ctx.state.locales[code], ...value.sourceHashes };
|
|
254
|
+
ctx.state.targetHashes ??= {};
|
|
255
|
+
ctx.state.targetHashes[code] = {
|
|
256
|
+
...ctx.state.targetHashes[code],
|
|
257
|
+
...Object.fromEntries(Object.entries(value.messages).map(([key, message]) => [key, hash(message)])),
|
|
258
|
+
};
|
|
259
|
+
for (const key of removeKeys) {
|
|
260
|
+
delete ctx.state.locales[code][key];
|
|
261
|
+
delete ctx.state.targetHashes[code][key];
|
|
262
|
+
}
|
|
263
|
+
keys += Object.keys(value.messages).length;
|
|
264
|
+
}
|
|
265
|
+
if (Object.keys(files).length) {
|
|
266
|
+
files[STATE] = ctx.state;
|
|
267
|
+
writeBatch(ctx.root, files);
|
|
268
|
+
}
|
|
269
|
+
return { locales: Object.keys(translations.locales), keys };
|
|
270
|
+
}
|
|
271
|
+
export function checkLocalization(directory, protect) {
|
|
272
|
+
const ctx = context(directory, protect);
|
|
273
|
+
const locales = [
|
|
274
|
+
...new Set([...fs.readdirSync(safePath(ctx.root, '_locales')), ...(ctx.config.targetLocales ?? [])]),
|
|
275
|
+
].filter((code) => code !== ctx.sourceLocale);
|
|
276
|
+
const errors = [];
|
|
277
|
+
for (const code of locales) {
|
|
278
|
+
locale(code);
|
|
279
|
+
const target = read(ctx.root, catalogPath(code), {});
|
|
280
|
+
const invalid = validateMessageCatalog(ctx.source, target, { protectedTerms: ctx.protectedTerms });
|
|
281
|
+
errors.push(...invalid.map((error) => `${code}: ${error}`));
|
|
282
|
+
if (!invalid.length)
|
|
283
|
+
errors.push(...listingGate(ctx.manifest, ctx.sourceLocale, ctx.source, target).map((error) => `${code}: ${error}`));
|
|
284
|
+
for (const key of Object.keys(ctx.source))
|
|
285
|
+
if (ctx.state.locales[code]?.[key] !== hash(ctx.source[key]) ||
|
|
286
|
+
!target[key] ||
|
|
287
|
+
ctx.state.targetHashes?.[code]?.[key] !== hash(target[key]))
|
|
288
|
+
errors.push(`${code}.${key}: unreviewed or stale translation; run localize prepare`);
|
|
289
|
+
}
|
|
290
|
+
return { locales, errors };
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=localize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extenshi/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Pre-publish security scanner for browser extensions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -26,15 +26,15 @@
|
|
|
26
26
|
"commander": "^12.1.0",
|
|
27
27
|
"jszip": "^3.10.1",
|
|
28
28
|
"ora": "^8.1.1",
|
|
29
|
-
"posthog-node": "^5.
|
|
30
|
-
"semver": "^7.
|
|
31
|
-
"undici": "^7.29.
|
|
29
|
+
"posthog-node": "^5.51.7",
|
|
30
|
+
"semver": "^7.8.5",
|
|
31
|
+
"undici": "^7.29.1",
|
|
32
32
|
"zod": "^3.25.76"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^22.16.5",
|
|
36
|
-
"@types/semver": "^7.
|
|
37
|
-
"typescript": "^5.
|
|
36
|
+
"@types/semver": "^7.8.0",
|
|
37
|
+
"typescript": "^5.9.3",
|
|
38
38
|
"vitest": "^3.2.7"
|
|
39
39
|
},
|
|
40
40
|
"engines": {
|