@ freeappstore/ 符合
对所发布应用软件的合规性检查 freeappstore. online 在线相同的检查 CLI 运行于本地 模板的 CI 运行在每次推.
import { runChecks } from '@freeappstore/compliance';
const results = await runChecks(process.cwd());
for (const r of results) {
console.log(`${r.status} ${r.name} ${r.detail}`);
for (const s of r.suggestions ?? []) console.log(` → ${s}`);
}
检查(v0.1.0)
| 名称 | 它检查什么 | 失败状况 |
|---|---|---|
No template placeholders | 没有文件仍然包含 APPNAME | 失败 |
Analytics routed through platform loader | 没有直接安装google-analytics / gtag / 振幅 / sixpanel / 段 / hotjar / 假想 / 后霍格 —— 分析必须流出 api.freeappstore.online/v1/analytics.js?app=<id> | 失败 |
No payments (free tier) | 没有支付请求API, Apple Pay, 退出 SDKs / 链接( Stripe, PayPal, Paddle, Lemon Squeezy, Gumroad, Google Pay) 或支付单成员 | 失败 |
No ads | 没有广告网络脚本,SDK或软件包(AdSense,Ad Manager / GPT,IMA,H5 Games Ads / AdMob,Amazon APS,Prebid,Media.net,Carbon Ads,BuySellAds,伦理Ads,Ezoic,PropellerAds,Adsterra,Taboola,Outbrain,Poki /CrazyGames /GameDissibution /GameMonetize ad SDKs). checkNoAdsLive 在每周审计中运行与已公布的 HTML 相同的模式 | 失败 |
Brand fonts present | CSS 或 HTML 中引用的 Manrope + Fraunces | 失败 |
PWA manifest | web/public/manifest.json 已存在, 并有名称 / 短名 / start url / 显示 | 警告( e) |
Bundle size | 初次装载的JS(入口+静态进口) | 失败 如果超过任一上限; 如果尚未建立警告 |
型式检查(仅以警告方式推出,# 324)
CSS discipline: PostCSS 剖析web/src/**/*.css和被禁止的报告 异名、 未分层规则、 符号块外的六进制颜色、 每屏深 覆盖,每个样式表超过15个功能类.No excessive inline styles- FreeGameStore平台检查的供应商; 15号以上警告style={{...}}每个TSX文件的对象或共30个。 试验和 评论除外。 FAS 允许有正当理由的真正动态值 旁有评论;静态外观属于FAS标志上的Tailwind.Opaque surfaces: 警告在--paper, (中文(简体) ),--panel,或--popover无论是哪一个主题.--panel-glass财务报告和审定财务报表--scrim豁免.
fas check --json 包含这些警告而不失败应用程序构建 .
pnpm lint:platform-ui 重新使用SDK UI、Console和Admin的三项检查,
并报告解析 TSX 内置式和运行时 CSS 注射数。 线人留下来
# 322 正在等待中。 迁移后,运行
pnpm lint:platform-ui --strict 在运行时间 CSS 注入或内入时失败
样式,不附带解释动态值的注释.
324号提到的PAS CSS来源不详(404个);其5个指定来源
这里使用 PostCSS 执行规则。 FGS内置扫描仪改自
freegamestore-online/platform/packages/compliance/src/checks/no-excessive-inline-styles.ts。 。 。 .
许可证
麻省理工学院.