@ankhorage/deploy 0.7.0 → 0.8.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.
Files changed (297) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -1
  3. package/dist/domain/monetization/MonetizationBasePrice.d.ts +6 -0
  4. package/dist/domain/monetization/MonetizationBasePrice.d.ts.map +1 -0
  5. package/dist/domain/monetization/MonetizationBasePrice.js +2 -0
  6. package/dist/domain/monetization/MonetizationBasePrice.js.map +1 -0
  7. package/dist/domain/monetization/MonetizationDesiredState.d.ts +6 -0
  8. package/dist/domain/monetization/MonetizationDesiredState.d.ts.map +1 -0
  9. package/dist/domain/monetization/MonetizationDesiredState.js +2 -0
  10. package/dist/domain/monetization/MonetizationDesiredState.js.map +1 -0
  11. package/dist/domain/monetization/MonetizationDiagnostic.d.ts +9 -0
  12. package/dist/domain/monetization/MonetizationDiagnostic.d.ts.map +1 -0
  13. package/dist/domain/monetization/MonetizationDiagnostic.js +2 -0
  14. package/dist/domain/monetization/MonetizationDiagnostic.js.map +1 -0
  15. package/dist/domain/monetization/MonetizationLocalization.d.ts +6 -0
  16. package/dist/domain/monetization/MonetizationLocalization.d.ts.map +1 -0
  17. package/dist/domain/monetization/MonetizationLocalization.js +2 -0
  18. package/dist/domain/monetization/MonetizationLocalization.js.map +1 -0
  19. package/dist/domain/monetization/MonetizationObservedProduct.d.ts +12 -0
  20. package/dist/domain/monetization/MonetizationObservedProduct.d.ts.map +1 -0
  21. package/dist/domain/monetization/MonetizationObservedProduct.js +2 -0
  22. package/dist/domain/monetization/MonetizationObservedProduct.js.map +1 -0
  23. package/dist/domain/monetization/MonetizationPlan.d.ts +10 -0
  24. package/dist/domain/monetization/MonetizationPlan.d.ts.map +1 -0
  25. package/dist/domain/monetization/MonetizationPlan.js +2 -0
  26. package/dist/domain/monetization/MonetizationPlan.js.map +1 -0
  27. package/dist/domain/monetization/MonetizationPlanStep.d.ts +7 -0
  28. package/dist/domain/monetization/MonetizationPlanStep.d.ts.map +1 -0
  29. package/dist/domain/monetization/MonetizationPlanStep.js +2 -0
  30. package/dist/domain/monetization/MonetizationPlanStep.js.map +1 -0
  31. package/dist/domain/monetization/MonetizationProduct.d.ts +12 -0
  32. package/dist/domain/monetization/MonetizationProduct.d.ts.map +1 -0
  33. package/dist/domain/monetization/MonetizationProduct.js +2 -0
  34. package/dist/domain/monetization/MonetizationProduct.js.map +1 -0
  35. package/dist/domain/monetization/MonetizationSubscription.d.ts +7 -0
  36. package/dist/domain/monetization/MonetizationSubscription.d.ts.map +1 -0
  37. package/dist/domain/monetization/MonetizationSubscription.js +2 -0
  38. package/dist/domain/monetization/MonetizationSubscription.js.map +1 -0
  39. package/dist/domain/monetization/MonetizationTargetState.d.ts +9 -0
  40. package/dist/domain/monetization/MonetizationTargetState.d.ts.map +1 -0
  41. package/dist/domain/monetization/MonetizationTargetState.js +2 -0
  42. package/dist/domain/monetization/MonetizationTargetState.js.map +1 -0
  43. package/dist/domain/monetization/createMonetizationCurrentRevision.d.ts +3 -0
  44. package/dist/domain/monetization/createMonetizationCurrentRevision.d.ts.map +1 -0
  45. package/dist/domain/monetization/createMonetizationCurrentRevision.js +13 -0
  46. package/dist/domain/monetization/createMonetizationCurrentRevision.js.map +1 -0
  47. package/dist/domain/monetization/createMonetizationPlan.d.ts +9 -0
  48. package/dist/domain/monetization/createMonetizationPlan.d.ts.map +1 -0
  49. package/dist/domain/monetization/createMonetizationPlan.js +94 -0
  50. package/dist/domain/monetization/createMonetizationPlan.js.map +1 -0
  51. package/dist/index.d.ts +10 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/project/index.d.ts +13 -0
  55. package/dist/project/index.d.ts.map +1 -1
  56. package/dist/project/index.js +4 -0
  57. package/dist/project/index.js.map +1 -1
  58. package/dist/project/io/assertContainedPath.d.ts.map +1 -1
  59. package/dist/project/io/assertContainedPath.js +4 -3
  60. package/dist/project/io/assertContainedPath.js.map +1 -1
  61. package/dist/project/monetization/ExecuteProjectMonetizationSyncOptions.d.ts +8 -0
  62. package/dist/project/monetization/ExecuteProjectMonetizationSyncOptions.d.ts.map +1 -0
  63. package/dist/project/monetization/ExecuteProjectMonetizationSyncOptions.js +2 -0
  64. package/dist/project/monetization/ExecuteProjectMonetizationSyncOptions.js.map +1 -0
  65. package/dist/project/monetization/InspectProjectMonetizationOptions.d.ts +5 -0
  66. package/dist/project/monetization/InspectProjectMonetizationOptions.d.ts.map +1 -0
  67. package/dist/project/monetization/InspectProjectMonetizationOptions.js +2 -0
  68. package/dist/project/monetization/InspectProjectMonetizationOptions.js.map +1 -0
  69. package/dist/project/monetization/ProjectMonetizationAccess.d.ts +7 -0
  70. package/dist/project/monetization/ProjectMonetizationAccess.d.ts.map +1 -0
  71. package/dist/project/monetization/ProjectMonetizationAccess.js +2 -0
  72. package/dist/project/monetization/ProjectMonetizationAccess.js.map +1 -0
  73. package/dist/project/monetization/ProjectMonetizationExecutionResult.d.ts +16 -0
  74. package/dist/project/monetization/ProjectMonetizationExecutionResult.d.ts.map +1 -0
  75. package/dist/project/monetization/ProjectMonetizationExecutionResult.js +2 -0
  76. package/dist/project/monetization/ProjectMonetizationExecutionResult.js.map +1 -0
  77. package/dist/project/monetization/ProjectMonetizationInspection.d.ts +13 -0
  78. package/dist/project/monetization/ProjectMonetizationInspection.d.ts.map +1 -0
  79. package/dist/project/monetization/ProjectMonetizationInspection.js +2 -0
  80. package/dist/project/monetization/ProjectMonetizationInspection.js.map +1 -0
  81. package/dist/project/monetization/ProjectMonetizationInspectionResult.d.ts +10 -0
  82. package/dist/project/monetization/ProjectMonetizationInspectionResult.d.ts.map +1 -0
  83. package/dist/project/monetization/ProjectMonetizationInspectionResult.js +2 -0
  84. package/dist/project/monetization/ProjectMonetizationInspectionResult.js.map +1 -0
  85. package/dist/project/monetization/ProjectMonetizationPlan.d.ts +6 -0
  86. package/dist/project/monetization/ProjectMonetizationPlan.d.ts.map +1 -0
  87. package/dist/project/monetization/ProjectMonetizationPlan.js +2 -0
  88. package/dist/project/monetization/ProjectMonetizationPlan.js.map +1 -0
  89. package/dist/project/monetization/ProjectMonetizationRuntime.d.ts +12 -0
  90. package/dist/project/monetization/ProjectMonetizationRuntime.d.ts.map +1 -0
  91. package/dist/project/monetization/ProjectMonetizationRuntime.js +2 -0
  92. package/dist/project/monetization/ProjectMonetizationRuntime.js.map +1 -0
  93. package/dist/project/monetization/ProjectMonetizationTargets.d.ts +5 -0
  94. package/dist/project/monetization/ProjectMonetizationTargets.d.ts.map +1 -0
  95. package/dist/project/monetization/ProjectMonetizationTargets.js +2 -0
  96. package/dist/project/monetization/ProjectMonetizationTargets.js.map +1 -0
  97. package/dist/project/monetization/ResolvedProjectMonetizationAccess.d.ts +7 -0
  98. package/dist/project/monetization/ResolvedProjectMonetizationAccess.d.ts.map +1 -0
  99. package/dist/project/monetization/ResolvedProjectMonetizationAccess.js +2 -0
  100. package/dist/project/monetization/ResolvedProjectMonetizationAccess.js.map +1 -0
  101. package/dist/project/monetization/areProjectMonetizationPlansEqual.d.ts +3 -0
  102. package/dist/project/monetization/areProjectMonetizationPlansEqual.d.ts.map +1 -0
  103. package/dist/project/monetization/areProjectMonetizationPlansEqual.js +4 -0
  104. package/dist/project/monetization/areProjectMonetizationPlansEqual.js.map +1 -0
  105. package/dist/project/monetization/createProjectMonetizationPlan.d.ts +4 -0
  106. package/dist/project/monetization/createProjectMonetizationPlan.d.ts.map +1 -0
  107. package/dist/project/monetization/createProjectMonetizationPlan.js +14 -0
  108. package/dist/project/monetization/createProjectMonetizationPlan.js.map +1 -0
  109. package/dist/project/monetization/createProjectMonetizationRevision.d.ts +3 -0
  110. package/dist/project/monetization/createProjectMonetizationRevision.d.ts.map +1 -0
  111. package/dist/project/monetization/createProjectMonetizationRevision.js +5 -0
  112. package/dist/project/monetization/createProjectMonetizationRevision.js.map +1 -0
  113. package/dist/project/monetization/defaultProjectMonetizationRuntime.d.ts +3 -0
  114. package/dist/project/monetization/defaultProjectMonetizationRuntime.d.ts.map +1 -0
  115. package/dist/project/monetization/defaultProjectMonetizationRuntime.js +12 -0
  116. package/dist/project/monetization/defaultProjectMonetizationRuntime.js.map +1 -0
  117. package/dist/project/monetization/executeProjectMonetizationSync.d.ts +4 -0
  118. package/dist/project/monetization/executeProjectMonetizationSync.d.ts.map +1 -0
  119. package/dist/project/monetization/executeProjectMonetizationSync.js +6 -0
  120. package/dist/project/monetization/executeProjectMonetizationSync.js.map +1 -0
  121. package/dist/project/monetization/executeProjectMonetizationSyncWithRuntime.d.ts +5 -0
  122. package/dist/project/monetization/executeProjectMonetizationSyncWithRuntime.d.ts.map +1 -0
  123. package/dist/project/monetization/executeProjectMonetizationSyncWithRuntime.js +63 -0
  124. package/dist/project/monetization/executeProjectMonetizationSyncWithRuntime.js.map +1 -0
  125. package/dist/project/monetization/executeProjectMonetizationTargets.d.ts +23 -0
  126. package/dist/project/monetization/executeProjectMonetizationTargets.d.ts.map +1 -0
  127. package/dist/project/monetization/executeProjectMonetizationTargets.js +66 -0
  128. package/dist/project/monetization/executeProjectMonetizationTargets.js.map +1 -0
  129. package/dist/project/monetization/inspectProjectMonetization.d.ts +4 -0
  130. package/dist/project/monetization/inspectProjectMonetization.d.ts.map +1 -0
  131. package/dist/project/monetization/inspectProjectMonetization.js +6 -0
  132. package/dist/project/monetization/inspectProjectMonetization.js.map +1 -0
  133. package/dist/project/monetization/inspectProjectMonetizationWithRuntime.d.ts +5 -0
  134. package/dist/project/monetization/inspectProjectMonetizationWithRuntime.d.ts.map +1 -0
  135. package/dist/project/monetization/inspectProjectMonetizationWithRuntime.js +78 -0
  136. package/dist/project/monetization/inspectProjectMonetizationWithRuntime.js.map +1 -0
  137. package/dist/project/monetization/parseProjectMonetization.d.ts +3 -0
  138. package/dist/project/monetization/parseProjectMonetization.d.ts.map +1 -0
  139. package/dist/project/monetization/parseProjectMonetization.js +127 -0
  140. package/dist/project/monetization/parseProjectMonetization.js.map +1 -0
  141. package/dist/project/monetization/readProjectMonetization.d.ts +5 -0
  142. package/dist/project/monetization/readProjectMonetization.d.ts.map +1 -0
  143. package/dist/project/monetization/readProjectMonetization.js +19 -0
  144. package/dist/project/monetization/readProjectMonetization.js.map +1 -0
  145. package/dist/project/monetization/resolveProjectMonetizationAccess.d.ts +4 -0
  146. package/dist/project/monetization/resolveProjectMonetizationAccess.d.ts.map +1 -0
  147. package/dist/project/monetization/resolveProjectMonetizationAccess.js +7 -0
  148. package/dist/project/monetization/resolveProjectMonetizationAccess.js.map +1 -0
  149. package/dist/project/monetization/resolveProjectMonetizationTargets.d.ts +13 -0
  150. package/dist/project/monetization/resolveProjectMonetizationTargets.d.ts.map +1 -0
  151. package/dist/project/monetization/resolveProjectMonetizationTargets.js +27 -0
  152. package/dist/project/monetization/resolveProjectMonetizationTargets.js.map +1 -0
  153. package/dist/providers/appStoreConnect/AppStoreMonetizationExecutionResult.d.ts +14 -0
  154. package/dist/providers/appStoreConnect/AppStoreMonetizationExecutionResult.d.ts.map +1 -0
  155. package/dist/providers/appStoreConnect/AppStoreMonetizationExecutionResult.js +2 -0
  156. package/dist/providers/appStoreConnect/AppStoreMonetizationExecutionResult.js.map +1 -0
  157. package/dist/providers/appStoreConnect/AppStoreMonetizationResult.d.ts +14 -0
  158. package/dist/providers/appStoreConnect/AppStoreMonetizationResult.d.ts.map +1 -0
  159. package/dist/providers/appStoreConnect/AppStoreMonetizationResult.js +2 -0
  160. package/dist/providers/appStoreConnect/AppStoreMonetizationResult.js.map +1 -0
  161. package/dist/providers/appStoreConnect/AppStoreMonetizationSnapshot.d.ts +32 -0
  162. package/dist/providers/appStoreConnect/AppStoreMonetizationSnapshot.d.ts.map +1 -0
  163. package/dist/providers/appStoreConnect/AppStoreMonetizationSnapshot.js +2 -0
  164. package/dist/providers/appStoreConnect/AppStoreMonetizationSnapshot.js.map +1 -0
  165. package/dist/providers/appStoreConnect/AppStoreProductVersion.d.ts +7 -0
  166. package/dist/providers/appStoreConnect/AppStoreProductVersion.d.ts.map +1 -0
  167. package/dist/providers/appStoreConnect/AppStoreProductVersion.js +2 -0
  168. package/dist/providers/appStoreConnect/AppStoreProductVersion.js.map +1 -0
  169. package/dist/providers/appStoreConnect/AppStoreResolvedPricePoint.d.ts +5 -0
  170. package/dist/providers/appStoreConnect/AppStoreResolvedPricePoint.d.ts.map +1 -0
  171. package/dist/providers/appStoreConnect/AppStoreResolvedPricePoint.js +2 -0
  172. package/dist/providers/appStoreConnect/AppStoreResolvedPricePoint.js.map +1 -0
  173. package/dist/providers/appStoreConnect/appStoreMonetizationUrls.d.ts +25 -0
  174. package/dist/providers/appStoreConnect/appStoreMonetizationUrls.d.ts.map +1 -0
  175. package/dist/providers/appStoreConnect/appStoreMonetizationUrls.js +67 -0
  176. package/dist/providers/appStoreConnect/appStoreMonetizationUrls.js.map +1 -0
  177. package/dist/providers/appStoreConnect/createAppStoreMonetizationProduct.d.ts +10 -0
  178. package/dist/providers/appStoreConnect/createAppStoreMonetizationProduct.d.ts.map +1 -0
  179. package/dist/providers/appStoreConnect/createAppStoreMonetizationProduct.js +67 -0
  180. package/dist/providers/appStoreConnect/createAppStoreMonetizationProduct.js.map +1 -0
  181. package/dist/providers/appStoreConnect/ensureAppStoreProductVersion.d.ts +8 -0
  182. package/dist/providers/appStoreConnect/ensureAppStoreProductVersion.d.ts.map +1 -0
  183. package/dist/providers/appStoreConnect/ensureAppStoreProductVersion.js +67 -0
  184. package/dist/providers/appStoreConnect/ensureAppStoreProductVersion.js.map +1 -0
  185. package/dist/providers/appStoreConnect/ensureAppStoreSubscriptionFamily.d.ts +10 -0
  186. package/dist/providers/appStoreConnect/ensureAppStoreSubscriptionFamily.d.ts.map +1 -0
  187. package/dist/providers/appStoreConnect/ensureAppStoreSubscriptionFamily.js +78 -0
  188. package/dist/providers/appStoreConnect/ensureAppStoreSubscriptionFamily.js.map +1 -0
  189. package/dist/providers/appStoreConnect/executeAppStoreMonetizationPlan.d.ts +19 -0
  190. package/dist/providers/appStoreConnect/executeAppStoreMonetizationPlan.d.ts.map +1 -0
  191. package/dist/providers/appStoreConnect/executeAppStoreMonetizationPlan.js +117 -0
  192. package/dist/providers/appStoreConnect/executeAppStoreMonetizationPlan.js.map +1 -0
  193. package/dist/providers/appStoreConnect/inspectAppStoreMonetization.d.ts +16 -0
  194. package/dist/providers/appStoreConnect/inspectAppStoreMonetization.d.ts.map +1 -0
  195. package/dist/providers/appStoreConnect/inspectAppStoreMonetization.js +53 -0
  196. package/dist/providers/appStoreConnect/inspectAppStoreMonetization.js.map +1 -0
  197. package/dist/providers/appStoreConnect/mapAppStoreSubscriptionPeriod.d.ts +3 -0
  198. package/dist/providers/appStoreConnect/mapAppStoreSubscriptionPeriod.d.ts.map +1 -0
  199. package/dist/providers/appStoreConnect/mapAppStoreSubscriptionPeriod.js +14 -0
  200. package/dist/providers/appStoreConnect/mapAppStoreSubscriptionPeriod.js.map +1 -0
  201. package/dist/providers/appStoreConnect/normalizeAppStoreMonetization.d.ts +5 -0
  202. package/dist/providers/appStoreConnect/normalizeAppStoreMonetization.d.ts.map +1 -0
  203. package/dist/providers/appStoreConnect/normalizeAppStoreMonetization.js +65 -0
  204. package/dist/providers/appStoreConnect/normalizeAppStoreMonetization.js.map +1 -0
  205. package/dist/providers/appStoreConnect/readAppStoreCollection.d.ts +11 -0
  206. package/dist/providers/appStoreConnect/readAppStoreCollection.d.ts.map +1 -0
  207. package/dist/providers/appStoreConnect/readAppStoreCollection.js +43 -0
  208. package/dist/providers/appStoreConnect/readAppStoreCollection.js.map +1 -0
  209. package/dist/providers/appStoreConnect/readAppStoreMonetizationPrice.d.ts +17 -0
  210. package/dist/providers/appStoreConnect/readAppStoreMonetizationPrice.d.ts.map +1 -0
  211. package/dist/providers/appStoreConnect/readAppStoreMonetizationPrice.js +114 -0
  212. package/dist/providers/appStoreConnect/readAppStoreMonetizationPrice.js.map +1 -0
  213. package/dist/providers/appStoreConnect/readAppStoreMonetizationSnapshot.d.ts +11 -0
  214. package/dist/providers/appStoreConnect/readAppStoreMonetizationSnapshot.d.ts.map +1 -0
  215. package/dist/providers/appStoreConnect/readAppStoreMonetizationSnapshot.js +210 -0
  216. package/dist/providers/appStoreConnect/readAppStoreMonetizationSnapshot.js.map +1 -0
  217. package/dist/providers/appStoreConnect/readAppStoreProductVersion.d.ts +9 -0
  218. package/dist/providers/appStoreConnect/readAppStoreProductVersion.d.ts.map +1 -0
  219. package/dist/providers/appStoreConnect/readAppStoreProductVersion.js +56 -0
  220. package/dist/providers/appStoreConnect/readAppStoreProductVersion.js.map +1 -0
  221. package/dist/providers/appStoreConnect/readAppStoreVersionLocalizations.d.ts +9 -0
  222. package/dist/providers/appStoreConnect/readAppStoreVersionLocalizations.d.ts.map +1 -0
  223. package/dist/providers/appStoreConnect/readAppStoreVersionLocalizations.js +44 -0
  224. package/dist/providers/appStoreConnect/readAppStoreVersionLocalizations.js.map +1 -0
  225. package/dist/providers/appStoreConnect/resolveAppStorePricePoint.d.ts +11 -0
  226. package/dist/providers/appStoreConnect/resolveAppStorePricePoint.d.ts.map +1 -0
  227. package/dist/providers/appStoreConnect/resolveAppStorePricePoint.js +46 -0
  228. package/dist/providers/appStoreConnect/resolveAppStorePricePoint.js.map +1 -0
  229. package/dist/providers/appStoreConnect/syncAppStoreMonetizationLocalizations.d.ts +10 -0
  230. package/dist/providers/appStoreConnect/syncAppStoreMonetizationLocalizations.d.ts.map +1 -0
  231. package/dist/providers/appStoreConnect/syncAppStoreMonetizationLocalizations.js +80 -0
  232. package/dist/providers/appStoreConnect/syncAppStoreMonetizationLocalizations.js.map +1 -0
  233. package/dist/providers/appStoreConnect/toAppStoreSubscriptionPeriod.d.ts +3 -0
  234. package/dist/providers/appStoreConnect/toAppStoreSubscriptionPeriod.d.ts.map +1 -0
  235. package/dist/providers/appStoreConnect/toAppStoreSubscriptionPeriod.js +15 -0
  236. package/dist/providers/appStoreConnect/toAppStoreSubscriptionPeriod.js.map +1 -0
  237. package/dist/providers/appStoreConnect/toAppStoreTerritoryCode.d.ts +2 -0
  238. package/dist/providers/appStoreConnect/toAppStoreTerritoryCode.d.ts.map +1 -0
  239. package/dist/providers/appStoreConnect/toAppStoreTerritoryCode.js +255 -0
  240. package/dist/providers/appStoreConnect/toAppStoreTerritoryCode.js.map +1 -0
  241. package/dist/providers/appStoreConnect/updateAppStoreMonetizationPrice.d.ts +11 -0
  242. package/dist/providers/appStoreConnect/updateAppStoreMonetizationPrice.d.ts.map +1 -0
  243. package/dist/providers/appStoreConnect/updateAppStoreMonetizationPrice.js +83 -0
  244. package/dist/providers/appStoreConnect/updateAppStoreMonetizationPrice.js.map +1 -0
  245. package/dist/providers/appStoreConnect/updateAppStoreSubscription.d.ts +9 -0
  246. package/dist/providers/appStoreConnect/updateAppStoreSubscription.d.ts.map +1 -0
  247. package/dist/providers/appStoreConnect/updateAppStoreSubscription.js +24 -0
  248. package/dist/providers/appStoreConnect/updateAppStoreSubscription.js.map +1 -0
  249. package/dist/providers/appStoreConnect/writeAppStoreMonetizationProduct.d.ts +13 -0
  250. package/dist/providers/appStoreConnect/writeAppStoreMonetizationProduct.d.ts.map +1 -0
  251. package/dist/providers/appStoreConnect/writeAppStoreMonetizationProduct.js +94 -0
  252. package/dist/providers/appStoreConnect/writeAppStoreMonetizationProduct.js.map +1 -0
  253. package/dist/providers/googlePlay/GooglePlayMonetizationResult.d.ts +24 -0
  254. package/dist/providers/googlePlay/GooglePlayMonetizationResult.d.ts.map +1 -0
  255. package/dist/providers/googlePlay/GooglePlayMonetizationResult.js +2 -0
  256. package/dist/providers/googlePlay/GooglePlayMonetizationResult.js.map +1 -0
  257. package/dist/providers/googlePlay/GooglePlayPriceConversion.d.ts +4 -0
  258. package/dist/providers/googlePlay/GooglePlayPriceConversion.d.ts.map +1 -0
  259. package/dist/providers/googlePlay/GooglePlayPriceConversion.js +2 -0
  260. package/dist/providers/googlePlay/GooglePlayPriceConversion.js.map +1 -0
  261. package/dist/providers/googlePlay/convertGooglePlayRegionPrices.d.ts +10 -0
  262. package/dist/providers/googlePlay/convertGooglePlayRegionPrices.d.ts.map +1 -0
  263. package/dist/providers/googlePlay/convertGooglePlayRegionPrices.js +32 -0
  264. package/dist/providers/googlePlay/convertGooglePlayRegionPrices.js.map +1 -0
  265. package/dist/providers/googlePlay/executeGooglePlayMonetizationPlan.d.ts +18 -0
  266. package/dist/providers/googlePlay/executeGooglePlayMonetizationPlan.d.ts.map +1 -0
  267. package/dist/providers/googlePlay/executeGooglePlayMonetizationPlan.js +97 -0
  268. package/dist/providers/googlePlay/executeGooglePlayMonetizationPlan.js.map +1 -0
  269. package/dist/providers/googlePlay/googlePlayMonetizationUrls.d.ts +11 -0
  270. package/dist/providers/googlePlay/googlePlayMonetizationUrls.d.ts.map +1 -0
  271. package/dist/providers/googlePlay/googlePlayMonetizationUrls.js +36 -0
  272. package/dist/providers/googlePlay/googlePlayMonetizationUrls.js.map +1 -0
  273. package/dist/providers/googlePlay/inspectGooglePlayMonetization.d.ts +15 -0
  274. package/dist/providers/googlePlay/inspectGooglePlayMonetization.d.ts.map +1 -0
  275. package/dist/providers/googlePlay/inspectGooglePlayMonetization.js +49 -0
  276. package/dist/providers/googlePlay/inspectGooglePlayMonetization.js.map +1 -0
  277. package/dist/providers/googlePlay/normalizeGooglePlayMonetization.d.ts +8 -0
  278. package/dist/providers/googlePlay/normalizeGooglePlayMonetization.d.ts.map +1 -0
  279. package/dist/providers/googlePlay/normalizeGooglePlayMonetization.js +169 -0
  280. package/dist/providers/googlePlay/normalizeGooglePlayMonetization.js.map +1 -0
  281. package/dist/providers/googlePlay/readGooglePlayMonetizationResources.d.ts +12 -0
  282. package/dist/providers/googlePlay/readGooglePlayMonetizationResources.d.ts.map +1 -0
  283. package/dist/providers/googlePlay/readGooglePlayMonetizationResources.js +62 -0
  284. package/dist/providers/googlePlay/readGooglePlayMonetizationResources.js.map +1 -0
  285. package/dist/providers/googlePlay/toGooglePlayMoney.d.ts +3 -0
  286. package/dist/providers/googlePlay/toGooglePlayMoney.d.ts.map +1 -0
  287. package/dist/providers/googlePlay/toGooglePlayMoney.js +11 -0
  288. package/dist/providers/googlePlay/toGooglePlayMoney.js.map +1 -0
  289. package/dist/providers/googlePlay/updateGooglePlayMonetizationPrice.d.ts +10 -0
  290. package/dist/providers/googlePlay/updateGooglePlayMonetizationPrice.d.ts.map +1 -0
  291. package/dist/providers/googlePlay/updateGooglePlayMonetizationPrice.js +121 -0
  292. package/dist/providers/googlePlay/updateGooglePlayMonetizationPrice.js.map +1 -0
  293. package/dist/providers/googlePlay/writeGooglePlayMonetizationProduct.d.ts +13 -0
  294. package/dist/providers/googlePlay/writeGooglePlayMonetizationProduct.d.ts.map +1 -0
  295. package/dist/providers/googlePlay/writeGooglePlayMonetizationProduct.js +127 -0
  296. package/dist/providers/googlePlay/writeGooglePlayMonetizationProduct.js.map +1 -0
  297. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readAppStoreMonetizationSnapshot.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/readAppStoreMonetizationSnapshot.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MonetizationDesiredState } from '../../domain/monetization/MonetizationDesiredState';\nimport type { MonetizationDiagnostic } from '../../domain/monetization/MonetizationDiagnostic';\nimport type { MonetizationProduct } from '../../domain/monetization/MonetizationProduct';\nimport type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport { appStoreConnectAppsUrl } from './appStoreConnectUrls';\nimport type {\n AppStoreMonetizationFamilyResource,\n AppStoreMonetizationProductResource,\n AppStoreMonetizationSnapshot,\n} from './AppStoreMonetizationSnapshot';\nimport { appStoreMonetizationUrls } from './appStoreMonetizationUrls';\nimport { fromAppStoreSubscriptionPeriod } from './mapAppStoreSubscriptionPeriod';\nimport { parseAppStoreAppId } from './parseAppStoreAppId';\nimport { readAppStoreCollection } from './readAppStoreCollection';\nimport { readAppStoreJson } from './readAppStoreJson';\nimport { readAppStoreMonetizationPrice } from './readAppStoreMonetizationPrice';\nimport { readAppStoreProductVersion } from './readAppStoreProductVersion';\n\ninterface ReadProductResult {\n readonly products: readonly AppStoreMonetizationProductResource[];\n readonly diagnostics: readonly MonetizationDiagnostic[];\n}\n\nexport async function readAppStoreMonetizationSnapshot(options: {\n readonly bundleIdentifier: string;\n readonly desired: MonetizationDesiredState;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n readonly now: Date;\n}): Promise<AppStoreMonetizationSnapshot | null | 'app-required'> {\n const appId = await resolveAppId(options);\n if (appId === undefined) return null;\n if (appId === null) return 'app-required';\n const catalog = await readCatalog({ ...options, appId });\n if (catalog === null) return null;\n const families = parseFamilies(catalog.groups.data);\n if (families === null) return null;\n const products: AppStoreMonetizationProductResource[] = [];\n const diagnostics: MonetizationDiagnostic[] = [];\n for (const desired of options.desired.products) {\n const result = await readDesiredProduct({ ...options, desired, families, catalog });\n products.push(...result.products);\n diagnostics.push(...result.diagnostics);\n }\n return { appId, products, families, diagnostics };\n}\n\nasync function resolveAppId(\n options: Parameters<typeof readAppStoreMonetizationSnapshot>[0],\n): Promise<string | null | undefined> {\n const value = await readAppStoreJson({\n url: appStoreConnectAppsUrl(options.bundleIdentifier),\n token: options.token,\n request: options.request,\n });\n return value === null ? undefined : parseAppStoreAppId(value, options.bundleIdentifier);\n}\n\nasync function readCatalog(options: {\n readonly appId: string;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<{\n iaps: { readonly data: readonly unknown[]; readonly included: readonly unknown[] };\n groups: { readonly data: readonly unknown[]; readonly included: readonly unknown[] };\n} | null> {\n const [iaps, groups] = await Promise.all([\n readAppStoreCollection({\n url: appStoreMonetizationUrls.inAppPurchases(options.appId),\n token: options.token,\n request: options.request,\n }),\n readAppStoreCollection({\n url: appStoreMonetizationUrls.subscriptionGroups(options.appId),\n token: options.token,\n request: options.request,\n }),\n ]);\n return iaps === null || groups === null ? null : { iaps, groups };\n}\n\nasync function readDesiredProduct(options: {\n readonly desired: MonetizationProduct;\n readonly families: readonly AppStoreMonetizationFamilyResource[];\n readonly catalog: {\n readonly iaps: { readonly data: readonly unknown[]; readonly included: readonly unknown[] };\n readonly groups: { readonly data: readonly unknown[]; readonly included: readonly unknown[] };\n };\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n readonly now: Date;\n}): Promise<ReadProductResult> {\n const iap = findProduct(options.catalog.iaps.data, options.desired.id);\n const subscription = findProduct(options.catalog.groups.included, options.desired.id);\n if (iap !== undefined && subscription !== undefined) {\n return {\n products: [],\n diagnostics: [diagnostic(options.desired.id, 'APP_STORE_PRODUCT_ID_CONFLICT')],\n };\n }\n if (options.desired.kind === 'subscription') {\n if (iap !== undefined) return readIap(options, iap);\n return subscription === undefined ? empty() : readSubscription(options, subscription);\n }\n if (subscription !== undefined) return readSubscription(options, subscription);\n return iap === undefined ? empty() : readIap(options, iap);\n}\n\nasync function readIap(\n options: Parameters<typeof readDesiredProduct>[0],\n value: unknown,\n): Promise<ReadProductResult> {\n const base = parseIap(value);\n if (base === null) return invalid(options.desired.id);\n const version = await readAppStoreProductVersion({\n kind: 'iap',\n productId: base.resourceId,\n token: options.token,\n request: options.request,\n });\n if (version === null) return invalid(options.desired.id);\n return withPrice(options, base, version, 'iap');\n}\n\nasync function readSubscription(\n options: Parameters<typeof readDesiredProduct>[0],\n value: unknown,\n): Promise<ReadProductResult> {\n const base = parseSubscription(value, options.families);\n if (base === null) return invalid(options.desired.id);\n const version = await readAppStoreProductVersion({\n kind: 'subscription',\n productId: base.resourceId,\n token: options.token,\n request: options.request,\n });\n if (version === null) return invalid(options.desired.id);\n return withPrice(options, base, version, 'subscription');\n}\n\nasync function withPrice(\n options: Parameters<typeof readDesiredProduct>[0],\n base: Omit<AppStoreMonetizationProductResource, 'localizations' | 'basePriceMatches'>,\n version: Exclude<Awaited<ReturnType<typeof readAppStoreProductVersion>>, null>,\n kind: 'iap' | 'subscription',\n): Promise<ReadProductResult> {\n const price = await readAppStoreMonetizationPrice({\n kind,\n resourceId: base.resourceId,\n productId: options.desired.id,\n price: options.desired.basePrice,\n token: options.token,\n request: options.request,\n now: options.now,\n });\n return {\n products: [\n {\n ...base,\n localizations: version?.localizations ?? [],\n basePriceMatches: price.matches,\n ...(version === undefined\n ? {}\n : { versionId: version.resourceId, versionState: version.state }),\n },\n ],\n diagnostics: price.diagnostics,\n };\n}\n\nfunction parseIap(\n value: unknown,\n): Omit<AppStoreMonetizationProductResource, 'localizations' | 'basePriceMatches'> | null {\n if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes)) return null;\n const { productId } = value.attributes;\n const kind = mapIapKind(value.attributes.inAppPurchaseType);\n if (!isString(productId) || kind === null) return null;\n const state = isString(value.attributes.state) ? value.attributes.state : undefined;\n return { resourceId: value.id, productId, kind, ...(state === undefined ? {} : { state }) };\n}\n\nfunction parseSubscription(\n value: unknown,\n families: readonly AppStoreMonetizationFamilyResource[],\n): Omit<AppStoreMonetizationProductResource, 'localizations' | 'basePriceMatches'> | null {\n if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes)) return null;\n const { productId } = value.attributes;\n const period = fromAppStoreSubscriptionPeriod(value.attributes.subscriptionPeriod);\n const familyId = relationshipId(\n isRecord(value.relationships) ? value.relationships.group : undefined,\n );\n const family = families.find((item) => item.resourceId === familyId);\n if (!isString(productId) || period === null || family === undefined) return null;\n const level = isPositiveInteger(value.attributes.groupLevel)\n ? value.attributes.groupLevel\n : undefined;\n const state = isString(value.attributes.state) ? value.attributes.state : undefined;\n return {\n resourceId: value.id,\n productId,\n kind: 'subscription',\n family: family.referenceName,\n familyId: family.resourceId,\n period,\n ...(level === undefined ? {} : { level }),\n ...(state === undefined ? {} : { state }),\n };\n}\n\nfunction parseFamilies(\n values: readonly unknown[],\n): readonly AppStoreMonetizationFamilyResource[] | null {\n const result: AppStoreMonetizationFamilyResource[] = [];\n for (const value of values) {\n if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes)) return null;\n if (!isString(value.attributes.referenceName)) return null;\n result.push({ resourceId: value.id, referenceName: value.attributes.referenceName });\n }\n return result.sort((a, b) => a.referenceName.localeCompare(b.referenceName));\n}\n\nfunction findProduct(values: readonly unknown[], productId: string): unknown {\n return values.find(\n (value) =>\n isRecord(value) && isRecord(value.attributes) && value.attributes.productId === productId,\n );\n}\n\nfunction mapIapKind(value: unknown): 'consumable' | 'non-consumable' | null {\n if (value === 'CONSUMABLE') return 'consumable';\n if (value === 'NON_CONSUMABLE') return 'non-consumable';\n return null;\n}\n\nfunction relationshipId(value: unknown): string | null {\n if (!isRecord(value) || !isRecord(value.data) || !isString(value.data.id)) return null;\n return value.data.id;\n}\n\nfunction empty(): ReadProductResult {\n return { products: [], diagnostics: [] };\n}\n\nfunction invalid(productId: string): ReadProductResult {\n return {\n products: [],\n diagnostics: [diagnostic(productId, 'APP_STORE_PRODUCT_STATE_INVALID')],\n };\n}\n\nfunction diagnostic(productId: string, code: string): MonetizationDiagnostic {\n return {\n severity: 'error',\n code,\n message: `App Store monetization product ${productId} cannot be normalized safely.`,\n target: 'ios',\n productId,\n };\n}\n\nfunction isPositiveInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 1;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { AppStoreConnectTransport } from './AppStoreConnectTransport';
2
+ import type { AppStoreProductVersion } from './AppStoreProductVersion';
3
+ export declare function readAppStoreProductVersion(options: {
4
+ readonly kind: 'iap' | 'subscription';
5
+ readonly productId: string;
6
+ readonly token: string;
7
+ readonly request: AppStoreConnectTransport;
8
+ }): Promise<AppStoreProductVersion | null | undefined>;
9
+ //# sourceMappingURL=readAppStoreProductVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readAppStoreProductVersion.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/readAppStoreProductVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAUvE,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,GAAG,SAAS,CAAC,CAmBrD"}
@@ -0,0 +1,56 @@
1
+ import { appStoreMonetizationUrls } from './appStoreMonetizationUrls';
2
+ import { readAppStoreCollection } from './readAppStoreCollection';
3
+ import { readAppStoreVersionLocalizations } from './readAppStoreVersionLocalizations';
4
+ export async function readAppStoreProductVersion(options) {
5
+ const url = options.kind === 'iap'
6
+ ? appStoreMonetizationUrls.iapVersions(options.productId)
7
+ : appStoreMonetizationUrls.subscriptionVersions(options.productId);
8
+ const page = await readAppStoreCollection({ ...options, url });
9
+ if (page === null)
10
+ return null;
11
+ const candidates = parseCandidates(page.data);
12
+ if (candidates === null)
13
+ return null;
14
+ const selected = selectCandidate(candidates);
15
+ if (selected === null)
16
+ return null;
17
+ if (selected === undefined)
18
+ return undefined;
19
+ const localizations = await readAppStoreVersionLocalizations({
20
+ ...options,
21
+ versionId: selected.resourceId,
22
+ });
23
+ return localizations === null
24
+ ? null
25
+ : { resourceId: selected.resourceId, state: selected.state, localizations };
26
+ }
27
+ function parseCandidates(values) {
28
+ const result = [];
29
+ for (const value of values) {
30
+ if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes))
31
+ return null;
32
+ const { version, state } = value.attributes;
33
+ if (!isPositiveInteger(version) || !isString(state))
34
+ return null;
35
+ result.push({ resourceId: value.id, version, state });
36
+ }
37
+ return result;
38
+ }
39
+ function selectCandidate(values) {
40
+ const drafts = values.filter((item) => item.state === 'PREPARE_FOR_SUBMISSION');
41
+ if (drafts.length === 1)
42
+ return drafts[0];
43
+ if (drafts.length > 1)
44
+ return null;
45
+ return values.slice().sort((a, b) => b.version - a.version)[0];
46
+ }
47
+ function isPositiveInteger(value) {
48
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= 1;
49
+ }
50
+ function isRecord(value) {
51
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
52
+ }
53
+ function isString(value) {
54
+ return typeof value === 'string';
55
+ }
56
+ //# sourceMappingURL=readAppStoreProductVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readAppStoreProductVersion.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/readAppStoreProductVersion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAQtF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAKhD;IACC,MAAM,GAAG,GACP,OAAO,CAAC,IAAI,KAAK,KAAK;QACpB,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAM,gCAAgC,CAAC;QAC3D,GAAG,OAAO;QACV,SAAS,EAAE,QAAQ,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,OAAO,aAAa,KAAK,IAAI;QAC3B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,eAAe,CAAC,MAA0B;IACjD,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACxF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAAmC;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,wBAAwB,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChF,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,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC","sourcesContent":["import type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport { appStoreMonetizationUrls } from './appStoreMonetizationUrls';\nimport type { AppStoreProductVersion } from './AppStoreProductVersion';\nimport { readAppStoreCollection } from './readAppStoreCollection';\nimport { readAppStoreVersionLocalizations } from './readAppStoreVersionLocalizations';\n\ninterface VersionCandidate {\n readonly resourceId: string;\n readonly version: number;\n readonly state: string;\n}\n\nexport async function readAppStoreProductVersion(options: {\n readonly kind: 'iap' | 'subscription';\n readonly productId: string;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<AppStoreProductVersion | null | undefined> {\n const url =\n options.kind === 'iap'\n ? appStoreMonetizationUrls.iapVersions(options.productId)\n : appStoreMonetizationUrls.subscriptionVersions(options.productId);\n const page = await readAppStoreCollection({ ...options, url });\n if (page === null) return null;\n const candidates = parseCandidates(page.data);\n if (candidates === null) return null;\n const selected = selectCandidate(candidates);\n if (selected === null) return null;\n if (selected === undefined) return undefined;\n const localizations = await readAppStoreVersionLocalizations({\n ...options,\n versionId: selected.resourceId,\n });\n return localizations === null\n ? null\n : { resourceId: selected.resourceId, state: selected.state, localizations };\n}\n\nfunction parseCandidates(values: readonly unknown[]): readonly VersionCandidate[] | null {\n const result: VersionCandidate[] = [];\n for (const value of values) {\n if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes)) return null;\n const { version, state } = value.attributes;\n if (!isPositiveInteger(version) || !isString(state)) return null;\n result.push({ resourceId: value.id, version, state });\n }\n return result;\n}\n\nfunction selectCandidate(values: readonly VersionCandidate[]): VersionCandidate | null | undefined {\n const drafts = values.filter((item) => item.state === 'PREPARE_FOR_SUBMISSION');\n if (drafts.length === 1) return drafts[0];\n if (drafts.length > 1) return null;\n return values.slice().sort((a, b) => b.version - a.version)[0];\n}\n\nfunction isPositiveInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 1;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { AppStoreConnectTransport } from './AppStoreConnectTransport';
2
+ import type { AppStoreMonetizationLocalizationResource } from './AppStoreMonetizationSnapshot';
3
+ export declare function readAppStoreVersionLocalizations(options: {
4
+ readonly kind: 'iap' | 'subscription';
5
+ readonly versionId: string;
6
+ readonly token: string;
7
+ readonly request: AppStoreConnectTransport;
8
+ }): Promise<readonly AppStoreMonetizationLocalizationResource[] | null>;
9
+ //# sourceMappingURL=readAppStoreVersionLocalizations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readAppStoreVersionLocalizations.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/readAppStoreVersionLocalizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,gCAAgC,CAAC;AAI/F,wBAAsB,gCAAgC,CAAC,OAAO,EAAE;IAC9D,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C,GAAG,OAAO,CAAC,SAAS,wCAAwC,EAAE,GAAG,IAAI,CAAC,CActE"}
@@ -0,0 +1,44 @@
1
+ import { appStoreMonetizationUrls } from './appStoreMonetizationUrls';
2
+ import { readAppStoreCollection } from './readAppStoreCollection';
3
+ export async function readAppStoreVersionLocalizations(options) {
4
+ const url = options.kind === 'iap'
5
+ ? appStoreMonetizationUrls.iapVersionLocalizations(options.versionId)
6
+ : appStoreMonetizationUrls.subscriptionVersionLocalizations(options.versionId);
7
+ const page = await readAppStoreCollection({ ...options, url });
8
+ if (page === null)
9
+ return null;
10
+ const result = [];
11
+ for (const item of page.data) {
12
+ const localization = parseLocalization(item);
13
+ if (localization === null)
14
+ return null;
15
+ result.push(localization);
16
+ }
17
+ return result.sort((a, b) => a.locale.localeCompare(b.locale));
18
+ }
19
+ function parseLocalization(value) {
20
+ if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes))
21
+ return null;
22
+ const locale = normalizeLocale(value.attributes.locale);
23
+ const { name, description } = value.attributes;
24
+ if (locale === null || !isString(name) || !isString(description))
25
+ return null;
26
+ return { resourceId: value.id, locale, name, description };
27
+ }
28
+ function normalizeLocale(value) {
29
+ if (!isString(value))
30
+ return null;
31
+ try {
32
+ return Intl.getCanonicalLocales(value)[0] ?? null;
33
+ }
34
+ catch {
35
+ return null;
36
+ }
37
+ }
38
+ function isRecord(value) {
39
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
40
+ }
41
+ function isString(value) {
42
+ return typeof value === 'string';
43
+ }
44
+ //# sourceMappingURL=readAppStoreVersionLocalizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readAppStoreVersionLocalizations.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/readAppStoreVersionLocalizations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,OAKtD;IACC,MAAM,GAAG,GACP,OAAO,CAAC,IAAI,KAAK,KAAK;QACpB,CAAC,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,MAAM,GAA+C,EAAE,CAAC;IAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,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,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;IAC/C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,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,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC","sourcesContent":["import type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport type { AppStoreMonetizationLocalizationResource } from './AppStoreMonetizationSnapshot';\nimport { appStoreMonetizationUrls } from './appStoreMonetizationUrls';\nimport { readAppStoreCollection } from './readAppStoreCollection';\n\nexport async function readAppStoreVersionLocalizations(options: {\n readonly kind: 'iap' | 'subscription';\n readonly versionId: string;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<readonly AppStoreMonetizationLocalizationResource[] | null> {\n const url =\n options.kind === 'iap'\n ? appStoreMonetizationUrls.iapVersionLocalizations(options.versionId)\n : appStoreMonetizationUrls.subscriptionVersionLocalizations(options.versionId);\n const page = await readAppStoreCollection({ ...options, url });\n if (page === null) return null;\n const result: AppStoreMonetizationLocalizationResource[] = [];\n for (const item of page.data) {\n const localization = parseLocalization(item);\n if (localization === null) return null;\n result.push(localization);\n }\n return result.sort((a, b) => a.locale.localeCompare(b.locale));\n}\n\nfunction parseLocalization(value: unknown): AppStoreMonetizationLocalizationResource | null {\n if (!isRecord(value) || !isString(value.id) || !isRecord(value.attributes)) return null;\n const locale = normalizeLocale(value.attributes.locale);\n const { name, description } = value.attributes;\n if (locale === null || !isString(name) || !isString(description)) return null;\n return { resourceId: value.id, locale, name, description };\n}\n\nfunction normalizeLocale(value: unknown): string | null {\n if (!isString(value)) 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 isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { MonetizationBasePrice } from '../../domain/monetization/MonetizationBasePrice';
2
+ import type { AppStoreConnectTransport } from './AppStoreConnectTransport';
3
+ import type { AppStoreResolvedPricePoint } from './AppStoreResolvedPricePoint';
4
+ export declare function resolveAppStorePricePoint(options: {
5
+ readonly kind: 'iap' | 'subscription';
6
+ readonly resourceId: string;
7
+ readonly price: MonetizationBasePrice;
8
+ readonly token: string;
9
+ readonly request: AppStoreConnectTransport;
10
+ }): Promise<AppStoreResolvedPricePoint | null>;
11
+ //# sourceMappingURL=resolveAppStorePricePoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAppStorePricePoint.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/resolveAppStorePricePoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAI/E,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAe7C"}
@@ -0,0 +1,46 @@
1
+ import { appStoreMonetizationUrls } from './appStoreMonetizationUrls';
2
+ import { readAppStoreJson } from './readAppStoreJson';
3
+ import { toAppStoreTerritoryCode } from './toAppStoreTerritoryCode';
4
+ export async function resolveAppStorePricePoint(options) {
5
+ const territory = toAppStoreTerritoryCode(options.price.country);
6
+ if (territory === null)
7
+ return null;
8
+ const url = options.kind === 'iap'
9
+ ? appStoreMonetizationUrls.iapPricePoints(options.resourceId, territory)
10
+ : appStoreMonetizationUrls.subscriptionPricePoints(options.resourceId, territory);
11
+ const value = await readAppStoreJson({ ...options, url });
12
+ if (!isRecord(value) || !isUnknownArray(value.data))
13
+ return null;
14
+ if (!currencyMatches(value.included, territory, options.price.currency))
15
+ return null;
16
+ const matches = value.data.filter((item) => pricePointMatches(item, options.price.amount));
17
+ const [match] = matches;
18
+ return matches.length === 1 && isRecord(match) && isString(match.id)
19
+ ? { territory, pricePointId: match.id }
20
+ : null;
21
+ }
22
+ function pricePointMatches(value, amount) {
23
+ return (isRecord(value) &&
24
+ isString(value.id) &&
25
+ isRecord(value.attributes) &&
26
+ value.attributes.customerPrice === amount);
27
+ }
28
+ function currencyMatches(value, territory, currency) {
29
+ if (!isUnknownArray(value))
30
+ return false;
31
+ return value.some((item) => isRecord(item) &&
32
+ item.type === 'territories' &&
33
+ item.id === territory &&
34
+ isRecord(item.attributes) &&
35
+ item.attributes.currency === currency);
36
+ }
37
+ function isUnknownArray(value) {
38
+ return Array.isArray(value);
39
+ }
40
+ function isRecord(value) {
41
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
42
+ }
43
+ function isString(value) {
44
+ return typeof value === 'string';
45
+ }
46
+ //# sourceMappingURL=resolveAppStorePricePoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAppStorePricePoint.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/resolveAppStorePricePoint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAM/C;IACC,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,GAAG,GACP,OAAO,CAAC,IAAI,KAAK,KAAK;QACpB,CAAC,CAAC,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC;QACxE,CAAC,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACxB,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE;QACvC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,MAAc;IACvD,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAC1B,KAAK,CAAC,UAAU,CAAC,aAAa,KAAK,MAAM,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,SAAiB,EAAE,QAAgB;IAC1E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,IAAI,EAAE,EAAE,CACP,QAAQ,CAAC,IAAI,CAAC;QACd,IAAI,CAAC,IAAI,KAAK,aAAa;QAC3B,IAAI,CAAC,EAAE,KAAK,SAAS;QACrB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,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,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC","sourcesContent":["import type { MonetizationBasePrice } from '../../domain/monetization/MonetizationBasePrice';\nimport type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport { appStoreMonetizationUrls } from './appStoreMonetizationUrls';\nimport type { AppStoreResolvedPricePoint } from './AppStoreResolvedPricePoint';\nimport { readAppStoreJson } from './readAppStoreJson';\nimport { toAppStoreTerritoryCode } from './toAppStoreTerritoryCode';\n\nexport async function resolveAppStorePricePoint(options: {\n readonly kind: 'iap' | 'subscription';\n readonly resourceId: string;\n readonly price: MonetizationBasePrice;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<AppStoreResolvedPricePoint | null> {\n const territory = toAppStoreTerritoryCode(options.price.country);\n if (territory === null) return null;\n const url =\n options.kind === 'iap'\n ? appStoreMonetizationUrls.iapPricePoints(options.resourceId, territory)\n : appStoreMonetizationUrls.subscriptionPricePoints(options.resourceId, territory);\n const value = await readAppStoreJson({ ...options, url });\n if (!isRecord(value) || !isUnknownArray(value.data)) return null;\n if (!currencyMatches(value.included, territory, options.price.currency)) return null;\n const matches = value.data.filter((item) => pricePointMatches(item, options.price.amount));\n const [match] = matches;\n return matches.length === 1 && isRecord(match) && isString(match.id)\n ? { territory, pricePointId: match.id }\n : null;\n}\n\nfunction pricePointMatches(value: unknown, amount: string): boolean {\n return (\n isRecord(value) &&\n isString(value.id) &&\n isRecord(value.attributes) &&\n value.attributes.customerPrice === amount\n );\n}\n\nfunction currencyMatches(value: unknown, territory: string, currency: string): boolean {\n if (!isUnknownArray(value)) return false;\n return value.some(\n (item) =>\n isRecord(item) &&\n item.type === 'territories' &&\n item.id === territory &&\n isRecord(item.attributes) &&\n item.attributes.currency === currency,\n );\n}\n\nfunction isUnknownArray(value: unknown): value is unknown[] {\n return Array.isArray(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { MonetizationProduct } from '../../domain/monetization/MonetizationProduct';
2
+ import type { AppStoreConnectTransport } from './AppStoreConnectTransport';
3
+ export declare function syncAppStoreMonetizationLocalizations(options: {
4
+ readonly kind: 'iap' | 'subscription';
5
+ readonly resourceId: string;
6
+ readonly product: MonetizationProduct;
7
+ readonly token: string;
8
+ readonly request: AppStoreConnectTransport;
9
+ }): Promise<boolean>;
10
+ //# sourceMappingURL=syncAppStoreMonetizationLocalizations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncAppStoreMonetizationLocalizations.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/syncAppStoreMonetizationLocalizations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAM3E,wBAAsB,qCAAqC,CAAC,OAAO,EAAE;IACnE,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;CAC5C,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBnB"}
@@ -0,0 +1,80 @@
1
+ import { appStoreMonetizationUrls } from './appStoreMonetizationUrls';
2
+ import { ensureAppStoreProductVersion } from './ensureAppStoreProductVersion';
3
+ import { readAppStoreVersionLocalizations } from './readAppStoreVersionLocalizations';
4
+ export async function syncAppStoreMonetizationLocalizations(options) {
5
+ const versionId = await ensureAppStoreProductVersion({
6
+ ...options,
7
+ productId: options.resourceId,
8
+ });
9
+ if (versionId === null)
10
+ return false;
11
+ const current = await readAppStoreVersionLocalizations({ ...options, versionId });
12
+ if (current === null)
13
+ return false;
14
+ for (const desired of options.product.localizations) {
15
+ const existing = current.find((item) => item.locale === desired.locale);
16
+ if (existing === undefined) {
17
+ if (!(await createLocalization(options, versionId, desired)))
18
+ return false;
19
+ }
20
+ else if (!sameLocalization(existing, desired)) {
21
+ if (!(await updateLocalization(options, existing.resourceId, desired)))
22
+ return false;
23
+ }
24
+ }
25
+ return true;
26
+ }
27
+ async function createLocalization(options, versionId, localization) {
28
+ const iap = options.kind === 'iap';
29
+ const response = await options.request({
30
+ method: 'POST',
31
+ url: iap
32
+ ? appStoreMonetizationUrls.createIapLocalization()
33
+ : appStoreMonetizationUrls.createSubscriptionLocalization(),
34
+ token: options.token,
35
+ body: JSON.stringify({
36
+ data: {
37
+ type: iap ? 'inAppPurchaseLocalizations' : 'subscriptionLocalizations',
38
+ attributes: {
39
+ locale: localization.locale,
40
+ name: localization.name,
41
+ description: localization.description,
42
+ },
43
+ relationships: {
44
+ version: {
45
+ data: {
46
+ type: iap ? 'inAppPurchaseVersions' : 'subscriptionVersions',
47
+ id: versionId,
48
+ },
49
+ },
50
+ },
51
+ },
52
+ }),
53
+ });
54
+ return ok(response.status);
55
+ }
56
+ async function updateLocalization(options, localizationId, localization) {
57
+ const iap = options.kind === 'iap';
58
+ const response = await options.request({
59
+ method: 'PATCH',
60
+ url: iap
61
+ ? appStoreMonetizationUrls.updateIapLocalization(localizationId)
62
+ : appStoreMonetizationUrls.updateSubscriptionLocalization(localizationId),
63
+ token: options.token,
64
+ body: JSON.stringify({
65
+ data: {
66
+ type: iap ? 'inAppPurchaseLocalizations' : 'subscriptionLocalizations',
67
+ id: localizationId,
68
+ attributes: { name: localization.name, description: localization.description },
69
+ },
70
+ }),
71
+ });
72
+ return ok(response.status);
73
+ }
74
+ function sameLocalization(current, desired) {
75
+ return current.name === desired.name && current.description === desired.description;
76
+ }
77
+ function ok(status) {
78
+ return status >= 200 && status < 300;
79
+ }
80
+ //# sourceMappingURL=syncAppStoreMonetizationLocalizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncAppStoreMonetizationLocalizations.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/syncAppStoreMonetizationLocalizations.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MonetizationProduct } from '../../domain/monetization/MonetizationProduct';\nimport type { AppStoreConnectTransport } from './AppStoreConnectTransport';\nimport type { AppStoreMonetizationLocalizationResource } from './AppStoreMonetizationSnapshot';\nimport { appStoreMonetizationUrls } from './appStoreMonetizationUrls';\nimport { ensureAppStoreProductVersion } from './ensureAppStoreProductVersion';\nimport { readAppStoreVersionLocalizations } from './readAppStoreVersionLocalizations';\n\nexport async function syncAppStoreMonetizationLocalizations(options: {\n readonly kind: 'iap' | 'subscription';\n readonly resourceId: string;\n readonly product: MonetizationProduct;\n readonly token: string;\n readonly request: AppStoreConnectTransport;\n}): Promise<boolean> {\n const versionId = await ensureAppStoreProductVersion({\n ...options,\n productId: options.resourceId,\n });\n if (versionId === null) return false;\n const current = await readAppStoreVersionLocalizations({ ...options, versionId });\n if (current === null) return false;\n for (const desired of options.product.localizations) {\n const existing = current.find((item) => item.locale === desired.locale);\n if (existing === undefined) {\n if (!(await createLocalization(options, versionId, desired))) return false;\n } else if (!sameLocalization(existing, desired)) {\n if (!(await updateLocalization(options, existing.resourceId, desired))) return false;\n }\n }\n return true;\n}\n\nasync function createLocalization(\n options: Parameters<typeof syncAppStoreMonetizationLocalizations>[0],\n versionId: string,\n localization: MonetizationProduct['localizations'][number],\n): Promise<boolean> {\n const iap = options.kind === 'iap';\n const response = await options.request({\n method: 'POST',\n url: iap\n ? appStoreMonetizationUrls.createIapLocalization()\n : appStoreMonetizationUrls.createSubscriptionLocalization(),\n token: options.token,\n body: JSON.stringify({\n data: {\n type: iap ? 'inAppPurchaseLocalizations' : 'subscriptionLocalizations',\n attributes: {\n locale: localization.locale,\n name: localization.name,\n description: localization.description,\n },\n relationships: {\n version: {\n data: {\n type: iap ? 'inAppPurchaseVersions' : 'subscriptionVersions',\n id: versionId,\n },\n },\n },\n },\n }),\n });\n return ok(response.status);\n}\n\nasync function updateLocalization(\n options: Parameters<typeof syncAppStoreMonetizationLocalizations>[0],\n localizationId: string,\n localization: MonetizationProduct['localizations'][number],\n): Promise<boolean> {\n const iap = options.kind === 'iap';\n const response = await options.request({\n method: 'PATCH',\n url: iap\n ? appStoreMonetizationUrls.updateIapLocalization(localizationId)\n : appStoreMonetizationUrls.updateSubscriptionLocalization(localizationId),\n token: options.token,\n body: JSON.stringify({\n data: {\n type: iap ? 'inAppPurchaseLocalizations' : 'subscriptionLocalizations',\n id: localizationId,\n attributes: { name: localization.name, description: localization.description },\n },\n }),\n });\n return ok(response.status);\n}\n\nfunction sameLocalization(\n current: AppStoreMonetizationLocalizationResource,\n desired: MonetizationProduct['localizations'][number],\n): boolean {\n return current.name === desired.name && current.description === desired.description;\n}\n\nfunction ok(status: number): boolean {\n return status >= 200 && status < 300;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { MonetizationSubscriptionPeriod } from '../../domain/monetization/MonetizationSubscription';
2
+ export declare function toAppStoreSubscriptionPeriod(period: MonetizationSubscriptionPeriod): string;
3
+ //# sourceMappingURL=toAppStoreSubscriptionPeriod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toAppStoreSubscriptionPeriod.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/toAppStoreSubscriptionPeriod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAWzG,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,8BAA8B,GAAG,MAAM,CAI3F"}
@@ -0,0 +1,15 @@
1
+ const PERIOD_PAIRS = [
2
+ ['P1W', 'ONE_WEEK'],
3
+ ['P1M', 'ONE_MONTH'],
4
+ ['P2M', 'TWO_MONTHS'],
5
+ ['P3M', 'THREE_MONTHS'],
6
+ ['P6M', 'SIX_MONTHS'],
7
+ ['P1Y', 'ONE_YEAR'],
8
+ ];
9
+ export function toAppStoreSubscriptionPeriod(period) {
10
+ const match = PERIOD_PAIRS.find(([canonical]) => canonical === period);
11
+ if (match === undefined)
12
+ throw new Error('APP_STORE_SUBSCRIPTION_PERIOD_INVALID');
13
+ return match[1];
14
+ }
15
+ //# sourceMappingURL=toAppStoreSubscriptionPeriod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toAppStoreSubscriptionPeriod.js","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/toAppStoreSubscriptionPeriod.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAmE;IACnF,CAAC,KAAK,EAAE,UAAU,CAAC;IACnB,CAAC,KAAK,EAAE,WAAW,CAAC;IACpB,CAAC,KAAK,EAAE,YAAY,CAAC;IACrB,CAAC,KAAK,EAAE,cAAc,CAAC;IACvB,CAAC,KAAK,EAAE,YAAY,CAAC;IACrB,CAAC,KAAK,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,MAAsC;IACjF,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC","sourcesContent":["import type { MonetizationSubscriptionPeriod } from '../../domain/monetization/MonetizationSubscription';\n\nconst PERIOD_PAIRS: readonly (readonly [MonetizationSubscriptionPeriod, string])[] = [\n ['P1W', 'ONE_WEEK'],\n ['P1M', 'ONE_MONTH'],\n ['P2M', 'TWO_MONTHS'],\n ['P3M', 'THREE_MONTHS'],\n ['P6M', 'SIX_MONTHS'],\n ['P1Y', 'ONE_YEAR'],\n];\n\nexport function toAppStoreSubscriptionPeriod(period: MonetizationSubscriptionPeriod): string {\n const match = PERIOD_PAIRS.find(([canonical]) => canonical === period);\n if (match === undefined) throw new Error('APP_STORE_SUBSCRIPTION_PERIOD_INVALID');\n return match[1];\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function toAppStoreTerritoryCode(country: string): string | null;
2
+ //# sourceMappingURL=toAppStoreTerritoryCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toAppStoreTerritoryCode.d.ts","sourceRoot":"","sources":["../../../src/providers/appStoreConnect/toAppStoreTerritoryCode.ts"],"names":[],"mappings":"AA4PA,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE"}