@sitepong/fastnode 0.3.0 → 0.3.2
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 +6 -0
- package/dist/actions/index.cjs +81 -0
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.mjs +82 -1
- package/dist/actions/index.mjs.map +1 -1
- package/dist/{apple-session-jUzBrql5.d.cts → apple-session-D6x7Jo3D.d.cts} +1 -1
- package/dist/{apple-session-jUzBrql5.d.ts → apple-session-D6x7Jo3D.d.ts} +1 -1
- package/dist/cert/index.cjs +92 -51
- package/dist/cert/index.cjs.map +1 -1
- package/dist/cert/index.d.cts +5 -5
- package/dist/cert/index.d.ts +5 -5
- package/dist/cert/index.mjs +92 -51
- package/dist/cert/index.mjs.map +1 -1
- package/dist/{cert-RvXmdMke.d.ts → cert-C-yRB-sO.d.ts} +2 -2
- package/dist/{cert-eOoxGMN1.d.cts → cert-C4hhKH1n.d.cts} +2 -2
- package/dist/cli/index.cjs +151 -47
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +3 -3
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.mjs +152 -48
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.cjs +77 -0
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +3 -3
- package/dist/client/index.d.ts +3 -3
- package/dist/client/index.mjs +72 -1
- package/dist/client/index.mjs.map +1 -1
- package/dist/core/index.d.cts +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/deliver/index.d.cts +4 -4
- package/dist/deliver/index.d.ts +4 -4
- package/dist/{enums-yXNVh3UI.d.cts → enums-BlpayMTx.d.cts} +1 -1
- package/dist/{enums-yXNVh3UI.d.ts → enums-BlpayMTx.d.ts} +1 -1
- package/dist/frameit/index.d.cts +1 -1
- package/dist/frameit/index.d.ts +1 -1
- package/dist/gradle/index.d.cts +1 -1
- package/dist/gradle/index.d.ts +1 -1
- package/dist/gym/index.d.cts +2 -2
- package/dist/gym/index.d.ts +2 -2
- package/dist/{index-DnHQ2uT2.d.cts → index-258t9n7v.d.cts} +2 -2
- package/dist/{index-BvyZ4uiw.d.ts → index-6LKy36sE.d.ts} +4 -4
- package/dist/{index-icIH5e5V.d.cts → index-B74vgav6.d.cts} +4 -4
- package/dist/{index-BoU8qt8r.d.cts → index-B7ERdhh8.d.cts} +1 -1
- package/dist/{index-BoU8qt8r.d.ts → index-B7ERdhh8.d.ts} +1 -1
- package/dist/{index-laE3_wm9.d.cts → index-BIRpj0f2.d.cts} +2 -2
- package/dist/{index-CBf0-NUQ.d.ts → index-BJLHWMwL.d.ts} +3 -3
- package/dist/{index-mEEB7An6.d.ts → index-B_D_01oz.d.ts} +1 -1
- package/dist/{index-D1GHEM3c.d.ts → index-Ba1jHQYg.d.ts} +1 -1
- package/dist/{index-DGkgRnZp.d.cts → index-BawZaGqD.d.cts} +3 -3
- package/dist/{index-8djTPW8O.d.ts → index-BmrOdmNL.d.ts} +2 -2
- package/dist/{index-DjC_gmnL.d.ts → index-C8L03MBu.d.ts} +3 -3
- package/dist/{index-Cp6cjtd-.d.ts → index-CHLDQweM.d.cts} +1 -1
- package/dist/{index-Cp6cjtd-.d.cts → index-CHLDQweM.d.ts} +1 -1
- package/dist/{index-B6-MJpO4.d.cts → index-CRFfLsEG.d.cts} +1 -1
- package/dist/{index-CAEiXVWd.d.ts → index-CV6KnSy1.d.ts} +2 -2
- package/dist/index-CX2hUvvG.d.cts +287 -0
- package/dist/index-CX2hUvvG.d.ts +287 -0
- package/dist/{index-C9mHBJED.d.ts → index-ClhWjR7a.d.ts} +2 -2
- package/dist/{index-BGhV0gS-.d.ts → index-Cq-xo-9x.d.ts} +2 -2
- package/dist/{index-CR3BFPIz.d.ts → index-Cw7ojUY5.d.cts} +1 -1
- package/dist/{index-CR3BFPIz.d.cts → index-Cw7ojUY5.d.ts} +1 -1
- package/dist/{index-C2yG3wXA.d.cts → index-CwD7lG0y.d.cts} +1 -1
- package/dist/{index-C2yG3wXA.d.ts → index-CwD7lG0y.d.ts} +1 -1
- package/dist/{index-DLJso7Vs.d.cts → index-CxrqhkVF.d.cts} +1 -1
- package/dist/{index-BE7bwNff.d.cts → index-D3zyYCYs.d.cts} +2 -2
- package/dist/{index-BaNcf7jt.d.cts → index-DCrSWVMb.d.cts} +3 -3
- package/dist/{index-rTZOdMRE.d.ts → index-DP2f5ZsS.d.ts} +3 -3
- package/dist/{index-DfkIz7i0.d.cts → index-DRjXV9ej.d.cts} +3 -3
- package/dist/{index-Dv-Mek07.d.ts → index-DSXBQeur.d.cts} +1 -1
- package/dist/{index-Dv-Mek07.d.cts → index-DSXBQeur.d.ts} +1 -1
- package/dist/{index-BYonklf3.d.cts → index-Dvi-3DSM.d.cts} +1 -1
- package/dist/{index-BYonklf3.d.ts → index-Dvi-3DSM.d.ts} +1 -1
- package/dist/{index-C01Rkrir.d.ts → index-Dy8EWOnt.d.ts} +2 -2
- package/dist/{index-DrmS802s.d.cts → index-HWWl6HEL.d.cts} +34 -3
- package/dist/{index-DWOLZNlz.d.cts → index-QYgreJV3.d.cts} +2 -2
- package/dist/{index-lsuS2R1T.d.ts → index-SyCMBpNN.d.ts} +34 -3
- package/dist/{index-DFstwgGK.d.cts → index-yro2MWgt.d.cts} +2 -2
- package/dist/index.cjs +1543 -964
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -23
- package/dist/index.d.ts +23 -23
- package/dist/index.mjs +1544 -965
- package/dist/index.mjs.map +1 -1
- package/dist/lane/index.cjs +81 -0
- package/dist/lane/index.cjs.map +1 -1
- package/dist/lane/index.mjs +82 -1
- package/dist/lane/index.mjs.map +1 -1
- package/dist/match/index.d.cts +6 -6
- package/dist/match/index.d.ts +6 -6
- package/dist/match/index.mjs +1 -1
- package/dist/pem/index.d.cts +4 -4
- package/dist/pem/index.d.ts +4 -4
- package/dist/pilot/index.d.cts +4 -4
- package/dist/pilot/index.d.ts +4 -4
- package/dist/playstore/index.cjs +18208 -1
- package/dist/playstore/index.cjs.map +1 -1
- package/dist/playstore/index.d.cts +1 -1
- package/dist/playstore/index.d.ts +1 -1
- package/dist/playstore/index.mjs +18196 -2
- package/dist/playstore/index.mjs.map +1 -1
- package/dist/precheck/index.d.cts +4 -4
- package/dist/precheck/index.d.ts +4 -4
- package/dist/privacy/index.cjs +32 -22
- package/dist/privacy/index.cjs.map +1 -1
- package/dist/privacy/index.d.cts +2 -2
- package/dist/privacy/index.d.ts +2 -2
- package/dist/privacy/index.mjs +32 -22
- package/dist/privacy/index.mjs.map +1 -1
- package/dist/produce/index.d.cts +4 -4
- package/dist/produce/index.d.ts +4 -4
- package/dist/review/index.cjs +32 -22
- package/dist/review/index.cjs.map +1 -1
- package/dist/review/index.d.cts +2 -2
- package/dist/review/index.d.ts +2 -2
- package/dist/review/index.mjs +32 -22
- package/dist/review/index.mjs.map +1 -1
- package/dist/sigh/index.d.cts +4 -4
- package/dist/sigh/index.d.ts +4 -4
- package/dist/snapshot/index.d.cts +1 -1
- package/dist/snapshot/index.d.ts +1 -1
- package/dist/trainer/index.d.cts +1 -1
- package/dist/trainer/index.d.ts +1 -1
- package/dist/xcode/index.d.cts +1 -1
- package/dist/xcode/index.d.ts +1 -1
- package/package.json +2 -2
- package/dist/index-CXJlvmB4.d.cts +0 -63
- package/dist/index-CXJlvmB4.d.ts +0 -63
package/README.md
CHANGED
|
@@ -114,6 +114,12 @@ FASTNODE_USER=you@example.com npx @sitepong/fastnode rejections --app-id 1234567
|
|
|
114
114
|
npx @sitepong/fastnode rejections --app-id 1234567890 --all --json
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
+
You sign in once: the Apple ID session (never the password) is saved to
|
|
118
|
+
`~/.fastnode/sessions` (0600; override with `FASTNODE_SESSION_DIR`), and later
|
|
119
|
+
`rejections` and `privacy` runs on the same Apple ID reuse it until Apple
|
|
120
|
+
expires it, with no password or 2FA prompt. `--fresh-login` forces a new
|
|
121
|
+
sign-in.
|
|
122
|
+
|
|
117
123
|
It prints each submission waiting on you (`UNRESOLVED_ISSUES`), the guideline
|
|
118
124
|
reasons App Review attached, and the message text. `--all` includes resolved
|
|
119
125
|
submissions too. From code: `getReviewFeedback(session, appId)` in
|
package/dist/actions/index.cjs
CHANGED
|
@@ -6953,6 +6953,79 @@ var init_app_asset_library_placements = __esm({
|
|
|
6953
6953
|
};
|
|
6954
6954
|
}
|
|
6955
6955
|
});
|
|
6956
|
+
function sessionDir() {
|
|
6957
|
+
return process.env.FASTNODE_SESSION_DIR || path.join(os.homedir(), ".fastnode", "sessions");
|
|
6958
|
+
}
|
|
6959
|
+
function fileFor(email) {
|
|
6960
|
+
const key = crypto.createHash("sha256").update(email.trim().toLowerCase()).digest("hex").slice(0, 16);
|
|
6961
|
+
return path.join(sessionDir(), `${key}.json`);
|
|
6962
|
+
}
|
|
6963
|
+
function ensureDir() {
|
|
6964
|
+
const dir = sessionDir();
|
|
6965
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true, mode: 448 });
|
|
6966
|
+
fs.chmodSync(dir, 448);
|
|
6967
|
+
}
|
|
6968
|
+
function saveAppleSession(session) {
|
|
6969
|
+
ensureDir();
|
|
6970
|
+
const stored = { email: session.userEmail, savedAt: (/* @__PURE__ */ new Date()).toISOString(), session };
|
|
6971
|
+
const path$1 = fileFor(session.userEmail);
|
|
6972
|
+
fs.writeFileSync(path$1, JSON.stringify(stored), { mode: 384 });
|
|
6973
|
+
fs.chmodSync(path$1, 384);
|
|
6974
|
+
fs.writeFileSync(path.join(sessionDir(), "last-apple-id"), session.userEmail, { mode: 384 });
|
|
6975
|
+
}
|
|
6976
|
+
function clearAppleSession(email) {
|
|
6977
|
+
const path = fileFor(email);
|
|
6978
|
+
if (fs.existsSync(path)) fs.unlinkSync(path);
|
|
6979
|
+
}
|
|
6980
|
+
function lastAppleId() {
|
|
6981
|
+
try {
|
|
6982
|
+
return fs.readFileSync(path.join(sessionDir(), "last-apple-id"), "utf8").trim() || null;
|
|
6983
|
+
} catch {
|
|
6984
|
+
return null;
|
|
6985
|
+
}
|
|
6986
|
+
}
|
|
6987
|
+
async function loadAppleSession(email, fetchImpl = fetch) {
|
|
6988
|
+
const path = fileFor(email);
|
|
6989
|
+
if (!fs.existsSync(path)) return null;
|
|
6990
|
+
let stored;
|
|
6991
|
+
try {
|
|
6992
|
+
stored = JSON.parse(fs.readFileSync(path, "utf8"));
|
|
6993
|
+
} catch {
|
|
6994
|
+
return null;
|
|
6995
|
+
}
|
|
6996
|
+
const cookie = Object.entries(stored.session.cookies).map(([k, v]) => `${k}=${v}`).join("; ");
|
|
6997
|
+
try {
|
|
6998
|
+
const res = await fetchImpl(OLYMPUS_SESSION2, { headers: { Cookie: cookie, Accept: "application/json" } });
|
|
6999
|
+
if (!res.ok) {
|
|
7000
|
+
clearAppleSession(email);
|
|
7001
|
+
return null;
|
|
7002
|
+
}
|
|
7003
|
+
} catch {
|
|
7004
|
+
return null;
|
|
7005
|
+
}
|
|
7006
|
+
return stored.session;
|
|
7007
|
+
}
|
|
7008
|
+
async function signInWithAppleId(options) {
|
|
7009
|
+
const email = options.email || lastAppleId() || await options.askEmail();
|
|
7010
|
+
if (!options.fresh) {
|
|
7011
|
+
const saved = await loadAppleSession(email);
|
|
7012
|
+
if (saved) {
|
|
7013
|
+
options.onLog?.(`Using saved Apple ID session for ${email}`);
|
|
7014
|
+
return saved;
|
|
7015
|
+
}
|
|
7016
|
+
}
|
|
7017
|
+
const password = await options.askPassword(email);
|
|
7018
|
+
const session = await loginWithAppleId({ email, password, onLog: options.onLog });
|
|
7019
|
+
saveAppleSession(session);
|
|
7020
|
+
return session;
|
|
7021
|
+
}
|
|
7022
|
+
var OLYMPUS_SESSION2;
|
|
7023
|
+
var init_session_store = __esm({
|
|
7024
|
+
"src/client/session-store.ts"() {
|
|
7025
|
+
init_apple_session();
|
|
7026
|
+
OLYMPUS_SESSION2 = "https://appstoreconnect.apple.com/olympus/v1/session";
|
|
7027
|
+
}
|
|
7028
|
+
});
|
|
6956
7029
|
|
|
6957
7030
|
// src/client/portal.ts
|
|
6958
7031
|
function pickUniqueKeyName(base, taken) {
|
|
@@ -7721,6 +7794,7 @@ var init_iris = __esm({
|
|
|
7721
7794
|
session;
|
|
7722
7795
|
cookieStr;
|
|
7723
7796
|
buildHeaders() {
|
|
7797
|
+
this.cookieStr = Object.entries(this.session.cookies).map(([k, v]) => `${k}=${v}`).join("; ");
|
|
7724
7798
|
return {
|
|
7725
7799
|
Cookie: this.cookieStr,
|
|
7726
7800
|
Accept: "application/vnd.api+json, application/json, text/plain, */*",
|
|
@@ -8031,8 +8105,14 @@ __export(client_exports, {
|
|
|
8031
8105
|
TokenManager: () => TokenManager,
|
|
8032
8106
|
beginLogin: () => beginLogin,
|
|
8033
8107
|
checkPortalResponse: () => checkPortalResponse,
|
|
8108
|
+
clearAppleSession: () => clearAppleSession,
|
|
8109
|
+
lastAppleId: () => lastAppleId,
|
|
8110
|
+
loadAppleSession: () => loadAppleSession,
|
|
8034
8111
|
loginWithAppleId: () => loginWithAppleId,
|
|
8035
8112
|
requestSmsCode: () => requestSmsCode,
|
|
8113
|
+
saveAppleSession: () => saveAppleSession,
|
|
8114
|
+
sessionDir: () => sessionDir,
|
|
8115
|
+
signInWithAppleId: () => signInWithAppleId,
|
|
8036
8116
|
submitTwoFactorCode: () => submitTwoFactorCode
|
|
8037
8117
|
});
|
|
8038
8118
|
var AppStoreConnectClient;
|
|
@@ -8080,6 +8160,7 @@ var init_client = __esm({
|
|
|
8080
8160
|
init_auth();
|
|
8081
8161
|
init_request();
|
|
8082
8162
|
init_apple_session();
|
|
8163
|
+
init_session_store();
|
|
8083
8164
|
init_portal();
|
|
8084
8165
|
init_iris();
|
|
8085
8166
|
AppStoreConnectClient = class {
|