@sitepong/fastnode 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 (162) hide show
  1. package/README.md +81 -0
  2. package/bin/fastnode.js +13 -0
  3. package/bin/fastnode.ts +5 -0
  4. package/dist/actions/index.cjs +7405 -0
  5. package/dist/actions/index.cjs.map +1 -0
  6. package/dist/actions/index.d.cts +15 -0
  7. package/dist/actions/index.d.ts +15 -0
  8. package/dist/actions/index.mjs +7377 -0
  9. package/dist/actions/index.mjs.map +1 -0
  10. package/dist/cert/index.cjs +219 -0
  11. package/dist/cert/index.cjs.map +1 -0
  12. package/dist/cert/index.d.cts +4 -0
  13. package/dist/cert/index.d.ts +4 -0
  14. package/dist/cert/index.mjs +191 -0
  15. package/dist/cert/index.mjs.map +1 -0
  16. package/dist/cert-BmJGtYtb.d.cts +27 -0
  17. package/dist/cert-owkOFNW8.d.ts +27 -0
  18. package/dist/cli/index.cjs +7998 -0
  19. package/dist/cli/index.cjs.map +1 -0
  20. package/dist/cli/index.d.cts +9 -0
  21. package/dist/cli/index.d.ts +9 -0
  22. package/dist/cli/index.mjs +7972 -0
  23. package/dist/cli/index.mjs.map +1 -0
  24. package/dist/client/index.cjs +2592 -0
  25. package/dist/client/index.cjs.map +1 -0
  26. package/dist/client/index.d.cts +2 -0
  27. package/dist/client/index.d.ts +2 -0
  28. package/dist/client/index.mjs +2582 -0
  29. package/dist/client/index.mjs.map +1 -0
  30. package/dist/context-CymLkfrS.d.cts +13 -0
  31. package/dist/context-CymLkfrS.d.ts +13 -0
  32. package/dist/core/index.cjs +281 -0
  33. package/dist/core/index.cjs.map +1 -0
  34. package/dist/core/index.d.cts +1 -0
  35. package/dist/core/index.d.ts +1 -0
  36. package/dist/core/index.mjs +254 -0
  37. package/dist/core/index.mjs.map +1 -0
  38. package/dist/deliver/index.cjs +328 -0
  39. package/dist/deliver/index.cjs.map +1 -0
  40. package/dist/deliver/index.d.cts +3 -0
  41. package/dist/deliver/index.d.ts +3 -0
  42. package/dist/deliver/index.mjs +322 -0
  43. package/dist/deliver/index.mjs.map +1 -0
  44. package/dist/enums-B609j2rb.d.cts +20 -0
  45. package/dist/enums-B609j2rb.d.ts +20 -0
  46. package/dist/frameit/index.cjs +247 -0
  47. package/dist/frameit/index.cjs.map +1 -0
  48. package/dist/frameit/index.d.cts +1 -0
  49. package/dist/frameit/index.d.ts +1 -0
  50. package/dist/frameit/index.mjs +242 -0
  51. package/dist/frameit/index.mjs.map +1 -0
  52. package/dist/gym/index.cjs +356 -0
  53. package/dist/gym/index.cjs.map +1 -0
  54. package/dist/gym/index.d.cts +2 -0
  55. package/dist/gym/index.d.ts +2 -0
  56. package/dist/gym/index.mjs +346 -0
  57. package/dist/gym/index.mjs.map +1 -0
  58. package/dist/index-1Vu2cRQ2.d.ts +99 -0
  59. package/dist/index-A5MimeQk.d.ts +72 -0
  60. package/dist/index-B0yhu_LZ.d.ts +76 -0
  61. package/dist/index-B9yXicrQ.d.ts +62 -0
  62. package/dist/index-BFdNOmPJ.d.cts +53 -0
  63. package/dist/index-BLubSlgK.d.cts +1513 -0
  64. package/dist/index-BN0ubxjZ.d.ts +70 -0
  65. package/dist/index-BQJIJlK7.d.cts +70 -0
  66. package/dist/index-BYonklf3.d.cts +84 -0
  67. package/dist/index-BYonklf3.d.ts +84 -0
  68. package/dist/index-BimqCmY8.d.cts +78 -0
  69. package/dist/index-BimqCmY8.d.ts +78 -0
  70. package/dist/index-BoU8qt8r.d.cts +59 -0
  71. package/dist/index-BoU8qt8r.d.ts +59 -0
  72. package/dist/index-C2yG3wXA.d.cts +95 -0
  73. package/dist/index-C2yG3wXA.d.ts +95 -0
  74. package/dist/index-CR3BFPIz.d.cts +77 -0
  75. package/dist/index-CR3BFPIz.d.ts +77 -0
  76. package/dist/index-CWNLnSOL.d.cts +99 -0
  77. package/dist/index-Cp6cjtd-.d.cts +65 -0
  78. package/dist/index-Cp6cjtd-.d.ts +65 -0
  79. package/dist/index-D1Izm7qt.d.ts +1513 -0
  80. package/dist/index-D5eihzwM.d.cts +76 -0
  81. package/dist/index-DImN9PWc.d.ts +155 -0
  82. package/dist/index-DfCUVJX1.d.cts +62 -0
  83. package/dist/index-DfirmFbC.d.ts +32 -0
  84. package/dist/index-DkvinY7_.d.ts +54 -0
  85. package/dist/index-DrUpRXRG.d.cts +155 -0
  86. package/dist/index-EcVvViW8.d.cts +72 -0
  87. package/dist/index-HRiaaX-Q.d.cts +54 -0
  88. package/dist/index-TfXqwuac.d.ts +53 -0
  89. package/dist/index-lt819Jgj.d.cts +32 -0
  90. package/dist/index.cjs +8464 -0
  91. package/dist/index.cjs.map +1 -0
  92. package/dist/index.d.cts +23 -0
  93. package/dist/index.d.ts +23 -0
  94. package/dist/index.mjs +8410 -0
  95. package/dist/index.mjs.map +1 -0
  96. package/dist/lane/index.cjs +7641 -0
  97. package/dist/lane/index.cjs.map +1 -0
  98. package/dist/lane/index.d.cts +51 -0
  99. package/dist/lane/index.d.ts +51 -0
  100. package/dist/lane/index.mjs +7603 -0
  101. package/dist/lane/index.mjs.map +1 -0
  102. package/dist/match/index.cjs +942 -0
  103. package/dist/match/index.cjs.map +1 -0
  104. package/dist/match/index.d.cts +5 -0
  105. package/dist/match/index.d.ts +5 -0
  106. package/dist/match/index.mjs +913 -0
  107. package/dist/match/index.mjs.map +1 -0
  108. package/dist/pem/index.cjs +195 -0
  109. package/dist/pem/index.cjs.map +1 -0
  110. package/dist/pem/index.d.cts +3 -0
  111. package/dist/pem/index.d.ts +3 -0
  112. package/dist/pem/index.mjs +170 -0
  113. package/dist/pem/index.mjs.map +1 -0
  114. package/dist/pilot/index.cjs +206 -0
  115. package/dist/pilot/index.cjs.map +1 -0
  116. package/dist/pilot/index.d.cts +3 -0
  117. package/dist/pilot/index.d.ts +3 -0
  118. package/dist/pilot/index.mjs +196 -0
  119. package/dist/pilot/index.mjs.map +1 -0
  120. package/dist/precheck/index.cjs +277 -0
  121. package/dist/precheck/index.cjs.map +1 -0
  122. package/dist/precheck/index.d.cts +3 -0
  123. package/dist/precheck/index.d.ts +3 -0
  124. package/dist/precheck/index.mjs +274 -0
  125. package/dist/precheck/index.mjs.map +1 -0
  126. package/dist/produce/index.cjs +200 -0
  127. package/dist/produce/index.cjs.map +1 -0
  128. package/dist/produce/index.d.cts +3 -0
  129. package/dist/produce/index.d.ts +3 -0
  130. package/dist/produce/index.mjs +191 -0
  131. package/dist/produce/index.mjs.map +1 -0
  132. package/dist/scan/index.cjs +187 -0
  133. package/dist/scan/index.cjs.map +1 -0
  134. package/dist/scan/index.d.cts +1 -0
  135. package/dist/scan/index.d.ts +1 -0
  136. package/dist/scan/index.mjs +183 -0
  137. package/dist/scan/index.mjs.map +1 -0
  138. package/dist/sigh/index.cjs +203 -0
  139. package/dist/sigh/index.cjs.map +1 -0
  140. package/dist/sigh/index.d.cts +3 -0
  141. package/dist/sigh/index.d.ts +3 -0
  142. package/dist/sigh/index.mjs +198 -0
  143. package/dist/sigh/index.mjs.map +1 -0
  144. package/dist/snapshot/index.cjs +448 -0
  145. package/dist/snapshot/index.cjs.map +1 -0
  146. package/dist/snapshot/index.d.cts +1 -0
  147. package/dist/snapshot/index.d.ts +1 -0
  148. package/dist/snapshot/index.mjs +438 -0
  149. package/dist/snapshot/index.mjs.map +1 -0
  150. package/dist/trainer/index.cjs +395 -0
  151. package/dist/trainer/index.cjs.map +1 -0
  152. package/dist/trainer/index.d.cts +1 -0
  153. package/dist/trainer/index.d.ts +1 -0
  154. package/dist/trainer/index.mjs +372 -0
  155. package/dist/trainer/index.mjs.map +1 -0
  156. package/dist/xcode/index.cjs +188 -0
  157. package/dist/xcode/index.cjs.map +1 -0
  158. package/dist/xcode/index.d.cts +1 -0
  159. package/dist/xcode/index.d.ts +1 -0
  160. package/dist/xcode/index.mjs +176 -0
  161. package/dist/xcode/index.mjs.map +1 -0
  162. package/package.json +223 -0
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # @sitepong/fastnode
2
+
3
+ A Node.js/TypeScript toolkit for iOS & Android build automation, code signing,
4
+ and App Store / TestFlight distribution. Inspired by Fastlane, rewritten in
5
+ TypeScript with no Ruby dependency.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @sitepong/fastnode
11
+ ```
12
+
13
+ ## Quick start
14
+
15
+ ### As a library
16
+
17
+ ```ts
18
+ import { AppStoreConnectClient } from "@sitepong/fastnode/client";
19
+ import { createCertificate } from "@sitepong/fastnode/cert";
20
+
21
+ const client = new AppStoreConnectClient({
22
+ keyId: process.env.APP_STORE_CONNECT_API_KEY_ID!,
23
+ issuerId: process.env.APP_STORE_CONNECT_API_KEY_ISSUER_ID!,
24
+ privateKey: process.env.APP_STORE_CONNECT_API_KEY!,
25
+ });
26
+
27
+ const cert = await createCertificate({
28
+ client,
29
+ type: "IOS_DISTRIBUTION",
30
+ outputDir: "./certs",
31
+ });
32
+
33
+ console.log("Issued cert:", cert.certificate.id);
34
+ ```
35
+
36
+ ### CLI
37
+
38
+ ```bash
39
+ npx @sitepong/fastnode --help
40
+ npx @sitepong/fastnode cert --development
41
+ npx @sitepong/fastnode sigh --bundle-id com.example.app
42
+ ```
43
+
44
+ ## Modules
45
+
46
+ Each module can be imported separately:
47
+
48
+ | Module | Purpose |
49
+ |---|---|
50
+ | `@sitepong/fastnode/client` | App Store Connect REST client (JWT) + Apple Developer Portal client (session) |
51
+ | `@sitepong/fastnode/cert` | Create, list, revoke signing certificates |
52
+ | `@sitepong/fastnode/sigh` | Create and download provisioning profiles |
53
+ | `@sitepong/fastnode/match` | Sync certs + profiles across machines via git/S3/local storage |
54
+ | `@sitepong/fastnode/produce` | Create App Store Connect apps and bundle IDs, manage capabilities |
55
+ | `@sitepong/fastnode/pilot` | Upload builds to TestFlight, manage beta groups, set changelog |
56
+ | `@sitepong/fastnode/deliver` | Upload metadata, screenshots, submit to App Review |
57
+ | `@sitepong/fastnode/pem` | Create APNS push notification certificates |
58
+ | `@sitepong/fastnode/gym` | Build and archive iOS apps via xcodebuild |
59
+ | `@sitepong/fastnode/scan` | Run tests via xcodebuild, parse xcresult |
60
+ | `@sitepong/fastnode/snapshot` | Capture localized screenshots across devices |
61
+ | `@sitepong/fastnode/trainer` | Parse `.xcresult` / `.plist` test output → JUnit XML |
62
+ | `@sitepong/fastnode/precheck` | Static-analyze App Store metadata against review rules |
63
+ | `@sitepong/fastnode/frameit` | Composite screenshots into device frames |
64
+
65
+ ## Environment
66
+
67
+ The library pulls App Store Connect credentials from:
68
+
69
+ - `APP_STORE_CONNECT_API_KEY_ID` — the 10-character key ID
70
+ - `APP_STORE_CONNECT_API_KEY_ISSUER_ID` — the issuer UUID (omit for individual keys)
71
+ - `APP_STORE_CONNECT_API_KEY` — the `-----BEGIN PRIVATE KEY-----` PEM contents
72
+
73
+ ## Requirements
74
+
75
+ - Node.js ≥ 20
76
+ - macOS for Xcode-driven operations (`gym`, `scan`, `snapshot`, `trainer`)
77
+ - `xcodebuild`, `security`, and `codesign` on PATH for code-signing flows
78
+
79
+ ## License
80
+
81
+ MIT
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ // Entry shim for the published CLI. Loads the compiled ESM build so we don't
3
+ // need `tsx` at runtime for installed users. Keep this file in sync with
4
+ // `src/cli/index.ts` whose compiled output lives at `dist/cli/index.mjs`.
5
+
6
+ import("../dist/cli/index.mjs")
7
+ .then(({ createCli }) => {
8
+ createCli().parse(process.argv);
9
+ })
10
+ .catch((err) => {
11
+ console.error(err);
12
+ process.exit(1);
13
+ });
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env tsx
2
+ import { createCli } from "../src/cli/index.js";
3
+
4
+ const cli = createCli();
5
+ cli.parse(process.argv);