@sitepong/fastnode 0.2.2 → 0.3.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 +58 -1
- package/dist/actions/index.cjs +848 -54
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.mjs +849 -55
- package/dist/actions/index.mjs.map +1 -1
- package/dist/apple-session-jUzBrql5.d.cts +122 -0
- package/dist/apple-session-jUzBrql5.d.ts +122 -0
- package/dist/cert/index.cjs +782 -736
- package/dist/cert/index.cjs.map +1 -1
- package/dist/cert/index.d.cts +5 -4
- package/dist/cert/index.d.ts +5 -4
- package/dist/cert/index.mjs +782 -737
- package/dist/cert/index.mjs.map +1 -1
- package/dist/{cert-Ddl7FpFT.d.ts → cert-RvXmdMke.d.ts} +2 -2
- package/dist/{cert-FehieKeb.d.cts → cert-eOoxGMN1.d.cts} +2 -2
- package/dist/cli/index.cjs +1321 -60
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +3 -2
- package/dist/cli/index.d.ts +3 -2
- package/dist/cli/index.mjs +1322 -61
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.cjs +443 -31
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +3 -2
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.mjs +443 -31
- package/dist/client/index.mjs.map +1 -1
- package/dist/deliver/index.cjs +334 -13
- package/dist/deliver/index.cjs.map +1 -1
- package/dist/deliver/index.d.cts +4 -3
- package/dist/deliver/index.d.ts +4 -3
- package/dist/deliver/index.mjs +330 -15
- package/dist/deliver/index.mjs.map +1 -1
- package/dist/{enums-B609j2rb.d.cts → enums-yXNVh3UI.d.cts} +8 -1
- package/dist/{enums-B609j2rb.d.ts → enums-yXNVh3UI.d.ts} +8 -1
- package/dist/gradle/index.cjs +222 -0
- package/dist/gradle/index.cjs.map +1 -0
- package/dist/gradle/index.d.cts +1 -0
- package/dist/gradle/index.d.ts +1 -0
- package/dist/gradle/index.mjs +217 -0
- package/dist/gradle/index.mjs.map +1 -0
- package/dist/gym/index.d.cts +2 -2
- package/dist/gym/index.d.ts +2 -2
- package/dist/index-8djTPW8O.d.ts +104 -0
- package/dist/{index-DrUpRXRG.d.cts → index-B6-MJpO4.d.cts} +1 -1
- package/dist/{index-D13sn8DO.d.cts → index-BE7bwNff.d.cts} +1 -1
- package/dist/index-BGhV0gS-.d.ts +65 -0
- package/dist/index-BaNcf7jt.d.cts +201 -0
- package/dist/{index-DZoPGCbE.d.ts → index-BvyZ4uiw.d.ts} +3 -3
- package/dist/{index-B8FOfxOw.d.ts → index-C01Rkrir.d.ts} +2 -2
- package/dist/{index-YcKz4aRS.d.ts → index-C9mHBJED.d.ts} +1 -1
- package/dist/{index-BICa8odo.d.cts → index-CAEiXVWd.d.ts} +9 -1
- package/dist/index-CBf0-NUQ.d.ts +201 -0
- package/dist/index-CXJlvmB4.d.cts +63 -0
- package/dist/index-CXJlvmB4.d.ts +63 -0
- package/dist/{index-CNHf7I4v.d.cts → index-D1GHEM3c.d.ts} +32 -3
- package/dist/index-DFstwgGK.d.cts +65 -0
- package/dist/{index-Bk1Gd-qE.d.cts → index-DGkgRnZp.d.cts} +2 -2
- package/dist/{index-CplRWSUc.d.ts → index-DLJso7Vs.d.cts} +32 -3
- package/dist/{index-BZWmOTWE.d.cts → index-DWOLZNlz.d.cts} +2 -2
- package/dist/{index-OelCoOth.d.cts → index-DfkIz7i0.d.cts} +18 -4
- package/dist/{index-CtPyeMLH.d.ts → index-DjC_gmnL.d.ts} +18 -4
- package/dist/index-DnHQ2uT2.d.cts +104 -0
- package/dist/{index-CCtYhPN9.d.ts → index-DrmS802s.d.cts} +331 -130
- package/dist/index-Dv-Mek07.d.cts +84 -0
- package/dist/index-Dv-Mek07.d.ts +84 -0
- package/dist/{index-oVyLLIEK.d.cts → index-icIH5e5V.d.cts} +3 -3
- package/dist/{index-DI1ZHr-3.d.ts → index-laE3_wm9.d.cts} +9 -1
- package/dist/{index-BKUapQP2.d.cts → index-lsuS2R1T.d.ts} +331 -130
- package/dist/{index-DImN9PWc.d.ts → index-mEEB7An6.d.ts} +1 -1
- package/dist/{index-DFni8oZt.d.ts → index-rTZOdMRE.d.ts} +2 -2
- package/dist/index.cjs +3342 -959
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +237 -14
- package/dist/index.d.ts +237 -14
- package/dist/index.mjs +3335 -963
- package/dist/index.mjs.map +1 -1
- package/dist/lane/index.cjs +848 -54
- package/dist/lane/index.cjs.map +1 -1
- package/dist/lane/index.mjs +849 -55
- package/dist/lane/index.mjs.map +1 -1
- package/dist/match/index.d.cts +6 -5
- package/dist/match/index.d.ts +6 -5
- package/dist/pem/index.d.cts +4 -3
- package/dist/pem/index.d.ts +4 -3
- package/dist/pilot/index.cjs +8 -4
- package/dist/pilot/index.cjs.map +1 -1
- package/dist/pilot/index.d.cts +4 -3
- package/dist/pilot/index.d.ts +4 -3
- package/dist/pilot/index.mjs +10 -6
- package/dist/pilot/index.mjs.map +1 -1
- package/dist/playstore/index.cjs +207 -0
- package/dist/playstore/index.cjs.map +1 -0
- package/dist/playstore/index.d.cts +1 -0
- package/dist/playstore/index.d.ts +1 -0
- package/dist/playstore/index.mjs +203 -0
- package/dist/playstore/index.mjs.map +1 -0
- package/dist/precheck/index.d.cts +4 -3
- package/dist/precheck/index.d.ts +4 -3
- package/dist/privacy/index.cjs +207 -0
- package/dist/privacy/index.cjs.map +1 -0
- package/dist/privacy/index.d.cts +2 -0
- package/dist/privacy/index.d.ts +2 -0
- package/dist/privacy/index.mjs +195 -0
- package/dist/privacy/index.mjs.map +1 -0
- package/dist/produce/index.cjs +32 -0
- package/dist/produce/index.cjs.map +1 -1
- package/dist/produce/index.d.cts +4 -3
- package/dist/produce/index.d.ts +4 -3
- package/dist/produce/index.mjs +32 -1
- package/dist/produce/index.mjs.map +1 -1
- package/dist/review/index.cjs +141 -0
- package/dist/review/index.cjs.map +1 -0
- package/dist/review/index.d.cts +2 -0
- package/dist/review/index.d.ts +2 -0
- package/dist/review/index.mjs +137 -0
- package/dist/review/index.mjs.map +1 -0
- package/dist/sigh/index.d.cts +4 -3
- package/dist/sigh/index.d.ts +4 -3
- package/dist/xcode/index.cjs +1 -1
- package/dist/xcode/index.cjs.map +1 -1
- package/dist/xcode/index.mjs +1 -1
- package/dist/xcode/index.mjs.map +1 -1
- package/package.json +27 -1
- package/dist/index-B9QeTpQK.d.cts +0 -99
- package/dist/index-xykpq6Lz.d.ts +0 -99
package/README.md
CHANGED
|
@@ -53,7 +53,8 @@ Each module can be imported separately:
|
|
|
53
53
|
| `@sitepong/fastnode/match` | Sync certs + profiles across machines via git/S3/local storage |
|
|
54
54
|
| `@sitepong/fastnode/produce` | Create App Store Connect apps and bundle IDs, manage capabilities |
|
|
55
55
|
| `@sitepong/fastnode/pilot` | Upload builds to TestFlight, manage beta groups, set changelog |
|
|
56
|
-
| `@sitepong/fastnode/deliver` | Upload metadata, screenshots, submit to App Review |
|
|
56
|
+
| `@sitepong/fastnode/deliver` | Upload metadata, screenshots, previews, product page headers and search results assets (App Asset Library), submit to App Review |
|
|
57
|
+
| `@sitepong/fastnode/review` | Read App Review's Resolution Center: rejection reasons and messages |
|
|
57
58
|
| `@sitepong/fastnode/pem` | Create APNS push notification certificates |
|
|
58
59
|
| `@sitepong/fastnode/gym` | Build and archive iOS apps via xcodebuild |
|
|
59
60
|
| `@sitepong/fastnode/scan` | Run tests via xcodebuild, parse xcresult |
|
|
@@ -62,6 +63,62 @@ Each module can be imported separately:
|
|
|
62
63
|
| `@sitepong/fastnode/precheck` | Static-analyze App Store metadata against review rules |
|
|
63
64
|
| `@sitepong/fastnode/frameit` | Composite screenshots into device frames |
|
|
64
65
|
|
|
66
|
+
## App Store assets (App Asset Library)
|
|
67
|
+
|
|
68
|
+
App Store Connect API 4.5.1 replaced screenshot and preview sets with one
|
|
69
|
+
asset library per app. Images and videos are uploaded once, then *placed* on
|
|
70
|
+
App Store version localizations. The same library carries the iOS 27 creative
|
|
71
|
+
assets: the product page header and the search results asset.
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
assets/
|
|
75
|
+
en-US/
|
|
76
|
+
screenshots/01-home.png APP_SCREENSHOT, group picked from the image size
|
|
77
|
+
screenshots/IPHONE_DUO/01-home.png APP_SCREENSHOT in an explicit placement group
|
|
78
|
+
previews/<PLACEMENT_GROUP>/demo.mp4 APP_PREVIEW (videos go in a group folder)
|
|
79
|
+
header/hero.png PRODUCT_PAGE_HEADER_ASSET (21:9 3840×1646, or 16:9 5244×2950)
|
|
80
|
+
search_results/card.png APP_STORE_SEARCH_RESULTS_ASSET (3:2 or 16:9)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npx @sitepong/fastnode assets specs # placement groups + accepted sizes, from Apple
|
|
85
|
+
npx @sitepong/fastnode deliver -a com.example.app --assets-path ./assets --skip-binary-upload
|
|
86
|
+
npx @sitepong/fastnode deliver -a com.example.app --screenshots-path ./screenshots --asset-library --overwrite-assets
|
|
87
|
+
npx @sitepong/fastnode assets list -a com.example.app
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
- Placement groups and sizes come from `/v1/appAssetLibraryRefData`, never a
|
|
91
|
+
hard-coded table, so new devices (e.g. `IPHONE_DUO`) work without a release.
|
|
92
|
+
- A file is uploaded once per content hash and reused across locales and
|
|
93
|
+
later runs. `--overwrite-assets` makes the folder the source of truth for
|
|
94
|
+
each slot it fills; without it, new placements are added beside existing ones.
|
|
95
|
+
- Apple's per-group limits are enforced before upload (10 screenshots,
|
|
96
|
+
3 previews, 1 header per group for versions).
|
|
97
|
+
- `--screenshots-path` without `--asset-library` still uses the deprecated
|
|
98
|
+
screenshot sets.
|
|
99
|
+
- Assets can be submitted for review on their own:
|
|
100
|
+
`client.reviewSubmissionItems.create({ reviewSubmissionId, appAssetLibraryImageId })`.
|
|
101
|
+
|
|
102
|
+
As a library: `uploadAssetLibrary({ client, appId, versionId, assetsPath })`
|
|
103
|
+
from `@sitepong/fastnode/deliver`, or the raw resources
|
|
104
|
+
`client.appAssetLibraries`, `appAssetLibraryImages`, `appAssetLibraryVideos`
|
|
105
|
+
and `appAssetLibraryPlacements`.
|
|
106
|
+
|
|
107
|
+
## App Review feedback
|
|
108
|
+
|
|
109
|
+
The public API has no Resolution Center, so `fastnode rejections` reads it
|
|
110
|
+
through an Apple ID session, the way Spaceship does:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
FASTNODE_USER=you@example.com npx @sitepong/fastnode rejections --app-id 1234567890
|
|
114
|
+
npx @sitepong/fastnode rejections --app-id 1234567890 --all --json
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
It prints each submission waiting on you (`UNRESOLVED_ISSUES`), the guideline
|
|
118
|
+
reasons App Review attached, and the message text. `--all` includes resolved
|
|
119
|
+
submissions too. From code: `getReviewFeedback(session, appId)` in
|
|
120
|
+
`@sitepong/fastnode/review`.
|
|
121
|
+
|
|
65
122
|
## Apple sign-in & one-click setup
|
|
66
123
|
|
|
67
124
|
`fastnode` ships a complete "sign in with your Apple Developer Apple ID
|