@sitepong/fastnode 0.2.1 → 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 +891 -72
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.mjs +892 -73
- 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 +17868 -24
- 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 +17853 -7
- package/dist/cert/index.mjs.map +1 -1
- package/dist/{cert-e5GAgAPb.d.ts → cert-RvXmdMke.d.ts} +2 -2
- package/dist/{cert-uLLdb5a7.d.cts → cert-eOoxGMN1.d.cts} +2 -2
- package/dist/cli/index.cjs +1364 -78
- 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 +1365 -79
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.cjs +480 -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 +480 -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-Clyf4-lu.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-Di4Ic0EE.d.ts → index-BvyZ4uiw.d.ts} +3 -3
- package/dist/{index-CEldrbyz.d.ts → index-C01Rkrir.d.ts} +2 -2
- package/dist/{index-jeI44Q5G.d.ts → index-C9mHBJED.d.ts} +1 -1
- package/dist/{index-BgHagzj1.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-BNP7Bpu5.d.ts → index-D1GHEM3c.d.ts} +32 -3
- package/dist/index-DFstwgGK.d.cts +65 -0
- package/dist/{index-DrCOh0Vh.d.cts → index-DGkgRnZp.d.cts} +2 -2
- package/dist/{index-CtydPNxA.d.cts → index-DLJso7Vs.d.cts} +32 -3
- package/dist/{index-BN0iWhuw.d.cts → index-DWOLZNlz.d.cts} +2 -2
- package/dist/{index-BjkOUQcQ.d.cts → index-DfkIz7i0.d.cts} +18 -4
- package/dist/{index-EKU_G1G5.d.ts → index-DjC_gmnL.d.ts} +18 -4
- package/dist/index-DnHQ2uT2.d.cts +104 -0
- package/dist/{index-CdfgEZwh.d.cts → index-DrmS802s.d.cts} +356 -130
- package/dist/index-Dv-Mek07.d.cts +84 -0
- package/dist/index-Dv-Mek07.d.ts +84 -0
- package/dist/{index-DHxi-QPC.d.cts → index-icIH5e5V.d.cts} +3 -3
- package/dist/{index-mddpvrRX.d.ts → index-laE3_wm9.d.cts} +9 -1
- package/dist/{index-BwwpAlk2.d.ts → index-lsuS2R1T.d.ts} +356 -130
- package/dist/{index-DImN9PWc.d.ts → index-mEEB7An6.d.ts} +1 -1
- package/dist/{index-C2YLoFVl.d.ts → index-rTZOdMRE.d.ts} +2 -2
- package/dist/index.cjs +20496 -217
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +278 -22
- package/dist/index.d.ts +278 -22
- package/dist/index.mjs +20489 -220
- package/dist/index.mjs.map +1 -1
- package/dist/lane/index.cjs +891 -72
- package/dist/lane/index.cjs.map +1 -1
- package/dist/lane/index.mjs +892 -73
- 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 +38 -18
- 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 +38 -19
- 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-BbY_H_f6.d.ts +0 -99
- package/dist/index-XsMsVc3O.d.cts +0 -99
|
@@ -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-RvXmdMke.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate EC P-256 CSR — used by App Store Connect API (JWT auth).
|
|
@@ -43,7 +43,35 @@ interface BundleP12Options {
|
|
|
43
43
|
*/
|
|
44
44
|
declare function bundleP12(options: BundleP12Options): Buffer;
|
|
45
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Certificate expiry extraction — reads the notAfter date (and serial) out of
|
|
48
|
+
* an uploaded signing certificate WITHOUT any native tooling, so it runs the
|
|
49
|
+
* same on a Linux API host as on a macOS build runner.
|
|
50
|
+
*
|
|
51
|
+
* Accepts the three shapes users actually upload for a distribution identity:
|
|
52
|
+
* - a PKCS#12 (.p12) bundle (cert + key), which needs the export password
|
|
53
|
+
* - a DER-encoded X.509 certificate (.cer)
|
|
54
|
+
* - a PEM-encoded certificate
|
|
55
|
+
* plus the base64-of-any-of-those that the dashboard sends over the wire.
|
|
56
|
+
*
|
|
57
|
+
* Everything is best-effort: a parse failure returns null so a bad/omitted
|
|
58
|
+
* password never blocks saving a credential — we simply don't learn the date.
|
|
59
|
+
*/
|
|
60
|
+
interface CertExpiryInfo {
|
|
61
|
+
/** ISO-8601 notAfter (expiry) instant. */
|
|
62
|
+
notAfter: string;
|
|
63
|
+
/** Uppercase hex serial number, or null when unavailable. */
|
|
64
|
+
serialHex: string | null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse a certificate's expiry from base64 material. `password` is only used
|
|
68
|
+
* (and only needed) when the material is a .p12. Returns null when nothing
|
|
69
|
+
* parseable is found.
|
|
70
|
+
*/
|
|
71
|
+
declare function parseCertificateExpiry(base64: string, password?: string | null): CertExpiryInfo | null;
|
|
72
|
+
|
|
46
73
|
type index_BundleP12Options = BundleP12Options;
|
|
74
|
+
type index_CertExpiryInfo = CertExpiryInfo;
|
|
47
75
|
declare const index_CertOptions: typeof CertOptions;
|
|
48
76
|
declare const index_CertResult: typeof CertResult;
|
|
49
77
|
declare const index_bundleP12: typeof bundleP12;
|
|
@@ -52,10 +80,11 @@ declare const index_downloadCertificate: typeof downloadCertificate;
|
|
|
52
80
|
declare const index_findValidCertificates: typeof findValidCertificates;
|
|
53
81
|
declare const index_generateCSR: typeof generateCSR;
|
|
54
82
|
declare const index_generateRSACSR: typeof generateRSACSR;
|
|
83
|
+
declare const index_parseCertificateExpiry: typeof parseCertificateExpiry;
|
|
55
84
|
declare const index_revokeCertificate: typeof revokeCertificate;
|
|
56
85
|
declare const index_revokeExpiredCertificates: typeof revokeExpiredCertificates;
|
|
57
86
|
declare namespace index {
|
|
58
|
-
export { type index_BundleP12Options as BundleP12Options, index_CertOptions as CertOptions, index_CertResult as CertResult, index_bundleP12 as bundleP12, index_createCertificate as createCertificate, index_downloadCertificate as downloadCertificate, index_findValidCertificates as findValidCertificates, index_generateCSR as generateCSR, index_generateRSACSR as generateRSACSR, index_revokeCertificate as revokeCertificate, index_revokeExpiredCertificates as revokeExpiredCertificates };
|
|
87
|
+
export { type index_BundleP12Options as BundleP12Options, type index_CertExpiryInfo as CertExpiryInfo, index_CertOptions as CertOptions, index_CertResult as CertResult, index_bundleP12 as bundleP12, index_createCertificate as createCertificate, index_downloadCertificate as downloadCertificate, index_findValidCertificates as findValidCertificates, index_generateCSR as generateCSR, index_generateRSACSR as generateRSACSR, index_parseCertificateExpiry as parseCertificateExpiry, index_revokeCertificate as revokeCertificate, index_revokeExpiredCertificates as revokeExpiredCertificates };
|
|
59
88
|
}
|
|
60
89
|
|
|
61
|
-
export { type BundleP12Options as B, generateRSACSR as a, bundleP12 as b, generateCSR as g, index as i };
|
|
90
|
+
export { type BundleP12Options as B, type CertExpiryInfo as C, generateRSACSR as a, bundleP12 as b, generateCSR as g, index as i, parseCertificateExpiry as p };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { A as AppleSession } from './apple-session-jUzBrql5.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* App Review rejections: what App Review said, from the Resolution Center.
|
|
5
|
+
* Port of Spaceship's ResolutionCenterThread / ResolutionCenterMessage /
|
|
6
|
+
* ReviewRejection models (connect_api/tunes).
|
|
7
|
+
*
|
|
8
|
+
* Like App Privacy, this is not in the public App Store Connect API — with an
|
|
9
|
+
* API key, /v1/resolutionCenterThreads answers "resource does not exist".
|
|
10
|
+
* Spaceship reaches it through its Tunes client, whose host is
|
|
11
|
+
* appstoreconnect.apple.com/iris/, i.e. an Apple ID session. So does this.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
interface RejectionReason {
|
|
15
|
+
section?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
code?: string;
|
|
18
|
+
}
|
|
19
|
+
interface ResolutionMessage {
|
|
20
|
+
id: string;
|
|
21
|
+
createdDate: string | null;
|
|
22
|
+
from: string | null;
|
|
23
|
+
/** The message as App Review wrote it, HTML reduced to text. */
|
|
24
|
+
body: string;
|
|
25
|
+
reasons: RejectionReason[];
|
|
26
|
+
}
|
|
27
|
+
interface ResolutionThread {
|
|
28
|
+
id: string;
|
|
29
|
+
threadType: string | null;
|
|
30
|
+
state: string | null;
|
|
31
|
+
createdDate: string | null;
|
|
32
|
+
messages: ResolutionMessage[];
|
|
33
|
+
}
|
|
34
|
+
interface SubmissionReview {
|
|
35
|
+
submissionId: string;
|
|
36
|
+
state: string;
|
|
37
|
+
submittedDate: string | null;
|
|
38
|
+
threads: ResolutionThread[];
|
|
39
|
+
}
|
|
40
|
+
/** App Review writes HTML; keep paragraphs and list items, drop the markup. */
|
|
41
|
+
declare function htmlToText(html: string | null | undefined): string;
|
|
42
|
+
/** The messages in one thread, each with the guideline reasons App Review attached. */
|
|
43
|
+
declare function getThreadMessages(session: AppleSession, threadId: string): Promise<ResolutionMessage[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Every review submission for the app that App Review has answered, with its
|
|
46
|
+
* Resolution Center threads and messages. `onlyOpen` keeps the ones still
|
|
47
|
+
* waiting on the developer (UNRESOLVED_ISSUES).
|
|
48
|
+
*/
|
|
49
|
+
declare function getReviewFeedback(session: AppleSession, appId: string, opts?: {
|
|
50
|
+
onlyOpen?: boolean;
|
|
51
|
+
onLog?: (m: string) => void;
|
|
52
|
+
}): Promise<SubmissionReview[]>;
|
|
53
|
+
|
|
54
|
+
type index_RejectionReason = RejectionReason;
|
|
55
|
+
type index_ResolutionMessage = ResolutionMessage;
|
|
56
|
+
type index_ResolutionThread = ResolutionThread;
|
|
57
|
+
type index_SubmissionReview = SubmissionReview;
|
|
58
|
+
declare const index_getReviewFeedback: typeof getReviewFeedback;
|
|
59
|
+
declare const index_getThreadMessages: typeof getThreadMessages;
|
|
60
|
+
declare const index_htmlToText: typeof htmlToText;
|
|
61
|
+
declare namespace index {
|
|
62
|
+
export { type index_RejectionReason as RejectionReason, type index_ResolutionMessage as ResolutionMessage, type index_ResolutionThread as ResolutionThread, type index_SubmissionReview as SubmissionReview, index_getReviewFeedback as getReviewFeedback, index_getThreadMessages as getThreadMessages, index_htmlToText as htmlToText };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { type RejectionReason as R, type SubmissionReview as S, type ResolutionMessage as a, type ResolutionThread as b, getReviewFeedback as c, getThreadMessages as g, htmlToText as h, index as i };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { C as CertificateType } from './enums-
|
|
1
|
+
import { A as AppStoreConnectClient } from './index-DrmS802s.cjs';
|
|
2
|
+
import { C as CertificateType } from './enums-yXNVh3UI.cjs';
|
|
3
3
|
|
|
4
4
|
type PushCertKind = "development" | "production" | "website" | "voip" | "passbook";
|
|
5
5
|
interface PemOptions {
|
|
@@ -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-eOoxGMN1.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate EC P-256 CSR — used by App Store Connect API (JWT auth).
|
|
@@ -43,7 +43,35 @@ interface BundleP12Options {
|
|
|
43
43
|
*/
|
|
44
44
|
declare function bundleP12(options: BundleP12Options): Buffer;
|
|
45
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Certificate expiry extraction — reads the notAfter date (and serial) out of
|
|
48
|
+
* an uploaded signing certificate WITHOUT any native tooling, so it runs the
|
|
49
|
+
* same on a Linux API host as on a macOS build runner.
|
|
50
|
+
*
|
|
51
|
+
* Accepts the three shapes users actually upload for a distribution identity:
|
|
52
|
+
* - a PKCS#12 (.p12) bundle (cert + key), which needs the export password
|
|
53
|
+
* - a DER-encoded X.509 certificate (.cer)
|
|
54
|
+
* - a PEM-encoded certificate
|
|
55
|
+
* plus the base64-of-any-of-those that the dashboard sends over the wire.
|
|
56
|
+
*
|
|
57
|
+
* Everything is best-effort: a parse failure returns null so a bad/omitted
|
|
58
|
+
* password never blocks saving a credential — we simply don't learn the date.
|
|
59
|
+
*/
|
|
60
|
+
interface CertExpiryInfo {
|
|
61
|
+
/** ISO-8601 notAfter (expiry) instant. */
|
|
62
|
+
notAfter: string;
|
|
63
|
+
/** Uppercase hex serial number, or null when unavailable. */
|
|
64
|
+
serialHex: string | null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse a certificate's expiry from base64 material. `password` is only used
|
|
68
|
+
* (and only needed) when the material is a .p12. Returns null when nothing
|
|
69
|
+
* parseable is found.
|
|
70
|
+
*/
|
|
71
|
+
declare function parseCertificateExpiry(base64: string, password?: string | null): CertExpiryInfo | null;
|
|
72
|
+
|
|
46
73
|
type index_BundleP12Options = BundleP12Options;
|
|
74
|
+
type index_CertExpiryInfo = CertExpiryInfo;
|
|
47
75
|
declare const index_CertOptions: typeof CertOptions;
|
|
48
76
|
declare const index_CertResult: typeof CertResult;
|
|
49
77
|
declare const index_bundleP12: typeof bundleP12;
|
|
@@ -52,10 +80,11 @@ declare const index_downloadCertificate: typeof downloadCertificate;
|
|
|
52
80
|
declare const index_findValidCertificates: typeof findValidCertificates;
|
|
53
81
|
declare const index_generateCSR: typeof generateCSR;
|
|
54
82
|
declare const index_generateRSACSR: typeof generateRSACSR;
|
|
83
|
+
declare const index_parseCertificateExpiry: typeof parseCertificateExpiry;
|
|
55
84
|
declare const index_revokeCertificate: typeof revokeCertificate;
|
|
56
85
|
declare const index_revokeExpiredCertificates: typeof revokeExpiredCertificates;
|
|
57
86
|
declare namespace index {
|
|
58
|
-
export { type index_BundleP12Options as BundleP12Options, index_CertOptions as CertOptions, index_CertResult as CertResult, index_bundleP12 as bundleP12, index_createCertificate as createCertificate, index_downloadCertificate as downloadCertificate, index_findValidCertificates as findValidCertificates, index_generateCSR as generateCSR, index_generateRSACSR as generateRSACSR, index_revokeCertificate as revokeCertificate, index_revokeExpiredCertificates as revokeExpiredCertificates };
|
|
87
|
+
export { type index_BundleP12Options as BundleP12Options, type index_CertExpiryInfo as CertExpiryInfo, index_CertOptions as CertOptions, index_CertResult as CertResult, index_bundleP12 as bundleP12, index_createCertificate as createCertificate, index_downloadCertificate as downloadCertificate, index_findValidCertificates as findValidCertificates, index_generateCSR as generateCSR, index_generateRSACSR as generateRSACSR, index_parseCertificateExpiry as parseCertificateExpiry, index_revokeCertificate as revokeCertificate, index_revokeExpiredCertificates as revokeExpiredCertificates };
|
|
59
88
|
}
|
|
60
89
|
|
|
61
|
-
export { type BundleP12Options as B, generateRSACSR as a, bundleP12 as b, generateCSR as g, index as i };
|
|
90
|
+
export { type BundleP12Options as B, type CertExpiryInfo as C, generateRSACSR as a, bundleP12 as b, generateCSR as g, index as i, parseCertificateExpiry as p };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { P as ProfileType } from './enums-
|
|
1
|
+
import { A as AppStoreConnectClient, P as Profile } from './index-DrmS802s.cjs';
|
|
2
|
+
import { P as ProfileType } from './enums-yXNVh3UI.cjs';
|
|
3
3
|
|
|
4
4
|
interface SighOptions {
|
|
5
5
|
client: AppStoreConnectClient;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { B as BundleIdPlatform, d as CapabilityType } from './enums-
|
|
1
|
+
import { A as AppStoreConnectClient, a8 as PortalClient, p as CapabilitySettingInput, B as BundleId, o as BundleIdCapability, i as App } from './index-DrmS802s.cjs';
|
|
2
|
+
import { B as BundleIdPlatform, d as CapabilityType } from './enums-yXNVh3UI.cjs';
|
|
3
3
|
|
|
4
4
|
interface ProduceOptions {
|
|
5
5
|
client: AppStoreConnectClient;
|
|
@@ -10,6 +10,11 @@ interface ProduceOptions {
|
|
|
10
10
|
primaryLocale?: string;
|
|
11
11
|
companyName?: string;
|
|
12
12
|
enableServices?: CapabilityType[];
|
|
13
|
+
appGroups?: Array<{
|
|
14
|
+
name: string;
|
|
15
|
+
identifier: string;
|
|
16
|
+
}>;
|
|
17
|
+
portalClient?: PortalClient;
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Map from Fastlane's `produce` service name → App Store Connect
|
|
@@ -58,11 +63,20 @@ declare function enableServices(options: {
|
|
|
58
63
|
*/
|
|
59
64
|
services: string[] | Record<string, string | boolean>;
|
|
60
65
|
}): Promise<void>;
|
|
66
|
+
declare function associateAppGroups(options: {
|
|
67
|
+
portalClient: PortalClient;
|
|
68
|
+
bundleIdId: string;
|
|
69
|
+
appGroups: Array<{
|
|
70
|
+
name: string;
|
|
71
|
+
identifier: string;
|
|
72
|
+
}>;
|
|
73
|
+
}): Promise<void>;
|
|
61
74
|
declare function createApp(options: ProduceOptions): Promise<App>;
|
|
62
75
|
|
|
63
76
|
type index_ProduceOptions = ProduceOptions;
|
|
64
77
|
declare const index_SERVICE_NAME_TO_CAPABILITY: typeof SERVICE_NAME_TO_CAPABILITY;
|
|
65
78
|
declare const index_addCapability: typeof addCapability;
|
|
79
|
+
declare const index_associateAppGroups: typeof associateAppGroups;
|
|
66
80
|
declare const index_buildCapabilitySettings: typeof buildCapabilitySettings;
|
|
67
81
|
declare const index_createApp: typeof createApp;
|
|
68
82
|
declare const index_enableServices: typeof enableServices;
|
|
@@ -70,7 +84,7 @@ declare const index_listCapabilities: typeof listCapabilities;
|
|
|
70
84
|
declare const index_registerBundleId: typeof registerBundleId;
|
|
71
85
|
declare const index_removeCapability: typeof removeCapability;
|
|
72
86
|
declare namespace index {
|
|
73
|
-
export { type index_ProduceOptions as ProduceOptions, index_SERVICE_NAME_TO_CAPABILITY as SERVICE_NAME_TO_CAPABILITY, index_addCapability as addCapability, index_buildCapabilitySettings as buildCapabilitySettings, index_createApp as createApp, index_enableServices as enableServices, index_listCapabilities as listCapabilities, index_registerBundleId as registerBundleId, index_removeCapability as removeCapability };
|
|
87
|
+
export { type index_ProduceOptions as ProduceOptions, index_SERVICE_NAME_TO_CAPABILITY as SERVICE_NAME_TO_CAPABILITY, index_addCapability as addCapability, index_associateAppGroups as associateAppGroups, index_buildCapabilitySettings as buildCapabilitySettings, index_createApp as createApp, index_enableServices as enableServices, index_listCapabilities as listCapabilities, index_registerBundleId as registerBundleId, index_removeCapability as removeCapability };
|
|
74
88
|
}
|
|
75
89
|
|
|
76
|
-
export { type ProduceOptions as P, SERVICE_NAME_TO_CAPABILITY as S, addCapability as a, buildCapabilitySettings as b, removeCapability as c,
|
|
90
|
+
export { type ProduceOptions as P, SERVICE_NAME_TO_CAPABILITY as S, addCapability as a, buildCapabilitySettings as b, removeCapability as c, associateAppGroups as d, enableServices as e, createApp as f, index as i, listCapabilities as l, registerBundleId as r };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { B as BundleIdPlatform, d as CapabilityType } from './enums-
|
|
1
|
+
import { A as AppStoreConnectClient, a8 as PortalClient, p as CapabilitySettingInput, B as BundleId, o as BundleIdCapability, i as App } from './index-lsuS2R1T.js';
|
|
2
|
+
import { B as BundleIdPlatform, d as CapabilityType } from './enums-yXNVh3UI.js';
|
|
3
3
|
|
|
4
4
|
interface ProduceOptions {
|
|
5
5
|
client: AppStoreConnectClient;
|
|
@@ -10,6 +10,11 @@ interface ProduceOptions {
|
|
|
10
10
|
primaryLocale?: string;
|
|
11
11
|
companyName?: string;
|
|
12
12
|
enableServices?: CapabilityType[];
|
|
13
|
+
appGroups?: Array<{
|
|
14
|
+
name: string;
|
|
15
|
+
identifier: string;
|
|
16
|
+
}>;
|
|
17
|
+
portalClient?: PortalClient;
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Map from Fastlane's `produce` service name → App Store Connect
|
|
@@ -58,11 +63,20 @@ declare function enableServices(options: {
|
|
|
58
63
|
*/
|
|
59
64
|
services: string[] | Record<string, string | boolean>;
|
|
60
65
|
}): Promise<void>;
|
|
66
|
+
declare function associateAppGroups(options: {
|
|
67
|
+
portalClient: PortalClient;
|
|
68
|
+
bundleIdId: string;
|
|
69
|
+
appGroups: Array<{
|
|
70
|
+
name: string;
|
|
71
|
+
identifier: string;
|
|
72
|
+
}>;
|
|
73
|
+
}): Promise<void>;
|
|
61
74
|
declare function createApp(options: ProduceOptions): Promise<App>;
|
|
62
75
|
|
|
63
76
|
type index_ProduceOptions = ProduceOptions;
|
|
64
77
|
declare const index_SERVICE_NAME_TO_CAPABILITY: typeof SERVICE_NAME_TO_CAPABILITY;
|
|
65
78
|
declare const index_addCapability: typeof addCapability;
|
|
79
|
+
declare const index_associateAppGroups: typeof associateAppGroups;
|
|
66
80
|
declare const index_buildCapabilitySettings: typeof buildCapabilitySettings;
|
|
67
81
|
declare const index_createApp: typeof createApp;
|
|
68
82
|
declare const index_enableServices: typeof enableServices;
|
|
@@ -70,7 +84,7 @@ declare const index_listCapabilities: typeof listCapabilities;
|
|
|
70
84
|
declare const index_registerBundleId: typeof registerBundleId;
|
|
71
85
|
declare const index_removeCapability: typeof removeCapability;
|
|
72
86
|
declare namespace index {
|
|
73
|
-
export { type index_ProduceOptions as ProduceOptions, index_SERVICE_NAME_TO_CAPABILITY as SERVICE_NAME_TO_CAPABILITY, index_addCapability as addCapability, index_buildCapabilitySettings as buildCapabilitySettings, index_createApp as createApp, index_enableServices as enableServices, index_listCapabilities as listCapabilities, index_registerBundleId as registerBundleId, index_removeCapability as removeCapability };
|
|
87
|
+
export { type index_ProduceOptions as ProduceOptions, index_SERVICE_NAME_TO_CAPABILITY as SERVICE_NAME_TO_CAPABILITY, index_addCapability as addCapability, index_associateAppGroups as associateAppGroups, index_buildCapabilitySettings as buildCapabilitySettings, index_createApp as createApp, index_enableServices as enableServices, index_listCapabilities as listCapabilities, index_registerBundleId as registerBundleId, index_removeCapability as removeCapability };
|
|
74
88
|
}
|
|
75
89
|
|
|
76
|
-
export { type ProduceOptions as P, SERVICE_NAME_TO_CAPABILITY as S, addCapability as a, buildCapabilitySettings as b, removeCapability as c,
|
|
90
|
+
export { type ProduceOptions as P, SERVICE_NAME_TO_CAPABILITY as S, addCapability as a, buildCapabilitySettings as b, removeCapability as c, associateAppGroups as d, enableServices as e, createApp as f, index as i, listCapabilities as l, registerBundleId as r };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { A as AppleSession } from './apple-session-jUzBrql5.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* App Privacy details ("nutrition labels") for an app in App Store Connect.
|
|
5
|
+
* 1:1 port of Fastlane's `upload_app_privacy_details_to_app_store` action and
|
|
6
|
+
* Spaceship's AppDataUsage / AppDataUsagesPublishState models.
|
|
7
|
+
*
|
|
8
|
+
* The public App Store Connect API has no endpoint for privacy details — an
|
|
9
|
+
* API key cannot set them. Fastlane goes through the iris API that App Store
|
|
10
|
+
* Connect's own web UI uses, authenticated with an Apple ID session, and so
|
|
11
|
+
* does this: pass the AppleSession from `loginWithAppleId` / the App Release
|
|
12
|
+
* sign-in.
|
|
13
|
+
*
|
|
14
|
+
* Usages use Fastlane's JSON format, so an existing `app_privacy_details.json`
|
|
15
|
+
* works unchanged:
|
|
16
|
+
*
|
|
17
|
+
* [
|
|
18
|
+
* { "category": "EMAIL_ADDRESS", "purposes": ["APP_FUNCTIONALITY"], "data_protections": ["DATA_LINKED_TO_YOU"] },
|
|
19
|
+
* { "data_protections": ["DATA_NOT_COLLECTED"] } // an app that collects nothing
|
|
20
|
+
* ]
|
|
21
|
+
*
|
|
22
|
+
* As in Fastlane, the upload REPLACES everything: existing usages are deleted
|
|
23
|
+
* first, then the new ones are created, then the answers are published.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/** Every category App Store Connect accepts. Anything else is refused before existing answers are deleted. */
|
|
27
|
+
declare const DATA_USAGE_CATEGORIES: readonly ["PAYMENT_INFORMATION", "CREDIT_AND_FRAUD", "OTHER_FINANCIAL_INFO", "PRECISE_LOCATION", "COARSE_LOCATION", "SENSITIVE_INFO", "PHYSICAL_ADDRESS", "EMAIL_ADDRESS", "NAME", "PHONE_NUMBER", "OTHER_CONTACT_INFO", "CONTACTS", "EMAILS_OR_TEXT_MESSAGES", "PHOTOS_OR_VIDEOS", "AUDIO", "GAMEPLAY_CONTENT", "CUSTOMER_SUPPORT", "OTHER_USER_CONTENT", "BROWSING_HISTORY", "SEARCH_HISTORY", "USER_ID", "DEVICE_ID", "PURCHASE_HISTORY", "PRODUCT_INTERACTION", "ADVERTISING_DATA", "OTHER_USAGE_DATA", "CRASH_DATA", "PERFORMANCE_DATA", "OTHER_DIAGNOSTIC_DATA", "OTHER_DATA", "HEALTH", "FITNESS"];
|
|
28
|
+
declare const DATA_USAGE_PURPOSES: readonly ["THIRD_PARTY_ADVERTISING", "DEVELOPERS_ADVERTISING", "ANALYTICS", "PRODUCT_PERSONALIZATION", "APP_FUNCTIONALITY", "OTHER_PURPOSES"];
|
|
29
|
+
declare const DATA_PROTECTIONS: readonly ["DATA_USED_TO_TRACK_YOU", "DATA_LINKED_TO_YOU", "DATA_NOT_LINKED_TO_YOU", "DATA_NOT_COLLECTED"];
|
|
30
|
+
type DataUsageCategory = "PAYMENT_INFORMATION" | "CREDIT_AND_FRAUD" | "OTHER_FINANCIAL_INFO" | "PRECISE_LOCATION" | "COARSE_LOCATION" | "SENSITIVE_INFO" | "PHYSICAL_ADDRESS" | "EMAIL_ADDRESS" | "NAME" | "PHONE_NUMBER" | "OTHER_CONTACT_INFO" | "CONTACTS" | "EMAILS_OR_TEXT_MESSAGES" | "PHOTOS_OR_VIDEOS" | "AUDIO" | "GAMEPLAY_CONTENT" | "CUSTOMER_SUPPORT" | "OTHER_USER_CONTENT" | "BROWSING_HISTORY" | "SEARCH_HISTORY" | "USER_ID" | "DEVICE_ID" | "PURCHASE_HISTORY" | "PRODUCT_INTERACTION" | "ADVERTISING_DATA" | "OTHER_USAGE_DATA" | "CRASH_DATA" | "PERFORMANCE_DATA" | "OTHER_DIAGNOSTIC_DATA" | "OTHER_DATA" | "HEALTH" | "FITNESS";
|
|
31
|
+
type DataUsagePurpose = "THIRD_PARTY_ADVERTISING" | "DEVELOPERS_ADVERTISING" | "ANALYTICS" | "PRODUCT_PERSONALIZATION" | "APP_FUNCTIONALITY" | "OTHER_PURPOSES";
|
|
32
|
+
type DataProtection = "DATA_USED_TO_TRACK_YOU" | "DATA_LINKED_TO_YOU" | "DATA_NOT_LINKED_TO_YOU" | "DATA_NOT_COLLECTED";
|
|
33
|
+
/** One entry of Fastlane's app_privacy_details.json. */
|
|
34
|
+
interface AppPrivacyUsage {
|
|
35
|
+
category?: DataUsageCategory;
|
|
36
|
+
purposes?: DataUsagePurpose[];
|
|
37
|
+
data_protections: DataProtection[];
|
|
38
|
+
}
|
|
39
|
+
interface UploadAppPrivacyOptions {
|
|
40
|
+
session: AppleSession;
|
|
41
|
+
/** App Store Connect app id (the numeric Apple ID). */
|
|
42
|
+
appId: string;
|
|
43
|
+
usages: AppPrivacyUsage[];
|
|
44
|
+
/** Leave the answers saved but unpublished (Fastlane's skip_publish). */
|
|
45
|
+
skipPublish?: boolean;
|
|
46
|
+
onLog?: (msg: string) => void;
|
|
47
|
+
}
|
|
48
|
+
interface UploadAppPrivacyResult {
|
|
49
|
+
deleted: number;
|
|
50
|
+
created: number;
|
|
51
|
+
published: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Point the session at the App Store Connect provider (team) that owns the app.
|
|
55
|
+
*
|
|
56
|
+
* An Apple ID in several teams signs in to whichever one it used last, and
|
|
57
|
+
* iris answers 404 for another team's app. Spaceship's `select_team` does the
|
|
58
|
+
* same switch: POST the provider id to the olympus session.
|
|
59
|
+
*/
|
|
60
|
+
declare function selectProviderForApp(session: AppleSession, appId: string, onLog?: (m: string) => void): Promise<void>;
|
|
61
|
+
/** Existing privacy answers for an app. */
|
|
62
|
+
declare function listAppDataUsages(session: AppleSession, appId: string): Promise<Array<{
|
|
63
|
+
id: string;
|
|
64
|
+
}>>;
|
|
65
|
+
/** Spaceship AppDataUsage.create — relationships are sent only when given. */
|
|
66
|
+
declare function createAppDataUsage(session: AppleSession, input: {
|
|
67
|
+
appId: string;
|
|
68
|
+
category?: string | null;
|
|
69
|
+
purpose?: string | null;
|
|
70
|
+
dataProtection: string;
|
|
71
|
+
}): Promise<string>;
|
|
72
|
+
declare function deleteAppDataUsage(session: AppleSession, id: string): Promise<void>;
|
|
73
|
+
declare function getAppDataUsagesPublishState(session: AppleSession, appId: string): Promise<{
|
|
74
|
+
id: string;
|
|
75
|
+
published: boolean;
|
|
76
|
+
}>;
|
|
77
|
+
declare function publishAppDataUsages(session: AppleSession, publishStateId: string): Promise<void>;
|
|
78
|
+
/** Fastlane's `upload_app_privacy_details_to_app_store`. Replaces all answers, then publishes. */
|
|
79
|
+
declare function uploadAppPrivacyDetails(opts: UploadAppPrivacyOptions): Promise<UploadAppPrivacyResult>;
|
|
80
|
+
/** Catch the answers App Store Connect would refuse, before deleting what is there. */
|
|
81
|
+
declare function validateUsages(usages: AppPrivacyUsage[]): void;
|
|
82
|
+
|
|
83
|
+
type index_AppPrivacyUsage = AppPrivacyUsage;
|
|
84
|
+
declare const index_DATA_PROTECTIONS: typeof DATA_PROTECTIONS;
|
|
85
|
+
declare const index_DATA_USAGE_CATEGORIES: typeof DATA_USAGE_CATEGORIES;
|
|
86
|
+
declare const index_DATA_USAGE_PURPOSES: typeof DATA_USAGE_PURPOSES;
|
|
87
|
+
type index_DataProtection = DataProtection;
|
|
88
|
+
type index_DataUsageCategory = DataUsageCategory;
|
|
89
|
+
type index_DataUsagePurpose = DataUsagePurpose;
|
|
90
|
+
type index_UploadAppPrivacyOptions = UploadAppPrivacyOptions;
|
|
91
|
+
type index_UploadAppPrivacyResult = UploadAppPrivacyResult;
|
|
92
|
+
declare const index_createAppDataUsage: typeof createAppDataUsage;
|
|
93
|
+
declare const index_deleteAppDataUsage: typeof deleteAppDataUsage;
|
|
94
|
+
declare const index_getAppDataUsagesPublishState: typeof getAppDataUsagesPublishState;
|
|
95
|
+
declare const index_listAppDataUsages: typeof listAppDataUsages;
|
|
96
|
+
declare const index_publishAppDataUsages: typeof publishAppDataUsages;
|
|
97
|
+
declare const index_selectProviderForApp: typeof selectProviderForApp;
|
|
98
|
+
declare const index_uploadAppPrivacyDetails: typeof uploadAppPrivacyDetails;
|
|
99
|
+
declare const index_validateUsages: typeof validateUsages;
|
|
100
|
+
declare namespace index {
|
|
101
|
+
export { type index_AppPrivacyUsage as AppPrivacyUsage, index_DATA_PROTECTIONS as DATA_PROTECTIONS, index_DATA_USAGE_CATEGORIES as DATA_USAGE_CATEGORIES, index_DATA_USAGE_PURPOSES as DATA_USAGE_PURPOSES, type index_DataProtection as DataProtection, type index_DataUsageCategory as DataUsageCategory, type index_DataUsagePurpose as DataUsagePurpose, type index_UploadAppPrivacyOptions as UploadAppPrivacyOptions, type index_UploadAppPrivacyResult as UploadAppPrivacyResult, index_createAppDataUsage as createAppDataUsage, index_deleteAppDataUsage as deleteAppDataUsage, index_getAppDataUsagesPublishState as getAppDataUsagesPublishState, index_listAppDataUsages as listAppDataUsages, index_publishAppDataUsages as publishAppDataUsages, index_selectProviderForApp as selectProviderForApp, index_uploadAppPrivacyDetails as uploadAppPrivacyDetails, index_validateUsages as validateUsages };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export { type AppPrivacyUsage as A, DATA_USAGE_CATEGORIES as D, type UploadAppPrivacyOptions as U, DATA_USAGE_PURPOSES as a, DATA_PROTECTIONS as b, type DataUsageCategory as c, type DataUsagePurpose as d, type DataProtection as e, type UploadAppPrivacyResult as f, createAppDataUsage as g, deleteAppDataUsage as h, index as i, getAppDataUsagesPublishState as j, listAppDataUsages as l, publishAppDataUsages as p, selectProviderForApp as s, uploadAppPrivacyDetails as u, validateUsages as v };
|