@freegamestore/compliance 0.9.0 → 0.10.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/dist/checks/audio-mute-respect.d.ts.map +1 -1
- package/dist/checks/audio-mute-respect.js +1 -5
- package/dist/checks/audio-mute-respect.js.map +1 -1
- package/dist/checks/brand-fonts.d.ts.map +1 -1
- package/dist/checks/brand-fonts.js +1 -5
- package/dist/checks/brand-fonts.js.map +1 -1
- package/dist/checks/claude-md-slim.js +1 -1
- package/dist/checks/claude-md-slim.js.map +1 -1
- package/dist/checks/no-any-types.d.ts.map +1 -1
- package/dist/checks/no-any-types.js +1 -5
- package/dist/checks/no-any-types.js.map +1 -1
- package/dist/checks/no-brand-overrides.d.ts.map +1 -1
- package/dist/checks/no-brand-overrides.js +34 -8
- package/dist/checks/no-brand-overrides.js.map +1 -1
- package/dist/checks/no-console-log.d.ts.map +1 -1
- package/dist/checks/no-console-log.js +1 -5
- package/dist/checks/no-console-log.js.map +1 -1
- package/dist/checks/no-cookies.d.ts.map +1 -1
- package/dist/checks/no-cookies.js +1 -5
- package/dist/checks/no-cookies.js.map +1 -1
- package/dist/checks/no-excessive-inline-styles.d.ts.map +1 -1
- package/dist/checks/no-excessive-inline-styles.js +1 -5
- package/dist/checks/no-excessive-inline-styles.js.map +1 -1
- package/dist/checks/no-external-fetch.d.ts.map +1 -1
- package/dist/checks/no-external-fetch.js +1 -5
- package/dist/checks/no-external-fetch.js.map +1 -1
- package/dist/checks/no-external-scripts.d.ts +2 -2
- package/dist/checks/no-external-scripts.d.ts.map +1 -1
- package/dist/checks/no-external-scripts.js +26 -12
- package/dist/checks/no-external-scripts.js.map +1 -1
- package/dist/checks/no-hardcoded-colors.d.ts.map +1 -1
- package/dist/checks/no-hardcoded-colors.js +1 -5
- package/dist/checks/no-hardcoded-colors.js.map +1 -1
- package/dist/checks/no-page-policy.d.ts +17 -0
- package/dist/checks/no-page-policy.d.ts.map +1 -0
- package/dist/checks/no-page-policy.js +45 -0
- package/dist/checks/no-page-policy.js.map +1 -0
- package/dist/checks/no-payment-capabilities.d.ts +4 -0
- package/dist/checks/no-payment-capabilities.d.ts.map +1 -0
- package/dist/checks/no-payment-capabilities.js +129 -0
- package/dist/checks/no-payment-capabilities.js.map +1 -0
- package/dist/checks/no-payment-sdk.d.ts.map +1 -1
- package/dist/checks/no-payment-sdk.js +1 -5
- package/dist/checks/no-payment-sdk.js.map +1 -1
- package/dist/checks/no-placeholders.d.ts.map +1 -1
- package/dist/checks/no-placeholders.js +1 -5
- package/dist/checks/no-placeholders.js.map +1 -1
- package/dist/checks/no-scroll.d.ts.map +1 -1
- package/dist/checks/no-scroll.js +1 -5
- package/dist/checks/no-scroll.js.map +1 -1
- package/dist/checks/no-tracking.d.ts.map +1 -1
- package/dist/checks/no-tracking.js +19 -6
- package/dist/checks/no-tracking.js.map +1 -1
- package/dist/checks/permissions-declared.d.ts +13 -0
- package/dist/checks/permissions-declared.d.ts.map +1 -0
- package/dist/checks/permissions-declared.js +43 -0
- package/dist/checks/permissions-declared.js.map +1 -0
- package/dist/checks/pwa-offline.d.ts.map +1 -1
- package/dist/checks/pwa-offline.js +10 -4
- package/dist/checks/pwa-offline.js.map +1 -1
- package/dist/checks/seo-metadata.d.ts +5 -0
- package/dist/checks/seo-metadata.d.ts.map +1 -0
- package/dist/checks/seo-metadata.js +23 -0
- package/dist/checks/seo-metadata.js.map +1 -0
- package/dist/checks/unsafe-vh.d.ts.map +1 -1
- package/dist/checks/unsafe-vh.js +1 -5
- package/dist/checks/unsafe-vh.js.map +1 -1
- package/dist/checks/uses-game-sdk.d.ts.map +1 -1
- package/dist/checks/uses-game-sdk.js +1 -5
- package/dist/checks/uses-game-sdk.js.map +1 -1
- package/dist/checks/uses-localstorage.d.ts +7 -3
- package/dist/checks/uses-localstorage.d.ts.map +1 -1
- package/dist/checks/uses-localstorage.js +12 -14
- package/dist/checks/uses-localstorage.js.map +1 -1
- package/dist/game-deploy-workflow.d.ts +12 -0
- package/dist/game-deploy-workflow.d.ts.map +1 -0
- package/dist/game-deploy-workflow.js +34 -0
- package/dist/game-deploy-workflow.js.map +1 -0
- package/dist/game-metadata.d.ts +60 -0
- package/dist/game-metadata.d.ts.map +1 -0
- package/dist/game-metadata.js +194 -0
- package/dist/game-metadata.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/inline-manifest.d.ts.map +1 -1
- package/dist/lib/inline-manifest.js +14 -59
- package/dist/lib/inline-manifest.js.map +1 -1
- package/dist/lib/path.d.ts +11 -0
- package/dist/lib/path.d.ts.map +1 -0
- package/dist/lib/path.js +15 -0
- package/dist/lib/path.js.map +1 -0
- package/dist/lib/permissions.d.ts +44 -0
- package/dist/lib/permissions.d.ts.map +1 -0
- package/dist/lib/permissions.js +132 -0
- package/dist/lib/permissions.js.map +1 -0
- package/dist/lib/strip.d.ts.map +1 -1
- package/dist/lib/strip.js +20 -26
- package/dist/lib/strip.js.map +1 -1
- package/dist/live/index.js +1 -1
- package/dist/live/index.js.map +1 -1
- package/dist/run-checks.d.ts.map +1 -1
- package/dist/run-checks.js +8 -0
- package/dist/run-checks.js.map +1 -1
- package/dist/worker.d.ts +6 -0
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +6 -0
- package/dist/worker.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-mute-respect.d.ts","sourceRoot":"","sources":["../../src/checks/audio-mute-respect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"audio-mute-respect.d.ts","sourceRoot":"","sources":["../../src/checks/audio-mute-respect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAyB/C,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CpF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripForExt } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Any code that produces sound from the page directly — Web Audio API,
|
|
@@ -63,9 +64,4 @@ export async function checkAudioMuteRespect(source) {
|
|
|
63
64
|
],
|
|
64
65
|
};
|
|
65
66
|
}
|
|
66
|
-
function extOf(path) {
|
|
67
|
-
const dot = path.lastIndexOf('.');
|
|
68
|
-
const slash = path.lastIndexOf('/');
|
|
69
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
70
|
-
}
|
|
71
67
|
//# sourceMappingURL=audio-mute-respect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-mute-respect.js","sourceRoot":"","sources":["../../src/checks/audio-mute-respect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;;;;;;;;GAUG;AACH,MAAM,YAAY,GAChB,yFAAyF,CAAC;AAE5F;;;;GAIG;AACH,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAkB;IAC5D,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,kEAAkE;QAClE,iEAAiE;QACjE,iDAAiD;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;IACjD,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,8BAA8B;YACpC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,0BAA0B;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,8BAA8B;YACpC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,gBAAgB,aAAa,CAAC,MAAM,qCAAqC;SAClF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,qBAAqB,aAAa,CAAC,MAAM,0CAA0C,aAAa;aACrG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrD,WAAW,EAAE;YACX,kJAAkJ;YAClJ,yIAAyI;SAC1I;KACF,CAAC;AACJ,CAAC
|
|
1
|
+
{"version":3,"file":"audio-mute-respect.js","sourceRoot":"","sources":["../../src/checks/audio-mute-respect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;;;;;;;;GAUG;AACH,MAAM,YAAY,GAChB,yFAAyF,CAAC;AAE5F;;;;GAIG;AACH,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAkB;IAC5D,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,kEAAkE;QAClE,iEAAiE;QACjE,iDAAiD;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC;IACjD,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,8BAA8B;YACpC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,0BAA0B;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,8BAA8B;YACpC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,gBAAgB,aAAa,CAAC,MAAM,qCAAqC;SAClF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,qBAAqB,aAAa,CAAC,MAAM,0CAA0C,aAAa;aACrG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrD,WAAW,EAAE;YACX,kJAAkJ;YAClJ,yIAAyI;SAC1I;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-fonts.d.ts","sourceRoot":"","sources":["../../src/checks/brand-fonts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"brand-fonts.d.ts","sourceRoot":"","sources":["../../src/checks/brand-fonts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA8B9E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
const REQUIRED_FONTS = ['Manrope', 'Fraunces'];
|
|
2
3
|
/**
|
|
3
4
|
* The platform's brand wants Manrope (body) + Fraunces (display) so apps
|
|
@@ -39,9 +40,4 @@ export async function checkBrandFonts(source) {
|
|
|
39
40
|
],
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
|
-
function extOf(path) {
|
|
43
|
-
const dot = path.lastIndexOf('.');
|
|
44
|
-
const slash = path.lastIndexOf('/');
|
|
45
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
46
|
-
}
|
|
47
43
|
//# sourceMappingURL=brand-fonts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-fonts.js","sourceRoot":"","sources":["../../src/checks/brand-fonts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"brand-fonts.js","sourceRoot":"","sources":["../../src/checks/brand-fonts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB;IACtD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO;YAAE,SAAS;QACnE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM;YAAE,MAAM;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;SACnC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACxC,WAAW,EAAE;YACX,uEAAuE;YACvE,sFAAsF;SACvF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* counts as boilerplate; this check is the enforcement arm.
|
|
14
14
|
*/
|
|
15
15
|
const NAME = 'CLAUDE.md is slim (no platform boilerplate)';
|
|
16
|
-
const SKILLS_URL = 'https://raw.githubusercontent.com/freegamestore-online/
|
|
16
|
+
const SKILLS_URL = 'https://raw.githubusercontent.com/freegamestore-online/platform/main/sites/freegamestore/SKILLS.md';
|
|
17
17
|
// Section headers that should NOT appear in a per-repo CLAUDE.md — they
|
|
18
18
|
// belong in SKILLS.md. Match leading-`##` headers, case-insensitive.
|
|
19
19
|
const BOILERPLATE_HEADERS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md-slim.js","sourceRoot":"","sources":["../../src/checks/claude-md-slim.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,MAAM,IAAI,GAAG,6CAA6C,CAAC;AAE3D,MAAM,UAAU,GACd,
|
|
1
|
+
{"version":3,"file":"claude-md-slim.js","sourceRoot":"","sources":["../../src/checks/claude-md-slim.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-any-types.d.ts","sourceRoot":"","sources":["../../src/checks/no-any-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-any-types.d.ts","sourceRoot":"","sources":["../../src/checks/no-any-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAyB/C,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA4C9E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsAndStrings } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Flags explicit `any` type annotations in game source files. Both
|
|
@@ -14,11 +15,6 @@ import { stripCommentsAndStrings } from '../lib/strip.js';
|
|
|
14
15
|
* - `web/src/types.ts` — type definition files may have legitimate `any`
|
|
15
16
|
*/
|
|
16
17
|
const SCAN_EXTS = new Set(['.ts', '.tsx']);
|
|
17
|
-
function extOf(path) {
|
|
18
|
-
const dot = path.lastIndexOf('.');
|
|
19
|
-
const slash = path.lastIndexOf('/');
|
|
20
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
21
|
-
}
|
|
22
18
|
function isExcluded(path) {
|
|
23
19
|
if (path.startsWith('web/src/test/'))
|
|
24
20
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-any-types.js","sourceRoot":"","sources":["../../src/checks/no-any-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"no-any-types.js","sourceRoot":"","sources":["../../src/checks/no-any-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D;;;;;;;;;;;;;GAaG;AAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3C,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB;IACtD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QAC1C,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAE/B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,+DAA+D;QAC/D,oEAAoE;QACpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAE9C,iEAAiE;QACjE,+DAA+D;QAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,0CAA0C;SACnD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG,UAAU,4BAA4B,QAAQ,CAAC,MAAM,aAAa,QAAQ;aAClF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,WAAW,EAAE;YACX,+FAA+F;YAC/F,qGAAqG;SACtG;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-brand-overrides.d.ts","sourceRoot":"","sources":["../../src/checks/no-brand-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-brand-overrides.d.ts","sourceRoot":"","sources":["../../src/checks/no-brand-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA8CpF;AAyED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,MAAM,EAAE,CA0EV"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsOnly, stripCssComments } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Apps and games on the platform must look consistent with the storefront
|
|
@@ -172,16 +173,24 @@ export function scanContent(filename, content, opts = {}) {
|
|
|
172
173
|
const start = m.index + m[0].length;
|
|
173
174
|
const value = sliceFontValue(content, start, isJsx);
|
|
174
175
|
const quotedStrings = [...value.matchAll(quotedRe)].map((x) => x[2]);
|
|
176
|
+
// A JSX value with no string literal is an expression (`FONT_STACK`,
|
|
177
|
+
// `theme.fonts.body`), not a font name; the strings it resolves to are
|
|
178
|
+
// audited wherever they're defined (#94).
|
|
179
|
+
if (isJsx && quotedStrings.length === 0)
|
|
180
|
+
continue;
|
|
175
181
|
const candidates = quotedStrings.length > 0 ? quotedStrings : [value];
|
|
176
182
|
let flagged = false;
|
|
177
183
|
for (const cand of candidates) {
|
|
178
|
-
const tokens = cand
|
|
179
|
-
.split(',')
|
|
184
|
+
const tokens = splitFontList(cand)
|
|
180
185
|
.map((t) => t
|
|
186
|
+
// `!important` is a declaration flag, not part of the font (#94).
|
|
187
|
+
.replace(/\s*!\s*important\s*$/i, '')
|
|
181
188
|
.trim()
|
|
182
189
|
.replace(/^["']|["']$/g, '')
|
|
183
190
|
.toLowerCase())
|
|
184
|
-
|
|
191
|
+
// `var(--font-display)` resolves to a design token, not a font name;
|
|
192
|
+
// its definition is what the protected-variable check guards (#94).
|
|
193
|
+
.filter((t) => t && !t.startsWith('var('));
|
|
185
194
|
for (const t of tokens) {
|
|
186
195
|
if (!ALLOWED_FONT_TOKENS.has(t)) {
|
|
187
196
|
const line = lineNumberAt(content, m.index);
|
|
@@ -196,6 +205,28 @@ export function scanContent(filename, content, opts = {}) {
|
|
|
196
205
|
}
|
|
197
206
|
return out;
|
|
198
207
|
}
|
|
208
|
+
/** Split a font-family list on top-level commas, keeping `var(--a, Fallback)`
|
|
209
|
+
* whole so its fallback isn't mistaken for a separate font (#94). */
|
|
210
|
+
function splitFontList(value) {
|
|
211
|
+
const out = [];
|
|
212
|
+
let depth = 0;
|
|
213
|
+
let cur = '';
|
|
214
|
+
for (const c of value) {
|
|
215
|
+
if (c === '(')
|
|
216
|
+
depth++;
|
|
217
|
+
else if (c === ')')
|
|
218
|
+
depth = Math.max(0, depth - 1);
|
|
219
|
+
if (c === ',' && depth === 0) {
|
|
220
|
+
out.push(cur);
|
|
221
|
+
cur = '';
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
cur += c;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
out.push(cur);
|
|
228
|
+
return out;
|
|
229
|
+
}
|
|
199
230
|
/**
|
|
200
231
|
* Walk forward from `start` until we hit the end of the font-family value.
|
|
201
232
|
*
|
|
@@ -239,11 +270,6 @@ function sliceFontValue(content, start, isJsx) {
|
|
|
239
270
|
}
|
|
240
271
|
return content.slice(start, i);
|
|
241
272
|
}
|
|
242
|
-
function extOf(path) {
|
|
243
|
-
const dot = path.lastIndexOf('.');
|
|
244
|
-
const slash = path.lastIndexOf('/');
|
|
245
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
246
|
-
}
|
|
247
273
|
function lineNumberAt(content, index) {
|
|
248
274
|
let n = 1;
|
|
249
275
|
for (let i = 0; i < index; i++)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-brand-overrides.js","sourceRoot":"","sources":["../../src/checks/no-brand-overrides.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"no-brand-overrides.js","sourceRoot":"","sources":["../../src/checks/no-brand-overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-console-log.d.ts","sourceRoot":"","sources":["../../src/checks/no-console-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-console-log.d.ts","sourceRoot":"","sources":["../../src/checks/no-console-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmB/C,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA0ChF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsAndStrings } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Flags `console.log()` calls in game source files. Production games
|
|
@@ -14,11 +15,6 @@ import { stripCommentsAndStrings } from '../lib/strip.js';
|
|
|
14
15
|
* - `web/src/test/` — test files may log freely
|
|
15
16
|
*/
|
|
16
17
|
const SCAN_EXTS = new Set(['.ts', '.tsx']);
|
|
17
|
-
function extOf(path) {
|
|
18
|
-
const dot = path.lastIndexOf('.');
|
|
19
|
-
const slash = path.lastIndexOf('/');
|
|
20
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
21
|
-
}
|
|
22
18
|
export async function checkNoConsoleLog(source) {
|
|
23
19
|
let totalCount = 0;
|
|
24
20
|
const hitFiles = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-console-log.js","sourceRoot":"","sources":["../../src/checks/no-console-log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"no-console-log.js","sourceRoot":"","sources":["../../src/checks/no-console-log.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D;;;;;;;;;;;;;GAaG;AAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAkB;IACxD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,SAAS;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QAE1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,iEAAiE;QACjE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,0CAA0C;SACnD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG,UAAU,iCAAiC,QAAQ,CAAC,MAAM,aAAa,QAAQ;aACvF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,WAAW,EAAE;YACX,qHAAqH;YACrH,iGAAiG;SAClG;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-cookies.d.ts","sourceRoot":"","sources":["../../src/checks/no-cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-cookies.d.ts","sourceRoot":"","sources":["../../src/checks/no-cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB/C;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAmC7E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsForExt } from '../lib/strip.js';
|
|
2
3
|
// Patterns that indicate cookie usage — either the native DOM API or
|
|
3
4
|
// popular helper libraries. Each pattern is SDK-specific enough to avoid
|
|
@@ -56,9 +57,4 @@ export async function checkNoCookies(source) {
|
|
|
56
57
|
],
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
|
-
function extOf(path) {
|
|
60
|
-
const dot = path.lastIndexOf('.');
|
|
61
|
-
const slash = path.lastIndexOf('/');
|
|
62
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
63
|
-
}
|
|
64
60
|
//# sourceMappingURL=no-cookies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-cookies.js","sourceRoot":"","sources":["../../src/checks/no-cookies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,qEAAqE;AACrE,yEAAyE;AACzE,8CAA8C;AAC9C,MAAM,eAAe,GAAwC;IAC3D,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,6BAA6B,EAAE;IACnE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,2BAA2B,EAAE;IAC3D,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,+BAA+B,EAAE;IACzE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,+BAA+B,EAAE;IACnE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,mCAAmC,EAAE;IACjF,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE;IAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE;CAC/D,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB;IACrD,MAAM,IAAI,GAA0C,EAAE,CAAC;IAEvD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,2DAA2D;SACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,yBAAyB,IAAI;aAChD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACjD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,WAAW,EAAE;YACX,4HAA4H;YAC5H,4GAA4G;SAC7G;KACF,CAAC;AACJ,CAAC
|
|
1
|
+
{"version":3,"file":"no-cookies.js","sourceRoot":"","sources":["../../src/checks/no-cookies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,qEAAqE;AACrE,yEAAyE;AACzE,8CAA8C;AAC9C,MAAM,eAAe,GAAwC;IAC3D,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,6BAA6B,EAAE;IACnE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,2BAA2B,EAAE;IAC3D,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,+BAA+B,EAAE;IACzE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,+BAA+B,EAAE;IACnE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,mCAAmC,EAAE;IACjF,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE;IAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE;CAC/D,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB;IACrD,MAAM,IAAI,GAA0C,EAAE,CAAC;IAEvD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,2DAA2D;SACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,yBAAyB,IAAI;aAChD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACjD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,WAAW,EAAE;YACX,4HAA4H;YAC5H,4GAA4G;SAC7G;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-excessive-inline-styles.d.ts","sourceRoot":"","sources":["../../src/checks/no-excessive-inline-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-excessive-inline-styles.d.ts","sourceRoot":"","sources":["../../src/checks/no-excessive-inline-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA2B/C,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA2D3F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsAndStrings } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Flags excessive use of React inline style objects (`style={{ ... }}`)
|
|
@@ -17,11 +18,6 @@ import { stripCommentsAndStrings } from '../lib/strip.js';
|
|
|
17
18
|
const PER_FILE_THRESHOLD = 15;
|
|
18
19
|
const TOTAL_THRESHOLD = 30;
|
|
19
20
|
const INLINE_STYLE_RE = /\bstyle\s*=\s*\{\{/g;
|
|
20
|
-
function extOf(path) {
|
|
21
|
-
const dot = path.lastIndexOf('.');
|
|
22
|
-
const slash = path.lastIndexOf('/');
|
|
23
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
24
|
-
}
|
|
25
21
|
function isTestFile(path) {
|
|
26
22
|
return /\.(?:test|spec)\.[jt]sx?$/.test(path) || /(?:^|\/)(?:test|tests|__tests__)\//.test(path);
|
|
27
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-excessive-inline-styles.js","sourceRoot":"","sources":["../../src/checks/no-excessive-inline-styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D;;;;;;;;;;;;;;GAcG;AAEH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,SAAS,
|
|
1
|
+
{"version":3,"file":"no-excessive-inline-styles.js","sourceRoot":"","sources":["../../src/checks/no-excessive-inline-styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-external-fetch.d.ts","sourceRoot":"","sources":["../../src/checks/no-external-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-external-fetch.d.ts","sourceRoot":"","sources":["../../src/checks/no-external-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuC/C,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DnF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsOnly } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Flags fetch() and XMLHttpRequest calls to external domains in game
|
|
@@ -34,11 +35,6 @@ function isAllowedUrl(url) {
|
|
|
34
35
|
}
|
|
35
36
|
return false;
|
|
36
37
|
}
|
|
37
|
-
function extOf(path) {
|
|
38
|
-
const dot = path.lastIndexOf('.');
|
|
39
|
-
const slash = path.lastIndexOf('/');
|
|
40
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
41
|
-
}
|
|
42
38
|
export async function checkNoExternalFetch(source) {
|
|
43
39
|
const hits = [];
|
|
44
40
|
// Match fetch('https://...'), fetch("https://..."), fetch(`https://...`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-external-fetch.js","sourceRoot":"","sources":["../../src/checks/no-external-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3C,MAAM,eAAe,GAAG,CAAC,sBAAsB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3E,yDAAyD;AACzD,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,qCAAqC;IACpD,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"no-external-fetch.js","sourceRoot":"","sources":["../../src/checks/no-external-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import type { CheckResult } from '../types.js';
|
|
|
5
5
|
* data. Only platform-approved domains are allowed in `<script src>` tags
|
|
6
6
|
* inside `web/index.html`.
|
|
7
7
|
*
|
|
8
|
-
* Allowed: fonts.googleapis.com, fonts.gstatic.com,
|
|
9
|
-
*
|
|
8
|
+
* Allowed: fonts.googleapis.com, fonts.gstatic.com, and the platform
|
|
9
|
+
* analytics loader (https://api.freegamestore.online/v1/analytics.js).
|
|
10
10
|
* Everything else fails.
|
|
11
11
|
*
|
|
12
12
|
* HTML comments are stripped first so `<!-- <script src="..."> -->` blocks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-external-scripts.d.ts","sourceRoot":"","sources":["../../src/checks/no-external-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"no-external-scripts.d.ts","sourceRoot":"","sources":["../../src/checks/no-external-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc/C;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAwDrF"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { stripHtmlComments } from '../lib/strip.js';
|
|
2
2
|
const INDEX_HTML = 'web/index.html';
|
|
3
|
-
// Domains allowed in <script src="..."> tags
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
// Domains allowed in <script src="..."> tags: the font CDNs the storefront relies on.
|
|
4
|
+
const ALLOWED_DOMAINS = new Set(['fonts.googleapis.com', 'fonts.gstatic.com']);
|
|
5
|
+
// The one platform-owned script a game may load: the analytics loader, which
|
|
6
|
+
// injects the store's analytics tags under policy. Matched by exact host AND path.
|
|
7
|
+
// A broader freegamestore.online match would let one game's subdomain serve a
|
|
8
|
+
// script under the platform's name, and games are untrusted user content.
|
|
9
|
+
const PLATFORM_LOADER_HOST = 'api.freegamestore.online';
|
|
10
|
+
const PLATFORM_LOADER_PATH = '/v1/analytics.js';
|
|
11
11
|
/**
|
|
12
12
|
* External scripts introduce supply-chain risk and can exfiltrate player
|
|
13
13
|
* data. Only platform-approved domains are allowed in `<script src>` tags
|
|
14
14
|
* inside `web/index.html`.
|
|
15
15
|
*
|
|
16
|
-
* Allowed: fonts.googleapis.com, fonts.gstatic.com,
|
|
17
|
-
*
|
|
16
|
+
* Allowed: fonts.googleapis.com, fonts.gstatic.com, and the platform
|
|
17
|
+
* analytics loader (https://api.freegamestore.online/v1/analytics.js).
|
|
18
18
|
* Everything else fails.
|
|
19
19
|
*
|
|
20
20
|
* HTML comments are stripped first so `<!-- <script src="..."> -->` blocks
|
|
@@ -45,6 +45,8 @@ export async function checkNoExternalScripts(source) {
|
|
|
45
45
|
const hostname = extractHostname(src);
|
|
46
46
|
if (hostname === null)
|
|
47
47
|
continue;
|
|
48
|
+
if (isPlatformLoader(src))
|
|
49
|
+
continue;
|
|
48
50
|
// Check if the hostname (or any parent domain) is in the allow list.
|
|
49
51
|
if (isAllowed(hostname))
|
|
50
52
|
continue;
|
|
@@ -63,7 +65,8 @@ export async function checkNoExternalScripts(source) {
|
|
|
63
65
|
detail: `${violations.length} external script(s) from disallowed domains: ${violations.slice(0, 3).join(', ')}${violations.length > 3 ? '...' : ''}`,
|
|
64
66
|
suggestions: [
|
|
65
67
|
'Remove external <script src="..."> tags or self-host the scripts under web/public/.',
|
|
66
|
-
|
|
68
|
+
'Analytics: use the platform loader, <script src="https://api.freegamestore.online/v1/analytics.js?app=<id>" defer>, not a direct tracker.',
|
|
69
|
+
`Allowed domains: ${[...ALLOWED_DOMAINS].join(', ')}, plus the platform analytics loader.`,
|
|
67
70
|
],
|
|
68
71
|
};
|
|
69
72
|
}
|
|
@@ -77,11 +80,22 @@ function extractHostname(url) {
|
|
|
77
80
|
return null;
|
|
78
81
|
}
|
|
79
82
|
}
|
|
83
|
+
/** True only for the platform analytics loader: its exact host and path. */
|
|
84
|
+
function isPlatformLoader(url) {
|
|
85
|
+
const cleaned = url.startsWith('//') ? `https:${url}` : url;
|
|
86
|
+
try {
|
|
87
|
+
const u = new URL(cleaned);
|
|
88
|
+
return u.hostname.toLowerCase() === PLATFORM_LOADER_HOST && u.pathname === PLATFORM_LOADER_PATH;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
80
94
|
/** Check if hostname or any parent domain matches the allow list. */
|
|
81
95
|
function isAllowed(hostname) {
|
|
82
96
|
if (ALLOWED_DOMAINS.has(hostname))
|
|
83
97
|
return true;
|
|
84
|
-
//
|
|
98
|
+
// Subdomains of an allowed font CDN.
|
|
85
99
|
for (const allowed of ALLOWED_DOMAINS) {
|
|
86
100
|
if (hostname.endsWith(`.${allowed}`))
|
|
87
101
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-external-scripts.js","sourceRoot":"","sources":["../../src/checks/no-external-scripts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,
|
|
1
|
+
{"version":3,"file":"no-external-scripts.js","sourceRoot":"","sources":["../../src/checks/no-external-scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-hardcoded-colors.d.ts","sourceRoot":"","sources":["../../src/checks/no-hardcoded-colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-hardcoded-colors.d.ts","sourceRoot":"","sources":["../../src/checks/no-hardcoded-colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA+B/C,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAgDrF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { extOf } from '../lib/path.js';
|
|
1
2
|
import { stripCommentsOnly } from '../lib/strip.js';
|
|
2
3
|
/**
|
|
3
4
|
* Flags hardcoded hex color values in TSX files (React components).
|
|
@@ -24,11 +25,6 @@ const THRESHOLD = 10;
|
|
|
24
25
|
const HEX_COLOR_RE = /#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b/g;
|
|
25
26
|
/** Lines that define CSS custom properties — these are fine. */
|
|
26
27
|
const CSS_VAR_DEF_RE = /--[\w-]+\s*:\s*#/;
|
|
27
|
-
function extOf(path) {
|
|
28
|
-
const dot = path.lastIndexOf('.');
|
|
29
|
-
const slash = path.lastIndexOf('/');
|
|
30
|
-
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
31
|
-
}
|
|
32
28
|
export async function checkNoHardcodedColors(source) {
|
|
33
29
|
let totalCount = 0;
|
|
34
30
|
const hitFiles = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-hardcoded-colors.js","sourceRoot":"","sources":["../../src/checks/no-hardcoded-colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,4DAA4D;AAC5D,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAE7D,gEAAgE;AAChE,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,
|
|
1
|
+
{"version":3,"file":"no-hardcoded-colors.js","sourceRoot":"","sources":["../../src/checks/no-hardcoded-colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,4DAA4D;AAC5D,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAE7D,gEAAgE;AAChE,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAkB;IAC7D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QAC3C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM;YAAE,SAAS;QAErC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,gEAAgE;QAChE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAExC,oEAAoE;QACpE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,IAAI,OAAO;gBAAE,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;QAC3C,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,IAAI,SAAS,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,GAAG,UAAU,0CAA0C,SAAS,GAAG;SAC5E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG,UAAU,wBAAwB,QAAQ,CAAC,MAAM,iBAAiB,QAAQ;aAClF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAClD,WAAW,EAAE;YACX,0GAA0G;YAC1G,0FAA0F;SAC3F;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FileSource } from '../lib/file-source.js';
|
|
2
|
+
import type { CheckResult } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Warns when `web/index.html` sets its own Content-Security-Policy or
|
|
5
|
+
* Permissions-Policy with `<meta http-equiv>` (#369).
|
|
6
|
+
*
|
|
7
|
+
* The game host already sends both headers, default-open. The browser applies
|
|
8
|
+
* a page's meta policy on top of the header, so the stricter of the two wins:
|
|
9
|
+
* a meta CSP can only take capabilities away. Three games had one copied from
|
|
10
|
+
* the old platform lockdown, and it blocked the platform analytics loader
|
|
11
|
+
* without anyone noticing.
|
|
12
|
+
*
|
|
13
|
+
* WARN level: a stricter policy is the creator's choice, but it should be a
|
|
14
|
+
* deliberate one.
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkNoPagePolicy(source: FileSource): Promise<CheckResult>;
|
|
17
|
+
//# sourceMappingURL=no-page-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-page-policy.d.ts","sourceRoot":"","sources":["../../src/checks/no-page-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBhF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { stripHtmlComments } from '../lib/strip.js';
|
|
2
|
+
const INDEX_HTML = 'web/index.html';
|
|
3
|
+
const NAME = 'No page-level CSP';
|
|
4
|
+
/**
|
|
5
|
+
* Warns when `web/index.html` sets its own Content-Security-Policy or
|
|
6
|
+
* Permissions-Policy with `<meta http-equiv>` (#369).
|
|
7
|
+
*
|
|
8
|
+
* The game host already sends both headers, default-open. The browser applies
|
|
9
|
+
* a page's meta policy on top of the header, so the stricter of the two wins:
|
|
10
|
+
* a meta CSP can only take capabilities away. Three games had one copied from
|
|
11
|
+
* the old platform lockdown, and it blocked the platform analytics loader
|
|
12
|
+
* without anyone noticing.
|
|
13
|
+
*
|
|
14
|
+
* WARN level: a stricter policy is the creator's choice, but it should be a
|
|
15
|
+
* deliberate one.
|
|
16
|
+
*/
|
|
17
|
+
export async function checkNoPagePolicy(source) {
|
|
18
|
+
const raw = await source.read(INDEX_HTML);
|
|
19
|
+
if (raw === null) {
|
|
20
|
+
return { name: NAME, status: 'pass', detail: 'no web/index.html (not a web project)' };
|
|
21
|
+
}
|
|
22
|
+
const html = stripHtmlComments(raw);
|
|
23
|
+
const found = new Set();
|
|
24
|
+
for (const m of html.matchAll(/<meta\b[^>]*\bhttp-equiv\s*=\s*["']?([\w-]+)/gi)) {
|
|
25
|
+
const name = (m[1] ?? '').toLowerCase();
|
|
26
|
+
if (name === 'content-security-policy')
|
|
27
|
+
found.add('Content-Security-Policy');
|
|
28
|
+
if (name === 'permissions-policy' || name === 'feature-policy')
|
|
29
|
+
found.add('Permissions-Policy');
|
|
30
|
+
}
|
|
31
|
+
if (found.size === 0) {
|
|
32
|
+
return { name: NAME, status: 'pass', detail: 'index.html sets no page-level policy' };
|
|
33
|
+
}
|
|
34
|
+
const list = [...found].join(' and ');
|
|
35
|
+
return {
|
|
36
|
+
name: NAME,
|
|
37
|
+
status: 'warn',
|
|
38
|
+
detail: `web/index.html sets its own ${list} with <meta http-equiv>, which can only remove capabilities the host allows`,
|
|
39
|
+
suggestions: [
|
|
40
|
+
`Remove the <meta http-equiv> ${list} tag. The host already sends both headers for every game, default-open (platform#369).`,
|
|
41
|
+
'If you keep a stricter CSP on purpose, allow https://api.freegamestore.online in script-src and connect-src, or the platform analytics loader is blocked.',
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=no-page-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-page-policy.js","sourceRoot":"","sources":["../../src/checks/no-page-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,IAAI,GAAG,mBAAmB,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAkB;IACxD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gDAAgD,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,yBAAyB;YAAE,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,gBAAgB;YAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IACxF,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,+BAA+B,IAAI,6EAA6E;QACxH,WAAW,EAAE;YACX,gCAAgC,IAAI,wFAAwF;YAC5H,2JAA2J;SAC5J;KACF,CAAC;AACJ,CAAC"}
|