--json prints only JSON on stdout (withJsonOutput around every command: logs, tables and prompts to stderr; printJson everywhere; test runs every --json command against the fake stores and parses stdout); prices ppp compares like with like: par = the store's own US-equivalent price (Play convertRegionPrices, Apple equalizations; offline base x fx x (1 + VAT) rounded up) scaled by the PPP price level; defaults only lower, only price levels <= 0.5, World Bank high-income at par, CN at par on Apple and skipped on Play, never above par (--only-decreases, --max-ratio, --min-ratio, --max-level, --include-high-income; --floor / --ceiling kept), top-10 revenue market drops > 20 % warned (sales reports, else a static list), unchanged regions out of the sheet; price changes of existing products only with --allow-price-changes, TTY or not (a terminal yes covered them), then their own question listing each old -> new, held section in dry runs (play products, prices import, play / apple subscriptions); pitfalls 61-63; tests

This commit is contained in:
CRTkafa 2026-10-14 17:36:00 +08:00
parent bab3f63227
commit 357319a775
30 changed files with 865 additions and 209 deletions

View file

@ -116,8 +116,14 @@
"csv",
"file",
"floor",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-only-decreases",
"no-subscriptions",
"offline",
"only-decreases",
"out",
"reconvert",
"source",
@ -203,8 +209,14 @@
"csv",
"file",
"floor",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-only-decreases",
"no-subscriptions",
"offline",
"only-decreases",
"out",
"reconvert",
"source",
@ -253,8 +265,14 @@
"csv",
"file",
"floor",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-only-decreases",
"no-subscriptions",
"offline",
"only-decreases",
"out",
"reconvert",
"source",
@ -304,8 +322,14 @@
"csv",
"file",
"floor",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-only-decreases",
"no-subscriptions",
"offline",
"only-decreases",
"out",
"reconvert",
"source",
@ -479,11 +503,17 @@
"from",
"godot",
"identity",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-art",
"no-catalog",
"no-only-decreases",
"no-subscriptions",
"no-web",
"offline",
"only-decreases",
"out",
"play",
"react-native",
@ -587,8 +617,14 @@
"csv",
"file",
"floor",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-only-decreases",
"no-subscriptions",
"offline",
"only-decreases",
"out",
"reconvert",
"source",
@ -611,8 +647,14 @@
"csv",
"file",
"floor",
"include-high-income",
"max-level",
"max-ratio",
"min-ratio",
"no-only-decreases",
"no-subscriptions",
"offline",
"only-decreases",
"out",
"reconvert",
"source",
@ -896,6 +938,7 @@
"icons",
"identity",
"include-drafts",
"include-high-income",
"internal",
"internal-only",
"invite",
@ -917,9 +960,12 @@
"locale",
"lookup",
"manual-release",
"max-level",
"max-ratio",
"md",
"merge",
"method",
"min-ratio",
"module",
"month",
"name",
@ -933,6 +979,7 @@
"no-install",
"no-local",
"no-mcp",
"no-only-decreases",
"no-prebuild",
"no-save",
"no-scan",
@ -947,6 +994,7 @@
"off",
"offline",
"older-than",
"only-decreases",
"only-keywords",
"only-missing",
"only-terms",