@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.
- package/README.md +79 -0
- package/dist/cli.js +5320 -0
- 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.
|