@appapprove/shopify-check 0.1.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.
Files changed (3) hide show
  1. package/README.md +79 -0
  2. package/dist/cli.js +5320 -0
  3. package/package.json +54 -0
package/README.md ADDED
@@ -0,0 +1,79 @@
1
+ # @appapprove/shopify-check
2
+
3
+ Pre-submission compliance checker for Shopify apps. Surfaces 20+ App Store review failures locally before you submit — saves the typical 1-2 week back-and-forth with Shopify reviewers.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g @appapprove/shopify-check
9
+ ```
10
+
11
+ Requires Node.js 20 or newer.
12
+
13
+ ## Usage
14
+
15
+ Check the app in the current directory:
16
+
17
+ ```bash
18
+ shopify-check
19
+ ```
20
+
21
+ Check a specific app:
22
+
23
+ ```bash
24
+ shopify-check /path/to/your/shopify-app
25
+ ```
26
+
27
+ JSON output (pipeable):
28
+
29
+ ```bash
30
+ shopify-check --json
31
+ ```
32
+
33
+ Optional flags:
34
+
35
+ - `--app-url <url>` — your deployed app URL (enables HTTPS-only + security-headers checks)
36
+ - `--privacy-policy <url>` — your privacy policy URL (enables privacy-policy presence check)
37
+ - `--demo-store <url>` — your Shopify demo-store URL (enables demo-store reachability check)
38
+
39
+ ## What it checks
40
+
41
+ - **API scopes** — declared scopes vs actual API calls in your code
42
+ - **GDPR webhooks** — `customers/data_request`, `customers/redact`, `shop/redact` handlers present + return 200
43
+ - **App Bridge** — embedded admin uses App Bridge correctly (no host param leaks, session token usage)
44
+ - **Billing API** — recurring app subscriptions wired correctly with Shopify's Billing API
45
+ - **GraphQL API compliance** — supported API versions, no deprecated query patterns
46
+ - **HTTPS-only** — all external URLs use HTTPS
47
+ - **Security headers** — CSP, frame-ancestors, X-Content-Type-Options
48
+ - **Performance budget** — bundle size + loading-time thresholds
49
+ - **Auto-populate forms** — checkout-extension forms don't auto-fill PII
50
+ - **Privacy policy** — URL reachable + non-empty
51
+ - **Demo store** — URL reachable from Shopify's reviewer IPs
52
+ - **Theme cleanup** — uninstall flow removes injected theme assets
53
+ - **Theme extension quality** — theme-app-extension Liquid blocks have required attributes
54
+ - **Shopify Function quality** — Functions return well-formed responses + handle edge cases
55
+ - **Merchant grade Function** — Functions perform under high cart-line load
56
+ - **Trust asset checklist** — required listing assets (icon, screenshots, support email)
57
+ - **Listing copy** — name, summary, descriptions match App Store guidelines
58
+ - **CI workflow** — your `.github/workflows/deploy.yml` deploys correctly
59
+ - **Import consistency** — no broken imports between scaffold + worker entry
60
+ - **Install flow** — OAuth install URL works + scopes get accepted
61
+ - **Screenshot quality** — listing screenshots meet Shopify's resolution + aspect-ratio guidelines
62
+
63
+ ## Exit codes
64
+
65
+ - `0` — all checks passed (or only warnings, depending on severity threshold)
66
+ - `1` — one or more `error` severity findings (blocks submission)
67
+ - `2` — invalid arguments / cannot read repo
68
+
69
+ ## How is this different from `shopify app dev` lint?
70
+
71
+ Shopify's CLI lints the *scaffold* — package layout, config files, declared bindings. `shopify-check` lints the *App Store review surface* — what reviewers will actually fail you on. Designed to be run BEFORE you submit, not just during development.
72
+
73
+ ## License
74
+
75
+ MIT — built and maintained by [AppApprove](https://appapprove.com).
76
+
77
+ ## Issues / contributions
78
+
79
+ [github.com/ArasHuseyin/shopify-builder](https://github.com/ArasHuseyin/shopify-builder) — issues + PRs welcome.