@freeappstore/compliance 0.7.18 → 0.7.19
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 +2 -0
- package/dist/checks/no-ads.d.ts +12 -0
- package/dist/checks/no-ads.d.ts.map +1 -0
- package/dist/checks/no-ads.js +153 -0
- package/dist/checks/no-ads.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/live/index.d.ts +8 -0
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +24 -2
- package/dist/live/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,6 +18,8 @@ for (const r of results) {
|
|
|
18
18
|
|---|---|---|
|
|
19
19
|
| `No template placeholders` | No file still contains `APPNAME` | **fail** |
|
|
20
20
|
| `Analytics routed through platform loader` | No direct install of google-analytics / gtag / amplitude / mixpanel / segment / hotjar / plausible / posthog — analytics must flow through `api.freeappstore.online/v1/analytics.js?app=<id>` | **fail** |
|
|
21
|
+
| `No payments (free tier)` | No Payment Request API, Apple Pay, checkout SDKs / links (Stripe, PayPal, Paddle, Lemon Squeezy, Gumroad, Google Pay) or payment manifest members | **fail** |
|
|
22
|
+
| `No ads` | No ad network scripts, SDKs or packages (AdSense, Ad Manager / GPT, IMA, H5 Games Ads / AdMob, Amazon APS, Prebid, Media.net, Carbon Ads, BuySellAds, EthicalAds, Ezoic, PropellerAds, Adsterra, Taboola, Outbrain, Poki / CrazyGames / GameDistribution / GameMonetize ad SDKs). `checkNoAdsLive` runs the same patterns over published HTML in the weekly audit | **fail** |
|
|
21
23
|
| `Brand fonts present` | Manrope + Fraunces referenced in CSS or HTML | **fail** |
|
|
22
24
|
| `PWA manifest` | `web/public/manifest.json` exists and has name / short_name / start_url / display | warn |
|
|
23
25
|
| `Bundle size` | Initial-load JS (entry + static imports) ≤ 300 KB gzipped; lazy wasm/workers/dynamic chunks ≤ 25 MB each | **fail** if either cap is exceeded; warn if not built yet |
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FileSource } from '../lib/file-source.js';
|
|
2
|
+
import type { CheckResult } from '../types.js';
|
|
3
|
+
export type AdNetworkSpec = {
|
|
4
|
+
name: string;
|
|
5
|
+
patterns: RegExp[];
|
|
6
|
+
};
|
|
7
|
+
export declare const AD_NETWORKS: AdNetworkSpec[];
|
|
8
|
+
/** Names of ad networks whose patterns match `content` (already comment-stripped). */
|
|
9
|
+
export declare function matchAdNetworks(content: string): string[];
|
|
10
|
+
export declare const NO_ADS_SUGGESTIONS: string[];
|
|
11
|
+
export declare function checkNoAds(source: FileSource): Promise<CheckResult>;
|
|
12
|
+
//# sourceMappingURL=no-ads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-ads.d.ts","sourceRoot":"","sources":["../../src/checks/no-ads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe/C,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAYjE,eAAO,MAAM,WAAW,EAAE,aAAa,EA+FtC,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAED,eAAO,MAAM,kBAAkB,UAG9B,CAAC;AAYF,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CA8BzE"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { stripCommentsForExt } from '../lib/strip.js';
|
|
2
|
+
// An ad SDK package referenced as a package: imported, required, or listed as
|
|
3
|
+
// a package.json dependency. A plain string that happens to hold the name
|
|
4
|
+
// (a keyword list, a label) doesn't count. `name` is a regex source.
|
|
5
|
+
function pkg(name) {
|
|
6
|
+
const quoted = `['"](?:${name})(?:\\/[\\w./-]*)?['"]`;
|
|
7
|
+
return new RegExp(`(?:\\bfrom\\s*|\\brequire\\s*\\(\\s*|\\bimport\\s*\\(?\\s*)${quoted}|${quoted}\\s*:\\s*['"](?:[~^<>=]*\\s*\\d|workspace:|npm:|latest)`);
|
|
8
|
+
}
|
|
9
|
+
export const AD_NETWORKS = [
|
|
10
|
+
{
|
|
11
|
+
name: 'Google AdSense',
|
|
12
|
+
patterns: [
|
|
13
|
+
/pagead2\.googlesyndication\.com/i,
|
|
14
|
+
/\btpc\.googlesyndication\.com/i,
|
|
15
|
+
/\badservice\.google\.[a-z.]+\//i,
|
|
16
|
+
/\badsbygoogle\b/,
|
|
17
|
+
/\bdata-ad-client\s*=\s*['"]ca-pub-/i,
|
|
18
|
+
/\bca-pub-\d{10,}\b/,
|
|
19
|
+
// Wrapper packages: react-adsense, vue-google-adsense, @ctrl/ngx-adsense…
|
|
20
|
+
pkg('(?:@[\\w-]+\\/)?[\\w-]*adsense[\\w-]*'),
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Google Ad Manager (GPT)',
|
|
25
|
+
patterns: [
|
|
26
|
+
/securepubads\.g\.doubleclick\.net/i,
|
|
27
|
+
/\b(?:ad|pubads\.g|googleads\.g|static)\.doubleclick\.net/i,
|
|
28
|
+
/googletagservices\.com\/tag\/js\/gpt\.js/i,
|
|
29
|
+
/\bgoogletag\s*\.\s*(?:pubads|defineSlot|defineOutOfPageSlot|enableServices)\s*\(/,
|
|
30
|
+
pkg('@guardian\\/commercial(?:-core)?|@adslot\\/react-gpt'),
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Google IMA SDK',
|
|
35
|
+
patterns: [
|
|
36
|
+
/imasdk\.googleapis\.com/i,
|
|
37
|
+
/\bgoogle\s*\.\s*ima\s*\.\s*(?:AdsLoader|AdDisplayContainer|AdsRequest|AdsManager|ImaSdkSettings|AdsManagerLoadedEvent)\b/,
|
|
38
|
+
pkg('videojs-ima|@dailymotion\\/vast-client'),
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
// H5 Games Ads / AdMob for web games: `adBreak({ type: 'next', … })` and
|
|
43
|
+
// `adConfig({ preloadAdBreaks: … })`. A function merely named adBreak passes.
|
|
44
|
+
name: 'Google H5 Games Ads / AdMob',
|
|
45
|
+
patterns: [
|
|
46
|
+
/\badBreak\s*\(\s*\{[^}]*\btype\s*:\s*['"`](?:start|pause|next|browse|reward|preroll)['"`]/,
|
|
47
|
+
/\badConfig\s*\(\s*\{[^}]*\bpreloadAdBreaks\s*:/,
|
|
48
|
+
pkg('@capacitor-community\\/admob|cordova-plugin-admob(?:-free|-plus)?|(?:@[\\w-]+\\/)?(?:react-native-)?google-mobile-ads'),
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Amazon Publisher Services',
|
|
53
|
+
patterns: [
|
|
54
|
+
/amazon-adsystem\.com/i,
|
|
55
|
+
/\bapstag\s*\.\s*(?:init|fetchBids|setDisplayBids|targetingKeys)\s*\(/,
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'Prebid.js',
|
|
60
|
+
patterns: [
|
|
61
|
+
/\bpbjs\s*\.\s*(?:requestBids|addAdUnits|setConfig|setTargetingForGPTAsync)\s*\(/,
|
|
62
|
+
/\bprebid(?:\.min)?\.js\b/i,
|
|
63
|
+
pkg('prebid\\.js'),
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{ name: 'Media.net', patterns: [/\b(?:contextual|static|warp)\.media\.net\b/i] },
|
|
67
|
+
{
|
|
68
|
+
name: 'Carbon Ads',
|
|
69
|
+
patterns: [
|
|
70
|
+
/\bcarbonads\.(?:com|net)\b/i,
|
|
71
|
+
pkg('vue-carbonads|react-carbonads|svelte-carbonads'),
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
{ name: 'BuySellAds', patterns: [/buysellads\.(?:com|net)\b/i, /\b_bsa\s*\.\s*init\s*\(/] },
|
|
75
|
+
{
|
|
76
|
+
name: 'EthicalAds',
|
|
77
|
+
patterns: [/\bethicalads\.io\b/i, /\bdata-ea-publisher\s*=/i, /\bethicalads\s*\.\s*load/i],
|
|
78
|
+
},
|
|
79
|
+
{ name: 'Ezoic', patterns: [/\bezoic\.(?:net|com)\b/i, /\bezojs\.com\b/i, /\bezstandalone\b/] },
|
|
80
|
+
{ name: 'PropellerAds', patterns: [/\bpropellerads\.com\b/i] },
|
|
81
|
+
{ name: 'Adsterra', patterns: [/\badsterra\.com\b/i, /\bhighperformanceformat\.com\b/i] },
|
|
82
|
+
{
|
|
83
|
+
name: 'Taboola',
|
|
84
|
+
patterns: [/\btaboola\.com\b/i, /\bwindow\._taboola\b|\b_taboola\s*\.\s*push\s*\(/],
|
|
85
|
+
},
|
|
86
|
+
{ name: 'Outbrain', patterns: [/\boutbrain\.com\b/i, /\bOBR\s*\.\s*extern\b/] },
|
|
87
|
+
// Web-game portal ad SDKs. Shipping one of these turns on interstitial and
|
|
88
|
+
// rewarded ads inside the game.
|
|
89
|
+
{
|
|
90
|
+
name: 'Poki SDK ads',
|
|
91
|
+
patterns: [/game-cdn\.poki\.com/i, /\bPokiSDK\s*\.\s*(?:commercialBreak|rewardedBreak)\s*\(/],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'CrazyGames SDK ads',
|
|
95
|
+
patterns: [/sdk\.crazygames\.com/i, /\bCrazyGames\s*\.\s*SDK\s*\.\s*ad\b/],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'GameDistribution SDK',
|
|
99
|
+
patterns: [/\bgamedistribution\.com\b/i, /\bgdsdk\s*\.\s*showAd\s*\(/],
|
|
100
|
+
},
|
|
101
|
+
{ name: 'GameMonetize SDK', patterns: [/\bgamemonetize\.com\b/i] },
|
|
102
|
+
];
|
|
103
|
+
/** Names of ad networks whose patterns match `content` (already comment-stripped). */
|
|
104
|
+
export function matchAdNetworks(content) {
|
|
105
|
+
return AD_NETWORKS.filter((n) => n.patterns.some((re) => re.test(content))).map((n) => n.name);
|
|
106
|
+
}
|
|
107
|
+
export const NO_ADS_SUGGESTIONS = [
|
|
108
|
+
'FreeAppStore apps show no ads: remove the ad network script, SDK or package.',
|
|
109
|
+
'To earn from an app, publish it on ProAppStore (https://proappstore.online), which handles subscriptions and creator payouts.',
|
|
110
|
+
];
|
|
111
|
+
const SCAN_EXTS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.html', '.json']);
|
|
112
|
+
// Tests and e2e specs may name the networks they assert are absent.
|
|
113
|
+
function isTestFile(path) {
|
|
114
|
+
return (/(?:^|\/)(?:test|tests|__tests__|e2e)\//.test(path) ||
|
|
115
|
+
/\.(?:test|spec)\.[cm]?[jt]sx?$/.test(path));
|
|
116
|
+
}
|
|
117
|
+
export async function checkNoAds(source) {
|
|
118
|
+
const hits = [];
|
|
119
|
+
for await (const path of source.list()) {
|
|
120
|
+
const ext = extOf(path);
|
|
121
|
+
if (!SCAN_EXTS.has(ext) || isTestFile(path))
|
|
122
|
+
continue;
|
|
123
|
+
const raw = await source.read(path);
|
|
124
|
+
if (!raw)
|
|
125
|
+
continue;
|
|
126
|
+
// Comments only, not strings: ad tags live inside string literals.
|
|
127
|
+
const matches = matchAdNetworks(stripCommentsForExt(raw, ext));
|
|
128
|
+
if (matches.length > 0)
|
|
129
|
+
hits.push({ file: path, matches });
|
|
130
|
+
}
|
|
131
|
+
if (hits.length === 0) {
|
|
132
|
+
return {
|
|
133
|
+
name: 'No ads',
|
|
134
|
+
status: 'pass',
|
|
135
|
+
detail: 'no ad network scripts, SDKs or packages found',
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
name: 'No ads',
|
|
140
|
+
status: 'fail',
|
|
141
|
+
detail: `${hits.length} file(s) load ad networks: ${hits
|
|
142
|
+
.slice(0, 3)
|
|
143
|
+
.map((h) => `${h.file} (${h.matches.join(', ')})`)
|
|
144
|
+
.join('; ')}${hits.length > 3 ? '…' : ''}`,
|
|
145
|
+
suggestions: NO_ADS_SUGGESTIONS,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function extOf(path) {
|
|
149
|
+
const dot = path.lastIndexOf('.');
|
|
150
|
+
const slash = path.lastIndexOf('/');
|
|
151
|
+
return dot > slash ? path.slice(dot).toLowerCase() : '';
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=no-ads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-ads.js","sourceRoot":"","sources":["../../src/checks/no-ads.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { checkDarkMode } from './checks/dark-mode.js';
|
|
|
6
6
|
import { checkHtmlMeta } from './checks/html-meta.js';
|
|
7
7
|
import { checkLicenseMit } from './checks/license-mit.js';
|
|
8
8
|
import { checkManifest } from './checks/manifest.js';
|
|
9
|
+
import { checkNoAds } from './checks/no-ads.js';
|
|
9
10
|
import { checkNoBrandOverrides } from './checks/no-brand-overrides.js';
|
|
10
11
|
import { checkNoCommittedArtifacts } from './checks/no-committed-artifacts.js';
|
|
11
12
|
import { checkNoEnvProduction } from './checks/no-env-production.js';
|
|
@@ -31,9 +32,9 @@ export { extractInlineManifest, type InlineManifest } from './lib/inline-manifes
|
|
|
31
32
|
export type { DeclaredPermission, PermissionId } from './lib/permissions.js';
|
|
32
33
|
export { detectPermissions, PERMISSION_IDS, readDeclaredPermissions, } from './lib/permissions.js';
|
|
33
34
|
export type { LiveAuditInput, LiveAuditReport } from './live/index.js';
|
|
34
|
-
export { auditLive, checkBrandFontsLive, checkBundleSizeLive, checkManifestLive, checkNoTrackingLive, checkUnsafeVhLive, } from './live/index.js';
|
|
35
|
+
export { auditLive, checkBrandFontsLive, checkBundleSizeLive, checkManifestLive, checkNoAdsLive, checkNoTrackingLive, checkUnsafeVhLive, } from './live/index.js';
|
|
35
36
|
export type { CheckResult, CheckStatus } from './types.js';
|
|
36
|
-
export { checkBrandFonts, checkBrandTokens, checkBundleSize, checkClaudeMdSlim, checkDarkMode, checkHtmlMeta, checkLicenseMit, checkManifest, checkMaskableIcon, checkNoBrandOverrides, checkNoCommittedArtifacts, checkNoEnvProduction, checkNoPayments, checkNoPlaceholders, checkNoScroll, checkNoTracking, checkPermissions, checkPwaMeta, checkPwaOffline, checkStoreLink, checkTextSelectable, checkUnsafeVh, checkViewportSupport, fsFileSource, githubTreeSource, isGameProject, mapFileSource, };
|
|
37
|
+
export { checkBrandFonts, checkBrandTokens, checkBundleSize, checkClaudeMdSlim, checkDarkMode, checkHtmlMeta, checkLicenseMit, checkManifest, checkMaskableIcon, checkNoAds, checkNoBrandOverrides, checkNoCommittedArtifacts, checkNoEnvProduction, checkNoPayments, checkNoPlaceholders, checkNoScroll, checkNoTracking, checkPermissions, checkPwaMeta, checkPwaOffline, checkStoreLink, checkTextSelectable, checkUnsafeVh, checkViewportSupport, fsFileSource, githubTreeSource, isGameProject, mapFileSource, };
|
|
37
38
|
/**
|
|
38
39
|
* Runs every compliance check against the source. Two front doors:
|
|
39
40
|
* - `runChecks(repoDir)` — CLI / CI; reads from disk.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { checkDarkMode } from './checks/dark-mode.js';
|
|
|
6
6
|
import { checkHtmlMeta } from './checks/html-meta.js';
|
|
7
7
|
import { checkLicenseMit } from './checks/license-mit.js';
|
|
8
8
|
import { checkManifest } from './checks/manifest.js';
|
|
9
|
+
import { checkNoAds } from './checks/no-ads.js';
|
|
9
10
|
import { checkNoBrandOverrides } from './checks/no-brand-overrides.js';
|
|
10
11
|
import { checkNoCommittedArtifacts } from './checks/no-committed-artifacts.js';
|
|
11
12
|
import { checkNoEnvProduction } from './checks/no-env-production.js';
|
|
@@ -30,8 +31,8 @@ export { detectPermissions, PERMISSION_IDS, readDeclaredPermissions, } from './l
|
|
|
30
31
|
// Live-URL audit (used by the compliance audit Worker; runs in
|
|
31
32
|
// browser/Workers env, no filesystem). Separate export path so callers
|
|
32
33
|
// don't accidentally pull node:fs in via the file-walking checks.
|
|
33
|
-
export { auditLive, checkBrandFontsLive, checkBundleSizeLive, checkManifestLive, checkNoTrackingLive, checkUnsafeVhLive, } from './live/index.js';
|
|
34
|
-
export { checkBrandFonts, checkBrandTokens, checkBundleSize, checkClaudeMdSlim, checkDarkMode, checkHtmlMeta, checkLicenseMit, checkManifest, checkMaskableIcon, checkNoBrandOverrides, checkNoCommittedArtifacts, checkNoEnvProduction, checkNoPayments, checkNoPlaceholders, checkNoScroll, checkNoTracking, checkPermissions, checkPwaMeta, checkPwaOffline, checkStoreLink, checkTextSelectable, checkUnsafeVh, checkViewportSupport, fsFileSource, githubTreeSource, isGameProject, mapFileSource, };
|
|
34
|
+
export { auditLive, checkBrandFontsLive, checkBundleSizeLive, checkManifestLive, checkNoAdsLive, checkNoTrackingLive, checkUnsafeVhLive, } from './live/index.js';
|
|
35
|
+
export { checkBrandFonts, checkBrandTokens, checkBundleSize, checkClaudeMdSlim, checkDarkMode, checkHtmlMeta, checkLicenseMit, checkManifest, checkMaskableIcon, checkNoAds, checkNoBrandOverrides, checkNoCommittedArtifacts, checkNoEnvProduction, checkNoPayments, checkNoPlaceholders, checkNoScroll, checkNoTracking, checkPermissions, checkPwaMeta, checkPwaOffline, checkStoreLink, checkTextSelectable, checkUnsafeVh, checkViewportSupport, fsFileSource, githubTreeSource, isGameProject, mapFileSource, };
|
|
35
36
|
/**
|
|
36
37
|
* Runs every compliance check against the source. Two front doors:
|
|
37
38
|
* - `runChecks(repoDir)` — CLI / CI; reads from disk.
|
|
@@ -55,6 +56,7 @@ async function runChecksOn(source) {
|
|
|
55
56
|
checkNoPlaceholders(source),
|
|
56
57
|
checkNoTracking(source),
|
|
57
58
|
checkNoPayments(source),
|
|
59
|
+
checkNoAds(source),
|
|
58
60
|
checkPermissions(source),
|
|
59
61
|
checkBrandFonts(source),
|
|
60
62
|
checkBrandTokens(source),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/live/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* What we can check from a live URL:
|
|
7
7
|
* - Tracking SDK injection (script src, inline scripts, fetched JS)
|
|
8
|
+
* - Ad network tags (script src, inline scripts) — FreeAppStore apps show no ads
|
|
8
9
|
* - Brand fonts presence (link href to fonts.googleapis.com)
|
|
9
10
|
* - PWA manifest reachable + valid
|
|
10
11
|
* - Initial-load JS size (entry script + modulepreload chunks)
|
|
@@ -31,6 +32,13 @@ export interface LiveAuditReport {
|
|
|
31
32
|
}
|
|
32
33
|
export declare function auditLive(input: LiveAuditInput): Promise<LiveAuditReport>;
|
|
33
34
|
export declare function checkNoTrackingLive(html: string): CheckResult;
|
|
35
|
+
/**
|
|
36
|
+
* Live counterpart to checkNoAds: the same ad-network patterns, run over the
|
|
37
|
+
* served HTML with HTML comments stripped. Catches the classic pasted ad tag
|
|
38
|
+
* (`<script async src="https://pagead2.googlesyndication.com/…">`, an inline
|
|
39
|
+
* `adsbygoogle.push`); an ad SDK bundled into the JS is the source check's job.
|
|
40
|
+
*/
|
|
41
|
+
export declare function checkNoAdsLive(html: string): CheckResult;
|
|
34
42
|
export declare function checkBrandFontsLive(html: string): CheckResult;
|
|
35
43
|
export declare function checkManifestLive(html: string, liveUrl: string): Promise<CheckResult>;
|
|
36
44
|
export declare function checkBundleSizeLive(html: string, liveUrl: string): Promise<CheckResult>;
|
package/dist/live/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmB/C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AA2BD,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA4D/E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAkB7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAWxD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAe7D;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD3F;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA+D7F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoD3F"}
|
package/dist/live/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* What we can check from a live URL:
|
|
7
7
|
* - Tracking SDK injection (script src, inline scripts, fetched JS)
|
|
8
|
+
* - Ad network tags (script src, inline scripts) — FreeAppStore apps show no ads
|
|
8
9
|
* - Brand fonts presence (link href to fonts.googleapis.com)
|
|
9
10
|
* - PWA manifest reachable + valid
|
|
10
11
|
* - Initial-load JS size (entry script + modulepreload chunks)
|
|
@@ -17,9 +18,11 @@
|
|
|
17
18
|
* results in D1 so creators (or platform admins) can see drift over
|
|
18
19
|
* time without leaving the storefront.
|
|
19
20
|
*/
|
|
21
|
+
import { matchAdNetworks, NO_ADS_SUGGESTIONS } from '../checks/no-ads.js';
|
|
20
22
|
import { INITIAL_LOAD_MAX_GZIP_BYTES } from '../lib/bundle-limits.js';
|
|
21
23
|
import { gzipByteLength } from '../lib/gzip.js';
|
|
22
24
|
import { collectInitialJsRefs, jsAssetFileName } from '../lib/html-initial-js.js';
|
|
25
|
+
import { stripHtmlComments } from '../lib/strip.js';
|
|
23
26
|
/** Cap live fetches of the initial graph so a page with many modulepreloads
|
|
24
27
|
* cannot blow the Worker subrequest budget. 6 is well above a typical
|
|
25
28
|
* Vite split (entry + 1–2 vendors). */
|
|
@@ -108,14 +111,15 @@ export async function auditLive(input) {
|
|
|
108
111
|
return report;
|
|
109
112
|
}
|
|
110
113
|
// Run all checks in parallel — each is independent.
|
|
111
|
-
const [tracking, fonts, manifest, bundle, vh] = await Promise.all([
|
|
114
|
+
const [tracking, ads, fonts, manifest, bundle, vh] = await Promise.all([
|
|
112
115
|
checkNoTrackingLive(html),
|
|
116
|
+
checkNoAdsLive(html),
|
|
113
117
|
checkBrandFontsLive(html),
|
|
114
118
|
checkManifestLive(html, input.liveUrl),
|
|
115
119
|
checkBundleSizeLive(html, input.liveUrl),
|
|
116
120
|
checkUnsafeVhLive(html, input.liveUrl),
|
|
117
121
|
]);
|
|
118
|
-
report.results.push(tracking, fonts, manifest, bundle, vh);
|
|
122
|
+
report.results.push(tracking, ads, fonts, manifest, bundle, vh);
|
|
119
123
|
return report;
|
|
120
124
|
}
|
|
121
125
|
export function checkNoTrackingLive(html) {
|
|
@@ -137,6 +141,24 @@ export function checkNoTrackingLive(html) {
|
|
|
137
141
|
],
|
|
138
142
|
};
|
|
139
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Live counterpart to checkNoAds: the same ad-network patterns, run over the
|
|
146
|
+
* served HTML with HTML comments stripped. Catches the classic pasted ad tag
|
|
147
|
+
* (`<script async src="https://pagead2.googlesyndication.com/…">`, an inline
|
|
148
|
+
* `adsbygoogle.push`); an ad SDK bundled into the JS is the source check's job.
|
|
149
|
+
*/
|
|
150
|
+
export function checkNoAdsLive(html) {
|
|
151
|
+
const found = matchAdNetworks(stripHtmlComments(html));
|
|
152
|
+
if (found.length === 0) {
|
|
153
|
+
return { name: 'No ads (live)', status: 'pass', detail: 'no ad network tags in live HTML' };
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
name: 'No ads (live)',
|
|
157
|
+
status: 'fail',
|
|
158
|
+
detail: `ad network tags in live HTML: ${found.join(', ')}`,
|
|
159
|
+
suggestions: NO_ADS_SUGGESTIONS,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
140
162
|
export function checkBrandFontsLive(html) {
|
|
141
163
|
const hasManrope = /manrope/i.test(html);
|
|
142
164
|
const hasFraunces = /fraunces/i.test(html);
|
package/dist/live/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED