@ankhorage/deploy 0.8.0 → 0.9.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/CHANGELOG.md +11 -0
- package/README.md +5 -1
- package/dist/domain/release/ReleaseControlExecutionResult.d.ts +13 -0
- package/dist/domain/release/ReleaseControlExecutionResult.d.ts.map +1 -0
- package/dist/domain/release/ReleaseControlExecutionResult.js +2 -0
- package/dist/domain/release/ReleaseControlExecutionResult.js.map +1 -0
- package/dist/domain/release/ReleaseDesiredState.d.ts +11 -0
- package/dist/domain/release/ReleaseDesiredState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseDesiredState.js +2 -0
- package/dist/domain/release/ReleaseDesiredState.js.map +1 -0
- package/dist/domain/release/ReleaseDiagnostic.d.ts +8 -0
- package/dist/domain/release/ReleaseDiagnostic.d.ts.map +1 -0
- package/dist/domain/release/ReleaseDiagnostic.js +2 -0
- package/dist/domain/release/ReleaseDiagnostic.js.map +1 -0
- package/dist/domain/release/ReleaseExecutionState.d.ts +6 -0
- package/dist/domain/release/ReleaseExecutionState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseExecutionState.js +2 -0
- package/dist/domain/release/ReleaseExecutionState.js.map +1 -0
- package/dist/domain/release/ReleaseExecutionStep.d.ts +10 -0
- package/dist/domain/release/ReleaseExecutionStep.d.ts.map +1 -0
- package/dist/domain/release/ReleaseExecutionStep.js +2 -0
- package/dist/domain/release/ReleaseExecutionStep.js.map +1 -0
- package/dist/domain/release/ReleaseLifecycleControl.d.ts +8 -0
- package/dist/domain/release/ReleaseLifecycleControl.d.ts.map +1 -0
- package/dist/domain/release/ReleaseLifecycleControl.js +2 -0
- package/dist/domain/release/ReleaseLifecycleControl.js.map +1 -0
- package/dist/domain/release/ReleaseNote.d.ts +5 -0
- package/dist/domain/release/ReleaseNote.d.ts.map +1 -0
- package/dist/domain/release/ReleaseNote.js +2 -0
- package/dist/domain/release/ReleaseNote.js.map +1 -0
- package/dist/domain/release/ReleaseObservedAndroidState.d.ts +11 -0
- package/dist/domain/release/ReleaseObservedAndroidState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseObservedAndroidState.js +2 -0
- package/dist/domain/release/ReleaseObservedAndroidState.js.map +1 -0
- package/dist/domain/release/ReleaseObservedIosState.d.ts +13 -0
- package/dist/domain/release/ReleaseObservedIosState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseObservedIosState.js +2 -0
- package/dist/domain/release/ReleaseObservedIosState.js.map +1 -0
- package/dist/domain/release/ReleaseObservedState.d.ts +5 -0
- package/dist/domain/release/ReleaseObservedState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseObservedState.js +2 -0
- package/dist/domain/release/ReleaseObservedState.js.map +1 -0
- package/dist/domain/release/ReleaseObservedTargetState.d.ts +5 -0
- package/dist/domain/release/ReleaseObservedTargetState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseObservedTargetState.js +2 -0
- package/dist/domain/release/ReleaseObservedTargetState.js.map +1 -0
- package/dist/domain/release/ReleaseObservedWebState.d.ts +6 -0
- package/dist/domain/release/ReleaseObservedWebState.d.ts.map +1 -0
- package/dist/domain/release/ReleaseObservedWebState.js +2 -0
- package/dist/domain/release/ReleaseObservedWebState.js.map +1 -0
- package/dist/domain/release/ReleasePlan.d.ts +11 -0
- package/dist/domain/release/ReleasePlan.d.ts.map +1 -0
- package/dist/domain/release/ReleasePlan.js +2 -0
- package/dist/domain/release/ReleasePlan.js.map +1 -0
- package/dist/domain/release/ReleasePlanStatus.d.ts +2 -0
- package/dist/domain/release/ReleasePlanStatus.d.ts.map +1 -0
- package/dist/domain/release/ReleasePlanStatus.js +2 -0
- package/dist/domain/release/ReleasePlanStatus.js.map +1 -0
- package/dist/domain/release/ReleasePlanStep.d.ts +12 -0
- package/dist/domain/release/ReleasePlanStep.d.ts.map +1 -0
- package/dist/domain/release/ReleasePlanStep.js +2 -0
- package/dist/domain/release/ReleasePlanStep.js.map +1 -0
- package/dist/domain/release/ReleaseReconcileResult.d.ts +10 -0
- package/dist/domain/release/ReleaseReconcileResult.d.ts.map +1 -0
- package/dist/domain/release/ReleaseReconcileResult.js +2 -0
- package/dist/domain/release/ReleaseReconcileResult.js.map +1 -0
- package/dist/domain/release/ReleaseRollout.d.ts +7 -0
- package/dist/domain/release/ReleaseRollout.d.ts.map +1 -0
- package/dist/domain/release/ReleaseRollout.js +2 -0
- package/dist/domain/release/ReleaseRollout.js.map +1 -0
- package/dist/domain/release/ReleaseRolloutMode.d.ts +2 -0
- package/dist/domain/release/ReleaseRolloutMode.d.ts.map +1 -0
- package/dist/domain/release/ReleaseRolloutMode.js +2 -0
- package/dist/domain/release/ReleaseRolloutMode.js.map +1 -0
- package/dist/domain/release/ReleaseStepOperation.d.ts +2 -0
- package/dist/domain/release/ReleaseStepOperation.d.ts.map +1 -0
- package/dist/domain/release/ReleaseStepOperation.js +2 -0
- package/dist/domain/release/ReleaseStepOperation.js.map +1 -0
- package/dist/domain/release/ReleaseStepRetry.d.ts +2 -0
- package/dist/domain/release/ReleaseStepRetry.d.ts.map +1 -0
- package/dist/domain/release/ReleaseStepRetry.js +2 -0
- package/dist/domain/release/ReleaseStepRetry.js.map +1 -0
- package/dist/domain/release/ReleaseTarget.d.ts +2 -0
- package/dist/domain/release/ReleaseTarget.d.ts.map +1 -0
- package/dist/domain/release/ReleaseTarget.js +2 -0
- package/dist/domain/release/ReleaseTarget.js.map +1 -0
- package/dist/domain/release/ReleaseTargetPlanContribution.d.ts +10 -0
- package/dist/domain/release/ReleaseTargetPlanContribution.d.ts.map +1 -0
- package/dist/domain/release/ReleaseTargetPlanContribution.js +2 -0
- package/dist/domain/release/ReleaseTargetPlanContribution.js.map +1 -0
- package/dist/domain/release/ReleaseTargetRollout.d.ts +6 -0
- package/dist/domain/release/ReleaseTargetRollout.d.ts.map +1 -0
- package/dist/domain/release/ReleaseTargetRollout.js +2 -0
- package/dist/domain/release/ReleaseTargetRollout.js.map +1 -0
- package/dist/domain/release/areReleaseNotesSatisfied.d.ts +3 -0
- package/dist/domain/release/areReleaseNotesSatisfied.d.ts.map +1 -0
- package/dist/domain/release/areReleaseNotesSatisfied.js +4 -0
- package/dist/domain/release/areReleaseNotesSatisfied.js.map +1 -0
- package/dist/domain/release/createAndroidReleaseSteps.d.ts +5 -0
- package/dist/domain/release/createAndroidReleaseSteps.d.ts.map +1 -0
- package/dist/domain/release/createAndroidReleaseSteps.js +76 -0
- package/dist/domain/release/createAndroidReleaseSteps.js.map +1 -0
- package/dist/domain/release/createIosReleaseSteps.d.ts +5 -0
- package/dist/domain/release/createIosReleaseSteps.d.ts.map +1 -0
- package/dist/domain/release/createIosReleaseSteps.js +163 -0
- package/dist/domain/release/createIosReleaseSteps.js.map +1 -0
- package/dist/domain/release/createReleaseCurrentRevision.d.ts +4 -0
- package/dist/domain/release/createReleaseCurrentRevision.d.ts.map +1 -0
- package/dist/domain/release/createReleaseCurrentRevision.js +51 -0
- package/dist/domain/release/createReleaseCurrentRevision.js.map +1 -0
- package/dist/domain/release/createReleaseExecutionState.d.ts +4 -0
- package/dist/domain/release/createReleaseExecutionState.d.ts.map +1 -0
- package/dist/domain/release/createReleaseExecutionState.js +7 -0
- package/dist/domain/release/createReleaseExecutionState.js.map +1 -0
- package/dist/domain/release/createReleaseExecutionStateFromResult.d.ts +9 -0
- package/dist/domain/release/createReleaseExecutionStateFromResult.d.ts.map +1 -0
- package/dist/domain/release/createReleaseExecutionStateFromResult.js +21 -0
- package/dist/domain/release/createReleaseExecutionStateFromResult.js.map +1 -0
- package/dist/domain/release/createReleasePlan.d.ts +5 -0
- package/dist/domain/release/createReleasePlan.d.ts.map +1 -0
- package/dist/domain/release/createReleasePlan.js +89 -0
- package/dist/domain/release/createReleasePlan.js.map +1 -0
- package/dist/domain/release/createReleaseRevision.d.ts +10 -0
- package/dist/domain/release/createReleaseRevision.d.ts.map +1 -0
- package/dist/domain/release/createReleaseRevision.js +11 -0
- package/dist/domain/release/createReleaseRevision.js.map +1 -0
- package/dist/domain/release/createWebReleaseSteps.d.ts +5 -0
- package/dist/domain/release/createWebReleaseSteps.d.ts.map +1 -0
- package/dist/domain/release/createWebReleaseSteps.js +29 -0
- package/dist/domain/release/createWebReleaseSteps.js.map +1 -0
- package/dist/domain/release/isReleaseLifecycleControlReadbackSatisfied.d.ts +4 -0
- package/dist/domain/release/isReleaseLifecycleControlReadbackSatisfied.d.ts.map +1 -0
- package/dist/domain/release/isReleaseLifecycleControlReadbackSatisfied.js +10 -0
- package/dist/domain/release/isReleaseLifecycleControlReadbackSatisfied.js.map +1 -0
- package/dist/domain/release/isReleaseLifecycleControlSatisfied.d.ts +4 -0
- package/dist/domain/release/isReleaseLifecycleControlSatisfied.d.ts.map +1 -0
- package/dist/domain/release/isReleaseLifecycleControlSatisfied.js +24 -0
- package/dist/domain/release/isReleaseLifecycleControlSatisfied.js.map +1 -0
- package/dist/domain/release/isReleaseStepResumable.d.ts +3 -0
- package/dist/domain/release/isReleaseStepResumable.d.ts.map +1 -0
- package/dist/domain/release/isReleaseStepResumable.js +6 -0
- package/dist/domain/release/isReleaseStepResumable.js.map +1 -0
- package/dist/domain/release/listReleaseLifecycleControls.d.ts +4 -0
- package/dist/domain/release/listReleaseLifecycleControls.d.ts.map +1 -0
- package/dist/domain/release/listReleaseLifecycleControls.js +31 -0
- package/dist/domain/release/listReleaseLifecycleControls.js.map +1 -0
- package/dist/domain/release/normalizeReleaseFraction.d.ts +2 -0
- package/dist/domain/release/normalizeReleaseFraction.d.ts.map +1 -0
- package/dist/domain/release/normalizeReleaseFraction.js +7 -0
- package/dist/domain/release/normalizeReleaseFraction.js.map +1 -0
- package/dist/engine/release/ReleaseMutationResult.d.ts +10 -0
- package/dist/engine/release/ReleaseMutationResult.d.ts.map +1 -0
- package/dist/engine/release/ReleaseMutationResult.js +2 -0
- package/dist/engine/release/ReleaseMutationResult.js.map +1 -0
- package/dist/engine/release/executeReleaseLifecycleControl.d.ts +13 -0
- package/dist/engine/release/executeReleaseLifecycleControl.d.ts.map +1 -0
- package/dist/engine/release/executeReleaseLifecycleControl.js +43 -0
- package/dist/engine/release/executeReleaseLifecycleControl.js.map +1 -0
- package/dist/engine/release/executeReleasePlan.d.ts +16 -0
- package/dist/engine/release/executeReleasePlan.d.ts.map +1 -0
- package/dist/engine/release/executeReleasePlan.js +103 -0
- package/dist/engine/release/executeReleasePlan.js.map +1 -0
- package/dist/engine/release/resumeReleaseExecution.d.ts +16 -0
- package/dist/engine/release/resumeReleaseExecution.d.ts.map +1 -0
- package/dist/engine/release/resumeReleaseExecution.js +48 -0
- package/dist/engine/release/resumeReleaseExecution.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/project/index.d.ts +23 -0
- package/dist/project/index.d.ts.map +1 -1
- package/dist/project/index.js +10 -0
- package/dist/project/index.js.map +1 -1
- package/dist/project/release/ExecuteProjectReleaseControlOptions.d.ts +7 -0
- package/dist/project/release/ExecuteProjectReleaseControlOptions.d.ts.map +1 -0
- package/dist/project/release/ExecuteProjectReleaseControlOptions.js +2 -0
- package/dist/project/release/ExecuteProjectReleaseControlOptions.js.map +1 -0
- package/dist/project/release/ExecuteProjectReleaseOptions.d.ts +9 -0
- package/dist/project/release/ExecuteProjectReleaseOptions.d.ts.map +1 -0
- package/dist/project/release/ExecuteProjectReleaseOptions.js +2 -0
- package/dist/project/release/ExecuteProjectReleaseOptions.js.map +1 -0
- package/dist/project/release/InspectProjectReleaseOptions.d.ts +5 -0
- package/dist/project/release/InspectProjectReleaseOptions.d.ts.map +1 -0
- package/dist/project/release/InspectProjectReleaseOptions.js +2 -0
- package/dist/project/release/InspectProjectReleaseOptions.js.map +1 -0
- package/dist/project/release/ProjectReleaseAccess.d.ts +13 -0
- package/dist/project/release/ProjectReleaseAccess.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseAccess.js +2 -0
- package/dist/project/release/ProjectReleaseAccess.js.map +1 -0
- package/dist/project/release/ProjectReleaseAndroidContext.d.ts +6 -0
- package/dist/project/release/ProjectReleaseAndroidContext.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseAndroidContext.js +2 -0
- package/dist/project/release/ProjectReleaseAndroidContext.js.map +1 -0
- package/dist/project/release/ProjectReleaseExecution.d.ts +8 -0
- package/dist/project/release/ProjectReleaseExecution.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseExecution.js +2 -0
- package/dist/project/release/ProjectReleaseExecution.js.map +1 -0
- package/dist/project/release/ProjectReleaseExecutionResult.d.ts +10 -0
- package/dist/project/release/ProjectReleaseExecutionResult.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseExecutionResult.js +2 -0
- package/dist/project/release/ProjectReleaseExecutionResult.js.map +1 -0
- package/dist/project/release/ProjectReleaseInspection.d.ts +11 -0
- package/dist/project/release/ProjectReleaseInspection.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseInspection.js +2 -0
- package/dist/project/release/ProjectReleaseInspection.js.map +1 -0
- package/dist/project/release/ProjectReleaseInspectionResult.d.ts +10 -0
- package/dist/project/release/ProjectReleaseInspectionResult.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseInspectionResult.js +2 -0
- package/dist/project/release/ProjectReleaseInspectionResult.js.map +1 -0
- package/dist/project/release/ProjectReleaseIosContext.d.ts +4 -0
- package/dist/project/release/ProjectReleaseIosContext.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseIosContext.js +2 -0
- package/dist/project/release/ProjectReleaseIosContext.js.map +1 -0
- package/dist/project/release/ProjectReleaseMutationContext.d.ts +10 -0
- package/dist/project/release/ProjectReleaseMutationContext.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseMutationContext.js +2 -0
- package/dist/project/release/ProjectReleaseMutationContext.js.map +1 -0
- package/dist/project/release/ProjectReleaseObservedResult.d.ts +12 -0
- package/dist/project/release/ProjectReleaseObservedResult.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseObservedResult.js +2 -0
- package/dist/project/release/ProjectReleaseObservedResult.js.map +1 -0
- package/dist/project/release/ProjectReleasePublishTargetOptions.d.ts +10 -0
- package/dist/project/release/ProjectReleasePublishTargetOptions.d.ts.map +1 -0
- package/dist/project/release/ProjectReleasePublishTargetOptions.js +2 -0
- package/dist/project/release/ProjectReleasePublishTargetOptions.js.map +1 -0
- package/dist/project/release/ProjectReleaseRuntime.d.ts +26 -0
- package/dist/project/release/ProjectReleaseRuntime.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseRuntime.js +2 -0
- package/dist/project/release/ProjectReleaseRuntime.js.map +1 -0
- package/dist/project/release/ProjectReleaseTargetInspection.d.ts +12 -0
- package/dist/project/release/ProjectReleaseTargetInspection.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseTargetInspection.js +2 -0
- package/dist/project/release/ProjectReleaseTargetInspection.js.map +1 -0
- package/dist/project/release/ProjectReleaseTargets.d.ts +15 -0
- package/dist/project/release/ProjectReleaseTargets.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseTargets.js +2 -0
- package/dist/project/release/ProjectReleaseTargets.js.map +1 -0
- package/dist/project/release/ProjectReleaseWebContext.d.ts +5 -0
- package/dist/project/release/ProjectReleaseWebContext.d.ts.map +1 -0
- package/dist/project/release/ProjectReleaseWebContext.js +2 -0
- package/dist/project/release/ProjectReleaseWebContext.js.map +1 -0
- package/dist/project/release/ResolvedProjectReleaseAccess.d.ts +13 -0
- package/dist/project/release/ResolvedProjectReleaseAccess.d.ts.map +1 -0
- package/dist/project/release/ResolvedProjectReleaseAccess.js +2 -0
- package/dist/project/release/ResolvedProjectReleaseAccess.js.map +1 -0
- package/dist/project/release/ResumeProjectReleaseOptions.d.ts +7 -0
- package/dist/project/release/ResumeProjectReleaseOptions.d.ts.map +1 -0
- package/dist/project/release/ResumeProjectReleaseOptions.js +2 -0
- package/dist/project/release/ResumeProjectReleaseOptions.js.map +1 -0
- package/dist/project/release/areReleasePlansEqual.d.ts +3 -0
- package/dist/project/release/areReleasePlansEqual.d.ts.map +1 -0
- package/dist/project/release/areReleasePlansEqual.js +4 -0
- package/dist/project/release/areReleasePlansEqual.js.map +1 -0
- package/dist/project/release/createProjectReleasePlan.d.ts +4 -0
- package/dist/project/release/createProjectReleasePlan.d.ts.map +1 -0
- package/dist/project/release/createProjectReleasePlan.js +5 -0
- package/dist/project/release/createProjectReleasePlan.js.map +1 -0
- package/dist/project/release/defaultProjectReleaseRuntime.d.ts +3 -0
- package/dist/project/release/defaultProjectReleaseRuntime.d.ts.map +1 -0
- package/dist/project/release/defaultProjectReleaseRuntime.js +26 -0
- package/dist/project/release/defaultProjectReleaseRuntime.js.map +1 -0
- package/dist/project/release/executeProjectRelease.d.ts +4 -0
- package/dist/project/release/executeProjectRelease.d.ts.map +1 -0
- package/dist/project/release/executeProjectRelease.js +6 -0
- package/dist/project/release/executeProjectRelease.js.map +1 -0
- package/dist/project/release/executeProjectReleaseAndroidMutation.d.ts +10 -0
- package/dist/project/release/executeProjectReleaseAndroidMutation.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseAndroidMutation.js +42 -0
- package/dist/project/release/executeProjectReleaseAndroidMutation.js.map +1 -0
- package/dist/project/release/executeProjectReleaseControl.d.ts +4 -0
- package/dist/project/release/executeProjectReleaseControl.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseControl.js +6 -0
- package/dist/project/release/executeProjectReleaseControl.js.map +1 -0
- package/dist/project/release/executeProjectReleaseControlMutation.d.ts +12 -0
- package/dist/project/release/executeProjectReleaseControlMutation.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseControlMutation.js +81 -0
- package/dist/project/release/executeProjectReleaseControlMutation.js.map +1 -0
- package/dist/project/release/executeProjectReleaseControlWithRuntime.d.ts +5 -0
- package/dist/project/release/executeProjectReleaseControlWithRuntime.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseControlWithRuntime.js +37 -0
- package/dist/project/release/executeProjectReleaseControlWithRuntime.js.map +1 -0
- package/dist/project/release/executeProjectReleaseIosMutation.d.ts +10 -0
- package/dist/project/release/executeProjectReleaseIosMutation.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseIosMutation.js +34 -0
- package/dist/project/release/executeProjectReleaseIosMutation.js.map +1 -0
- package/dist/project/release/executeProjectReleaseMutation.d.ts +12 -0
- package/dist/project/release/executeProjectReleaseMutation.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseMutation.js +32 -0
- package/dist/project/release/executeProjectReleaseMutation.js.map +1 -0
- package/dist/project/release/executeProjectReleaseWithRuntime.d.ts +5 -0
- package/dist/project/release/executeProjectReleaseWithRuntime.d.ts.map +1 -0
- package/dist/project/release/executeProjectReleaseWithRuntime.js +64 -0
- package/dist/project/release/executeProjectReleaseWithRuntime.js.map +1 -0
- package/dist/project/release/findProjectReleaseTargetState.d.ts +5 -0
- package/dist/project/release/findProjectReleaseTargetState.d.ts.map +1 -0
- package/dist/project/release/findProjectReleaseTargetState.js +5 -0
- package/dist/project/release/findProjectReleaseTargetState.js.map +1 -0
- package/dist/project/release/inspectExpectedProjectReleaseObserved.d.ts +10 -0
- package/dist/project/release/inspectExpectedProjectReleaseObserved.d.ts.map +1 -0
- package/dist/project/release/inspectExpectedProjectReleaseObserved.js +9 -0
- package/dist/project/release/inspectExpectedProjectReleaseObserved.js.map +1 -0
- package/dist/project/release/inspectProjectRelease.d.ts +4 -0
- package/dist/project/release/inspectProjectRelease.d.ts.map +1 -0
- package/dist/project/release/inspectProjectRelease.js +6 -0
- package/dist/project/release/inspectProjectRelease.js.map +1 -0
- package/dist/project/release/inspectProjectReleaseAndroid.d.ts +13 -0
- package/dist/project/release/inspectProjectReleaseAndroid.d.ts.map +1 -0
- package/dist/project/release/inspectProjectReleaseAndroid.js +43 -0
- package/dist/project/release/inspectProjectReleaseAndroid.js.map +1 -0
- package/dist/project/release/inspectProjectReleaseIos.d.ts +13 -0
- package/dist/project/release/inspectProjectReleaseIos.d.ts.map +1 -0
- package/dist/project/release/inspectProjectReleaseIos.js +69 -0
- package/dist/project/release/inspectProjectReleaseIos.js.map +1 -0
- package/dist/project/release/inspectProjectReleaseObserved.d.ts +13 -0
- package/dist/project/release/inspectProjectReleaseObserved.d.ts.map +1 -0
- package/dist/project/release/inspectProjectReleaseObserved.js +36 -0
- package/dist/project/release/inspectProjectReleaseObserved.js.map +1 -0
- package/dist/project/release/inspectProjectReleaseWeb.d.ts +7 -0
- package/dist/project/release/inspectProjectReleaseWeb.d.ts.map +1 -0
- package/dist/project/release/inspectProjectReleaseWeb.js +12 -0
- package/dist/project/release/inspectProjectReleaseWeb.js.map +1 -0
- package/dist/project/release/inspectProjectReleaseWithRuntime.d.ts +5 -0
- package/dist/project/release/inspectProjectReleaseWithRuntime.d.ts.map +1 -0
- package/dist/project/release/inspectProjectReleaseWithRuntime.js +48 -0
- package/dist/project/release/inspectProjectReleaseWithRuntime.js.map +1 -0
- package/dist/project/release/mapDeploymentExecutionToReleaseMutation.d.ts +4 -0
- package/dist/project/release/mapDeploymentExecutionToReleaseMutation.d.ts.map +1 -0
- package/dist/project/release/mapDeploymentExecutionToReleaseMutation.js +12 -0
- package/dist/project/release/mapDeploymentExecutionToReleaseMutation.js.map +1 -0
- package/dist/project/release/parseProjectRelease.d.ts +11 -0
- package/dist/project/release/parseProjectRelease.d.ts.map +1 -0
- package/dist/project/release/parseProjectRelease.js +120 -0
- package/dist/project/release/parseProjectRelease.js.map +1 -0
- package/dist/project/release/publishProjectReleaseAndroid.d.ts +4 -0
- package/dist/project/release/publishProjectReleaseAndroid.d.ts.map +1 -0
- package/dist/project/release/publishProjectReleaseAndroid.js +36 -0
- package/dist/project/release/publishProjectReleaseAndroid.js.map +1 -0
- package/dist/project/release/publishProjectReleaseIos.d.ts +4 -0
- package/dist/project/release/publishProjectReleaseIos.d.ts.map +1 -0
- package/dist/project/release/publishProjectReleaseIos.js +32 -0
- package/dist/project/release/publishProjectReleaseIos.js.map +1 -0
- package/dist/project/release/publishProjectReleaseTarget.d.ts +10 -0
- package/dist/project/release/publishProjectReleaseTarget.d.ts.map +1 -0
- package/dist/project/release/publishProjectReleaseTarget.js +16 -0
- package/dist/project/release/publishProjectReleaseTarget.js.map +1 -0
- package/dist/project/release/publishProjectReleaseWeb.d.ts +4 -0
- package/dist/project/release/publishProjectReleaseWeb.d.ts.map +1 -0
- package/dist/project/release/publishProjectReleaseWeb.js +39 -0
- package/dist/project/release/publishProjectReleaseWeb.js.map +1 -0
- package/dist/project/release/readProjectRelease.d.ts +5 -0
- package/dist/project/release/readProjectRelease.d.ts.map +1 -0
- package/dist/project/release/readProjectRelease.js +13 -0
- package/dist/project/release/readProjectRelease.js.map +1 -0
- package/dist/project/release/readProjectReleaseAndroidArtifact.d.ts +11 -0
- package/dist/project/release/readProjectReleaseAndroidArtifact.d.ts.map +1 -0
- package/dist/project/release/readProjectReleaseAndroidArtifact.js +42 -0
- package/dist/project/release/readProjectReleaseAndroidArtifact.js.map +1 -0
- package/dist/project/release/readProjectReleaseIosArtifact.d.ts +12 -0
- package/dist/project/release/readProjectReleaseIosArtifact.d.ts.map +1 -0
- package/dist/project/release/readProjectReleaseIosArtifact.js +42 -0
- package/dist/project/release/readProjectReleaseIosArtifact.js.map +1 -0
- package/dist/project/release/recordProjectReleaseExecution.d.ts +13 -0
- package/dist/project/release/recordProjectReleaseExecution.d.ts.map +1 -0
- package/dist/project/release/recordProjectReleaseExecution.js +29 -0
- package/dist/project/release/recordProjectReleaseExecution.js.map +1 -0
- package/dist/project/release/resolveProjectReleaseAccess.d.ts +4 -0
- package/dist/project/release/resolveProjectReleaseAccess.d.ts.map +1 -0
- package/dist/project/release/resolveProjectReleaseAccess.js +10 -0
- package/dist/project/release/resolveProjectReleaseAccess.js.map +1 -0
- package/dist/project/release/resolveProjectReleaseMutationContext.d.ts +17 -0
- package/dist/project/release/resolveProjectReleaseMutationContext.d.ts.map +1 -0
- package/dist/project/release/resolveProjectReleaseMutationContext.js +36 -0
- package/dist/project/release/resolveProjectReleaseMutationContext.js.map +1 -0
- package/dist/project/release/resolveProjectReleaseTargets.d.ts +15 -0
- package/dist/project/release/resolveProjectReleaseTargets.d.ts.map +1 -0
- package/dist/project/release/resolveProjectReleaseTargets.js +77 -0
- package/dist/project/release/resolveProjectReleaseTargets.js.map +1 -0
- package/dist/project/release/resumeProjectRelease.d.ts +4 -0
- package/dist/project/release/resumeProjectRelease.d.ts.map +1 -0
- package/dist/project/release/resumeProjectRelease.js +6 -0
- package/dist/project/release/resumeProjectRelease.js.map +1 -0
- package/dist/project/release/resumeProjectReleaseWithRuntime.d.ts +5 -0
- package/dist/project/release/resumeProjectReleaseWithRuntime.d.ts.map +1 -0
- package/dist/project/release/resumeProjectReleaseWithRuntime.js +69 -0
- package/dist/project/release/resumeProjectReleaseWithRuntime.js.map +1 -0
- package/dist/project/releaseHistory/ProjectReleaseHistoryRecord.d.ts +14 -0
- package/dist/project/releaseHistory/ProjectReleaseHistoryRecord.d.ts.map +1 -0
- package/dist/project/releaseHistory/ProjectReleaseHistoryRecord.js +2 -0
- package/dist/project/releaseHistory/ProjectReleaseHistoryRecord.js.map +1 -0
- package/dist/project/releaseHistory/createProjectReleaseHistoryRecord.d.ts +12 -0
- package/dist/project/releaseHistory/createProjectReleaseHistoryRecord.d.ts.map +1 -0
- package/dist/project/releaseHistory/createProjectReleaseHistoryRecord.js +20 -0
- package/dist/project/releaseHistory/createProjectReleaseHistoryRecord.js.map +1 -0
- package/dist/project/releaseHistory/listProjectReleaseHistory.d.ts +5 -0
- package/dist/project/releaseHistory/listProjectReleaseHistory.d.ts.map +1 -0
- package/dist/project/releaseHistory/listProjectReleaseHistory.js +34 -0
- package/dist/project/releaseHistory/listProjectReleaseHistory.js.map +1 -0
- package/dist/project/releaseHistory/parseProjectReleaseHistoryRecord.d.ts +3 -0
- package/dist/project/releaseHistory/parseProjectReleaseHistoryRecord.d.ts.map +1 -0
- package/dist/project/releaseHistory/parseProjectReleaseHistoryRecord.js +56 -0
- package/dist/project/releaseHistory/parseProjectReleaseHistoryRecord.js.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryDesired.d.ts +3 -0
- package/dist/project/releaseHistory/parseReleaseHistoryDesired.d.ts.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryDesired.js +25 -0
- package/dist/project/releaseHistory/parseReleaseHistoryDesired.js.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryExecution.d.ts +3 -0
- package/dist/project/releaseHistory/parseReleaseHistoryExecution.d.ts.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryExecution.js +54 -0
- package/dist/project/releaseHistory/parseReleaseHistoryExecution.js.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlan.d.ts +3 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlan.d.ts.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlan.js +54 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlan.js.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlanStep.d.ts +3 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlanStep.d.ts.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlanStep.js +58 -0
- package/dist/project/releaseHistory/parseReleaseHistoryPlanStep.js.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryResult.d.ts +3 -0
- package/dist/project/releaseHistory/parseReleaseHistoryResult.d.ts.map +1 -0
- package/dist/project/releaseHistory/parseReleaseHistoryResult.js +62 -0
- package/dist/project/releaseHistory/parseReleaseHistoryResult.js.map +1 -0
- package/dist/project/releaseHistory/readProjectReleaseHistory.d.ts +6 -0
- package/dist/project/releaseHistory/readProjectReleaseHistory.d.ts.map +1 -0
- package/dist/project/releaseHistory/readProjectReleaseHistory.js +26 -0
- package/dist/project/releaseHistory/readProjectReleaseHistory.js.map +1 -0
- package/dist/project/releaseHistory/recordProjectReleaseHistory.d.ts +6 -0
- package/dist/project/releaseHistory/recordProjectReleaseHistory.d.ts.map +1 -0
- package/dist/project/releaseHistory/recordProjectReleaseHistory.js +41 -0
- package/dist/project/releaseHistory/recordProjectReleaseHistory.js.map +1 -0
- package/dist/project/web/executeProjectWebDeployment.js +1 -0
- package/dist/project/web/executeProjectWebDeployment.js.map +1 -1
- package/dist/project/web/readCurrentProjectWebProductionDeployment.d.ts +3 -0
- package/dist/project/web/readCurrentProjectWebProductionDeployment.d.ts.map +1 -0
- package/dist/project/web/readCurrentProjectWebProductionDeployment.js +24 -0
- package/dist/project/web/readCurrentProjectWebProductionDeployment.js.map +1 -0
- package/dist/project/web/recordProjectWebDeployment.d.ts +2 -0
- package/dist/project/web/recordProjectWebDeployment.d.ts.map +1 -1
- package/dist/project/web/recordProjectWebDeployment.js +5 -1
- package/dist/project/web/recordProjectWebDeployment.js.map +1 -1
- package/dist/providers/appStoreConnect/AppStoreReleaseLocalizationResource.d.ts +6 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseLocalizationResource.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseLocalizationResource.js +2 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseLocalizationResource.js.map +1 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseSnapshot.d.ts +22 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseSnapshot.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseSnapshot.js +2 -0
- package/dist/providers/appStoreConnect/AppStoreReleaseSnapshot.js.map +1 -0
- package/dist/providers/appStoreConnect/appStoreReleaseUrls.d.ts +13 -0
- package/dist/providers/appStoreConnect/appStoreReleaseUrls.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/appStoreReleaseUrls.js +57 -0
- package/dist/providers/appStoreConnect/appStoreReleaseUrls.js.map +1 -0
- package/dist/providers/appStoreConnect/cancelAppStoreReviewSubmission.d.ts +7 -0
- package/dist/providers/appStoreConnect/cancelAppStoreReviewSubmission.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/cancelAppStoreReviewSubmission.js +17 -0
- package/dist/providers/appStoreConnect/cancelAppStoreReviewSubmission.js.map +1 -0
- package/dist/providers/appStoreConnect/completeAppStorePhasedRelease.d.ts +7 -0
- package/dist/providers/appStoreConnect/completeAppStorePhasedRelease.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/completeAppStorePhasedRelease.js +17 -0
- package/dist/providers/appStoreConnect/completeAppStorePhasedRelease.js.map +1 -0
- package/dist/providers/appStoreConnect/createAppStorePhasedRelease.d.ts +7 -0
- package/dist/providers/appStoreConnect/createAppStorePhasedRelease.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/createAppStorePhasedRelease.js +21 -0
- package/dist/providers/appStoreConnect/createAppStorePhasedRelease.js.map +1 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmission.d.ts +7 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmission.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmission.js +37 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmission.js.map +1 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmissionItem.d.ts +8 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmissionItem.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmissionItem.js +23 -0
- package/dist/providers/appStoreConnect/createAppStoreReviewSubmissionItem.js.map +1 -0
- package/dist/providers/appStoreConnect/createAppStoreVersionReleaseRequest.d.ts +7 -0
- package/dist/providers/appStoreConnect/createAppStoreVersionReleaseRequest.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/createAppStoreVersionReleaseRequest.js +20 -0
- package/dist/providers/appStoreConnect/createAppStoreVersionReleaseRequest.js.map +1 -0
- package/dist/providers/appStoreConnect/deleteAppStorePhasedRelease.d.ts +7 -0
- package/dist/providers/appStoreConnect/deleteAppStorePhasedRelease.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/deleteAppStorePhasedRelease.js +10 -0
- package/dist/providers/appStoreConnect/deleteAppStorePhasedRelease.js.map +1 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseControl.d.ts +21 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseControl.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseControl.js +64 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseControl.js.map +1 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseMutation.d.ts +19 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseMutation.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseMutation.js +85 -0
- package/dist/providers/appStoreConnect/executeAppStoreReleaseMutation.js.map +1 -0
- package/dist/providers/appStoreConnect/inspectAppStoreReleaseState.d.ts +28 -0
- package/dist/providers/appStoreConnect/inspectAppStoreReleaseState.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/inspectAppStoreReleaseState.js +153 -0
- package/dist/providers/appStoreConnect/inspectAppStoreReleaseState.js.map +1 -0
- package/dist/providers/appStoreConnect/normalizeAppStoreReleaseObservation.d.ts +11 -0
- package/dist/providers/appStoreConnect/normalizeAppStoreReleaseObservation.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/normalizeAppStoreReleaseObservation.js +28 -0
- package/dist/providers/appStoreConnect/normalizeAppStoreReleaseObservation.js.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStorePhasedRelease.d.ts +3 -0
- package/dist/providers/appStoreConnect/parseAppStorePhasedRelease.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStorePhasedRelease.js +42 -0
- package/dist/providers/appStoreConnect/parseAppStorePhasedRelease.js.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseLocalizations.d.ts +3 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseLocalizations.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseLocalizations.js +42 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseLocalizations.js.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseNotes.d.ts +3 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseNotes.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseNotes.js +44 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseNotes.js.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseVersion.d.ts +6 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseVersion.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseVersion.js +38 -0
- package/dist/providers/appStoreConnect/parseAppStoreReleaseVersion.js.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReviewSubmission.d.ts +3 -0
- package/dist/providers/appStoreConnect/parseAppStoreReviewSubmission.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/parseAppStoreReviewSubmission.js +49 -0
- package/dist/providers/appStoreConnect/parseAppStoreReviewSubmission.js.map +1 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseJson.d.ts +10 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseJson.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseJson.js +18 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseJson.js.map +1 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseLocalizations.d.ts +8 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseLocalizations.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseLocalizations.js +18 -0
- package/dist/providers/appStoreConnect/readAppStoreReleaseLocalizations.js.map +1 -0
- package/dist/providers/appStoreConnect/submitAppStoreReviewSubmission.d.ts +7 -0
- package/dist/providers/appStoreConnect/submitAppStoreReviewSubmission.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/submitAppStoreReviewSubmission.js +17 -0
- package/dist/providers/appStoreConnect/submitAppStoreReviewSubmission.js.map +1 -0
- package/dist/providers/appStoreConnect/syncAppStoreReleaseNotes.d.ts +9 -0
- package/dist/providers/appStoreConnect/syncAppStoreReleaseNotes.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/syncAppStoreReleaseNotes.js +57 -0
- package/dist/providers/appStoreConnect/syncAppStoreReleaseNotes.js.map +1 -0
- package/dist/providers/appStoreConnect/updateAppStorePhasedReleaseState.d.ts +8 -0
- package/dist/providers/appStoreConnect/updateAppStorePhasedReleaseState.d.ts.map +1 -0
- package/dist/providers/appStoreConnect/updateAppStorePhasedReleaseState.js +17 -0
- package/dist/providers/appStoreConnect/updateAppStorePhasedReleaseState.js.map +1 -0
- package/dist/providers/googlePlay/GooglePlayEditableRelease.d.ts +9 -0
- package/dist/providers/googlePlay/GooglePlayEditableRelease.d.ts.map +1 -0
- package/dist/providers/googlePlay/GooglePlayEditableRelease.js +2 -0
- package/dist/providers/googlePlay/GooglePlayEditableRelease.js.map +1 -0
- package/dist/providers/googlePlay/GooglePlayEditableTrack.d.ts +7 -0
- package/dist/providers/googlePlay/GooglePlayEditableTrack.d.ts.map +1 -0
- package/dist/providers/googlePlay/GooglePlayEditableTrack.js +2 -0
- package/dist/providers/googlePlay/GooglePlayEditableTrack.js.map +1 -0
- package/dist/providers/googlePlay/GooglePlayReleaseSnapshot.d.ts +14 -0
- package/dist/providers/googlePlay/GooglePlayReleaseSnapshot.d.ts.map +1 -0
- package/dist/providers/googlePlay/GooglePlayReleaseSnapshot.js +2 -0
- package/dist/providers/googlePlay/GooglePlayReleaseSnapshot.js.map +1 -0
- package/dist/providers/googlePlay/createGooglePlayTrackControlBody.d.ts +12 -0
- package/dist/providers/googlePlay/createGooglePlayTrackControlBody.d.ts.map +1 -0
- package/dist/providers/googlePlay/createGooglePlayTrackControlBody.js +24 -0
- package/dist/providers/googlePlay/createGooglePlayTrackControlBody.js.map +1 -0
- package/dist/providers/googlePlay/createGooglePlayTrackUpdateBody.d.ts +10 -0
- package/dist/providers/googlePlay/createGooglePlayTrackUpdateBody.d.ts.map +1 -0
- package/dist/providers/googlePlay/createGooglePlayTrackUpdateBody.js +49 -0
- package/dist/providers/googlePlay/createGooglePlayTrackUpdateBody.js.map +1 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseControl.d.ts +22 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseControl.d.ts.map +1 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseControl.js +34 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseControl.js.map +1 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseMutation.d.ts +20 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseMutation.d.ts.map +1 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseMutation.js +53 -0
- package/dist/providers/googlePlay/executeGooglePlayReleaseMutation.js.map +1 -0
- package/dist/providers/googlePlay/googlePlayReleaseUrls.d.ts +3 -0
- package/dist/providers/googlePlay/googlePlayReleaseUrls.d.ts.map +1 -0
- package/dist/providers/googlePlay/googlePlayReleaseUrls.js +7 -0
- package/dist/providers/googlePlay/googlePlayReleaseUrls.js.map +1 -0
- package/dist/providers/googlePlay/inspectGooglePlayReleaseState.d.ts +28 -0
- package/dist/providers/googlePlay/inspectGooglePlayReleaseState.d.ts.map +1 -0
- package/dist/providers/googlePlay/inspectGooglePlayReleaseState.js +109 -0
- package/dist/providers/googlePlay/inspectGooglePlayReleaseState.js.map +1 -0
- package/dist/providers/googlePlay/mergeGooglePlayReleaseNotes.d.ts +6 -0
- package/dist/providers/googlePlay/mergeGooglePlayReleaseNotes.d.ts.map +1 -0
- package/dist/providers/googlePlay/mergeGooglePlayReleaseNotes.js +11 -0
- package/dist/providers/googlePlay/mergeGooglePlayReleaseNotes.js.map +1 -0
- package/dist/providers/googlePlay/normalizeGooglePlayReleaseObservation.d.ts +11 -0
- package/dist/providers/googlePlay/normalizeGooglePlayReleaseObservation.d.ts.map +1 -0
- package/dist/providers/googlePlay/normalizeGooglePlayReleaseObservation.js +32 -0
- package/dist/providers/googlePlay/normalizeGooglePlayReleaseObservation.js.map +1 -0
- package/dist/providers/googlePlay/parseGooglePlayConfiguredTrack.d.ts +4 -0
- package/dist/providers/googlePlay/parseGooglePlayConfiguredTrack.d.ts.map +1 -0
- package/dist/providers/googlePlay/parseGooglePlayConfiguredTrack.js +99 -0
- package/dist/providers/googlePlay/parseGooglePlayConfiguredTrack.js.map +1 -0
- package/dist/providers/googlePlay/parseGooglePlayEditableTrack.d.ts +4 -0
- package/dist/providers/googlePlay/parseGooglePlayEditableTrack.d.ts.map +1 -0
- package/dist/providers/googlePlay/parseGooglePlayEditableTrack.js +88 -0
- package/dist/providers/googlePlay/parseGooglePlayEditableTrack.js.map +1 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseControlInEdit.d.ts +17 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseControlInEdit.d.ts.map +1 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseControlInEdit.js +36 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseControlInEdit.js.map +1 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseInEdit.d.ts +15 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseInEdit.d.ts.map +1 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseInEdit.js +37 -0
- package/dist/providers/googlePlay/updateGooglePlayReleaseInEdit.js.map +1 -0
- package/dist/providers/release/createWebReleaseObservation.d.ts +6 -0
- package/dist/providers/release/createWebReleaseObservation.d.ts.map +1 -0
- package/dist/providers/release/createWebReleaseObservation.js +8 -0
- package/dist/providers/release/createWebReleaseObservation.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { completeAppStorePhasedRelease } from './completeAppStorePhasedRelease';
|
|
2
|
+
import { createAppStorePhasedRelease } from './createAppStorePhasedRelease';
|
|
3
|
+
import { createAppStoreReviewSubmission } from './createAppStoreReviewSubmission';
|
|
4
|
+
import { createAppStoreReviewSubmissionItem } from './createAppStoreReviewSubmissionItem';
|
|
5
|
+
import { createAppStoreVersionReleaseRequest } from './createAppStoreVersionReleaseRequest';
|
|
6
|
+
import { resolveAppStoreConnectToken } from './resolveAppStoreConnectToken';
|
|
7
|
+
import { submitAppStoreReviewSubmission } from './submitAppStoreReviewSubmission';
|
|
8
|
+
import { syncAppStoreReleaseNotes } from './syncAppStoreReleaseNotes';
|
|
9
|
+
export async function executeAppStoreReleaseMutation(options) {
|
|
10
|
+
if (options.step.target !== 'ios')
|
|
11
|
+
return failed('APP_STORE_RELEASE_STEP_UNSUPPORTED');
|
|
12
|
+
if (options.snapshot.versionId === null)
|
|
13
|
+
return failed('APP_STORE_RELEASE_VERSION_REQUIRED');
|
|
14
|
+
const access = await resolveAppStoreConnectToken(options);
|
|
15
|
+
if (!access.ok)
|
|
16
|
+
return blocked(access.action.code);
|
|
17
|
+
return executeWithToken(options, access.token, options.snapshot.versionId);
|
|
18
|
+
}
|
|
19
|
+
function executeWithToken(options, token, versionId) {
|
|
20
|
+
switch (options.step.operation) {
|
|
21
|
+
case 'sync-notes':
|
|
22
|
+
return noteResult(options, token, versionId);
|
|
23
|
+
case 'rollout':
|
|
24
|
+
return executeRollout(options, token, versionId);
|
|
25
|
+
case 'submit-review':
|
|
26
|
+
return executeReviewSubmission(options, token, versionId);
|
|
27
|
+
case 'release':
|
|
28
|
+
return releaseResult(options, token, versionId);
|
|
29
|
+
default:
|
|
30
|
+
return Promise.resolve(failed('APP_STORE_RELEASE_STEP_UNSUPPORTED'));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function noteResult(options, token, versionId) {
|
|
34
|
+
return booleanResult(syncAppStoreReleaseNotes({
|
|
35
|
+
versionId,
|
|
36
|
+
notes: options.desired.notes,
|
|
37
|
+
token,
|
|
38
|
+
request: options.request,
|
|
39
|
+
}), 'APP_STORE_RELEASE_NOTES_UPDATE_FAILED');
|
|
40
|
+
}
|
|
41
|
+
function releaseResult(options, token, versionId) {
|
|
42
|
+
return booleanResult(createAppStoreVersionReleaseRequest({ versionId, token, request: options.request }), 'APP_STORE_RELEASE_REQUEST_FAILED');
|
|
43
|
+
}
|
|
44
|
+
async function executeRollout(options, token, versionId) {
|
|
45
|
+
const mode = options.desired.rollout.ios?.mode ?? 'immediate';
|
|
46
|
+
if (mode === 'staged') {
|
|
47
|
+
return booleanResult(createAppStorePhasedRelease({ versionId, token, request: options.request }), 'APP_STORE_PHASED_RELEASE_CREATE_FAILED');
|
|
48
|
+
}
|
|
49
|
+
const phased = options.snapshot.phasedRelease;
|
|
50
|
+
if (phased === null)
|
|
51
|
+
return failed('APP_STORE_PHASED_RELEASE_REQUIRED');
|
|
52
|
+
return booleanResult(completeAppStorePhasedRelease({
|
|
53
|
+
phasedReleaseId: phased.id,
|
|
54
|
+
token,
|
|
55
|
+
request: options.request,
|
|
56
|
+
}), 'APP_STORE_PHASED_RELEASE_COMPLETE_FAILED');
|
|
57
|
+
}
|
|
58
|
+
async function executeReviewSubmission(options, token, versionId) {
|
|
59
|
+
const reviewSubmissionId = await createAppStoreReviewSubmission({
|
|
60
|
+
appId: options.snapshot.appId,
|
|
61
|
+
token,
|
|
62
|
+
request: options.request,
|
|
63
|
+
});
|
|
64
|
+
if (reviewSubmissionId === null)
|
|
65
|
+
return failed('APP_STORE_REVIEW_SUBMISSION_CREATE_FAILED');
|
|
66
|
+
const item = await createAppStoreReviewSubmissionItem({
|
|
67
|
+
reviewSubmissionId,
|
|
68
|
+
versionId,
|
|
69
|
+
token,
|
|
70
|
+
request: options.request,
|
|
71
|
+
});
|
|
72
|
+
if (!item)
|
|
73
|
+
return failed('APP_STORE_REVIEW_ITEM_CREATE_FAILED');
|
|
74
|
+
return booleanResult(submitAppStoreReviewSubmission({ reviewSubmissionId, token, request: options.request }), 'APP_STORE_REVIEW_SUBMIT_FAILED');
|
|
75
|
+
}
|
|
76
|
+
async function booleanResult(operation, code) {
|
|
77
|
+
return (await operation) ? { status: 'completed' } : failed(code);
|
|
78
|
+
}
|
|
79
|
+
function blocked(code) {
|
|
80
|
+
return { status: 'blocked', code };
|
|
81
|
+
}
|
|
82
|
+
function failed(code) {
|
|
83
|
+
return { status: 'failed', code };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=executeAppStoreReleaseMutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeAppStoreReleaseMutation.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/executeAppStoreReleaseMutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';\nimport type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';\nimport type { ReleaseDesiredState } from '../../domain/release/ReleaseDesiredState';\nimport type { ReleasePlanStep } from '../../domain/release/ReleasePlanStep';\nimport type { ReleaseMutationResult } from '../../engine/release/ReleaseMutationResult';\nimport type { AppStoreConnectTokenFactory } from './AppStoreConnectTokenFactory';\nimport type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport type { AppStoreReleaseSnapshot } from './AppStoreReleaseSnapshot';\nimport { completeAppStorePhasedRelease } from './completeAppStorePhasedRelease';\nimport { createAppStorePhasedRelease } from './createAppStorePhasedRelease';\nimport { createAppStoreReviewSubmission } from './createAppStoreReviewSubmission';\nimport { createAppStoreReviewSubmissionItem } from './createAppStoreReviewSubmissionItem';\nimport { createAppStoreVersionReleaseRequest } from './createAppStoreVersionReleaseRequest';\nimport { resolveAppStoreConnectToken } from './resolveAppStoreConnectToken';\nimport { submitAppStoreReviewSubmission } from './submitAppStoreReviewSubmission';\nimport { syncAppStoreReleaseNotes } from './syncAppStoreReleaseNotes';\n\nexport async function executeAppStoreReleaseMutation(options: {\n readonly step: ReleasePlanStep;\n readonly desired: ReleaseDesiredState;\n readonly snapshot: AppStoreReleaseSnapshot;\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n readonly createToken: AppStoreConnectTokenFactory;\n readonly request: AppStoreConnectTransport;\n readonly now: Date;\n}): Promise<ReleaseMutationResult> {\n if (options.step.target !== 'ios') return failed('APP_STORE_RELEASE_STEP_UNSUPPORTED');\n if (options.snapshot.versionId === null) return failed('APP_STORE_RELEASE_VERSION_REQUIRED');\n const access = await resolveAppStoreConnectToken(options);\n if (!access.ok) return blocked(access.action.code);\n return executeWithToken(options, access.token, options.snapshot.versionId);\n}\n\nfunction executeWithToken(\n options: Parameters<typeof executeAppStoreReleaseMutation>[0],\n token: string,\n versionId: string,\n): Promise<ReleaseMutationResult> {\n switch (options.step.operation) {\n case 'sync-notes':\n return noteResult(options, token, versionId);\n case 'rollout':\n return executeRollout(options, token, versionId);\n case 'submit-review':\n return executeReviewSubmission(options, token, versionId);\n case 'release':\n return releaseResult(options, token, versionId);\n default:\n return Promise.resolve(failed('APP_STORE_RELEASE_STEP_UNSUPPORTED'));\n }\n}\n\nfunction noteResult(\n options: Parameters<typeof executeAppStoreReleaseMutation>[0],\n token: string,\n versionId: string,\n): Promise<ReleaseMutationResult> {\n return booleanResult(\n syncAppStoreReleaseNotes({\n versionId,\n notes: options.desired.notes,\n token,\n request: options.request,\n }),\n 'APP_STORE_RELEASE_NOTES_UPDATE_FAILED',\n );\n}\n\nfunction releaseResult(\n options: Parameters<typeof executeAppStoreReleaseMutation>[0],\n token: string,\n versionId: string,\n): Promise<ReleaseMutationResult> {\n return booleanResult(\n createAppStoreVersionReleaseRequest({ versionId, token, request: options.request }),\n 'APP_STORE_RELEASE_REQUEST_FAILED',\n );\n}\n\nasync function executeRollout(\n options: Parameters<typeof executeAppStoreReleaseMutation>[0],\n token: string,\n versionId: string,\n): Promise<ReleaseMutationResult> {\n const mode = options.desired.rollout.ios?.mode ?? 'immediate';\n if (mode === 'staged') {\n return booleanResult(\n createAppStorePhasedRelease({ versionId, token, request: options.request }),\n 'APP_STORE_PHASED_RELEASE_CREATE_FAILED',\n );\n }\n const phased = options.snapshot.phasedRelease;\n if (phased === null) return failed('APP_STORE_PHASED_RELEASE_REQUIRED');\n return booleanResult(\n completeAppStorePhasedRelease({\n phasedReleaseId: phased.id,\n token,\n request: options.request,\n }),\n 'APP_STORE_PHASED_RELEASE_COMPLETE_FAILED',\n );\n}\n\nasync function executeReviewSubmission(\n options: Parameters<typeof executeAppStoreReleaseMutation>[0],\n token: string,\n versionId: string,\n): Promise<ReleaseMutationResult> {\n const reviewSubmissionId = await createAppStoreReviewSubmission({\n appId: options.snapshot.appId,\n token,\n request: options.request,\n });\n if (reviewSubmissionId === null) return failed('APP_STORE_REVIEW_SUBMISSION_CREATE_FAILED');\n const item = await createAppStoreReviewSubmissionItem({\n reviewSubmissionId,\n versionId,\n token,\n request: options.request,\n });\n if (!item) return failed('APP_STORE_REVIEW_ITEM_CREATE_FAILED');\n return booleanResult(\n submitAppStoreReviewSubmission({ reviewSubmissionId, token, request: options.request }),\n 'APP_STORE_REVIEW_SUBMIT_FAILED',\n );\n}\n\nasync function booleanResult(\n operation: Promise<boolean>,\n code: string,\n): Promise<ReleaseMutationResult> {\n return (await operation) ? { status: 'completed' } : failed(code);\n}\n\nfunction blocked(code: string): ReleaseMutationResult {\n return { status: 'blocked', code };\n}\n\nfunction failed(code: string): ReleaseMutationResult {\n return { status: 'failed', code };\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';
|
|
2
|
+
import type { DeploymentFailure } from '../../domain/DeploymentFailure';
|
|
3
|
+
import type { DeploymentRequiredAction } from '../../domain/DeploymentRequiredAction';
|
|
4
|
+
import type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';
|
|
5
|
+
import type { AppStoreConnectTokenFactory } from './AppStoreConnectTokenFactory';
|
|
6
|
+
import type { AppStoreConnectTransport } from './AppStoreConnectTransport';
|
|
7
|
+
import type { AppStoreReleaseSnapshot } from './AppStoreReleaseSnapshot';
|
|
8
|
+
type AppStoreReleaseInspectionResult = {
|
|
9
|
+
readonly status: 'completed';
|
|
10
|
+
readonly state: AppStoreReleaseSnapshot;
|
|
11
|
+
} | {
|
|
12
|
+
readonly status: 'action-required';
|
|
13
|
+
readonly action: DeploymentRequiredAction;
|
|
14
|
+
} | {
|
|
15
|
+
readonly status: 'failed';
|
|
16
|
+
readonly failure: DeploymentFailure;
|
|
17
|
+
};
|
|
18
|
+
export declare function inspectAppStoreReleaseState(options: {
|
|
19
|
+
readonly bundleIdentifier: string;
|
|
20
|
+
readonly version: string;
|
|
21
|
+
readonly credentials: readonly DeploymentCredentialReference[];
|
|
22
|
+
readonly resolveSecret: DeploymentSecretResolver;
|
|
23
|
+
readonly createToken: AppStoreConnectTokenFactory;
|
|
24
|
+
readonly request: AppStoreConnectTransport;
|
|
25
|
+
readonly now: Date;
|
|
26
|
+
}): Promise<AppStoreReleaseInspectionResult>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=inspectAppStoreReleaseState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspectAppStoreReleaseState.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/inspectAppStoreReleaseState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAezE,KAAK,+BAA+B,GAChC;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEvE,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAW3C"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { trackAppStoreConnectRequests } from './AppStoreConnectRequestTracker';
|
|
2
|
+
import { appStoreConnectAppsUrl } from './appStoreConnectUrls';
|
|
3
|
+
import { appStorePhasedReleaseUrl, appStoreReleaseNotesUrl, appStoreReleaseVersionsUrl, appStoreReviewSubmissionsUrl, } from './appStoreReleaseUrls';
|
|
4
|
+
import { parseAppStoreAppId } from './parseAppStoreAppId';
|
|
5
|
+
import { parseAppStorePhasedRelease } from './parseAppStorePhasedRelease';
|
|
6
|
+
import { parseAppStoreReleaseNotes } from './parseAppStoreReleaseNotes';
|
|
7
|
+
import { parseAppStoreReleaseVersion } from './parseAppStoreReleaseVersion';
|
|
8
|
+
import { parseAppStoreReviewSubmission } from './parseAppStoreReviewSubmission';
|
|
9
|
+
import { readAppStoreReleaseJson } from './readAppStoreReleaseJson';
|
|
10
|
+
import { resolveAppStoreConnectToken } from './resolveAppStoreConnectToken';
|
|
11
|
+
export async function inspectAppStoreReleaseState(options) {
|
|
12
|
+
const access = await resolveAppStoreConnectToken(options);
|
|
13
|
+
if (!access.ok)
|
|
14
|
+
return { status: 'action-required', action: access.action };
|
|
15
|
+
const tracker = trackAppStoreConnectRequests(options.request);
|
|
16
|
+
const appId = await readAppId(options, access.token, tracker.request);
|
|
17
|
+
if (appId === false)
|
|
18
|
+
return providerFailure(tracker.blockingStatus());
|
|
19
|
+
if (appId === null)
|
|
20
|
+
return appRequired();
|
|
21
|
+
const version = await readVersion(options, appId, access.token, tracker.request);
|
|
22
|
+
if (version === 'failed')
|
|
23
|
+
return providerFailure(tracker.blockingStatus());
|
|
24
|
+
if (version === null)
|
|
25
|
+
return emptySnapshot(appId, options.version);
|
|
26
|
+
return readVersionDetails(options, appId, version, access.token, tracker.request);
|
|
27
|
+
}
|
|
28
|
+
async function readAppId(options, token, request) {
|
|
29
|
+
const result = await readAppStoreReleaseJson({
|
|
30
|
+
url: appStoreConnectAppsUrl(options.bundleIdentifier),
|
|
31
|
+
token,
|
|
32
|
+
request,
|
|
33
|
+
});
|
|
34
|
+
if (result === null || result.status < 200 || result.status >= 300)
|
|
35
|
+
return false;
|
|
36
|
+
return parseAppStoreAppId(result.value, options.bundleIdentifier);
|
|
37
|
+
}
|
|
38
|
+
async function readVersion(options, appId, token, request) {
|
|
39
|
+
const result = await readAppStoreReleaseJson({
|
|
40
|
+
url: appStoreReleaseVersionsUrl(appId),
|
|
41
|
+
token,
|
|
42
|
+
request,
|
|
43
|
+
});
|
|
44
|
+
if (result === null || result.status < 200 || result.status >= 300)
|
|
45
|
+
return 'failed';
|
|
46
|
+
const parsed = parseAppStoreReleaseVersion(result.value, options.version);
|
|
47
|
+
return parsed === undefined ? 'failed' : parsed;
|
|
48
|
+
}
|
|
49
|
+
async function readVersionDetails(options, appId, version, token, request) {
|
|
50
|
+
const notes = await readNotes(version.versionId, token, request);
|
|
51
|
+
if (notes === null)
|
|
52
|
+
return failed('APP_STORE_RELEASE_RESPONSE_INVALID');
|
|
53
|
+
const review = await readReview(appId, version.versionId, token, request);
|
|
54
|
+
if (review === undefined)
|
|
55
|
+
return failed('APP_STORE_RELEASE_RESPONSE_INVALID');
|
|
56
|
+
const phased = await readPhased(version.versionId, token, request);
|
|
57
|
+
if (phased === undefined)
|
|
58
|
+
return failed('APP_STORE_RELEASE_RESPONSE_INVALID');
|
|
59
|
+
return {
|
|
60
|
+
status: 'completed',
|
|
61
|
+
state: {
|
|
62
|
+
appId,
|
|
63
|
+
version: options.version,
|
|
64
|
+
versionId: version.versionId,
|
|
65
|
+
appVersionState: version.appVersionState,
|
|
66
|
+
...(version.releaseType === undefined ? {} : { releaseType: version.releaseType }),
|
|
67
|
+
releaseNotes: notes,
|
|
68
|
+
reviewSubmission: review,
|
|
69
|
+
phasedRelease: phased,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
async function readNotes(versionId, token, request) {
|
|
74
|
+
const result = await readAppStoreReleaseJson({
|
|
75
|
+
url: appStoreReleaseNotesUrl(versionId),
|
|
76
|
+
token,
|
|
77
|
+
request,
|
|
78
|
+
});
|
|
79
|
+
if (result === null || result.status < 200 || result.status >= 300)
|
|
80
|
+
return null;
|
|
81
|
+
return parseAppStoreReleaseNotes(result.value);
|
|
82
|
+
}
|
|
83
|
+
async function readReview(appId, versionId, token, request) {
|
|
84
|
+
const result = await readAppStoreReleaseJson({
|
|
85
|
+
url: appStoreReviewSubmissionsUrl(appId),
|
|
86
|
+
token,
|
|
87
|
+
request,
|
|
88
|
+
});
|
|
89
|
+
if (result === null || result.status < 200 || result.status >= 300)
|
|
90
|
+
return undefined;
|
|
91
|
+
return parseAppStoreReviewSubmission(result.value, versionId);
|
|
92
|
+
}
|
|
93
|
+
async function readPhased(versionId, token, request) {
|
|
94
|
+
const result = await readAppStoreReleaseJson({
|
|
95
|
+
url: appStorePhasedReleaseUrl(versionId),
|
|
96
|
+
token,
|
|
97
|
+
request,
|
|
98
|
+
});
|
|
99
|
+
if (result === null)
|
|
100
|
+
return undefined;
|
|
101
|
+
if (result.status === 404)
|
|
102
|
+
return null;
|
|
103
|
+
if (result.status < 200 || result.status >= 300)
|
|
104
|
+
return undefined;
|
|
105
|
+
return parseAppStorePhasedRelease(result.value);
|
|
106
|
+
}
|
|
107
|
+
function emptySnapshot(appId, version) {
|
|
108
|
+
return {
|
|
109
|
+
status: 'completed',
|
|
110
|
+
state: {
|
|
111
|
+
appId,
|
|
112
|
+
version,
|
|
113
|
+
versionId: null,
|
|
114
|
+
releaseNotes: [],
|
|
115
|
+
reviewSubmission: null,
|
|
116
|
+
phasedRelease: null,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function providerFailure(status) {
|
|
121
|
+
if (status === 401)
|
|
122
|
+
return action('authentication', 'APP_STORE_CONNECT_AUTHENTICATION_REQUIRED');
|
|
123
|
+
if (status === 403)
|
|
124
|
+
return action('manual-action', 'APP_STORE_CONNECT_PERMISSION_REQUIRED');
|
|
125
|
+
return failed('APP_STORE_RELEASE_INSPECTION_FAILED');
|
|
126
|
+
}
|
|
127
|
+
function appRequired() {
|
|
128
|
+
return action('manual-action', 'APP_STORE_APP_REQUIRED');
|
|
129
|
+
}
|
|
130
|
+
function action(type, code) {
|
|
131
|
+
return {
|
|
132
|
+
status: 'action-required',
|
|
133
|
+
action: {
|
|
134
|
+
type,
|
|
135
|
+
provider: 'app-store-connect',
|
|
136
|
+
target: 'ios',
|
|
137
|
+
code,
|
|
138
|
+
message: 'App Store release inspection requires provider action.',
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function failed(code) {
|
|
143
|
+
return {
|
|
144
|
+
status: 'failed',
|
|
145
|
+
failure: {
|
|
146
|
+
code,
|
|
147
|
+
message: 'App Store release state could not be inspected.',
|
|
148
|
+
target: 'ios',
|
|
149
|
+
provider: 'app-store-connect',
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=inspectAppStoreReleaseState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspectAppStoreReleaseState.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/inspectAppStoreReleaseState.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DeploymentCredentialReference } from '../../domain/DeploymentCredentialReference';\nimport type { DeploymentFailure } from '../../domain/DeploymentFailure';\nimport type { DeploymentRequiredAction } from '../../domain/DeploymentRequiredAction';\nimport type { DeploymentSecretResolver } from '../../domain/DeploymentSecretResolver';\nimport { trackAppStoreConnectRequests } from './AppStoreConnectRequestTracker';\nimport type { AppStoreConnectTokenFactory } from './AppStoreConnectTokenFactory';\nimport type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport { appStoreConnectAppsUrl } from './appStoreConnectUrls';\nimport type { AppStoreReleaseSnapshot } from './AppStoreReleaseSnapshot';\nimport {\n appStorePhasedReleaseUrl,\n appStoreReleaseNotesUrl,\n appStoreReleaseVersionsUrl,\n appStoreReviewSubmissionsUrl,\n} from './appStoreReleaseUrls';\nimport { parseAppStoreAppId } from './parseAppStoreAppId';\nimport { parseAppStorePhasedRelease } from './parseAppStorePhasedRelease';\nimport { parseAppStoreReleaseNotes } from './parseAppStoreReleaseNotes';\nimport { parseAppStoreReleaseVersion } from './parseAppStoreReleaseVersion';\nimport { parseAppStoreReviewSubmission } from './parseAppStoreReviewSubmission';\nimport { readAppStoreReleaseJson } from './readAppStoreReleaseJson';\nimport { resolveAppStoreConnectToken } from './resolveAppStoreConnectToken';\n\ntype AppStoreReleaseInspectionResult =\n | { readonly status: 'completed'; readonly state: AppStoreReleaseSnapshot }\n | { readonly status: 'action-required'; readonly action: DeploymentRequiredAction }\n | { readonly status: 'failed'; readonly failure: DeploymentFailure };\n\nexport async function inspectAppStoreReleaseState(options: {\n readonly bundleIdentifier: string;\n readonly version: string;\n readonly credentials: readonly DeploymentCredentialReference[];\n readonly resolveSecret: DeploymentSecretResolver;\n readonly createToken: AppStoreConnectTokenFactory;\n readonly request: AppStoreConnectTransport;\n readonly now: Date;\n}): Promise<AppStoreReleaseInspectionResult> {\n const access = await resolveAppStoreConnectToken(options);\n if (!access.ok) return { status: 'action-required', action: access.action };\n const tracker = trackAppStoreConnectRequests(options.request);\n const appId = await readAppId(options, access.token, tracker.request);\n if (appId === false) return providerFailure(tracker.blockingStatus());\n if (appId === null) return appRequired();\n const version = await readVersion(options, appId, access.token, tracker.request);\n if (version === 'failed') return providerFailure(tracker.blockingStatus());\n if (version === null) return emptySnapshot(appId, options.version);\n return readVersionDetails(options, appId, version, access.token, tracker.request);\n}\n\nasync function readAppId(\n options: Parameters<typeof inspectAppStoreReleaseState>[0],\n token: string,\n request: AppStoreConnectTransport,\n): Promise<string | null | false> {\n const result = await readAppStoreReleaseJson({\n url: appStoreConnectAppsUrl(options.bundleIdentifier),\n token,\n request,\n });\n if (result === null || result.status < 200 || result.status >= 300) return false;\n return parseAppStoreAppId(result.value, options.bundleIdentifier);\n}\n\nasync function readVersion(\n options: Parameters<typeof inspectAppStoreReleaseState>[0],\n appId: string,\n token: string,\n request: AppStoreConnectTransport,\n): Promise<\n | { readonly versionId: string; readonly appVersionState: string; readonly releaseType?: string }\n | null\n | 'failed'\n> {\n const result = await readAppStoreReleaseJson({\n url: appStoreReleaseVersionsUrl(appId),\n token,\n request,\n });\n if (result === null || result.status < 200 || result.status >= 300) return 'failed';\n const parsed = parseAppStoreReleaseVersion(result.value, options.version);\n return parsed === undefined ? 'failed' : parsed;\n}\n\nasync function readVersionDetails(\n options: Parameters<typeof inspectAppStoreReleaseState>[0],\n appId: string,\n version: {\n readonly versionId: string;\n readonly appVersionState: string;\n readonly releaseType?: string;\n },\n token: string,\n request: AppStoreConnectTransport,\n): Promise<AppStoreReleaseInspectionResult> {\n const notes = await readNotes(version.versionId, token, request);\n if (notes === null) return failed('APP_STORE_RELEASE_RESPONSE_INVALID');\n const review = await readReview(appId, version.versionId, token, request);\n if (review === undefined) return failed('APP_STORE_RELEASE_RESPONSE_INVALID');\n const phased = await readPhased(version.versionId, token, request);\n if (phased === undefined) return failed('APP_STORE_RELEASE_RESPONSE_INVALID');\n return {\n status: 'completed',\n state: {\n appId,\n version: options.version,\n versionId: version.versionId,\n appVersionState: version.appVersionState,\n ...(version.releaseType === undefined ? {} : { releaseType: version.releaseType }),\n releaseNotes: notes,\n reviewSubmission: review,\n phasedRelease: phased,\n },\n };\n}\n\nasync function readNotes(\n versionId: string,\n token: string,\n request: AppStoreConnectTransport,\n): Promise<AppStoreReleaseSnapshot['releaseNotes'] | null> {\n const result = await readAppStoreReleaseJson({\n url: appStoreReleaseNotesUrl(versionId),\n token,\n request,\n });\n if (result === null || result.status < 200 || result.status >= 300) return null;\n return parseAppStoreReleaseNotes(result.value);\n}\n\nasync function readReview(\n appId: string,\n versionId: string,\n token: string,\n request: AppStoreConnectTransport,\n): Promise<AppStoreReleaseSnapshot['reviewSubmission'] | undefined> {\n const result = await readAppStoreReleaseJson({\n url: appStoreReviewSubmissionsUrl(appId),\n token,\n request,\n });\n if (result === null || result.status < 200 || result.status >= 300) return undefined;\n return parseAppStoreReviewSubmission(result.value, versionId);\n}\n\nasync function readPhased(\n versionId: string,\n token: string,\n request: AppStoreConnectTransport,\n): Promise<AppStoreReleaseSnapshot['phasedRelease'] | undefined> {\n const result = await readAppStoreReleaseJson({\n url: appStorePhasedReleaseUrl(versionId),\n token,\n request,\n });\n if (result === null) return undefined;\n if (result.status === 404) return null;\n if (result.status < 200 || result.status >= 300) return undefined;\n return parseAppStorePhasedRelease(result.value);\n}\n\nfunction emptySnapshot(appId: string, version: string): AppStoreReleaseInspectionResult {\n return {\n status: 'completed',\n state: {\n appId,\n version,\n versionId: null,\n releaseNotes: [],\n reviewSubmission: null,\n phasedRelease: null,\n },\n };\n}\n\nfunction providerFailure(status: 401 | 403 | null): AppStoreReleaseInspectionResult {\n if (status === 401) return action('authentication', 'APP_STORE_CONNECT_AUTHENTICATION_REQUIRED');\n if (status === 403) return action('manual-action', 'APP_STORE_CONNECT_PERMISSION_REQUIRED');\n return failed('APP_STORE_RELEASE_INSPECTION_FAILED');\n}\n\nfunction appRequired(): AppStoreReleaseInspectionResult {\n return action('manual-action', 'APP_STORE_APP_REQUIRED');\n}\n\nfunction action(\n type: 'authentication' | 'manual-action',\n code: string,\n): AppStoreReleaseInspectionResult {\n return {\n status: 'action-required',\n action: {\n type,\n provider: 'app-store-connect',\n target: 'ios',\n code,\n message: 'App Store release inspection requires provider action.',\n },\n };\n}\n\nfunction failed(code: string): AppStoreReleaseInspectionResult {\n return {\n status: 'failed',\n failure: {\n code,\n message: 'App Store release state could not be inspected.',\n target: 'ios',\n provider: 'app-store-connect',\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IosDeploymentPublication } from '../../domain/IosDeploymentPublication';
|
|
2
|
+
import type { ReleaseObservedIosState } from '../../domain/release/ReleaseObservedIosState';
|
|
3
|
+
import type { AppStoreReleaseSnapshot } from './AppStoreReleaseSnapshot';
|
|
4
|
+
type IosReleasePublication = IosDeploymentPublication | Pick<IosDeploymentPublication, 'revision' | 'version' | 'buildNumber'>;
|
|
5
|
+
export declare function normalizeAppStoreReleaseObservation(options: {
|
|
6
|
+
readonly publication: IosReleasePublication | null;
|
|
7
|
+
readonly publicationVerified: boolean;
|
|
8
|
+
readonly snapshot: AppStoreReleaseSnapshot;
|
|
9
|
+
}): ReleaseObservedIosState;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=normalizeAppStoreReleaseObservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAppStoreReleaseObservation.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/normalizeAppStoreReleaseObservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,KAAK,qBAAqB,GACxB,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC;AAEpG,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,QAAQ,CAAC,WAAW,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;CAC5C,GAAG,uBAAuB,CAmB1B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function normalizeAppStoreReleaseObservation(options) {
|
|
2
|
+
const publication = matchingPublication(options);
|
|
3
|
+
return {
|
|
4
|
+
target: 'ios',
|
|
5
|
+
version: options.snapshot.versionId === null ? null : options.snapshot.version,
|
|
6
|
+
artifactRevision: publication?.revision ?? null,
|
|
7
|
+
buildNumber: publication?.buildNumber ?? null,
|
|
8
|
+
releaseNotes: options.snapshot.releaseNotes,
|
|
9
|
+
...(options.snapshot.appVersionState === undefined
|
|
10
|
+
? {}
|
|
11
|
+
: { appVersionState: options.snapshot.appVersionState }),
|
|
12
|
+
...(options.snapshot.releaseType === undefined
|
|
13
|
+
? {}
|
|
14
|
+
: { releaseType: options.snapshot.releaseType }),
|
|
15
|
+
...(options.snapshot.reviewSubmission === null
|
|
16
|
+
? {}
|
|
17
|
+
: { reviewState: options.snapshot.reviewSubmission.state }),
|
|
18
|
+
phasedReleaseState: options.snapshot.phasedRelease?.state ?? null,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function matchingPublication(options) {
|
|
22
|
+
if (!options.publicationVerified || options.publication === null)
|
|
23
|
+
return null;
|
|
24
|
+
if (options.snapshot.versionId === null)
|
|
25
|
+
return null;
|
|
26
|
+
return options.publication.version === options.snapshot.version ? options.publication : null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=normalizeAppStoreReleaseObservation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeAppStoreReleaseObservation.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/normalizeAppStoreReleaseObservation.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mCAAmC,CAAC,OAInD;IACC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;QAC9E,gBAAgB,EAAE,WAAW,EAAE,QAAQ,IAAI,IAAI;QAC/C,WAAW,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI;QAC7C,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY;QAC3C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI;YAC5C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC7D,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAkE;IAElE,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9E,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC","sourcesContent":["import type { IosDeploymentPublication } from '../../domain/IosDeploymentPublication';\nimport type { ReleaseObservedIosState } from '../../domain/release/ReleaseObservedIosState';\nimport type { AppStoreReleaseSnapshot } from './AppStoreReleaseSnapshot';\n\ntype IosReleasePublication =\n IosDeploymentPublication | Pick<IosDeploymentPublication, 'revision' | 'version' | 'buildNumber'>;\n\nexport function normalizeAppStoreReleaseObservation(options: {\n readonly publication: IosReleasePublication | null;\n readonly publicationVerified: boolean;\n readonly snapshot: AppStoreReleaseSnapshot;\n}): ReleaseObservedIosState {\n const publication = matchingPublication(options);\n return {\n target: 'ios',\n version: options.snapshot.versionId === null ? null : options.snapshot.version,\n artifactRevision: publication?.revision ?? null,\n buildNumber: publication?.buildNumber ?? null,\n releaseNotes: options.snapshot.releaseNotes,\n ...(options.snapshot.appVersionState === undefined\n ? {}\n : { appVersionState: options.snapshot.appVersionState }),\n ...(options.snapshot.releaseType === undefined\n ? {}\n : { releaseType: options.snapshot.releaseType }),\n ...(options.snapshot.reviewSubmission === null\n ? {}\n : { reviewState: options.snapshot.reviewSubmission.state }),\n phasedReleaseState: options.snapshot.phasedRelease?.state ?? null,\n };\n}\n\nfunction matchingPublication(\n options: Parameters<typeof normalizeAppStoreReleaseObservation>[0],\n): IosReleasePublication | null {\n if (!options.publicationVerified || options.publication === null) return null;\n if (options.snapshot.versionId === null) return null;\n return options.publication.version === options.snapshot.version ? options.publication : null;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStorePhasedRelease.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStorePhasedRelease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIzE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,uBAAuB,CAAC,eAAe,CAAC,GAAG,SAAS,CAwBtD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const STATES = new Set(['INACTIVE', 'ACTIVE', 'PAUSED', 'COMPLETE']);
|
|
2
|
+
export function parseAppStorePhasedRelease(value) {
|
|
3
|
+
if (!isRecord(value) || !isRecord(value.data))
|
|
4
|
+
return undefined;
|
|
5
|
+
const { data } = value;
|
|
6
|
+
if (data.type !== 'appStoreVersionPhasedReleases' || !isNonEmptyString(data.id)) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
if (!isRecord(data.attributes) || !isState(data.attributes.phasedReleaseState)) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
if (!validOptionalNumber(data.attributes.currentDayNumber))
|
|
13
|
+
return undefined;
|
|
14
|
+
if (!validOptionalNumber(data.attributes.totalPauseDuration))
|
|
15
|
+
return undefined;
|
|
16
|
+
return {
|
|
17
|
+
id: data.id,
|
|
18
|
+
state: data.attributes.phasedReleaseState,
|
|
19
|
+
...(isNonEmptyString(data.attributes.startDate)
|
|
20
|
+
? { startDate: data.attributes.startDate }
|
|
21
|
+
: {}),
|
|
22
|
+
...(typeof data.attributes.currentDayNumber === 'number'
|
|
23
|
+
? { currentDayNumber: data.attributes.currentDayNumber }
|
|
24
|
+
: {}),
|
|
25
|
+
...(typeof data.attributes.totalPauseDuration === 'number'
|
|
26
|
+
? { totalPauseDuration: data.attributes.totalPauseDuration }
|
|
27
|
+
: {}),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function isState(value) {
|
|
31
|
+
return typeof value === 'string' && STATES.has(value);
|
|
32
|
+
}
|
|
33
|
+
function validOptionalNumber(value) {
|
|
34
|
+
return (value === undefined || value === null || (typeof value === 'number' && Number.isFinite(value)));
|
|
35
|
+
}
|
|
36
|
+
function isRecord(value) {
|
|
37
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
38
|
+
}
|
|
39
|
+
function isNonEmptyString(value) {
|
|
40
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=parseAppStorePhasedRelease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStorePhasedRelease.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStorePhasedRelease.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAErE,MAAM,UAAU,0BAA0B,CACxC,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,IAAI,CAAC,IAAI,KAAK,+BAA+B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/E,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB;QACzC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAC7C,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC1C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,QAAQ;YACtD,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,kBAAkB,KAAK,QAAQ;YACxD,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CACd,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,CACL,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["import type { AppStoreReleaseSnapshot } from './AppStoreReleaseSnapshot';\n\nconst STATES = new Set(['INACTIVE', 'ACTIVE', 'PAUSED', 'COMPLETE']);\n\nexport function parseAppStorePhasedRelease(\n value: unknown,\n): AppStoreReleaseSnapshot['phasedRelease'] | undefined {\n if (!isRecord(value) || !isRecord(value.data)) return undefined;\n const { data } = value;\n if (data.type !== 'appStoreVersionPhasedReleases' || !isNonEmptyString(data.id)) {\n return undefined;\n }\n if (!isRecord(data.attributes) || !isState(data.attributes.phasedReleaseState)) {\n return undefined;\n }\n if (!validOptionalNumber(data.attributes.currentDayNumber)) return undefined;\n if (!validOptionalNumber(data.attributes.totalPauseDuration)) return undefined;\n return {\n id: data.id,\n state: data.attributes.phasedReleaseState,\n ...(isNonEmptyString(data.attributes.startDate)\n ? { startDate: data.attributes.startDate }\n : {}),\n ...(typeof data.attributes.currentDayNumber === 'number'\n ? { currentDayNumber: data.attributes.currentDayNumber }\n : {}),\n ...(typeof data.attributes.totalPauseDuration === 'number'\n ? { totalPauseDuration: data.attributes.totalPauseDuration }\n : {}),\n };\n}\n\nfunction isState(\n value: unknown,\n): value is NonNullable<AppStoreReleaseSnapshot['phasedRelease']>['state'] {\n return typeof value === 'string' && STATES.has(value);\n}\n\nfunction validOptionalNumber(value: unknown): boolean {\n return (\n value === undefined || value === null || (typeof value === 'number' && Number.isFinite(value))\n );\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0;\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AppStoreReleaseLocalizationResource } from './AppStoreReleaseLocalizationResource';
|
|
2
|
+
export declare function parseAppStoreReleaseLocalizations(value: unknown): readonly AppStoreReleaseLocalizationResource[] | null;
|
|
3
|
+
//# sourceMappingURL=parseAppStoreReleaseLocalizations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStoreReleaseLocalizations.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStoreReleaseLocalizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAEjG,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,GACb,SAAS,mCAAmC,EAAE,GAAG,IAAI,CASvD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function parseAppStoreReleaseLocalizations(value) {
|
|
2
|
+
if (!isRecord(value) || !Array.isArray(value.data))
|
|
3
|
+
return null;
|
|
4
|
+
const result = [];
|
|
5
|
+
for (const item of value.data) {
|
|
6
|
+
const localization = parseLocalization(item);
|
|
7
|
+
if (localization === null)
|
|
8
|
+
return null;
|
|
9
|
+
result.push(localization);
|
|
10
|
+
}
|
|
11
|
+
return result.sort((left, right) => left.locale.localeCompare(right.locale));
|
|
12
|
+
}
|
|
13
|
+
function parseLocalization(value) {
|
|
14
|
+
if (!isRecord(value) || value.type !== 'appStoreVersionLocalizations')
|
|
15
|
+
return null;
|
|
16
|
+
if (!isNonEmptyString(value.id) || !isRecord(value.attributes))
|
|
17
|
+
return null;
|
|
18
|
+
const locale = normalizeLocale(value.attributes.locale);
|
|
19
|
+
if (locale === null)
|
|
20
|
+
return null;
|
|
21
|
+
const { whatsNew } = value.attributes;
|
|
22
|
+
if (whatsNew !== null && whatsNew !== undefined && typeof whatsNew !== 'string')
|
|
23
|
+
return null;
|
|
24
|
+
return { resourceId: value.id, locale, whatsNew: whatsNew ?? null };
|
|
25
|
+
}
|
|
26
|
+
function normalizeLocale(value) {
|
|
27
|
+
if (typeof value !== 'string' || value.length === 0)
|
|
28
|
+
return null;
|
|
29
|
+
try {
|
|
30
|
+
return Intl.getCanonicalLocales(value)[0] ?? null;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function isRecord(value) {
|
|
37
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
38
|
+
}
|
|
39
|
+
function isNonEmptyString(value) {
|
|
40
|
+
return typeof value === 'string' && value.length > 0;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=parseAppStoreReleaseLocalizations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStoreReleaseLocalizations.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStoreReleaseLocalizations.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iCAAiC,CAC/C,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAiB,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,8BAA8B;QAAE,OAAO,IAAI,CAAC;IACnF,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;IACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import type { AppStoreReleaseLocalizationResource } from './AppStoreReleaseLocalizationResource';\n\nexport function parseAppStoreReleaseLocalizations(\n value: unknown,\n): readonly AppStoreReleaseLocalizationResource[] | null {\n if (!isRecord(value) || !Array.isArray(value.data)) return null;\n const result: AppStoreReleaseLocalizationResource[] = [];\n for (const item of value.data as unknown[]) {\n const localization = parseLocalization(item);\n if (localization === null) return null;\n result.push(localization);\n }\n return result.sort((left, right) => left.locale.localeCompare(right.locale));\n}\n\nfunction parseLocalization(value: unknown): AppStoreReleaseLocalizationResource | null {\n if (!isRecord(value) || value.type !== 'appStoreVersionLocalizations') return null;\n if (!isNonEmptyString(value.id) || !isRecord(value.attributes)) return null;\n const locale = normalizeLocale(value.attributes.locale);\n if (locale === null) return null;\n const { whatsNew } = value.attributes;\n if (whatsNew !== null && whatsNew !== undefined && typeof whatsNew !== 'string') return null;\n return { resourceId: value.id, locale, whatsNew: whatsNew ?? null };\n}\n\nfunction normalizeLocale(value: unknown): string | null {\n if (typeof value !== 'string' || value.length === 0) return null;\n try {\n return Intl.getCanonicalLocales(value)[0] ?? null;\n } catch {\n return null;\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.length > 0;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStoreReleaseNotes.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStoreReleaseNotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,WAAW,EAAE,GAAG,IAAI,CAWvF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function parseAppStoreReleaseNotes(value) {
|
|
2
|
+
if (!isRecord(value) || !Array.isArray(value.data))
|
|
3
|
+
return null;
|
|
4
|
+
const notes = [];
|
|
5
|
+
for (const item of value.data) {
|
|
6
|
+
const note = parseNote(item);
|
|
7
|
+
if (note === null)
|
|
8
|
+
return null;
|
|
9
|
+
if (note !== undefined)
|
|
10
|
+
notes.push(note);
|
|
11
|
+
}
|
|
12
|
+
notes.sort((left, right) => left.locale.localeCompare(right.locale));
|
|
13
|
+
if (new Set(notes.map((note) => note.locale)).size !== notes.length)
|
|
14
|
+
return null;
|
|
15
|
+
return notes;
|
|
16
|
+
}
|
|
17
|
+
function parseNote(value) {
|
|
18
|
+
if (!isRecord(value) || value.type !== 'appStoreVersionLocalizations')
|
|
19
|
+
return null;
|
|
20
|
+
if (!isRecord(value.attributes))
|
|
21
|
+
return null;
|
|
22
|
+
const locale = normalizeLocale(value.attributes.locale);
|
|
23
|
+
if (locale === null)
|
|
24
|
+
return null;
|
|
25
|
+
const { whatsNew } = value.attributes;
|
|
26
|
+
if (whatsNew === null || whatsNew === undefined || whatsNew === '')
|
|
27
|
+
return undefined;
|
|
28
|
+
return typeof whatsNew === 'string' ? { locale, text: whatsNew } : null;
|
|
29
|
+
}
|
|
30
|
+
function normalizeLocale(value) {
|
|
31
|
+
if (typeof value !== 'string' || value.trim().length === 0)
|
|
32
|
+
return null;
|
|
33
|
+
try {
|
|
34
|
+
const locales = Intl.getCanonicalLocales(value);
|
|
35
|
+
return locales.length === 1 ? (locales[0] ?? null) : null;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function isRecord(value) {
|
|
42
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=parseAppStoreReleaseNotes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStoreReleaseNotes.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStoreReleaseNotes.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAiB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,8BAA8B;QAAE,OAAO,IAAI,CAAC;IACnF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;IACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACrF,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC","sourcesContent":["import type { ReleaseNote } from '../../domain/release/ReleaseNote';\n\nexport function parseAppStoreReleaseNotes(value: unknown): readonly ReleaseNote[] | null {\n if (!isRecord(value) || !Array.isArray(value.data)) return null;\n const notes: ReleaseNote[] = [];\n for (const item of value.data as unknown[]) {\n const note = parseNote(item);\n if (note === null) return null;\n if (note !== undefined) notes.push(note);\n }\n notes.sort((left, right) => left.locale.localeCompare(right.locale));\n if (new Set(notes.map((note) => note.locale)).size !== notes.length) return null;\n return notes;\n}\n\nfunction parseNote(value: unknown): ReleaseNote | null | undefined {\n if (!isRecord(value) || value.type !== 'appStoreVersionLocalizations') return null;\n if (!isRecord(value.attributes)) return null;\n const locale = normalizeLocale(value.attributes.locale);\n if (locale === null) return null;\n const { whatsNew } = value.attributes;\n if (whatsNew === null || whatsNew === undefined || whatsNew === '') return undefined;\n return typeof whatsNew === 'string' ? { locale, text: whatsNew } : null;\n}\n\nfunction normalizeLocale(value: unknown): string | null {\n if (typeof value !== 'string' || value.trim().length === 0) return null;\n try {\n const locales = Intl.getCanonicalLocales(value);\n return locales.length === 1 ? (locales[0] ?? null) : null;\n } catch {\n return null;\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function parseAppStoreReleaseVersion(value: unknown, expectedVersion: string): {
|
|
2
|
+
readonly versionId: string;
|
|
3
|
+
readonly appVersionState: string;
|
|
4
|
+
readonly releaseType?: string;
|
|
5
|
+
} | null | undefined;
|
|
6
|
+
//# sourceMappingURL=parseAppStoreReleaseVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStoreReleaseVersion.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStoreReleaseVersion.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,MAAM,GAErB;IACE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,GACD,IAAI,GACJ,SAAS,CAkBZ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function parseAppStoreReleaseVersion(value, expectedVersion) {
|
|
2
|
+
if (!isRecord(value) || !Array.isArray(value.data))
|
|
3
|
+
return undefined;
|
|
4
|
+
let match = null;
|
|
5
|
+
for (const candidate of value.data) {
|
|
6
|
+
if (!matches(candidate, expectedVersion))
|
|
7
|
+
continue;
|
|
8
|
+
if (match !== null || !isRecord(candidate))
|
|
9
|
+
return undefined;
|
|
10
|
+
match = candidate;
|
|
11
|
+
}
|
|
12
|
+
if (match === null)
|
|
13
|
+
return null;
|
|
14
|
+
if (!isNonEmptyString(match.id) || !isRecord(match.attributes))
|
|
15
|
+
return undefined;
|
|
16
|
+
if (!isNonEmptyString(match.attributes.appVersionState))
|
|
17
|
+
return undefined;
|
|
18
|
+
return {
|
|
19
|
+
versionId: match.id,
|
|
20
|
+
appVersionState: match.attributes.appVersionState,
|
|
21
|
+
...(isNonEmptyString(match.attributes.releaseType)
|
|
22
|
+
? { releaseType: match.attributes.releaseType }
|
|
23
|
+
: {}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function matches(value, expectedVersion) {
|
|
27
|
+
if (!isRecord(value) || value.type !== 'appStoreVersions' || !isRecord(value.attributes)) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return value.attributes.platform === 'IOS' && value.attributes.versionString === expectedVersion;
|
|
31
|
+
}
|
|
32
|
+
function isRecord(value) {
|
|
33
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
34
|
+
}
|
|
35
|
+
function isNonEmptyString(value) {
|
|
36
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=parseAppStoreReleaseVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseAppStoreReleaseVersion.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/parseAppStoreReleaseVersion.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CACzC,KAAc,EACd,eAAuB;IASvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,IAAI,KAAK,GAAmC,IAAI,CAAC;IACjD,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAiB,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;YAAE,SAAS;QACnD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7D,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACjF,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1E,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,EAAE;QACnB,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe;QACjD,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAChD,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,eAAuB;IACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,KAAK,eAAe,CAAC;AACnG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["export function parseAppStoreReleaseVersion(\n value: unknown,\n expectedVersion: string,\n):\n | {\n readonly versionId: string;\n readonly appVersionState: string;\n readonly releaseType?: string;\n }\n | null\n | undefined {\n if (!isRecord(value) || !Array.isArray(value.data)) return undefined;\n let match: Record<string, unknown> | null = null;\n for (const candidate of value.data as unknown[]) {\n if (!matches(candidate, expectedVersion)) continue;\n if (match !== null || !isRecord(candidate)) return undefined;\n match = candidate;\n }\n if (match === null) return null;\n if (!isNonEmptyString(match.id) || !isRecord(match.attributes)) return undefined;\n if (!isNonEmptyString(match.attributes.appVersionState)) return undefined;\n return {\n versionId: match.id,\n appVersionState: match.attributes.appVersionState,\n ...(isNonEmptyString(match.attributes.releaseType)\n ? { releaseType: match.attributes.releaseType }\n : {}),\n };\n}\n\nfunction matches(value: unknown, expectedVersion: string): boolean {\n if (!isRecord(value) || value.type !== 'appStoreVersions' || !isRecord(value.attributes)) {\n return false;\n }\n return value.attributes.platform === 'IOS' && value.attributes.versionString === expectedVersion;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0;\n}\n"]}
|