Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 7x 7x 7x 7x 7x 7x 1x 1x 1x 1x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | /**
* File holding constant values for the iCloud class
*/
/**
* Hard coded client id, extracted from previous requests
*/
export const CLIENT_ID = `d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d`;
/**
* User Agent this CLI is using. Emulating a Firefox Browser
*/
export const USER_AGENT = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0`;
/**
* Client information shared with the iCloud backend
*/
export const CLIENT_INFO = JSON.stringify({
"U": USER_AGENT,
"L": `en-US`,
"Z": `GMT+01:00`,
"V": `1.1`,
"F": ``,
});
/**
* Header used for authentication flow
*/
export const DEFAULT_AUTH_HEADER = {
'User-Agent': USER_AGENT,
"Accept": `application/json`,
"Connection": `keep-alive`,
"Origin": `https://idmsa.apple.com`,
"Referer": `https://idmsa.apple.com/`,
'Accept-Encoding': `gzip, deflate, br`,
'Content-Type': `application/json`,
'X-Apple-Widget-Key': CLIENT_ID,
'X-Apple-OAuth-Client-Id': CLIENT_ID,
'X-Apple-I-FD-Client-Info': CLIENT_INFO,
'X-Apple-OAuth-Response-Type': `code`,
'X-Apple-OAuth-Response-Mode': `web_message`,
'X-Apple-OAuth-Client-Type': `firstPartyAuth`,
};
/**
* Default header for most iCloud requests
*/
export const DEFAULT_HEADER = {
'User-Agent': USER_AGENT,
"Accept": `application/json`,
'Content-Type': `application/json`,
"Origin": `https://www.icloud.com`,
};
/**
* Values extracted from auth response headers
*/
export enum AUTH_RESPONSE_HEADER {
SESSION_TOKEN = `X-Apple-Session-Token`,
SCNT = `scnt`,
TRUST_TOKEN = `X-Apple-TwoSV-Trust-Token`,
AASP_COOKIE = `aasp`
}
/**
* Events lifecycle of the iCloud class
*/
export enum EVENTS {
AUTHENTICATION_STARTED = `auth_started`,
MFA_REQUIRED = `mfa_req`, // Will provide port as arg
MFA_RECEIVED = `mfa_rec`,
AUTHENTICATED = `auth`,
TRUSTED = `trusted`,
ACCOUNT_READY = `account_ready`,
READY = `ready`,
ERROR = `error`, // Error - will reject 'ready' promise and be handled on top level
TOKEN = `token` // TokenString - only fired if needed to be picked up
}
/**
* List of endpoints, required by the iCloud class
*/
export const ENPOINT = {
"AUTH": {
"BASE": `https://idmsa.apple.com/appleauth/auth`,
"PATH": {
"SIGNIN": `/signin`,
"MFA": {
"DEVICE": `/verify/trusteddevice`,
"PHONE": `/verify/phone`,
},
"TRUST": `/2sv/trust`,
},
},
"SETUP": {
"BASE": `https://setup.icloud.com`,
"PATH": {
"ACCOUNT": `/setup/ws/1/accountLogin`,
},
},
};
/**
* Pre-composing URLs, required by iCloud class
*/
export const URL = {
"SIGNIN": `${ENPOINT.AUTH.BASE}${ENPOINT.AUTH.PATH.SIGNIN}`,
"MFA_DEVICE": `${ENPOINT.AUTH.BASE}${ENPOINT.AUTH.PATH.MFA.DEVICE}/securitycode`, // Maybe??
"MFA_DEVICE_ENTER": `${ENPOINT.AUTH.BASE}${ENPOINT.AUTH.PATH.MFA.DEVICE}/securitycode`,
"MFA_PHONE": `${ENPOINT.AUTH.BASE}${ENPOINT.AUTH.PATH.MFA.PHONE}`,
"MFA_PHONE_ENTER": `${ENPOINT.AUTH.BASE}${ENPOINT.AUTH.PATH.MFA.PHONE}/securitycode`,
"TRUST": `${ENPOINT.AUTH.BASE}${ENPOINT.AUTH.PATH.TRUST}`,
"SETUP": `${ENPOINT.SETUP.BASE}${ENPOINT.SETUP.PATH.ACCOUNT}`,
};
/**
* Filename of persistent trust token file
*/
export const TRUST_TOKEN_FILE_NAME = `.trust-token.icloud`;
export const TRUST_TOKEN_FILE_ENCODING = `utf8`; |