@sitepong/fastnode 0.3.0 → 0.3.1
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 +80 -0
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.mjs +81 -1
- package/dist/actions/index.mjs.map +1 -1
- package/dist/cert/index.d.cts +3 -3
- package/dist/cert/index.d.ts +3 -3
- package/dist/{cert-RvXmdMke.d.ts → cert-ClacRx9y.d.ts} +1 -1
- package/dist/{cert-eOoxGMN1.d.cts → cert-DffLKURp.d.cts} +1 -1
- package/dist/cli/index.cjs +115 -28
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.mjs +116 -29
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.cjs +76 -0
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.mjs +71 -1
- package/dist/client/index.mjs.map +1 -1
- package/dist/deliver/index.d.cts +2 -2
- package/dist/deliver/index.d.ts +2 -2
- package/dist/{index-DGkgRnZp.d.cts → index-925_Ov7X.d.cts} +1 -1
- package/dist/{index-DfkIz7i0.d.cts → index-BbVQzSV1.d.cts} +1 -1
- package/dist/{index-BaNcf7jt.d.cts → index-BhGaVlK1.d.cts} +1 -1
- package/dist/{index-DjC_gmnL.d.ts → index-C-EEYXSE.d.ts} +1 -1
- package/dist/{index-D1GHEM3c.d.ts → index-C18cijCd.d.ts} +1 -1
- package/dist/{index-rTZOdMRE.d.ts → index-CBM5XZKC.d.ts} +1 -1
- package/dist/{index-lsuS2R1T.d.ts → index-CemR3UI9.d.ts} +32 -1
- package/dist/{index-laE3_wm9.d.cts → index-CmcFPn_G.d.cts} +1 -1
- package/dist/{index-DrmS802s.d.cts → index-CpGV1f0L.d.cts} +32 -1
- package/dist/{index-C01Rkrir.d.ts → index-D9YQQ3FM.d.ts} +1 -1
- package/dist/{index-C9mHBJED.d.ts → index-Dkf5sH1E.d.ts} +1 -1
- package/dist/{index-CAEiXVWd.d.ts → index-N6eV5yym.d.ts} +1 -1
- package/dist/{index-icIH5e5V.d.cts → index-O3EMrd5s.d.cts} +3 -3
- package/dist/{index-BvyZ4uiw.d.ts → index-Ol0RtbQA.d.ts} +3 -3
- package/dist/{index-DLJso7Vs.d.cts → index-_24DRp3a.d.cts} +1 -1
- package/dist/{index-DWOLZNlz.d.cts → index-isT08RuY.d.cts} +1 -1
- package/dist/{index-BE7bwNff.d.cts → index-on573dnO.d.cts} +1 -1
- package/dist/{index-CBf0-NUQ.d.ts → index-s2PigtDM.d.ts} +1 -1
- package/dist/index.cjs +118 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -11
- package/dist/index.d.ts +11 -11
- package/dist/index.mjs +118 -31
- package/dist/index.mjs.map +1 -1
- package/dist/lane/index.cjs +80 -0
- package/dist/lane/index.cjs.map +1 -1
- package/dist/lane/index.mjs +81 -1
- package/dist/lane/index.mjs.map +1 -1
- package/dist/match/index.d.cts +4 -4
- package/dist/match/index.d.ts +4 -4
- package/dist/pem/index.d.cts +2 -2
- package/dist/pem/index.d.ts +2 -2
- package/dist/pilot/index.d.cts +2 -2
- package/dist/pilot/index.d.ts +2 -2
- package/dist/precheck/index.d.cts +2 -2
- package/dist/precheck/index.d.ts +2 -2
- package/dist/produce/index.d.cts +2 -2
- package/dist/produce/index.d.ts +2 -2
- package/dist/sigh/index.d.cts +2 -2
- package/dist/sigh/index.d.ts +2 -2
- package/package.json +1 -1
package/dist/deliver/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../index-
|
|
1
|
+
import '../index-CpGV1f0L.cjs';
|
|
2
2
|
import '../enums-yXNVh3UI.cjs';
|
|
3
|
-
export { A as ASSET_FOLDERS, D as DeliverOptions, a as DeliverResult, L as LocalizedMetadata, M as MetadataSet, P as PlaceAssetsResult, U as UploadedAsset, g as categoryFor, l as loadMetadata, f as readImageSize, r as resolveImageGroups, s as submitForReview, d as uploadAssetLibrary, e as uploadLibraryAsset, b as uploadMetadata, c as uploadScreenshots, u as uploadToAppStore } from '../index-
|
|
3
|
+
export { A as ASSET_FOLDERS, D as DeliverOptions, a as DeliverResult, L as LocalizedMetadata, M as MetadataSet, P as PlaceAssetsResult, U as UploadedAsset, g as categoryFor, l as loadMetadata, f as readImageSize, r as resolveImageGroups, s as submitForReview, d as uploadAssetLibrary, e as uploadLibraryAsset, b as uploadMetadata, c as uploadScreenshots, u as uploadToAppStore } from '../index-BhGaVlK1.cjs';
|
|
4
4
|
import '../apple-session-jUzBrql5.cjs';
|
package/dist/deliver/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../index-
|
|
1
|
+
import '../index-CemR3UI9.js';
|
|
2
2
|
import '../enums-yXNVh3UI.js';
|
|
3
|
-
export { A as ASSET_FOLDERS, D as DeliverOptions, a as DeliverResult, L as LocalizedMetadata, M as MetadataSet, P as PlaceAssetsResult, U as UploadedAsset, g as categoryFor, l as loadMetadata, f as readImageSize, r as resolveImageGroups, s as submitForReview, d as uploadAssetLibrary, e as uploadLibraryAsset, b as uploadMetadata, c as uploadScreenshots, u as uploadToAppStore } from '../index-
|
|
3
|
+
export { A as ASSET_FOLDERS, D as DeliverOptions, a as DeliverResult, L as LocalizedMetadata, M as MetadataSet, P as PlaceAssetsResult, U as UploadedAsset, g as categoryFor, l as loadMetadata, f as readImageSize, r as resolveImageGroups, s as submitForReview, d as uploadAssetLibrary, e as uploadLibraryAsset, b as uploadMetadata, c as uploadScreenshots, u as uploadToAppStore } from '../index-s2PigtDM.js';
|
|
4
4
|
import '../apple-session-jUzBrql5.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient } from './index-CpGV1f0L.cjs';
|
|
2
2
|
import { C as CertificateType } from './enums-yXNVh3UI.cjs';
|
|
3
3
|
|
|
4
4
|
type PushCertKind = "development" | "production" | "website" | "voip" | "passbook";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient, a8 as PortalClient, p as CapabilitySettingInput, B as BundleId, o as BundleIdCapability, i as App } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient, a8 as PortalClient, p as CapabilitySettingInput, B as BundleId, o as BundleIdCapability, i as App } from './index-CpGV1f0L.cjs';
|
|
2
2
|
import { B as BundleIdPlatform, d as CapabilityType } from './enums-yXNVh3UI.cjs';
|
|
3
3
|
|
|
4
4
|
interface ProduceOptions {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient, W as AppAssetLibraryRefDatumAttributes, X as AppAssetLibraryImageSpec } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient, W as AppAssetLibraryRefDatumAttributes, X as AppAssetLibraryImageSpec } from './index-CpGV1f0L.cjs';
|
|
2
2
|
import { l as AppAssetLibraryPlacementType, j as AppAssetLibraryAssetCategory, m as AppAssetLibraryAssetState, o as AppAssetLibraryFeature, b as Platform, R as ReleaseType } from './enums-yXNVh3UI.cjs';
|
|
3
3
|
|
|
4
4
|
interface LocalizedMetadata {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient, a8 as PortalClient, p as CapabilitySettingInput, B as BundleId, o as BundleIdCapability, i as App } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient, a8 as PortalClient, p as CapabilitySettingInput, B as BundleId, o as BundleIdCapability, i as App } from './index-CemR3UI9.js';
|
|
2
2
|
import { B as BundleIdPlatform, d as CapabilityType } from './enums-yXNVh3UI.js';
|
|
3
3
|
|
|
4
4
|
interface ProduceOptions {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CertOptions, a as CertResult, c as createCertificate, d as downloadCertificate, f as findValidCertificates, r as revokeCertificate, b as revokeExpiredCertificates } from './cert-
|
|
1
|
+
import { C as CertOptions, a as CertResult, c as createCertificate, d as downloadCertificate, f as findValidCertificates, r as revokeCertificate, b as revokeExpiredCertificates } from './cert-ClacRx9y.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate EC P-256 CSR — used by App Store Connect API (JWT auth).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient } from './index-CemR3UI9.js';
|
|
2
2
|
import { C as CertificateType } from './enums-yXNVh3UI.js';
|
|
3
3
|
|
|
4
4
|
type PushCertKind = "development" | "production" | "website" | "voip" | "passbook";
|
|
@@ -1600,6 +1600,37 @@ declare class AppAssetLibrariesResource {
|
|
|
1600
1600
|
}): Promise<AppAssetLibraryRefDatumAttributes>;
|
|
1601
1601
|
}
|
|
1602
1602
|
|
|
1603
|
+
/**
|
|
1604
|
+
* Keeps an Apple ID session between runs, like Spaceship's cookie in
|
|
1605
|
+
* ~/.fastlane/spaceship/<user>/cookie — one password + 2FA covers every
|
|
1606
|
+
* command (and every app on that Apple ID) until Apple expires the session.
|
|
1607
|
+
*
|
|
1608
|
+
* Files live in ~/.fastnode/sessions (or FASTNODE_SESSION_DIR), one per
|
|
1609
|
+
* Apple ID, directory 0700 and files 0600: they are as good as a signed-in
|
|
1610
|
+
* App Store Connect browser. A cached session is checked against olympus
|
|
1611
|
+
* before use, so an expired one just falls through to a fresh sign-in.
|
|
1612
|
+
*/
|
|
1613
|
+
|
|
1614
|
+
declare function sessionDir(): string;
|
|
1615
|
+
declare function saveAppleSession(session: AppleSession): void;
|
|
1616
|
+
declare function clearAppleSession(email: string): void;
|
|
1617
|
+
/** The Apple ID the last session was saved for, so a re-run needs no prompt at all. */
|
|
1618
|
+
declare function lastAppleId(): string | null;
|
|
1619
|
+
/** A saved session for this Apple ID that Apple still accepts, or null. */
|
|
1620
|
+
declare function loadAppleSession(email: string, fetchImpl?: typeof fetch): Promise<AppleSession | null>;
|
|
1621
|
+
/**
|
|
1622
|
+
* Reuse the saved session for this Apple ID, or sign in (password + 2FA) and
|
|
1623
|
+
* save the new one. The password is only asked for when a sign-in is needed.
|
|
1624
|
+
*/
|
|
1625
|
+
declare function signInWithAppleId(options: {
|
|
1626
|
+
email?: string | null;
|
|
1627
|
+
askEmail: () => Promise<string>;
|
|
1628
|
+
askPassword: (email: string) => Promise<string>;
|
|
1629
|
+
/** Ignore any saved session and sign in again. */
|
|
1630
|
+
fresh?: boolean;
|
|
1631
|
+
onLog?: (msg: string) => void;
|
|
1632
|
+
}): Promise<AppleSession>;
|
|
1633
|
+
|
|
1603
1634
|
/**
|
|
1604
1635
|
* Apple Developer Portal Client
|
|
1605
1636
|
* 1:1 port of Fastlane Spaceship PortalClient
|
|
@@ -2097,4 +2128,4 @@ declare class AppStoreConnectClient {
|
|
|
2097
2128
|
request<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
2098
2129
|
}
|
|
2099
2130
|
|
|
2100
|
-
export { AppAssetLibraryVideosResource as $, AppStoreConnectClient as A, type BundleId as B, type Certificate as C, type Device as D, AppStoreVersionsResource as E, type AppStoreVersion as F, type AppStoreVersionLocalization as G, AppScreenshotsResource as H, type AppScreenshot as I, type JsonApiResource as J, type AppScreenshotSet as K, type ListParams as L, ReviewSubmissionsResource as M, type ReviewSubmission as N, type AppStoreVersionSubmission as O, type Profile as P, AppAssetLibrariesResource as Q, RequestClient as R, type AppAssetLibrary as S, TokenManager as T, type UploadOperation as U, type AppAssetLibraryRefDatum as V, type AppAssetLibraryRefDatumAttributes as W, type AppAssetLibraryImageSpec as X, type AppAssetLibraryVideoSpec as Y, type AppAssetLibraryDimensions as Z, AppAssetLibraryImagesResource as _, AppStoreConnectError as a, type AppAssetLibraryImage as a0, type AppAssetLibraryVideo as a1, type CreateAssetParams as a2, type UpdateAssetAttributes as a3, AppAssetLibraryPlacementsResource as a4, type AppAssetLibraryPlacement as a5, type PlacementTarget as a6, type PlacementTargetKind as a7, PortalClient as a8,
|
|
2131
|
+
export { AppAssetLibraryVideosResource as $, AppStoreConnectClient as A, type BundleId as B, type Certificate as C, type Device as D, AppStoreVersionsResource as E, type AppStoreVersion as F, type AppStoreVersionLocalization as G, AppScreenshotsResource as H, type AppScreenshot as I, type JsonApiResource as J, type AppScreenshotSet as K, type ListParams as L, ReviewSubmissionsResource as M, type ReviewSubmission as N, type AppStoreVersionSubmission as O, type Profile as P, AppAssetLibrariesResource as Q, RequestClient as R, type AppAssetLibrary as S, TokenManager as T, type UploadOperation as U, type AppAssetLibraryRefDatum as V, type AppAssetLibraryRefDatumAttributes as W, type AppAssetLibraryImageSpec as X, type AppAssetLibraryVideoSpec as Y, type AppAssetLibraryDimensions as Z, AppAssetLibraryImagesResource as _, AppStoreConnectError as a, type AppAssetLibraryImage as a0, type AppAssetLibraryVideo as a1, type CreateAssetParams as a2, type UpdateAssetAttributes as a3, AppAssetLibraryPlacementsResource as a4, type AppAssetLibraryPlacement as a5, type PlacementTarget as a6, type PlacementTargetKind as a7, PortalClient as a8, signInWithAppleId as a9, loadAppleSession as aa, saveAppleSession as ab, clearAppleSession as ac, lastAppleId as ad, sessionDir as ae, IrisClient as af, IrisAuthError as ag, type IrisApiKey as ah, type ApiKeyRole as ai, type JsonApiRelationship as aj, type JsonApiErrorResponse as ak, RateLimitError as b, type AppStoreConnectConfig as c, type TokenConfig as d, type RequestOptions as e, type JsonApiResponse as f, type JsonApiListResponse as g, type JsonApiError as h, type App as i, type Build as j, type BetaGroup as k, type BetaBuildLocalization as l, type BuildBetaDetail as m, type PreReleaseVersion$1 as n, type BundleIdCapability as o, type CapabilitySettingInput as p, type CapabilitySetting as q, type CapabilityOption as r, CertificatesResource as s, ProfilesResource as t, BundleIdsResource as u, DevicesResource as v, AppsResource as w, BuildsResource as x, BetaGroupsResource as y, CapabilitiesResource as z };
|
|
@@ -1600,6 +1600,37 @@ declare class AppAssetLibrariesResource {
|
|
|
1600
1600
|
}): Promise<AppAssetLibraryRefDatumAttributes>;
|
|
1601
1601
|
}
|
|
1602
1602
|
|
|
1603
|
+
/**
|
|
1604
|
+
* Keeps an Apple ID session between runs, like Spaceship's cookie in
|
|
1605
|
+
* ~/.fastlane/spaceship/<user>/cookie — one password + 2FA covers every
|
|
1606
|
+
* command (and every app on that Apple ID) until Apple expires the session.
|
|
1607
|
+
*
|
|
1608
|
+
* Files live in ~/.fastnode/sessions (or FASTNODE_SESSION_DIR), one per
|
|
1609
|
+
* Apple ID, directory 0700 and files 0600: they are as good as a signed-in
|
|
1610
|
+
* App Store Connect browser. A cached session is checked against olympus
|
|
1611
|
+
* before use, so an expired one just falls through to a fresh sign-in.
|
|
1612
|
+
*/
|
|
1613
|
+
|
|
1614
|
+
declare function sessionDir(): string;
|
|
1615
|
+
declare function saveAppleSession(session: AppleSession): void;
|
|
1616
|
+
declare function clearAppleSession(email: string): void;
|
|
1617
|
+
/** The Apple ID the last session was saved for, so a re-run needs no prompt at all. */
|
|
1618
|
+
declare function lastAppleId(): string | null;
|
|
1619
|
+
/** A saved session for this Apple ID that Apple still accepts, or null. */
|
|
1620
|
+
declare function loadAppleSession(email: string, fetchImpl?: typeof fetch): Promise<AppleSession | null>;
|
|
1621
|
+
/**
|
|
1622
|
+
* Reuse the saved session for this Apple ID, or sign in (password + 2FA) and
|
|
1623
|
+
* save the new one. The password is only asked for when a sign-in is needed.
|
|
1624
|
+
*/
|
|
1625
|
+
declare function signInWithAppleId(options: {
|
|
1626
|
+
email?: string | null;
|
|
1627
|
+
askEmail: () => Promise<string>;
|
|
1628
|
+
askPassword: (email: string) => Promise<string>;
|
|
1629
|
+
/** Ignore any saved session and sign in again. */
|
|
1630
|
+
fresh?: boolean;
|
|
1631
|
+
onLog?: (msg: string) => void;
|
|
1632
|
+
}): Promise<AppleSession>;
|
|
1633
|
+
|
|
1603
1634
|
/**
|
|
1604
1635
|
* Apple Developer Portal Client
|
|
1605
1636
|
* 1:1 port of Fastlane Spaceship PortalClient
|
|
@@ -2097,4 +2128,4 @@ declare class AppStoreConnectClient {
|
|
|
2097
2128
|
request<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
2098
2129
|
}
|
|
2099
2130
|
|
|
2100
|
-
export { AppAssetLibraryVideosResource as $, AppStoreConnectClient as A, type BundleId as B, type Certificate as C, type Device as D, AppStoreVersionsResource as E, type AppStoreVersion as F, type AppStoreVersionLocalization as G, AppScreenshotsResource as H, type AppScreenshot as I, type JsonApiResource as J, type AppScreenshotSet as K, type ListParams as L, ReviewSubmissionsResource as M, type ReviewSubmission as N, type AppStoreVersionSubmission as O, type Profile as P, AppAssetLibrariesResource as Q, RequestClient as R, type AppAssetLibrary as S, TokenManager as T, type UploadOperation as U, type AppAssetLibraryRefDatum as V, type AppAssetLibraryRefDatumAttributes as W, type AppAssetLibraryImageSpec as X, type AppAssetLibraryVideoSpec as Y, type AppAssetLibraryDimensions as Z, AppAssetLibraryImagesResource as _, AppStoreConnectError as a, type AppAssetLibraryImage as a0, type AppAssetLibraryVideo as a1, type CreateAssetParams as a2, type UpdateAssetAttributes as a3, AppAssetLibraryPlacementsResource as a4, type AppAssetLibraryPlacement as a5, type PlacementTarget as a6, type PlacementTargetKind as a7, PortalClient as a8,
|
|
2131
|
+
export { AppAssetLibraryVideosResource as $, AppStoreConnectClient as A, type BundleId as B, type Certificate as C, type Device as D, AppStoreVersionsResource as E, type AppStoreVersion as F, type AppStoreVersionLocalization as G, AppScreenshotsResource as H, type AppScreenshot as I, type JsonApiResource as J, type AppScreenshotSet as K, type ListParams as L, ReviewSubmissionsResource as M, type ReviewSubmission as N, type AppStoreVersionSubmission as O, type Profile as P, AppAssetLibrariesResource as Q, RequestClient as R, type AppAssetLibrary as S, TokenManager as T, type UploadOperation as U, type AppAssetLibraryRefDatum as V, type AppAssetLibraryRefDatumAttributes as W, type AppAssetLibraryImageSpec as X, type AppAssetLibraryVideoSpec as Y, type AppAssetLibraryDimensions as Z, AppAssetLibraryImagesResource as _, AppStoreConnectError as a, type AppAssetLibraryImage as a0, type AppAssetLibraryVideo as a1, type CreateAssetParams as a2, type UpdateAssetAttributes as a3, AppAssetLibraryPlacementsResource as a4, type AppAssetLibraryPlacement as a5, type PlacementTarget as a6, type PlacementTargetKind as a7, PortalClient as a8, signInWithAppleId as a9, loadAppleSession as aa, saveAppleSession as ab, clearAppleSession as ac, lastAppleId as ad, sessionDir as ae, IrisClient as af, IrisAuthError as ag, type IrisApiKey as ah, type ApiKeyRole as ai, type JsonApiRelationship as aj, type JsonApiErrorResponse as ak, RateLimitError as b, type AppStoreConnectConfig as c, type TokenConfig as d, type RequestOptions as e, type JsonApiResponse as f, type JsonApiListResponse as g, type JsonApiError as h, type App as i, type Build as j, type BetaGroup as k, type BetaBuildLocalization as l, type BuildBetaDetail as m, type PreReleaseVersion$1 as n, type BundleIdCapability as o, type CapabilitySettingInput as p, type CapabilitySetting as q, type CapabilityOption as r, CertificatesResource as s, ProfilesResource as t, BundleIdsResource as u, DevicesResource as v, AppsResource as w, BuildsResource as x, BetaGroupsResource as y, CapabilitiesResource as z };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient } from './index-
|
|
2
|
-
import { a as CertResult } from './cert-
|
|
3
|
-
import { S as SighResult } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient } from './index-CpGV1f0L.cjs';
|
|
2
|
+
import { a as CertResult } from './cert-DffLKURp.cjs';
|
|
3
|
+
import { S as SighResult } from './index-isT08RuY.cjs';
|
|
4
4
|
|
|
5
5
|
type StorageMode = "git" | "s3" | "local";
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient } from './index-
|
|
2
|
-
import { a as CertResult } from './cert-
|
|
3
|
-
import { S as SighResult } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient } from './index-CemR3UI9.js';
|
|
2
|
+
import { a as CertResult } from './cert-ClacRx9y.js';
|
|
3
|
+
import { S as SighResult } from './index-D9YQQ3FM.js';
|
|
4
4
|
|
|
5
5
|
type StorageMode = "git" | "s3" | "local";
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CertOptions, a as CertResult, c as createCertificate, d as downloadCertificate, f as findValidCertificates, r as revokeCertificate, b as revokeExpiredCertificates } from './cert-
|
|
1
|
+
import { C as CertOptions, a as CertResult, c as createCertificate, d as downloadCertificate, f as findValidCertificates, r as revokeCertificate, b as revokeExpiredCertificates } from './cert-DffLKURp.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate EC P-256 CSR — used by App Store Connect API (JWT auth).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AppStoreConnectClient, W as AppAssetLibraryRefDatumAttributes, X as AppAssetLibraryImageSpec } from './index-
|
|
1
|
+
import { A as AppStoreConnectClient, W as AppAssetLibraryRefDatumAttributes, X as AppAssetLibraryImageSpec } from './index-CemR3UI9.js';
|
|
2
2
|
import { l as AppAssetLibraryPlacementType, j as AppAssetLibraryAssetCategory, m as AppAssetLibraryAssetState, o as AppAssetLibraryFeature, b as Platform, R as ReleaseType } from './enums-yXNVh3UI.js';
|
|
3
3
|
|
|
4
4
|
interface LocalizedMetadata {
|
package/dist/index.cjs
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
var jose = require('jose');
|
|
4
4
|
var crypto = require('crypto');
|
|
5
5
|
var readline = require('readline');
|
|
6
|
-
var x509 = require('@peculiar/x509');
|
|
7
|
-
var child_process = require('child_process');
|
|
8
6
|
var fs = require('fs');
|
|
9
|
-
var path = require('path');
|
|
10
7
|
var os = require('os');
|
|
8
|
+
var path = require('path');
|
|
9
|
+
var x509 = require('@peculiar/x509');
|
|
10
|
+
var child_process = require('child_process');
|
|
11
11
|
var util = require('util');
|
|
12
12
|
var promises = require('fs/promises');
|
|
13
13
|
var emojiRegex = require('emoji-regex');
|
|
@@ -245,20 +245,6 @@ var init_srp = __esm({
|
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
247
|
});
|
|
248
|
-
|
|
249
|
-
// src/client/apple-session.ts
|
|
250
|
-
var apple_session_exports = {};
|
|
251
|
-
__export(apple_session_exports, {
|
|
252
|
-
ProgramLicenseAgreementError: () => ProgramLicenseAgreementError,
|
|
253
|
-
appleJson: () => appleJson,
|
|
254
|
-
beginLogin: () => beginLogin,
|
|
255
|
-
checkPortalResponse: () => checkPortalResponse,
|
|
256
|
-
fetchServiceKey: () => fetchServiceKey,
|
|
257
|
-
loginWithAppleId: () => loginWithAppleId,
|
|
258
|
-
requestSmsCode: () => requestSmsCode,
|
|
259
|
-
serviceKeyFromLocation: () => serviceKeyFromLocation,
|
|
260
|
-
submitTwoFactorCode: () => submitTwoFactorCode
|
|
261
|
-
});
|
|
262
248
|
async function appleJson(res, what) {
|
|
263
249
|
const text = await res.text();
|
|
264
250
|
try {
|
|
@@ -2810,6 +2796,90 @@ var init_app_asset_library_placements = __esm({
|
|
|
2810
2796
|
}
|
|
2811
2797
|
});
|
|
2812
2798
|
|
|
2799
|
+
// src/client/session-store.ts
|
|
2800
|
+
var session_store_exports = {};
|
|
2801
|
+
__export(session_store_exports, {
|
|
2802
|
+
clearAppleSession: () => clearAppleSession,
|
|
2803
|
+
lastAppleId: () => lastAppleId,
|
|
2804
|
+
loadAppleSession: () => loadAppleSession,
|
|
2805
|
+
saveAppleSession: () => saveAppleSession,
|
|
2806
|
+
sessionDir: () => sessionDir,
|
|
2807
|
+
signInWithAppleId: () => signInWithAppleId
|
|
2808
|
+
});
|
|
2809
|
+
function sessionDir() {
|
|
2810
|
+
return process.env.FASTNODE_SESSION_DIR || path.join(os.homedir(), ".fastnode", "sessions");
|
|
2811
|
+
}
|
|
2812
|
+
function fileFor(email) {
|
|
2813
|
+
const key = crypto.createHash("sha256").update(email.trim().toLowerCase()).digest("hex").slice(0, 16);
|
|
2814
|
+
return path.join(sessionDir(), `${key}.json`);
|
|
2815
|
+
}
|
|
2816
|
+
function ensureDir() {
|
|
2817
|
+
const dir = sessionDir();
|
|
2818
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true, mode: 448 });
|
|
2819
|
+
fs.chmodSync(dir, 448);
|
|
2820
|
+
}
|
|
2821
|
+
function saveAppleSession(session) {
|
|
2822
|
+
ensureDir();
|
|
2823
|
+
const stored = { email: session.userEmail, savedAt: (/* @__PURE__ */ new Date()).toISOString(), session };
|
|
2824
|
+
const path$1 = fileFor(session.userEmail);
|
|
2825
|
+
fs.writeFileSync(path$1, JSON.stringify(stored), { mode: 384 });
|
|
2826
|
+
fs.chmodSync(path$1, 384);
|
|
2827
|
+
fs.writeFileSync(path.join(sessionDir(), "last-apple-id"), session.userEmail, { mode: 384 });
|
|
2828
|
+
}
|
|
2829
|
+
function clearAppleSession(email) {
|
|
2830
|
+
const path = fileFor(email);
|
|
2831
|
+
if (fs.existsSync(path)) fs.unlinkSync(path);
|
|
2832
|
+
}
|
|
2833
|
+
function lastAppleId() {
|
|
2834
|
+
try {
|
|
2835
|
+
return fs.readFileSync(path.join(sessionDir(), "last-apple-id"), "utf8").trim() || null;
|
|
2836
|
+
} catch {
|
|
2837
|
+
return null;
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
async function loadAppleSession(email, fetchImpl = fetch) {
|
|
2841
|
+
const path = fileFor(email);
|
|
2842
|
+
if (!fs.existsSync(path)) return null;
|
|
2843
|
+
let stored;
|
|
2844
|
+
try {
|
|
2845
|
+
stored = JSON.parse(fs.readFileSync(path, "utf8"));
|
|
2846
|
+
} catch {
|
|
2847
|
+
return null;
|
|
2848
|
+
}
|
|
2849
|
+
const cookie = Object.entries(stored.session.cookies).map(([k, v]) => `${k}=${v}`).join("; ");
|
|
2850
|
+
try {
|
|
2851
|
+
const res = await fetchImpl(OLYMPUS_SESSION2, { headers: { Cookie: cookie, Accept: "application/json" } });
|
|
2852
|
+
if (!res.ok) {
|
|
2853
|
+
clearAppleSession(email);
|
|
2854
|
+
return null;
|
|
2855
|
+
}
|
|
2856
|
+
} catch {
|
|
2857
|
+
return null;
|
|
2858
|
+
}
|
|
2859
|
+
return stored.session;
|
|
2860
|
+
}
|
|
2861
|
+
async function signInWithAppleId(options) {
|
|
2862
|
+
const email = options.email || lastAppleId() || await options.askEmail();
|
|
2863
|
+
if (!options.fresh) {
|
|
2864
|
+
const saved = await loadAppleSession(email);
|
|
2865
|
+
if (saved) {
|
|
2866
|
+
options.onLog?.(`Using saved Apple ID session for ${email}`);
|
|
2867
|
+
return saved;
|
|
2868
|
+
}
|
|
2869
|
+
}
|
|
2870
|
+
const password = await options.askPassword(email);
|
|
2871
|
+
const session = await loginWithAppleId({ email, password, onLog: options.onLog });
|
|
2872
|
+
saveAppleSession(session);
|
|
2873
|
+
return session;
|
|
2874
|
+
}
|
|
2875
|
+
var OLYMPUS_SESSION2;
|
|
2876
|
+
var init_session_store = __esm({
|
|
2877
|
+
"src/client/session-store.ts"() {
|
|
2878
|
+
init_apple_session();
|
|
2879
|
+
OLYMPUS_SESSION2 = "https://appstoreconnect.apple.com/olympus/v1/session";
|
|
2880
|
+
}
|
|
2881
|
+
});
|
|
2882
|
+
|
|
2813
2883
|
// src/client/portal.ts
|
|
2814
2884
|
function pickUniqueKeyName(base, taken) {
|
|
2815
2885
|
if (!taken.has(base)) return base;
|
|
@@ -3887,8 +3957,14 @@ __export(client_exports, {
|
|
|
3887
3957
|
TokenManager: () => exports.TokenManager,
|
|
3888
3958
|
beginLogin: () => beginLogin,
|
|
3889
3959
|
checkPortalResponse: () => checkPortalResponse,
|
|
3960
|
+
clearAppleSession: () => clearAppleSession,
|
|
3961
|
+
lastAppleId: () => lastAppleId,
|
|
3962
|
+
loadAppleSession: () => loadAppleSession,
|
|
3890
3963
|
loginWithAppleId: () => loginWithAppleId,
|
|
3891
3964
|
requestSmsCode: () => requestSmsCode,
|
|
3965
|
+
saveAppleSession: () => saveAppleSession,
|
|
3966
|
+
sessionDir: () => sessionDir,
|
|
3967
|
+
signInWithAppleId: () => signInWithAppleId,
|
|
3892
3968
|
submitTwoFactorCode: () => submitTwoFactorCode
|
|
3893
3969
|
});
|
|
3894
3970
|
exports.AppStoreConnectClient = void 0;
|
|
@@ -3936,6 +4012,7 @@ var init_client = __esm({
|
|
|
3936
4012
|
init_auth();
|
|
3937
4013
|
init_request();
|
|
3938
4014
|
init_apple_session();
|
|
4015
|
+
init_session_store();
|
|
3939
4016
|
init_portal();
|
|
3940
4017
|
init_iris();
|
|
3941
4018
|
exports.AppStoreConnectClient = class {
|
|
@@ -25814,12 +25891,12 @@ function fail(what, r) {
|
|
|
25814
25891
|
async function selectProviderForApp(session, appId, onLog) {
|
|
25815
25892
|
const owns = async () => (await iris(session, "GET", `/apps/${appId}?fields[apps]=name`)).status === 200;
|
|
25816
25893
|
if (await owns()) return;
|
|
25817
|
-
const res = await fetch(
|
|
25894
|
+
const res = await fetch(OLYMPUS_SESSION3, { headers: { Cookie: cookieHeader(session), Accept: "application/json" } });
|
|
25818
25895
|
absorbCookies(session, res);
|
|
25819
25896
|
const info = await res.json().catch(() => null);
|
|
25820
25897
|
const providers = info?.availableProviders ?? [];
|
|
25821
25898
|
for (const p of providers) {
|
|
25822
|
-
const sw = await fetch(
|
|
25899
|
+
const sw = await fetch(OLYMPUS_SESSION3, {
|
|
25823
25900
|
method: "POST",
|
|
25824
25901
|
headers: { Cookie: cookieHeader(session), "Content-Type": "application/json", Accept: "application/json" },
|
|
25825
25902
|
body: JSON.stringify({ provider: { providerId: p.providerId } })
|
|
@@ -25918,11 +25995,11 @@ function validateUsages(usages) {
|
|
|
25918
25995
|
if (linked && unlinked) throw new Error(`${u.category} cannot be both linked and not linked to the user.`);
|
|
25919
25996
|
}
|
|
25920
25997
|
}
|
|
25921
|
-
var IRIS_BASE2,
|
|
25998
|
+
var IRIS_BASE2, OLYMPUS_SESSION3, DATA_USAGE_CATEGORIES, DATA_USAGE_PURPOSES, DATA_PROTECTIONS;
|
|
25922
25999
|
var init_privacy = __esm({
|
|
25923
26000
|
"src/privacy/index.ts"() {
|
|
25924
26001
|
IRIS_BASE2 = "https://appstoreconnect.apple.com/iris/v1";
|
|
25925
|
-
|
|
26002
|
+
OLYMPUS_SESSION3 = "https://appstoreconnect.apple.com/olympus/v1/session";
|
|
25926
26003
|
DATA_USAGE_CATEGORIES = [
|
|
25927
26004
|
"PAYMENT_INFORMATION",
|
|
25928
26005
|
"CREDIT_AND_FRAUD",
|
|
@@ -29856,14 +29933,18 @@ function createLanesCommand() {
|
|
|
29856
29933
|
});
|
|
29857
29934
|
}
|
|
29858
29935
|
function createPrivacyCommand() {
|
|
29859
|
-
return new commander.Command("privacy").description("Upload App Privacy details (nutrition labels) to App Store Connect").requiredOption("--app-id <id>", "App Store Connect app id (numeric Apple ID)").requiredOption("-j, --json-path <path>", "Fastlane-format app_privacy_details.json").option("-u, --username <email>", "Apple ID", process.env.FASTNODE_USER ?? process.env.FASTLANE_USER).option("--skip-publish", "Save the answers without publishing them", false).action(async (opts) => {
|
|
29860
|
-
const {
|
|
29936
|
+
return new commander.Command("privacy").description("Upload App Privacy details (nutrition labels) to App Store Connect").requiredOption("--app-id <id>", "App Store Connect app id (numeric Apple ID)").requiredOption("-j, --json-path <path>", "Fastlane-format app_privacy_details.json").option("-u, --username <email>", "Apple ID (defaults to the last one signed in)", process.env.FASTNODE_USER ?? process.env.FASTLANE_USER).option("--fresh-login", "Ignore the saved Apple ID session and sign in again", false).option("--skip-publish", "Save the answers without publishing them", false).action(async (opts) => {
|
|
29937
|
+
const { signInWithAppleId: signInWithAppleId2, saveAppleSession: saveAppleSession2 } = await Promise.resolve().then(() => (init_session_store(), session_store_exports));
|
|
29861
29938
|
const { uploadAppPrivacyDetails: uploadAppPrivacyDetails2, validateUsages: validateUsages2 } = await Promise.resolve().then(() => (init_privacy(), privacy_exports));
|
|
29862
29939
|
const usages = JSON.parse(fs.readFileSync(opts.jsonPath, "utf8"));
|
|
29863
29940
|
validateUsages2(usages);
|
|
29864
|
-
const
|
|
29865
|
-
|
|
29866
|
-
|
|
29941
|
+
const session = await signInWithAppleId2({
|
|
29942
|
+
email: opts.username,
|
|
29943
|
+
askEmail: () => ask("Apple ID: "),
|
|
29944
|
+
askPassword: async (email) => process.env.FASTNODE_PASSWORD ?? process.env.FASTLANE_PASSWORD ?? await ask(`Password for ${email}: `, true),
|
|
29945
|
+
fresh: opts.freshLogin,
|
|
29946
|
+
onLog: (m) => console.log(m)
|
|
29947
|
+
});
|
|
29867
29948
|
const result = await uploadAppPrivacyDetails2({
|
|
29868
29949
|
session,
|
|
29869
29950
|
appId: opts.appId,
|
|
@@ -29871,6 +29952,7 @@ function createPrivacyCommand() {
|
|
|
29871
29952
|
skipPublish: opts.skipPublish,
|
|
29872
29953
|
onLog: (m) => console.log(m)
|
|
29873
29954
|
});
|
|
29955
|
+
saveAppleSession2(session);
|
|
29874
29956
|
console.log(`Done: ${result.created} answers${result.published ? ", published" : ""}.`);
|
|
29875
29957
|
});
|
|
29876
29958
|
}
|
|
@@ -29893,12 +29975,16 @@ function ask(question, secret = false) {
|
|
|
29893
29975
|
});
|
|
29894
29976
|
}
|
|
29895
29977
|
function createRejectionsCommand() {
|
|
29896
|
-
return new commander.Command("rejections").description("Show App Review's Resolution Center messages and rejection reasons").requiredOption("--app-id <ids...>", "App Store Connect app id(s) (numeric Apple ID)").option("-u, --username <email>", "Apple ID", process.env.FASTNODE_USER ?? process.env.FASTLANE_USER).option("--all", "Include resolved submissions, not just ones awaiting you", false).option("--json", "Print JSON instead of text", false).action(async (opts) => {
|
|
29897
|
-
const {
|
|
29978
|
+
return new commander.Command("rejections").description("Show App Review's Resolution Center messages and rejection reasons").requiredOption("--app-id <ids...>", "App Store Connect app id(s) (numeric Apple ID)").option("-u, --username <email>", "Apple ID (defaults to the last one signed in)", process.env.FASTNODE_USER ?? process.env.FASTLANE_USER).option("--fresh-login", "Ignore the saved Apple ID session and sign in again", false).option("--all", "Include resolved submissions, not just ones awaiting you", false).option("--json", "Print JSON instead of text", false).action(async (opts) => {
|
|
29979
|
+
const { signInWithAppleId: signInWithAppleId2, saveAppleSession: saveAppleSession2 } = await Promise.resolve().then(() => (init_session_store(), session_store_exports));
|
|
29898
29980
|
const { getReviewFeedback: getReviewFeedback2 } = await Promise.resolve().then(() => (init_review(), review_exports));
|
|
29899
|
-
const
|
|
29900
|
-
|
|
29901
|
-
|
|
29981
|
+
const session = await signInWithAppleId2({
|
|
29982
|
+
email: opts.username,
|
|
29983
|
+
askEmail: () => ask2("Apple ID: "),
|
|
29984
|
+
askPassword: async (email) => process.env.FASTNODE_PASSWORD ?? process.env.FASTLANE_PASSWORD ?? await ask2(`Password for ${email}: `, true),
|
|
29985
|
+
fresh: opts.freshLogin,
|
|
29986
|
+
onLog: (m) => console.error(m)
|
|
29987
|
+
});
|
|
29902
29988
|
const all = {};
|
|
29903
29989
|
for (const appId of opts.appId) {
|
|
29904
29990
|
const feedback = await getReviewFeedback2(session, appId, { onlyOpen: !opts.all, onLog: (m) => console.error(m) });
|
|
@@ -29921,6 +30007,7 @@ Submission ${s.submissionId} \u2014 ${s.state} (submitted ${s.submittedDate ?? "
|
|
|
29921
30007
|
}
|
|
29922
30008
|
}
|
|
29923
30009
|
}
|
|
30010
|
+
saveAppleSession2(session);
|
|
29924
30011
|
if (opts.json) console.log(JSON.stringify(all, null, 2));
|
|
29925
30012
|
});
|
|
29926
30013
|
}
|