@expo/apple-utils 2.1.17 → 2.1.19

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.
@@ -1413,213 +1413,202 @@ declare module "connect/models/ContentProvider" {
1413
1413
  } | undefined) => Promise<ContentProvider[]>;
1414
1414
  }
1415
1415
  }
1416
- declare module "connect/models/AppClip" {
1416
+ declare module "connect/models/AppClipAppStoreReviewDetail" {
1417
+ import { RequestContext } from "network/Request";
1417
1418
  import { ConnectModel } from "connect/models/ConnectModel";
1418
- export interface AppClipProps {
1419
- /**
1420
- * The bundle identifier of the App Clip.
1421
- * @example 'com.bacon.app.Clip'
1422
- */
1423
- bundleId: string;
1419
+ export interface AppClipAppStoreReviewDetailProps {
1420
+ invocationUrls: string[] | null;
1424
1421
  }
1425
1422
  /**
1426
- * An App Clip associated with an app in App Store Connect.
1423
+ * App Store review detail for an App Clip default experience.
1427
1424
  *
1428
- * App Clips are lightweight versions of apps that let users perform quick tasks
1429
- * without downloading the full app.
1425
+ * Holds the list of invocation URLs that App Review will use to launch the
1426
+ * App Clip during review.
1427
+ *
1428
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/appclipappstorereviewdetail
1430
1429
  */
1431
- export class AppClip extends ConnectModel<AppClipProps> {
1430
+ export class AppClipAppStoreReviewDetail extends ConnectModel<AppClipAppStoreReviewDetailProps> {
1432
1431
  static type: string;
1433
- /**
1434
- * Get a single App Clip by ID.
1435
- *
1436
- * @param id App Clip ID
1437
- */
1438
- static infoAsync: (context: import("AppStoreConnect").RequestContext, props: {
1432
+ static infoAsync: (context: RequestContext, props: {
1439
1433
  id: string;
1440
1434
  query?: import("connect/ConnectAPI").ConnectQueryParams;
1441
- }) => Promise<AppClip>;
1442
- }
1443
- }
1444
- declare module "connect/models/AppDataUsageGrouping" {
1445
- import { ConnectModel } from "connect/models/ConnectModel";
1446
- export interface AppDataUsageGroupingProps {
1447
- deleted: boolean;
1448
- }
1449
- export class AppDataUsageGrouping extends ConnectModel<AppDataUsageGroupingProps> {
1450
- static type: string;
1451
- static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
1435
+ }) => Promise<AppClipAppStoreReviewDetail>;
1436
+ static deleteAsync: (context: RequestContext, props: {
1452
1437
  id: string;
1453
1438
  }) => Promise<void>;
1439
+ static createAsync(context: RequestContext, { appClipDefaultExperienceId, attributes, }: {
1440
+ appClipDefaultExperienceId: string;
1441
+ attributes: Pick<AppClipAppStoreReviewDetailProps, 'invocationUrls'>;
1442
+ }): Promise<AppClipAppStoreReviewDetail>;
1443
+ updateAsync(options: Partial<Pick<AppClipAppStoreReviewDetailProps, 'invocationUrls'>>): Promise<AppClipAppStoreReviewDetail>;
1454
1444
  deleteAsync(): Promise<void>;
1455
1445
  }
1456
1446
  }
1457
- declare module "connect/models/AppDataUsageCategory" {
1458
- import { AppDataUsageGrouping } from "connect/models/AppDataUsageGrouping";
1459
- import { ConnectModel } from "connect/models/ConnectModel";
1460
- export interface AppDataUsageCategoryProps {
1461
- deleted: boolean;
1462
- grouping: AppDataUsageGrouping;
1447
+ declare module "utils/crypto" {
1448
+ import * as crypto from 'crypto';
1449
+ export function getChecksum(value: crypto.BinaryLike): string;
1450
+ }
1451
+ declare module "connect/AssetAPI" {
1452
+ import { AxiosResponse } from 'axios';
1453
+ import { ParsingOptions, RequestContext, RequestProps } from "network/Request";
1454
+ import { ConnectClientAPI } from "connect/ConnectAPI";
1455
+ export interface UploadOperationHeader {
1456
+ name: string;
1457
+ value: string;
1463
1458
  }
1464
- /**
1465
- * @see https://appstoreconnect.apple.com/iris/v1/appDataUsageCategories
1466
- * @example `apple-utils app-data-usage-category:get`
1467
- */
1468
- export enum AppDataUsageCategoryId {
1469
- ADVERTISING_DATA = "ADVERTISING_DATA",
1470
- AUDIO = "AUDIO",
1471
- BROWSING_HISTORY = "BROWSING_HISTORY",
1472
- COARSE_LOCATION = "COARSE_LOCATION",
1473
- CONTACTS = "CONTACTS",
1474
- CRASH_DATA = "CRASH_DATA",
1475
- CREDIT_AND_FRAUD = "CREDIT_AND_FRAUD",
1476
- CUSTOMER_SUPPORT = "CUSTOMER_SUPPORT",
1477
- DEVICE_ID = "DEVICE_ID",
1478
- EMAIL_ADDRESS = "EMAIL_ADDRESS",
1479
- EMAILS_OR_TEXT_MESSAGES = "EMAILS_OR_TEXT_MESSAGES",
1480
- ENVIRONMENTAL_SCANNING = "ENVIRONMENTAL_SCANNING",
1481
- FITNESS = "FITNESS",
1482
- GAMEPLAY_CONTENT = "GAMEPLAY_CONTENT",
1483
- HANDS = "HANDS",
1484
- HEAD_MOVEMENT = "HEAD_MOVEMENT",
1485
- HEALTH = "HEALTH",
1486
- NAME = "NAME",
1487
- OTHER_CONTACT_INFO = "OTHER_CONTACT_INFO",
1488
- OTHER_DATA = "OTHER_DATA",
1489
- OTHER_DIAGNOSTIC_DATA = "OTHER_DIAGNOSTIC_DATA",
1490
- OTHER_FINANCIAL_INFO = "OTHER_FINANCIAL_INFO",
1491
- OTHER_USAGE_DATA = "OTHER_USAGE_DATA",
1492
- OTHER_USER_CONTENT = "OTHER_USER_CONTENT",
1493
- PAYMENT_INFORMATION = "PAYMENT_INFORMATION",
1494
- PERFORMANCE_DATA = "PERFORMANCE_DATA",
1495
- PHONE_NUMBER = "PHONE_NUMBER",
1496
- PHOTOS_OR_VIDEOS = "PHOTOS_OR_VIDEOS",
1497
- PHYSICAL_ADDRESS = "PHYSICAL_ADDRESS",
1498
- PRECISE_LOCATION = "PRECISE_LOCATION",
1499
- PRODUCT_INTERACTION = "PRODUCT_INTERACTION",
1500
- PURCHASE_HISTORY = "PURCHASE_HISTORY",
1501
- SEARCH_HISTORY = "SEARCH_HISTORY",
1502
- SENSITIVE_INFO = "SENSITIVE_INFO",
1503
- USER_ID = "USER_ID"
1459
+ export interface UploadOperation {
1460
+ method: string;
1461
+ url: string;
1462
+ length: number;
1463
+ offset: number;
1464
+ requestHeaders: UploadOperationHeader[];
1504
1465
  }
1505
- export class AppDataUsageCategory extends ConnectModel<AppDataUsageCategoryProps> {
1506
- static type: string;
1507
- static getAsync: (context: import("AppStoreConnect").RequestContext, props?: {
1508
- query?: import("connect/ConnectAPI").ConnectQueryParams<Record<string, any>> | undefined;
1509
- } | undefined) => Promise<AppDataUsageCategory[]>;
1510
- static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
1511
- id: string;
1512
- }) => Promise<void>;
1513
- deleteAsync(): Promise<void>;
1466
+ export enum AppMediaAssetStateState {
1467
+ AWAITING_UPLOAD = "AWAITING_UPLOAD",
1468
+ UPLOAD_COMPLETE = "UPLOAD_COMPLETE",
1469
+ COMPLETE = "COMPLETE",
1470
+ FAILED = "FAILED"
1514
1471
  }
1515
- }
1516
- declare module "connect/models/AppDataUsageDataProtection" {
1517
- import { ConnectModel } from "connect/models/ConnectModel";
1518
- export interface AppDataUsageDataProtectionProps {
1519
- deleted: boolean;
1472
+ export interface AppMediaStateError {
1473
+ code: string;
1474
+ description: string;
1520
1475
  }
1521
- /**
1522
- * @see https://appstoreconnect.apple.com/iris/v1/appDataUsageDataProtections
1523
- * @example `apple-utils app-data-usage-protection:get`
1524
- */
1525
- export enum AppDataUsageDataProtectionId {
1526
- DATA_USED_TO_TRACK_YOU = "DATA_USED_TO_TRACK_YOU",
1527
- DATA_LINKED_TO_YOU = "DATA_LINKED_TO_YOU",
1528
- DATA_NOT_LINKED_TO_YOU = "DATA_NOT_LINKED_TO_YOU",
1529
- DATA_NOT_COLLECTED = "DATA_NOT_COLLECTED"
1476
+ export interface AppMediaAssetState {
1477
+ errors: AppMediaStateError[];
1478
+ warnings: AppMediaStateError[];
1479
+ state: AppMediaAssetStateState;
1530
1480
  }
1531
- export class AppDataUsageDataProtection extends ConnectModel<AppDataUsageDataProtectionProps> {
1532
- static type: string;
1533
- static getAsync: (context: import("AppStoreConnect").RequestContext, props?: {
1534
- query?: import("connect/ConnectAPI").ConnectQueryParams<Record<string, any>> | undefined;
1535
- } | undefined) => Promise<AppDataUsageDataProtection[]>;
1536
- static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
1537
- id: string;
1538
- }) => Promise<void>;
1539
- deleteAsync(): Promise<void>;
1481
+ export interface ImageAsset {
1482
+ /**
1483
+ * @example 'https://is3-ssl.mzstatic.com/image/thumb/Purple118/v4/0c/26/16/0c261675-72c5-7e10-3fdc-c8a20ccebd77/AppIcon-1x_U007emarketing-85-220-0-6.png/{w}x{h}bb.{f}'
1484
+ */
1485
+ templateUrl: string;
1486
+ /**
1487
+ * @example 1024
1488
+ */
1489
+ width: number;
1490
+ /**
1491
+ * @example 1024
1492
+ */
1493
+ height: number;
1540
1494
  }
1495
+ class AssetAPI extends ConnectClientAPI {
1496
+ get hostname(): string;
1497
+ requestAsync<T = any, R extends AxiosResponse<T> = AxiosResponse<T>>(context: RequestContext, request: RequestProps, options?: ParsingOptions): Promise<R>;
1498
+ uploadAsync(_context: RequestContext, { uploadOperations, bytes, }: {
1499
+ uploadOperations: UploadOperation[];
1500
+ bytes: Buffer;
1501
+ }): Promise<void>;
1502
+ }
1503
+ export const assetClient: AssetAPI;
1541
1504
  }
1542
- declare module "connect/models/AppDataUsagePurpose" {
1505
+ declare module "connect/models/AppClipHeaderImage" {
1506
+ import { RequestContext } from "network/Request";
1507
+ import { AppMediaAssetState, ImageAsset, UploadOperation } from "connect/AssetAPI";
1543
1508
  import { ConnectModel } from "connect/models/ConnectModel";
1544
- export interface AppDataUsagePurposeProps {
1545
- deleted: boolean;
1509
+ export interface AppClipHeaderImageProps {
1510
+ fileSize: number;
1511
+ fileName: string;
1512
+ sourceFileChecksum: string;
1513
+ imageAsset: ImageAsset;
1514
+ uploadOperations: UploadOperation[];
1515
+ assetDeliveryState: AppMediaAssetState;
1546
1516
  }
1547
1517
  /**
1548
- * @see https://appstoreconnect.apple.com/iris/v1/appDataUsagePurposes
1549
- * @example `apple-utils app-data-usage-purpose:get`
1518
+ * A header image for an App Clip default experience localization.
1519
+ *
1520
+ * Uses the same upload protocol as `AppScreenshot`:
1521
+ * 1. POST `/v1/appClipHeaderImages` with `fileName` + `fileSize` to reserve
1522
+ * the asset and obtain `uploadOperations`.
1523
+ * 2. PUT the binary data to each operation's URL via `assetClient`.
1524
+ * 3. PATCH the resource with `uploaded: true` and `sourceFileChecksum`.
1525
+ * 4. Optionally poll until `assetDeliveryState.state` is `COMPLETE`.
1526
+ *
1527
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/appclipheaderimage
1550
1528
  */
1551
- export enum AppDataUsagePurposeId {
1552
- THIRD_PARTY_ADVERTISING = "THIRD_PARTY_ADVERTISING",
1553
- DEVELOPERS_ADVERTISING = "DEVELOPERS_ADVERTISING",
1554
- ANALYTICS = "ANALYTICS",
1555
- PRODUCT_PERSONALIZATION = "PRODUCT_PERSONALIZATION",
1556
- APP_FUNCTIONALITY = "APP_FUNCTIONALITY",
1557
- OTHER_PURPOSES = "OTHER_PURPOSES"
1558
- }
1559
- export class AppDataUsagePurpose extends ConnectModel<AppDataUsagePurposeProps> {
1529
+ export class AppClipHeaderImage extends ConnectModel<AppClipHeaderImageProps> {
1560
1530
  static type: string;
1561
- static getAsync: (context: import("AppStoreConnect").RequestContext, props?: {
1562
- query?: import("connect/ConnectAPI").ConnectQueryParams<Record<string, any>> | undefined;
1563
- } | undefined) => Promise<AppDataUsagePurpose[]>;
1564
- static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
1531
+ static infoAsync: (context: RequestContext, props: {
1565
1532
  id: string;
1566
- }) => Promise<void>;
1567
- deleteAsync(): Promise<void>;
1568
- }
1569
- }
1570
- declare module "connect/models/AppDataUsage" {
1571
- import { RequestContext } from "network/Request";
1572
- import { AppDataUsageCategory } from "connect/models/AppDataUsageCategory";
1573
- import { AppDataUsageDataProtection } from "connect/models/AppDataUsageDataProtection";
1574
- import { AppDataUsageGrouping } from "connect/models/AppDataUsageGrouping";
1575
- import { AppDataUsagePurpose } from "connect/models/AppDataUsagePurpose";
1576
- import { ConnectModel } from "connect/models/ConnectModel";
1577
- export interface AppDataUsageProps {
1578
- category?: AppDataUsageCategory;
1579
- grouping?: AppDataUsageGrouping;
1580
- purpose?: AppDataUsagePurpose;
1581
- dataProtection?: AppDataUsageDataProtection;
1582
- }
1583
- export class AppDataUsage extends ConnectModel<AppDataUsageProps> {
1584
- static type: string;
1585
- static DEFAULT_INCLUDES: string[];
1533
+ query?: import("connect/ConnectAPI").ConnectQueryParams;
1534
+ }) => Promise<AppClipHeaderImage>;
1535
+ static createAsync(context: RequestContext, { id, attributes, }: {
1536
+ /** AppClipDefaultExperienceLocalization id */
1537
+ id: string;
1538
+ attributes: Pick<AppClipHeaderImageProps, 'fileName' | 'fileSize'>;
1539
+ }): Promise<AppClipHeaderImage>;
1586
1540
  /**
1541
+ * Upload a header image PNG to App Store Connect for an App Clip
1542
+ * default-experience localization.
1587
1543
  *
1588
- * @param id `App` id
1589
- * @param appDataUsageCategory `AppDataUsageCategory` id (`AppDataUsageCategoryId`)
1590
- * @param appDataUsageProtection `AppDataUsageProtection` id (`AppDataUsageProtectionId`)
1591
- * @param appDataUsagePurpose `AppDataUsagePurpose` id (`AppDataUsagePurposeId`)
1544
+ * @param id `AppClipDefaultExperienceLocalization` id
1592
1545
  */
1593
- static createAsync(context: RequestContext, { id, appDataUsageCategory, appDataUsageProtection, appDataUsagePurpose, }: {
1546
+ static uploadAsync(context: RequestContext, { id, filePath, waitForProcessing, }: {
1594
1547
  id: string;
1595
- appDataUsageCategory?: string;
1596
- appDataUsageProtection?: string;
1597
- appDataUsagePurpose?: string;
1598
- }): Promise<AppDataUsage>;
1548
+ filePath: string;
1549
+ waitForProcessing?: boolean;
1550
+ }): Promise<AppClipHeaderImage>;
1599
1551
  static deleteAsync: (context: RequestContext, props: {
1600
1552
  id: string;
1601
1553
  }) => Promise<void>;
1602
1554
  deleteAsync(): Promise<void>;
1555
+ updateAsync(options: Partial<Pick<AppClipHeaderImageProps, 'sourceFileChecksum'>> & {
1556
+ uploaded?: boolean;
1557
+ }): Promise<AppClipHeaderImage>;
1558
+ isAwaitingUpload(): boolean;
1559
+ isComplete(): boolean;
1560
+ isFailed(): boolean;
1561
+ getErrorMessages(): string[];
1562
+ /**
1563
+ * Get a downloadable URL for the rendered image asset. Note that the
1564
+ * downloaded image is a re-rendered copy and will NOT match
1565
+ * `sourceFileChecksum`.
1566
+ */
1567
+ getImageAssetUrl({ width, height, type, }: {
1568
+ width?: number;
1569
+ height?: number;
1570
+ type?: string | 'png';
1571
+ }): string | null;
1603
1572
  }
1604
1573
  }
1605
- declare module "connect/models/AppDataUsagesPublishState" {
1574
+ declare module "connect/models/AppClipDefaultExperienceLocalization" {
1575
+ import { RequestContext } from "network/Request";
1576
+ import { AppClipHeaderImage } from "connect/models/AppClipHeaderImage";
1606
1577
  import { ConnectModel } from "connect/models/ConnectModel";
1607
- export interface AppDataUsagesPublishStateProps {
1608
- published: boolean;
1578
+ export interface AppClipDefaultExperienceLocalizationProps {
1609
1579
  /**
1610
- * @example "2021-06-26T14:31:32.201-07:00"
1611
- */
1612
- lastPublished: string;
1613
- /**
1614
- * @example "Evan Bacon"
1580
+ * @example 'en-US'
1615
1581
  */
1616
- lastPublishedBy: string;
1582
+ locale: string;
1583
+ subtitle: string | null;
1584
+ appClipHeaderImage?: AppClipHeaderImage | null;
1617
1585
  }
1618
- export class AppDataUsagesPublishState extends ConnectModel<AppDataUsagesPublishStateProps> {
1586
+ /**
1587
+ * A localized subtitle and header image for an App Clip default experience.
1588
+ *
1589
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/appclipdefaultexperiencelocalization
1590
+ */
1591
+ export class AppClipDefaultExperienceLocalization extends ConnectModel<AppClipDefaultExperienceLocalizationProps> {
1619
1592
  static type: string;
1620
- updateAsync(options: Pick<AppDataUsagesPublishStateProps, 'published'>): Promise<AppDataUsagesPublishState>;
1621
- }
1622
- }
1593
+ static infoAsync: (context: RequestContext, props: {
1594
+ id: string;
1595
+ query?: import("connect/ConnectAPI").ConnectQueryParams;
1596
+ }) => Promise<AppClipDefaultExperienceLocalization>;
1597
+ static deleteAsync: (context: RequestContext, props: {
1598
+ id: string;
1599
+ }) => Promise<void>;
1600
+ static createAsync(context: RequestContext, { appClipDefaultExperienceId, attributes, }: {
1601
+ appClipDefaultExperienceId: string;
1602
+ attributes: Pick<AppClipDefaultExperienceLocalizationProps, 'locale' | 'subtitle'>;
1603
+ }): Promise<AppClipDefaultExperienceLocalization>;
1604
+ updateAsync(options: Partial<Pick<AppClipDefaultExperienceLocalizationProps, 'subtitle'>>): Promise<AppClipDefaultExperienceLocalization>;
1605
+ deleteAsync(): Promise<void>;
1606
+ /**
1607
+ * Get the header image for this localization. Returns null if none uploaded.
1608
+ */
1609
+ getAppClipHeaderImageAsync(): Promise<AppClipHeaderImage | null>;
1610
+ }
1611
+ }
1623
1612
  declare module "connect/ProvisioningAPI" {
1624
1613
  import { AxiosResponse } from 'axios';
1625
1614
  import { ParsingOptions, RequestContext, RequestProps } from "network/Request";
@@ -2728,63 +2717,198 @@ declare module "connect/models/AppCategory" {
2728
2717
  } | undefined) => Promise<AppCategory[]>;
2729
2718
  }
2730
2719
  }
2731
- declare module "connect/AssetAPI" {
2732
- import { AxiosResponse } from 'axios';
2733
- import { ParsingOptions, RequestContext, RequestProps } from "network/Request";
2734
- import { ConnectClientAPI } from "connect/ConnectAPI";
2735
- export interface UploadOperationHeader {
2736
- name: string;
2737
- value: string;
2720
+ declare module "connect/models/AppInfoLocalization" {
2721
+ import { RequestContext } from "network/Request";
2722
+ import { ConnectModel } from "connect/models/ConnectModel";
2723
+ export interface AppInfoLocalizationProps {
2724
+ locale: string;
2725
+ name: string | null;
2726
+ subtitle: string | null;
2727
+ privacyPolicyUrl: string | null;
2728
+ privacyChoicesUrl: string | null;
2729
+ privacyPolicyText: string | null;
2738
2730
  }
2739
- export interface UploadOperation {
2740
- method: string;
2741
- url: string;
2742
- length: number;
2743
- offset: number;
2744
- requestHeaders: UploadOperationHeader[];
2731
+ /**
2732
+ * Used for updating basic metadata.
2733
+ */
2734
+ export class AppInfoLocalization extends ConnectModel<AppInfoLocalizationProps> {
2735
+ static type: string;
2736
+ /**
2737
+ *
2738
+ * @param id `AppInfo` id
2739
+ */
2740
+ static createAsync(context: RequestContext, { id, locale, }: {
2741
+ id: string;
2742
+ locale: string;
2743
+ }): Promise<AppInfoLocalization>;
2744
+ static deleteAsync: (context: RequestContext, props: {
2745
+ id: string;
2746
+ }) => Promise<void>;
2747
+ updateAsync(attributes: Partial<AppInfoLocalizationProps>): Promise<AppInfoLocalization>;
2745
2748
  }
2746
- export enum AppMediaAssetStateState {
2747
- AWAITING_UPLOAD = "AWAITING_UPLOAD",
2748
- UPLOAD_COMPLETE = "UPLOAD_COMPLETE",
2749
- COMPLETE = "COMPLETE",
2750
- FAILED = "FAILED"
2749
+ }
2750
+ declare module "connect/models/AppInfo" {
2751
+ import { RequestContext } from "network/Request";
2752
+ import { ConnectQueryParams } from "connect/ConnectAPI";
2753
+ import { AgeRatingDeclaration, KidsAgeBand } from "connect/models/AgeRatingDeclaration";
2754
+ import { AppCategory, AppCategoryId, AppSubcategoryId } from "connect/models/AppCategory";
2755
+ import { AppInfoLocalization, AppInfoLocalizationProps } from "connect/models/AppInfoLocalization";
2756
+ import { BundleIdPlatform } from "connect/models/BundleId";
2757
+ import { ConnectModel } from "connect/models/ConnectModel";
2758
+ export enum AppState {
2759
+ ACCEPTED = "ACCEPTED",
2760
+ DEVELOPER_REJECTED = "DEVELOPER_REJECTED",
2761
+ IN_REVIEW = "IN_REVIEW",
2762
+ PENDING_RELEASE = "PENDING_RELEASE",
2763
+ PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION",
2764
+ READY_FOR_DISTRIBUTION = "READY_FOR_DISTRIBUTION",
2765
+ READY_FOR_REVIEW = "READY_FOR_REVIEW",
2766
+ REJECTED = "REJECTED",
2767
+ REPLACED_WITH_NEW_INFO = "REPLACED_WITH_NEW_INFO",
2768
+ WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW"
2751
2769
  }
2752
- export interface AppMediaStateError {
2753
- code: string;
2754
- description: string;
2770
+ /** @deprecated 3.3 - use {@link AppState} instead. */
2771
+ export enum AppStoreState {
2772
+ READY_FOR_SALE = "READY_FOR_SALE",
2773
+ PROCESSING_FOR_APP_STORE = "PROCESSING_FOR_APP_STORE",
2774
+ PENDING_DEVELOPER_RELEASE = "PENDING_DEVELOPER_RELEASE",
2775
+ PENDING_APPLE_RELEASE = "PENDING_APPLE_RELEASE",
2776
+ IN_REVIEW = "IN_REVIEW",
2777
+ WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW",
2778
+ DEVELOPER_REJECTED = "DEVELOPER_REJECTED",
2779
+ REJECTED = "REJECTED",
2780
+ PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION",
2781
+ METADATA_REJECTED = "METADATA_REJECTED",
2782
+ INVALID_BINARY = "INVALID_BINARY"
2755
2783
  }
2756
- export interface AppMediaAssetState {
2757
- errors: AppMediaStateError[];
2758
- warnings: AppMediaStateError[];
2759
- state: AppMediaAssetStateState;
2784
+ export enum AustraliaAgeRating {
2785
+ FIFTEEN = "FIFTEEN",
2786
+ EIGHTEEN = "EIGHTEEN"
2760
2787
  }
2761
- export interface ImageAsset {
2788
+ /** @deprecated 2.2 - use {@link BrazilAgeRatingV2} instead. */
2789
+ export enum BrazilAgeRating {
2790
+ L = "L",
2791
+ TEN = "TEN",
2792
+ TWELVE = "TWELVE",
2793
+ FOURTEEN = "FOURTEEN",
2794
+ SIXTEEN = "SIXTEEN",
2795
+ EIGHTEEN = "EIGHTEEN"
2796
+ }
2797
+ export enum BrazilAgeRatingV2 {
2798
+ SELF_RATED_L = "SELF_RATED_L",
2799
+ SELF_RATED_TEN = "SELF_RATED_TEN",
2800
+ SELF_RATED_TWELVE = "SELF_RATED_TWELVE",
2801
+ SELF_RATED_FOURTEE = "SELF_RATED_FOURTEE",
2802
+ SELF_RATED_SIXTEEN = "SELF_RATED_SIXTEEN",
2803
+ SELF_RATED_EIGHTEE = "SELF_RATED_EIGHTEE",
2804
+ OFFICIAL_L = "OFFICIAL_L",
2805
+ OFFICIAL_TEN = "OFFICIAL_TEN",
2806
+ OFFICIAL_TWELVE = "OFFICIAL_TWELVE",
2807
+ OFFICIAL_FOURTEEN = "OFFICIAL_FOURTEEN",
2808
+ OFFICIAL_SIXTEEN = "OFFICIAL_SIXTEEN",
2809
+ OFFICIAL_EIGHTEEN = "OFFICIAL_EIGHTEEN"
2810
+ }
2811
+ export enum KoreaAgeRating {
2812
+ ALL = "ALL",
2813
+ TWELVE = "TWELVE",
2814
+ FIFTEEN = "FIFTEEN",
2815
+ NINETEEN = "NINETEEN",
2816
+ NOT_APPLICABLE = "NOT_APPLICABLE"
2817
+ }
2818
+ export enum AppStoreAgeRating {
2819
+ FOUR_PLUS = "FOUR_PLUS"
2820
+ }
2821
+ /**
2822
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/appinfo/attributes-data.dictionary
2823
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/appinfoupdaterequest/data-data.dictionary
2824
+ */
2825
+ export interface AppInfoProps {
2762
2826
  /**
2763
- * @example 'https://is3-ssl.mzstatic.com/image/thumb/Purple118/v4/0c/26/16/0c261675-72c5-7e10-3fdc-c8a20ccebd77/AppIcon-1x_U007emarketing-85-220-0-6.png/{w}x{h}bb.{f}'
2827
+ * The app’s age rating as it appears on the App Store for all platforms.
2828
+ * @since 1.2
2764
2829
  */
2765
- templateUrl: string;
2830
+ appStoreAgeRating: AppStoreAgeRating | null;
2766
2831
  /**
2767
- * @example 1024
2832
+ * The state of an app version in the App Store.
2833
+ * @since 1.2
2834
+ * @deprecated 3.3 - use {@link state} instead.
2768
2835
  */
2769
- width: number;
2836
+ appStoreState: AppStoreState;
2770
2837
  /**
2771
- * @example 1024
2838
+ * The app’s age rating as it appears on the App Store in Australia for all platforms.
2839
+ * @since 3.6.0
2772
2840
  */
2773
- height: number;
2841
+ australiaAgeRating: AustraliaAgeRating | null;
2842
+ /**
2843
+ * The app’s age rating as it appears on the App Store in Brazil for all platforms.
2844
+ * @since 1.2
2845
+ * @deprecated 2.2 - use {@link brazilAgeRatingV2} instead.
2846
+ */
2847
+ brazilAgeRating: BrazilAgeRating | null;
2848
+ /**
2849
+ * The app’s age rating as it appears on the App Store in Brazil for all platforms.
2850
+ * @since 2.2
2851
+ */
2852
+ brazilAgeRatingV2: BrazilAgeRatingV2 | null;
2853
+ /**
2854
+ * A Made for Kids app’s age band.
2855
+ * @since 1.2
2856
+ */
2857
+ kidsAgeBand: KidsAgeBand | null;
2858
+ /**
2859
+ * The app’s age rating as it appears on the App Store in South Korea for all platforms.
2860
+ * @since 3.6.0
2861
+ */
2862
+ koreaAgeRating: KoreaAgeRating | null;
2863
+ /**
2864
+ * The state of an app version in the App Store.
2865
+ * @since 3.3
2866
+ */
2867
+ state: AppState | null;
2868
+ primaryCategory?: AppCategory;
2869
+ primarySubcategoryOne?: AppCategory;
2870
+ primarySubcategoryTwo?: AppCategory;
2871
+ secondaryCategory?: AppCategory;
2872
+ secondarySubcategoryOne?: AppCategory;
2873
+ secondarySubcategoryTwo?: AppCategory;
2774
2874
  }
2775
- class AssetAPI extends ConnectClientAPI {
2776
- get hostname(): string;
2777
- requestAsync<T = any, R extends AxiosResponse<T> = AxiosResponse<T>>(context: RequestContext, request: RequestProps, options?: ParsingOptions): Promise<R>;
2778
- uploadAsync(context: RequestContext, { uploadOperations, bytes, }: {
2779
- uploadOperations: UploadOperation[];
2780
- bytes: Buffer;
2781
- }): Promise<void>;
2875
+ export interface CategoryIds {
2876
+ primaryCategory?: AppCategoryId;
2877
+ primarySubcategoryOne?: AppSubcategoryId;
2878
+ primarySubcategoryTwo?: AppSubcategoryId;
2879
+ secondaryCategory?: AppCategoryId;
2880
+ secondarySubcategoryOne?: AppSubcategoryId;
2881
+ secondarySubcategoryTwo?: AppSubcategoryId;
2882
+ }
2883
+ export class AppInfo extends ConnectModel<AppInfoProps> {
2884
+ static type: string;
2885
+ static DEFAULT_INCLUDES: string[];
2886
+ static createAsync(context: RequestContext, { id, versionString, platform, }: {
2887
+ id: string;
2888
+ versionString: string;
2889
+ platform: BundleIdPlatform;
2890
+ }): Promise<AppInfo>;
2891
+ static infoAsync: (context: RequestContext, props: {
2892
+ id: string;
2893
+ query?: ConnectQueryParams;
2894
+ }) => Promise<AppInfo>;
2895
+ static deleteAsync: (context: RequestContext, props: {
2896
+ id: string;
2897
+ }) => Promise<void>;
2898
+ updateCategoriesAsync(categories?: CategoryIds): Promise<AppInfo>;
2899
+ /**
2900
+ * Get the age rating declaration for this app info.
2901
+ * The ageRatingDeclaration relationship moved from appStoreVersions to appInfos
2902
+ * in App Store Connect API.
2903
+ */
2904
+ getAgeRatingDeclarationAsync({ query, }?: {
2905
+ query?: ConnectQueryParams;
2906
+ }): Promise<AgeRatingDeclaration | null>;
2907
+ getLocalizationsAsync({ query, }?: {
2908
+ query?: ConnectQueryParams;
2909
+ }): Promise<AppInfoLocalization[]>;
2910
+ createLocalizationAsync({ locale, }: Pick<AppInfoLocalizationProps, 'locale'>): Promise<AppInfoLocalization>;
2782
2911
  }
2783
- export const assetClient: AssetAPI;
2784
- }
2785
- declare module "utils/crypto" {
2786
- import * as crypto from 'crypto';
2787
- export function getChecksum(value: crypto.BinaryLike): string;
2788
2912
  }
2789
2913
  declare module "connect/models/AppStoreReviewAttachment" {
2790
2914
  import { RequestContext } from "network/Request";
@@ -4097,197 +4221,290 @@ declare module "connect/models/AppStoreVersion" {
4097
4221
  rejectAsync(): Promise<boolean>;
4098
4222
  }
4099
4223
  }
4100
- declare module "connect/models/AppInfoLocalization" {
4224
+ declare module "connect/models/AppClipDefaultExperience" {
4101
4225
  import { RequestContext } from "network/Request";
4226
+ import { ConnectQueryParams } from "connect/ConnectAPI";
4227
+ import { AppClipAppStoreReviewDetail } from "connect/models/AppClipAppStoreReviewDetail";
4228
+ import { AppClipDefaultExperienceLocalization } from "connect/models/AppClipDefaultExperienceLocalization";
4229
+ import { AppStoreVersion } from "connect/models/AppStoreVersion";
4102
4230
  import { ConnectModel } from "connect/models/ConnectModel";
4103
- export interface AppInfoLocalizationProps {
4104
- locale: string;
4105
- name: string | null;
4106
- subtitle: string | null;
4107
- privacyPolicyUrl: string | null;
4108
- privacyChoicesUrl: string | null;
4109
- privacyPolicyText: string | null;
4231
+ export enum AppClipAction {
4232
+ OPEN = "OPEN",
4233
+ VIEW = "VIEW",
4234
+ PLAY = "PLAY"
4235
+ }
4236
+ export interface AppClipDefaultExperienceProps {
4237
+ action: AppClipAction | null;
4238
+ appClipDefaultExperienceLocalizations?: AppClipDefaultExperienceLocalization[];
4239
+ appClipAppStoreReviewDetail?: AppClipAppStoreReviewDetail | null;
4240
+ releaseWithAppStoreVersion?: AppStoreVersion | null;
4110
4241
  }
4111
4242
  /**
4112
- * Used for updating basic metadata.
4243
+ * The default experience for an App Clip.
4244
+ *
4245
+ * One default experience exists per App Clip, optionally linked to a specific
4246
+ * App Store version via `releaseWithAppStoreVersion`. The default experience
4247
+ * holds per-locale subtitles + header images and the App Store review detail
4248
+ * (invocation URLs).
4249
+ *
4250
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/appclipdefaultexperience
4113
4251
  */
4114
- export class AppInfoLocalization extends ConnectModel<AppInfoLocalizationProps> {
4252
+ export class AppClipDefaultExperience extends ConnectModel<AppClipDefaultExperienceProps> {
4115
4253
  static type: string;
4116
- /**
4117
- *
4118
- * @param id `AppInfo` id
4119
- */
4120
- static createAsync(context: RequestContext, { id, locale, }: {
4254
+ static infoAsync: (context: RequestContext, props: {
4121
4255
  id: string;
4122
- locale: string;
4123
- }): Promise<AppInfoLocalization>;
4256
+ query?: ConnectQueryParams;
4257
+ }) => Promise<AppClipDefaultExperience>;
4124
4258
  static deleteAsync: (context: RequestContext, props: {
4125
4259
  id: string;
4126
4260
  }) => Promise<void>;
4127
- updateAsync(attributes: Partial<AppInfoLocalizationProps>): Promise<AppInfoLocalization>;
4261
+ static createAsync(context: RequestContext, { appClipId, releaseWithAppStoreVersionId, appClipDefaultExperienceTemplateId, attributes, }: {
4262
+ appClipId: string;
4263
+ releaseWithAppStoreVersionId?: string;
4264
+ /**
4265
+ * Optional id of an existing default experience to copy. Apple uses
4266
+ * this to clone localizations + review detail from a previous version's
4267
+ * default experience into the new one.
4268
+ */
4269
+ appClipDefaultExperienceTemplateId?: string;
4270
+ attributes?: Partial<Pick<AppClipDefaultExperienceProps, 'action'>>;
4271
+ }): Promise<AppClipDefaultExperience>;
4272
+ updateAsync(options: Partial<Pick<AppClipDefaultExperienceProps, 'action'>> & {
4273
+ releaseWithAppStoreVersionId?: string | null;
4274
+ }): Promise<AppClipDefaultExperience>;
4275
+ deleteAsync(): Promise<void>;
4276
+ /**
4277
+ * Get the localizations (locale + subtitle + optional header image) for this default experience.
4278
+ */
4279
+ getAppClipDefaultExperienceLocalizationsAsync({ query, }?: {
4280
+ query?: ConnectQueryParams;
4281
+ }): Promise<AppClipDefaultExperienceLocalization[]>;
4282
+ /**
4283
+ * Get the App Store review detail (invocation URLs) for this default experience.
4284
+ * Returns null if none has been created yet.
4285
+ */
4286
+ getAppClipAppStoreReviewDetailAsync(): Promise<AppClipAppStoreReviewDetail | null>;
4287
+ createAppClipDefaultExperienceLocalizationAsync(attributes: Pick<AppClipDefaultExperienceLocalization['attributes'], 'locale' | 'subtitle'>): Promise<AppClipDefaultExperienceLocalization>;
4128
4288
  }
4129
4289
  }
4130
- declare module "connect/models/AppInfo" {
4131
- import { RequestContext } from "network/Request";
4290
+ declare module "connect/models/AppClip" {
4132
4291
  import { ConnectQueryParams } from "connect/ConnectAPI";
4133
- import { AgeRatingDeclaration, KidsAgeBand } from "connect/models/AgeRatingDeclaration";
4134
- import { AppCategory, AppCategoryId, AppSubcategoryId } from "connect/models/AppCategory";
4135
- import { AppInfoLocalization, AppInfoLocalizationProps } from "connect/models/AppInfoLocalization";
4136
- import { BundleIdPlatform } from "connect/models/BundleId";
4292
+ import { AppClipDefaultExperience } from "connect/models/AppClipDefaultExperience";
4137
4293
  import { ConnectModel } from "connect/models/ConnectModel";
4138
- export enum AppState {
4139
- ACCEPTED = "ACCEPTED",
4140
- DEVELOPER_REJECTED = "DEVELOPER_REJECTED",
4141
- IN_REVIEW = "IN_REVIEW",
4142
- PENDING_RELEASE = "PENDING_RELEASE",
4143
- PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION",
4144
- READY_FOR_DISTRIBUTION = "READY_FOR_DISTRIBUTION",
4145
- READY_FOR_REVIEW = "READY_FOR_REVIEW",
4146
- REJECTED = "REJECTED",
4147
- REPLACED_WITH_NEW_INFO = "REPLACED_WITH_NEW_INFO",
4148
- WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW"
4294
+ export interface AppClipProps {
4295
+ /**
4296
+ * The bundle identifier of the App Clip.
4297
+ * @example 'com.bacon.app.Clip'
4298
+ */
4299
+ bundleId: string;
4149
4300
  }
4150
- /** @deprecated 3.3 - use {@link AppState} instead. */
4151
- export enum AppStoreState {
4152
- READY_FOR_SALE = "READY_FOR_SALE",
4153
- PROCESSING_FOR_APP_STORE = "PROCESSING_FOR_APP_STORE",
4154
- PENDING_DEVELOPER_RELEASE = "PENDING_DEVELOPER_RELEASE",
4155
- PENDING_APPLE_RELEASE = "PENDING_APPLE_RELEASE",
4156
- IN_REVIEW = "IN_REVIEW",
4157
- WAITING_FOR_REVIEW = "WAITING_FOR_REVIEW",
4158
- DEVELOPER_REJECTED = "DEVELOPER_REJECTED",
4159
- REJECTED = "REJECTED",
4160
- PREPARE_FOR_SUBMISSION = "PREPARE_FOR_SUBMISSION",
4161
- METADATA_REJECTED = "METADATA_REJECTED",
4162
- INVALID_BINARY = "INVALID_BINARY"
4301
+ /**
4302
+ * An App Clip associated with an app in App Store Connect.
4303
+ *
4304
+ * App Clips are lightweight versions of apps that let users perform quick tasks
4305
+ * without downloading the full app.
4306
+ */
4307
+ export class AppClip extends ConnectModel<AppClipProps> {
4308
+ static type: string;
4309
+ /**
4310
+ * Get a single App Clip by ID.
4311
+ *
4312
+ * @param id App Clip ID
4313
+ */
4314
+ static infoAsync: (context: import("AppStoreConnect").RequestContext, props: {
4315
+ id: string;
4316
+ query?: ConnectQueryParams;
4317
+ }) => Promise<AppClip>;
4318
+ /**
4319
+ * Get the default experiences associated with this App Clip.
4320
+ *
4321
+ * Eagerly includes localizations and the App Store review detail so callers
4322
+ * can avoid follow-up requests.
4323
+ *
4324
+ * @see https://developer.apple.com/documentation/appstoreconnectapi/get-v1-appclips-_id_-appclipdefaultexperiences
4325
+ */
4326
+ getAppClipDefaultExperiencesAsync({ query, }?: {
4327
+ query?: ConnectQueryParams;
4328
+ }): Promise<AppClipDefaultExperience[]>;
4163
4329
  }
4164
- export enum AustraliaAgeRating {
4165
- FIFTEEN = "FIFTEEN",
4166
- EIGHTEEN = "EIGHTEEN"
4330
+ }
4331
+ declare module "connect/models/AppDataUsageGrouping" {
4332
+ import { ConnectModel } from "connect/models/ConnectModel";
4333
+ export interface AppDataUsageGroupingProps {
4334
+ deleted: boolean;
4167
4335
  }
4168
- /** @deprecated 2.2 - use {@link BrazilAgeRatingV2} instead. */
4169
- export enum BrazilAgeRating {
4170
- L = "L",
4171
- TEN = "TEN",
4172
- TWELVE = "TWELVE",
4173
- FOURTEEN = "FOURTEEN",
4174
- SIXTEEN = "SIXTEEN",
4175
- EIGHTEEN = "EIGHTEEN"
4336
+ export class AppDataUsageGrouping extends ConnectModel<AppDataUsageGroupingProps> {
4337
+ static type: string;
4338
+ static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
4339
+ id: string;
4340
+ }) => Promise<void>;
4341
+ deleteAsync(): Promise<void>;
4176
4342
  }
4177
- export enum BrazilAgeRatingV2 {
4178
- SELF_RATED_L = "SELF_RATED_L",
4179
- SELF_RATED_TEN = "SELF_RATED_TEN",
4180
- SELF_RATED_TWELVE = "SELF_RATED_TWELVE",
4181
- SELF_RATED_FOURTEE = "SELF_RATED_FOURTEE",
4182
- SELF_RATED_SIXTEEN = "SELF_RATED_SIXTEEN",
4183
- SELF_RATED_EIGHTEE = "SELF_RATED_EIGHTEE",
4184
- OFFICIAL_L = "OFFICIAL_L",
4185
- OFFICIAL_TEN = "OFFICIAL_TEN",
4186
- OFFICIAL_TWELVE = "OFFICIAL_TWELVE",
4187
- OFFICIAL_FOURTEEN = "OFFICIAL_FOURTEEN",
4188
- OFFICIAL_SIXTEEN = "OFFICIAL_SIXTEEN",
4189
- OFFICIAL_EIGHTEEN = "OFFICIAL_EIGHTEEN"
4343
+ }
4344
+ declare module "connect/models/AppDataUsageCategory" {
4345
+ import { AppDataUsageGrouping } from "connect/models/AppDataUsageGrouping";
4346
+ import { ConnectModel } from "connect/models/ConnectModel";
4347
+ export interface AppDataUsageCategoryProps {
4348
+ deleted: boolean;
4349
+ grouping: AppDataUsageGrouping;
4190
4350
  }
4191
- export enum KoreaAgeRating {
4192
- ALL = "ALL",
4193
- TWELVE = "TWELVE",
4194
- FIFTEEN = "FIFTEEN",
4195
- NINETEEN = "NINETEEN",
4196
- NOT_APPLICABLE = "NOT_APPLICABLE"
4351
+ /**
4352
+ * @see https://appstoreconnect.apple.com/iris/v1/appDataUsageCategories
4353
+ * @example `apple-utils app-data-usage-category:get`
4354
+ */
4355
+ export enum AppDataUsageCategoryId {
4356
+ ADVERTISING_DATA = "ADVERTISING_DATA",
4357
+ AUDIO = "AUDIO",
4358
+ BROWSING_HISTORY = "BROWSING_HISTORY",
4359
+ COARSE_LOCATION = "COARSE_LOCATION",
4360
+ CONTACTS = "CONTACTS",
4361
+ CRASH_DATA = "CRASH_DATA",
4362
+ CREDIT_AND_FRAUD = "CREDIT_AND_FRAUD",
4363
+ CUSTOMER_SUPPORT = "CUSTOMER_SUPPORT",
4364
+ DEVICE_ID = "DEVICE_ID",
4365
+ EMAIL_ADDRESS = "EMAIL_ADDRESS",
4366
+ EMAILS_OR_TEXT_MESSAGES = "EMAILS_OR_TEXT_MESSAGES",
4367
+ ENVIRONMENTAL_SCANNING = "ENVIRONMENTAL_SCANNING",
4368
+ FITNESS = "FITNESS",
4369
+ GAMEPLAY_CONTENT = "GAMEPLAY_CONTENT",
4370
+ HANDS = "HANDS",
4371
+ HEAD_MOVEMENT = "HEAD_MOVEMENT",
4372
+ HEALTH = "HEALTH",
4373
+ NAME = "NAME",
4374
+ OTHER_CONTACT_INFO = "OTHER_CONTACT_INFO",
4375
+ OTHER_DATA = "OTHER_DATA",
4376
+ OTHER_DIAGNOSTIC_DATA = "OTHER_DIAGNOSTIC_DATA",
4377
+ OTHER_FINANCIAL_INFO = "OTHER_FINANCIAL_INFO",
4378
+ OTHER_USAGE_DATA = "OTHER_USAGE_DATA",
4379
+ OTHER_USER_CONTENT = "OTHER_USER_CONTENT",
4380
+ PAYMENT_INFORMATION = "PAYMENT_INFORMATION",
4381
+ PERFORMANCE_DATA = "PERFORMANCE_DATA",
4382
+ PHONE_NUMBER = "PHONE_NUMBER",
4383
+ PHOTOS_OR_VIDEOS = "PHOTOS_OR_VIDEOS",
4384
+ PHYSICAL_ADDRESS = "PHYSICAL_ADDRESS",
4385
+ PRECISE_LOCATION = "PRECISE_LOCATION",
4386
+ PRODUCT_INTERACTION = "PRODUCT_INTERACTION",
4387
+ PURCHASE_HISTORY = "PURCHASE_HISTORY",
4388
+ SEARCH_HISTORY = "SEARCH_HISTORY",
4389
+ SENSITIVE_INFO = "SENSITIVE_INFO",
4390
+ USER_ID = "USER_ID"
4197
4391
  }
4198
- export enum AppStoreAgeRating {
4199
- FOUR_PLUS = "FOUR_PLUS"
4392
+ export class AppDataUsageCategory extends ConnectModel<AppDataUsageCategoryProps> {
4393
+ static type: string;
4394
+ static getAsync: (context: import("AppStoreConnect").RequestContext, props?: {
4395
+ query?: import("connect/ConnectAPI").ConnectQueryParams<Record<string, any>> | undefined;
4396
+ } | undefined) => Promise<AppDataUsageCategory[]>;
4397
+ static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
4398
+ id: string;
4399
+ }) => Promise<void>;
4400
+ deleteAsync(): Promise<void>;
4401
+ }
4402
+ }
4403
+ declare module "connect/models/AppDataUsageDataProtection" {
4404
+ import { ConnectModel } from "connect/models/ConnectModel";
4405
+ export interface AppDataUsageDataProtectionProps {
4406
+ deleted: boolean;
4200
4407
  }
4201
4408
  /**
4202
- * @see https://developer.apple.com/documentation/appstoreconnectapi/appinfo/attributes-data.dictionary
4203
- * @see https://developer.apple.com/documentation/appstoreconnectapi/appinfoupdaterequest/data-data.dictionary
4409
+ * @see https://appstoreconnect.apple.com/iris/v1/appDataUsageDataProtections
4410
+ * @example `apple-utils app-data-usage-protection:get`
4204
4411
  */
4205
- export interface AppInfoProps {
4206
- /**
4207
- * The app’s age rating as it appears on the App Store for all platforms.
4208
- * @since 1.2
4209
- */
4210
- appStoreAgeRating: AppStoreAgeRating | null;
4211
- /**
4212
- * The state of an app version in the App Store.
4213
- * @since 1.2
4214
- * @deprecated 3.3 - use {@link state} instead.
4215
- */
4216
- appStoreState: AppStoreState;
4217
- /**
4218
- * The app’s age rating as it appears on the App Store in Australia for all platforms.
4219
- * @since 3.6.0
4220
- */
4221
- australiaAgeRating: AustraliaAgeRating | null;
4222
- /**
4223
- * The app’s age rating as it appears on the App Store in Brazil for all platforms.
4224
- * @since 1.2
4225
- * @deprecated 2.2 - use {@link brazilAgeRatingV2} instead.
4226
- */
4227
- brazilAgeRating: BrazilAgeRating | null;
4228
- /**
4229
- * The app’s age rating as it appears on the App Store in Brazil for all platforms.
4230
- * @since 2.2
4231
- */
4232
- brazilAgeRatingV2: BrazilAgeRatingV2 | null;
4233
- /**
4234
- * A Made for Kids app’s age band.
4235
- * @since 1.2
4236
- */
4237
- kidsAgeBand: KidsAgeBand | null;
4238
- /**
4239
- * The app’s age rating as it appears on the App Store in South Korea for all platforms.
4240
- * @since 3.6.0
4241
- */
4242
- koreaAgeRating: KoreaAgeRating | null;
4243
- /**
4244
- * The state of an app version in the App Store.
4245
- * @since 3.3
4246
- */
4247
- state: AppState | null;
4248
- primaryCategory?: AppCategory;
4249
- primarySubcategoryOne?: AppCategory;
4250
- primarySubcategoryTwo?: AppCategory;
4251
- secondaryCategory?: AppCategory;
4252
- secondarySubcategoryOne?: AppCategory;
4253
- secondarySubcategoryTwo?: AppCategory;
4412
+ export enum AppDataUsageDataProtectionId {
4413
+ DATA_USED_TO_TRACK_YOU = "DATA_USED_TO_TRACK_YOU",
4414
+ DATA_LINKED_TO_YOU = "DATA_LINKED_TO_YOU",
4415
+ DATA_NOT_LINKED_TO_YOU = "DATA_NOT_LINKED_TO_YOU",
4416
+ DATA_NOT_COLLECTED = "DATA_NOT_COLLECTED"
4254
4417
  }
4255
- export interface CategoryIds {
4256
- primaryCategory?: AppCategoryId;
4257
- primarySubcategoryOne?: AppSubcategoryId;
4258
- primarySubcategoryTwo?: AppSubcategoryId;
4259
- secondaryCategory?: AppCategoryId;
4260
- secondarySubcategoryOne?: AppSubcategoryId;
4261
- secondarySubcategoryTwo?: AppSubcategoryId;
4418
+ export class AppDataUsageDataProtection extends ConnectModel<AppDataUsageDataProtectionProps> {
4419
+ static type: string;
4420
+ static getAsync: (context: import("AppStoreConnect").RequestContext, props?: {
4421
+ query?: import("connect/ConnectAPI").ConnectQueryParams<Record<string, any>> | undefined;
4422
+ } | undefined) => Promise<AppDataUsageDataProtection[]>;
4423
+ static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
4424
+ id: string;
4425
+ }) => Promise<void>;
4426
+ deleteAsync(): Promise<void>;
4262
4427
  }
4263
- export class AppInfo extends ConnectModel<AppInfoProps> {
4428
+ }
4429
+ declare module "connect/models/AppDataUsagePurpose" {
4430
+ import { ConnectModel } from "connect/models/ConnectModel";
4431
+ export interface AppDataUsagePurposeProps {
4432
+ deleted: boolean;
4433
+ }
4434
+ /**
4435
+ * @see https://appstoreconnect.apple.com/iris/v1/appDataUsagePurposes
4436
+ * @example `apple-utils app-data-usage-purpose:get`
4437
+ */
4438
+ export enum AppDataUsagePurposeId {
4439
+ THIRD_PARTY_ADVERTISING = "THIRD_PARTY_ADVERTISING",
4440
+ DEVELOPERS_ADVERTISING = "DEVELOPERS_ADVERTISING",
4441
+ ANALYTICS = "ANALYTICS",
4442
+ PRODUCT_PERSONALIZATION = "PRODUCT_PERSONALIZATION",
4443
+ APP_FUNCTIONALITY = "APP_FUNCTIONALITY",
4444
+ OTHER_PURPOSES = "OTHER_PURPOSES"
4445
+ }
4446
+ export class AppDataUsagePurpose extends ConnectModel<AppDataUsagePurposeProps> {
4264
4447
  static type: string;
4265
- static DEFAULT_INCLUDES: string[];
4266
- static createAsync(context: RequestContext, { id, versionString, platform, }: {
4448
+ static getAsync: (context: import("AppStoreConnect").RequestContext, props?: {
4449
+ query?: import("connect/ConnectAPI").ConnectQueryParams<Record<string, any>> | undefined;
4450
+ } | undefined) => Promise<AppDataUsagePurpose[]>;
4451
+ static deleteAsync: (context: import("AppStoreConnect").RequestContext, props: {
4267
4452
  id: string;
4268
- versionString: string;
4269
- platform: BundleIdPlatform;
4270
- }): Promise<AppInfo>;
4271
- static infoAsync: (context: RequestContext, props: {
4453
+ }) => Promise<void>;
4454
+ deleteAsync(): Promise<void>;
4455
+ }
4456
+ }
4457
+ declare module "connect/models/AppDataUsage" {
4458
+ import { RequestContext } from "network/Request";
4459
+ import { AppDataUsageCategory } from "connect/models/AppDataUsageCategory";
4460
+ import { AppDataUsageDataProtection } from "connect/models/AppDataUsageDataProtection";
4461
+ import { AppDataUsageGrouping } from "connect/models/AppDataUsageGrouping";
4462
+ import { AppDataUsagePurpose } from "connect/models/AppDataUsagePurpose";
4463
+ import { ConnectModel } from "connect/models/ConnectModel";
4464
+ export interface AppDataUsageProps {
4465
+ category?: AppDataUsageCategory;
4466
+ grouping?: AppDataUsageGrouping;
4467
+ purpose?: AppDataUsagePurpose;
4468
+ dataProtection?: AppDataUsageDataProtection;
4469
+ }
4470
+ export class AppDataUsage extends ConnectModel<AppDataUsageProps> {
4471
+ static type: string;
4472
+ static DEFAULT_INCLUDES: string[];
4473
+ /**
4474
+ *
4475
+ * @param id `App` id
4476
+ * @param appDataUsageCategory `AppDataUsageCategory` id (`AppDataUsageCategoryId`)
4477
+ * @param appDataUsageProtection `AppDataUsageProtection` id (`AppDataUsageProtectionId`)
4478
+ * @param appDataUsagePurpose `AppDataUsagePurpose` id (`AppDataUsagePurposeId`)
4479
+ */
4480
+ static createAsync(context: RequestContext, { id, appDataUsageCategory, appDataUsageProtection, appDataUsagePurpose, }: {
4272
4481
  id: string;
4273
- query?: ConnectQueryParams;
4274
- }) => Promise<AppInfo>;
4482
+ appDataUsageCategory?: string;
4483
+ appDataUsageProtection?: string;
4484
+ appDataUsagePurpose?: string;
4485
+ }): Promise<AppDataUsage>;
4275
4486
  static deleteAsync: (context: RequestContext, props: {
4276
4487
  id: string;
4277
4488
  }) => Promise<void>;
4278
- updateCategoriesAsync(categories?: CategoryIds): Promise<AppInfo>;
4489
+ deleteAsync(): Promise<void>;
4490
+ }
4491
+ }
4492
+ declare module "connect/models/AppDataUsagesPublishState" {
4493
+ import { ConnectModel } from "connect/models/ConnectModel";
4494
+ export interface AppDataUsagesPublishStateProps {
4495
+ published: boolean;
4279
4496
  /**
4280
- * Get the age rating declaration for this app info.
4281
- * The ageRatingDeclaration relationship moved from appStoreVersions to appInfos
4282
- * in App Store Connect API.
4497
+ * @example "2021-06-26T14:31:32.201-07:00"
4283
4498
  */
4284
- getAgeRatingDeclarationAsync({ query, }?: {
4285
- query?: ConnectQueryParams;
4286
- }): Promise<AgeRatingDeclaration | null>;
4287
- getLocalizationsAsync({ query, }?: {
4288
- query?: ConnectQueryParams;
4289
- }): Promise<AppInfoLocalization[]>;
4290
- createLocalizationAsync({ locale, }: Pick<AppInfoLocalizationProps, 'locale'>): Promise<AppInfoLocalization>;
4499
+ lastPublished: string;
4500
+ /**
4501
+ * @example "Evan Bacon"
4502
+ */
4503
+ lastPublishedBy: string;
4504
+ }
4505
+ export class AppDataUsagesPublishState extends ConnectModel<AppDataUsagesPublishStateProps> {
4506
+ static type: string;
4507
+ updateAsync(options: Pick<AppDataUsagesPublishStateProps, 'published'>): Promise<AppDataUsagesPublishState>;
4291
4508
  }
4292
4509
  }
4293
4510
  declare module "connect/models/AppPriceTier" {
@@ -4714,7 +4931,7 @@ declare module "connect/models/ReviewSubmission" {
4714
4931
  static getAsync: (context: RequestContext, props?: {
4715
4932
  query?: ConnectQueryParams<Partial<{
4716
4933
  platform: Platform | Platform[];
4717
- state: "COMPLETE" | "WAITING_FOR_REVIEW" | "IN_REVIEW" | "READY_FOR_REVIEW" | "UNRESOLVED_ISSUES" | "CANCELING" | "COMPLETING" | ("COMPLETE" | "WAITING_FOR_REVIEW" | "IN_REVIEW" | "READY_FOR_REVIEW" | "UNRESOLVED_ISSUES" | "CANCELING" | "COMPLETING")[];
4934
+ state: "COMPLETE" | "IN_REVIEW" | "READY_FOR_REVIEW" | "WAITING_FOR_REVIEW" | "UNRESOLVED_ISSUES" | "CANCELING" | "COMPLETING" | ("COMPLETE" | "IN_REVIEW" | "READY_FOR_REVIEW" | "WAITING_FOR_REVIEW" | "UNRESOLVED_ISSUES" | "CANCELING" | "COMPLETING")[];
4718
4935
  } & {
4719
4936
  id?: string;
4720
4937
  }>> | undefined;
@@ -5459,6 +5676,10 @@ declare module "connect/index" {
5459
5676
  export * from "connect/models/ApiKey";
5460
5677
  export * from "connect/models/App";
5461
5678
  export * from "connect/models/AppClip";
5679
+ export * from "connect/models/AppClipAppStoreReviewDetail";
5680
+ export * from "connect/models/AppClipDefaultExperience";
5681
+ export * from "connect/models/AppClipDefaultExperienceLocalization";
5682
+ export * from "connect/models/AppClipHeaderImage";
5462
5683
  export * from "connect/models/AppDataUsage";
5463
5684
  export * from "connect/models/AppDataUsageCategory";
5464
5685
  export * from "connect/models/AppDataUsageDataProtection";