react-native-store-version 1.4.2 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +514 -43
  3. package/dist/checkVersion.d.ts +73 -0
  4. package/dist/checkVersion.d.ts.map +1 -0
  5. package/dist/checkVersion.js +193 -0
  6. package/dist/cli/check.js +38 -0
  7. package/dist/cli/checks/ids.js +111 -0
  8. package/dist/cli/checks/installed.js +51 -0
  9. package/dist/cli/checks/peers.js +31 -0
  10. package/dist/cli/checks/rollout.js +141 -0
  11. package/dist/cli/checks/store.js +71 -0
  12. package/dist/cli/checks/versions.js +83 -0
  13. package/dist/cli/index.js +43 -0
  14. package/dist/cli/main.js +182 -0
  15. package/dist/cli/output.js +77 -0
  16. package/dist/cli/packages.js +40 -0
  17. package/dist/cli/project/android.js +60 -0
  18. package/dist/cli/project/expo.js +194 -0
  19. package/dist/cli/project/files.js +42 -0
  20. package/dist/cli/project/gradle.js +145 -0
  21. package/dist/cli/project/index.js +10 -0
  22. package/dist/cli/project/ios.js +190 -0
  23. package/dist/cli/project/jsx.js +327 -0
  24. package/dist/cli/project/plist.js +166 -0
  25. package/dist/cli/project/sources.js +86 -0
  26. package/dist/cli/result.js +12 -0
  27. package/dist/compare.d.ts +31 -0
  28. package/dist/compare.d.ts.map +1 -0
  29. package/dist/compare.js +68 -0
  30. package/dist/detect.d.ts +68 -0
  31. package/dist/detect.d.ts.map +1 -0
  32. package/dist/detect.js +103 -0
  33. package/dist/errors.d.ts +33 -0
  34. package/dist/errors.d.ts.map +1 -0
  35. package/dist/errors.js +23 -0
  36. package/dist/fetchers/android.d.ts +53 -0
  37. package/dist/fetchers/android.d.ts.map +1 -0
  38. package/dist/fetchers/android.js +91 -0
  39. package/dist/fetchers/custom.d.ts +29 -0
  40. package/dist/fetchers/custom.d.ts.map +1 -0
  41. package/dist/fetchers/custom.js +41 -0
  42. package/dist/fetchers/ios.d.ts +61 -0
  43. package/dist/fetchers/ios.d.ts.map +1 -0
  44. package/dist/fetchers/ios.js +79 -0
  45. package/dist/index.d.ts +15 -14
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +9 -58
  48. package/dist/openStore.d.ts +29 -0
  49. package/dist/openStore.d.ts.map +1 -0
  50. package/dist/openStore.js +46 -0
  51. package/dist/policy.d.ts +75 -0
  52. package/dist/policy.d.ts.map +1 -0
  53. package/dist/policy.js +128 -0
  54. package/dist/react/DefaultForceModal.d.ts +26 -0
  55. package/dist/react/DefaultForceModal.d.ts.map +1 -0
  56. package/dist/react/DefaultForceModal.js +58 -0
  57. package/dist/react/DefaultWarningSheet.d.ts +26 -0
  58. package/dist/react/DefaultWarningSheet.d.ts.map +1 -0
  59. package/dist/react/DefaultWarningSheet.js +66 -0
  60. package/dist/react/StoreVersionModal.d.ts +52 -0
  61. package/dist/react/StoreVersionModal.d.ts.map +1 -0
  62. package/dist/react/StoreVersionModal.js +250 -0
  63. package/dist/react/StoreVersionProvider.d.ts +51 -0
  64. package/dist/react/StoreVersionProvider.d.ts.map +1 -0
  65. package/dist/react/StoreVersionProvider.js +69 -0
  66. package/dist/react/defaultUi.d.ts +72 -0
  67. package/dist/react/defaultUi.d.ts.map +1 -0
  68. package/dist/react/defaultUi.js +118 -0
  69. package/dist/react/engine.d.ts +146 -0
  70. package/dist/react/engine.d.ts.map +1 -0
  71. package/dist/react/engine.js +541 -0
  72. package/dist/react/texts.d.ts +43 -0
  73. package/dist/react/texts.d.ts.map +1 -0
  74. package/dist/react/texts.js +57 -0
  75. package/dist/react/useIsomorphicLayoutEffect.d.ts +3 -0
  76. package/dist/react/useIsomorphicLayoutEffect.d.ts.map +1 -0
  77. package/dist/react/useIsomorphicLayoutEffect.js +6 -0
  78. package/dist/react/useStoreVersion.d.ts +121 -0
  79. package/dist/react/useStoreVersion.d.ts.map +1 -0
  80. package/dist/react/useStoreVersion.js +23 -0
  81. package/dist/request.d.ts +78 -0
  82. package/dist/request.d.ts.map +1 -0
  83. package/dist/request.js +227 -0
  84. package/dist/resolve.d.ts +98 -0
  85. package/dist/resolve.d.ts.map +1 -0
  86. package/dist/resolve.js +218 -0
  87. package/dist/texts/ja.d.ts +8 -0
  88. package/dist/texts/ja.d.ts.map +1 -0
  89. package/dist/texts/ja.js +18 -0
  90. package/dist/vendor/compare-versions.d.ts +52 -0
  91. package/dist/vendor/compare-versions.d.ts.map +1 -0
  92. package/dist/vendor/compare-versions.js +111 -0
  93. package/package.json +83 -44
  94. package/src/checkVersion.ts +273 -0
  95. package/src/cli/check.ts +59 -0
  96. package/src/cli/checks/ids.ts +163 -0
  97. package/src/cli/checks/installed.ts +75 -0
  98. package/src/cli/checks/peers.ts +34 -0
  99. package/src/cli/checks/rollout.ts +183 -0
  100. package/src/cli/checks/store.ts +105 -0
  101. package/src/cli/checks/versions.ts +108 -0
  102. package/src/cli/index.ts +51 -0
  103. package/src/cli/main.ts +229 -0
  104. package/src/cli/output.ts +122 -0
  105. package/src/cli/packages.ts +43 -0
  106. package/src/cli/project/android.ts +96 -0
  107. package/src/cli/project/expo.ts +232 -0
  108. package/src/cli/project/files.ts +56 -0
  109. package/src/cli/project/gradle.ts +181 -0
  110. package/src/cli/project/index.ts +18 -0
  111. package/src/cli/project/ios.ts +284 -0
  112. package/src/cli/project/jsx.ts +354 -0
  113. package/src/cli/project/plist.ts +179 -0
  114. package/src/cli/project/sources.ts +118 -0
  115. package/src/cli/result.ts +34 -0
  116. package/src/compare.ts +101 -0
  117. package/src/detect.ts +178 -0
  118. package/src/errors.ts +63 -0
  119. package/src/fetchers/android.ts +136 -0
  120. package/src/fetchers/custom.ts +84 -0
  121. package/src/fetchers/ios.ts +160 -0
  122. package/src/index.ts +37 -0
  123. package/src/openStore.ts +74 -0
  124. package/src/policy.ts +223 -0
  125. package/src/react/DefaultForceModal.tsx +100 -0
  126. package/src/react/DefaultWarningSheet.tsx +115 -0
  127. package/src/react/StoreVersionModal.tsx +365 -0
  128. package/src/react/StoreVersionProvider.tsx +149 -0
  129. package/src/react/defaultUi.tsx +205 -0
  130. package/src/react/engine.ts +768 -0
  131. package/src/react/texts.ts +119 -0
  132. package/src/react/useIsomorphicLayoutEffect.ts +8 -0
  133. package/src/react/useStoreVersion.ts +153 -0
  134. package/src/request.ts +328 -0
  135. package/src/resolve.ts +388 -0
  136. package/src/texts/ja.ts +26 -0
  137. package/src/vendor/compare-versions.ts +128 -0
  138. package/texts/ja.d.ts +2 -0
  139. package/texts/ja.js +3 -0
  140. package/.eslintrc.js +0 -51
  141. package/.github/FUNDING.yml +0 -3
  142. package/.github/workflows/pr.yml +0 -48
  143. package/.github/workflows/release.yml +0 -259
  144. package/.prettierrc.js +0 -6
  145. package/babel.config.js +0 -3
  146. package/dist/android.d.ts +0 -1
  147. package/dist/android.js +0 -17
  148. package/dist/ios.d.ts +0 -1
  149. package/dist/ios.js +0 -18
@@ -1,259 +0,0 @@
1
- # npm への publish は Trusted Publishing(OIDC)で行う。
2
- # npmjs.com 側の Trusted Publisher 登録はこのファイル名(release.yml)と environment(npm)の完全一致が必要なので、
3
- # ファイル名を変えないこと(登録時には検証されず、publish 時に初めて失敗する)。
4
- name: release
5
-
6
- on:
7
- push:
8
- # `v1` のような major タグ(このワークフロー自身が付け替える)では発火させない
9
- tags:
10
- - 'v[0-9]+.[0-9]+.[0-9]+*'
11
-
12
- # ジョブ単位で必要な権限だけを付与する
13
- permissions: {}
14
-
15
- # リリースは 1 本ずつ実行する。並列に走ると、dist-tag の判定(npm view の latest)や
16
- # major タグの付け替えの順序が崩れ、latest や v<major> が古い版に戻りうるため。
17
- # GitHub は 1 グループにつき待機中の run を 1 本しか持たないので、3 本目を push すると待機中の 2 本目はキャンセルされる
18
- # (publish 前に止まるだけなので安全。キャンセルされた run は後から再実行する)。
19
- concurrency:
20
- group: release
21
- cancel-in-progress: false
22
-
23
- defaults:
24
- run:
25
- shell: bash
26
-
27
- jobs:
28
- # test だけ Node 18.18.2 で実行する。v1 の devDependency react-native@0.69.3 の jest/setup.js が
29
- # global.performance に代入するため、performance が read-only になった Node 18.19.0 以降(19+ を含む)では
30
- # 全スイートが失敗する。`18` と書くと 18 系の最新(18.20.x)が入って失敗するので、パッチまで固定する。
31
- # master(v2)は Phase 1c でテスト基盤を作り直したら Node 24 に戻す。
32
- # 1.x 系(v1.4.2 のタグから切る 1.x ブランチ)では v1 のテストを動かすため 18.18.2 のままにする(D29)。
33
- test:
34
- name: test (Node 18.18.2)
35
- runs-on: ubuntu-latest
36
- permissions:
37
- contents: read
38
-
39
- steps:
40
- - name: Checkout
41
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
42
- with:
43
- persist-credentials: false
44
-
45
- - name: Setup Node.js
46
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
47
- with:
48
- node-version: 18.18.2
49
- package-manager-cache: false
50
-
51
- # 依存の lifecycle script(postinstall など)は実行しない(v1 は不要)
52
- - name: Install dependencies
53
- run: npm ci --ignore-scripts
54
-
55
- - name: Test
56
- run: npm test
57
-
58
- publish:
59
- name: publish to npm
60
- # test が失敗したら publish しない(タグと version の照合はこのジョブの先頭で、publish より前に行う)
61
- needs: test
62
- runs-on: ubuntu-latest
63
- environment: npm
64
- permissions:
65
- contents: read
66
- # Trusted Publishing と provenance の OIDC トークン発行に必要
67
- id-token: write
68
- outputs:
69
- version: ${{ steps.dist-tag.outputs.version }}
70
- major: ${{ steps.dist-tag.outputs.major }}
71
- prerelease: ${{ steps.dist-tag.outputs.prerelease }}
72
- not-latest: ${{ steps.dist-tag.outputs.not-latest }}
73
-
74
- steps:
75
- - name: Checkout
76
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
77
- with:
78
- # このジョブは push しないので、GITHUB_TOKEN を git の設定に残さない
79
- persist-credentials: false
80
-
81
- - name: Setup Node.js
82
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
83
- with:
84
- node-version: 24
85
- registry-url: 'https://registry.npmjs.org'
86
- # publish するジョブではキャッシュを使わない(cache poisoning 対策)
87
- package-manager-cache: false
88
-
89
- # タグ名はイベント由来の値なので、run に直接埋め込まず env 経由で参照する(スクリプト注入防止)
90
- - name: Verify tag matches package.json version
91
- env:
92
- TAG: ${{ github.ref_name }}
93
- run: |
94
- version="$(node -p "require('./package.json').version")"
95
- if [[ "$TAG" != "v${version}" ]]; then
96
- echo "::error::tag (${TAG}) does not match package.json version (v${version})"
97
- exit 1
98
- fi
99
-
100
- # id-token: write を持つジョブなので、依存の lifecycle script(postinstall など)は実行しない
101
- # (lifecycle script 経由で OIDC トークンが使われる経路を塞ぐ。build では devDependency の tsc は動く。
102
- # v1 の build は tsc だけなので script は不要)
103
- - name: Install dependencies
104
- run: npm ci --ignore-scripts
105
-
106
- - name: Build
107
- run: npm run build
108
-
109
- # dist-tag の判定順(spec 10.1):
110
- # 1. version に `-` を含む(プレリリース)→ --tag next
111
- # 2. major が npm の latest の major より古い → --tag v<major>(何も付けないと latest が古い major に戻る)
112
- # 3. それ以外 → 指定なし(latest)
113
- # latest が取れないときは E404(未公開)だけ latest 扱いにし、それ以外は止める
114
- # (誤って latest を上書きするより止まる方が安全)。
115
- - name: Determine dist-tag
116
- id: dist-tag
117
- env:
118
- TAG: ${{ github.ref_name }}
119
- run: |
120
- # 前のステップで tag == "v<package.json の version>" を確認済み
121
- version="${TAG#v}"
122
- major="${version%%.*}"
123
- dist_tag=""
124
- prerelease=false
125
- not_latest=false
126
-
127
- if [[ "$version" == *-* ]]; then
128
- dist_tag="next"
129
- prerelease=true
130
- else
131
- # E404 は stdout ではなく stderr にしか出ないので、stderr を取って判定する
132
- err_file="$(mktemp)"
133
- if latest="$(npm view react-native-store-version dist-tags.latest 2>"$err_file")"; then
134
- # 成功しても値が想定外なら、latest を上書きしないよう止める
135
- if [[ ! "$latest" =~ ^[0-9]+\. ]]; then
136
- echo "::error::unexpected dist-tags.latest: '${latest}'"
137
- exit 1
138
- fi
139
- latest_major="${latest%%.*}"
140
- if (( major < latest_major )); then
141
- dist_tag="v${major}"
142
- not_latest=true
143
- fi
144
- elif grep -q 'E404' "$err_file"; then
145
- echo "react-native-store-version is not published yet; publishing as latest"
146
- else
147
- cat "$err_file" >&2
148
- echo "::error::npm view failed (not E404)"
149
- exit 1
150
- fi
151
- fi
152
-
153
- echo "version=${version} major=${major} dist-tag=${dist_tag:-(latest)} prerelease=${prerelease} not-latest=${not_latest}"
154
- {
155
- echo "version=${version}"
156
- echo "major=${major}"
157
- echo "dist-tag=${dist_tag}"
158
- echo "prerelease=${prerelease}"
159
- echo "not-latest=${not_latest}"
160
- } >> "$GITHUB_OUTPUT"
161
-
162
- # Trusted Publishing には npm >= 11.5.1 が必要
163
- - name: Ensure npm >= 11.5.1
164
- run: |
165
- current="$(npm -v)"
166
- # sort -V -C は「並びが昇順なら成功」なので、11.5.1 <= current のときだけ成功する
167
- if ! printf '%s\n' 11.5.1 "$current" | sort -V -C; then
168
- echo "npm ${current} is older than 11.5.1; upgrading"
169
- npm install -g npm@^11.5.1
170
- fi
171
- npm -v
172
-
173
- # NODE_AUTH_TOKEN / NPM_TOKEN は使わない(OIDC で認証する)
174
- - name: Publish
175
- env:
176
- DIST_TAG: ${{ steps.dist-tag.outputs.dist-tag }}
177
- run: |
178
- if [[ -n "$DIST_TAG" ]]; then
179
- npm publish --provenance --tag "$DIST_TAG"
180
- else
181
- npm publish --provenance
182
- fi
183
-
184
- github-release:
185
- name: create GitHub Release
186
- needs: publish
187
- runs-on: ubuntu-latest
188
- permissions:
189
- contents: write
190
-
191
- steps:
192
- - name: Create GitHub Release
193
- env:
194
- GH_TOKEN: ${{ github.token }}
195
- TAG: ${{ github.ref_name }}
196
- PRERELEASE: ${{ needs.publish.outputs.prerelease }}
197
- NOT_LATEST: ${{ needs.publish.outputs.not-latest }}
198
- run: |
199
- args=(--repo "$GITHUB_REPOSITORY" --generate-notes)
200
- if [[ "$PRERELEASE" == "true" ]]; then
201
- args+=(--prerelease)
202
- fi
203
- # 古い major の版(--tag v<major> で publish した版)が GitHub の「Latest」にならないようにする
204
- if [[ "$NOT_LATEST" == "true" ]]; then
205
- args+=(--latest=false)
206
- fi
207
- gh release create "$TAG" "${args[@]}"
208
-
209
- major-tag:
210
- name: move major tag
211
- needs: publish
212
- # プレリリースでは major タグを動かさない
213
- if: needs.publish.outputs.prerelease == 'false'
214
- runs-on: ubuntu-latest
215
- permissions:
216
- contents: write
217
-
218
- steps:
219
- # タグを push するので、このジョブだけは credentials を残す
220
- - name: Checkout
221
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
222
-
223
- # publish した版自身の major(1.x なら v1、2.x なら v2)を付け替える。
224
- # v1 などはトリガーのパターンに合わないので、push してもこのワークフローは再発火しない。
225
- # その major で公開済みの正式版のうち、この版が最新のときだけ付け替える
226
- # (古い版のジョブを再実行しても v<major> が古い版に戻らないように)。
227
- # publish 直後は npm view にまだ出てこないことがあるので、この版自身も候補に加えて比べる。
228
- - name: Move major tag
229
- env:
230
- VERSION: ${{ needs.publish.outputs.version }}
231
- MAJOR: ${{ needs.publish.outputs.major }}
232
- run: |
233
- # 範囲に合う版が 1 つも無い(その major の最初の正式版で、まだ npm view に出てこない)と
234
- # npm view は E404 で失敗する。E404 のときだけ「公開済みの正式版なし」として扱い、それ以外は止める
235
- err_file="$(mktemp)"
236
- if ! published="$(npm view "react-native-store-version@^${MAJOR}.0.0" version --json 2>"$err_file")"; then
237
- if grep -q 'E404' "$err_file"; then
238
- published=""
239
- else
240
- cat "$err_file" >&2
241
- echo "::error::npm view failed (not E404)"
242
- exit 1
243
- fi
244
- fi
245
- # コマンド置換の中では errexit が外れるので、node の失敗で止まるよう独立した代入にする
246
- list="$(printf '%s' "$published" | node -e '
247
- let s = "";
248
- process.stdin.on("data", (d) => (s += d)).on("end", () => {
249
- const v = s.trim() ? JSON.parse(s) : [];
250
- for (const x of Array.isArray(v) ? v : [v]) console.log(x);
251
- });
252
- ')"
253
- highest="$(printf '%s\n' "$list" "$VERSION" | sed '/^$/d' | sort -V | tail -n 1)"
254
- if [[ "$highest" != "$VERSION" ]]; then
255
- echo "v${MAJOR} is kept: ${VERSION} is older than the published ${highest}"
256
- exit 0
257
- fi
258
- git tag -f "v${MAJOR}"
259
- git push -f origin "v${MAJOR}"
package/.prettierrc.js DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- tabWidth: 2,
3
- trailingComma: 'es5',
4
- singleQuote: true,
5
- semi: true,
6
- }
package/babel.config.js DELETED
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- presets: ['module:metro-react-native-babel-preset'],
3
- };
package/dist/android.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare const getAndroidVersion: (storeURL?: string) => Promise<string>;
package/dist/android.js DELETED
@@ -1,17 +0,0 @@
1
- export const getAndroidVersion = async (storeURL = '') => {
2
- if (!storeURL.match(/^https?:\/\/play\.google\.com\/store\/apps\/details\?id=[0-9a-zA-Z.]+/)) {
3
- throw new Error('androidStoreURL is invalid.');
4
- }
5
- const response = await fetch(storeURL).then((r) => {
6
- if (r.status === 200) {
7
- return r.text();
8
- }
9
- throw new Error('androidStoreURL is invalid.');
10
- });
11
- const matches = response.match(/\[\[\[['"]((\d+\.)+\d+)['"]\]\],/);
12
- if (!matches) {
13
- throw new Error("can't get android app version.");
14
- }
15
- return matches[1];
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5kcm9pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hbmRyb2lkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDdkQsSUFDRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ2IsdUVBQXVFLENBQ3hFLEVBQ0Q7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBRW5FLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7S0FDbkQ7SUFFRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZ2V0QW5kcm9pZFZlcnNpb24gPSBhc3luYyAoc3RvcmVVUkwgPSAnJykgPT4ge1xuICBpZiAoXG4gICAgIXN0b3JlVVJMLm1hdGNoKFxuICAgICAgL15odHRwcz86XFwvXFwvcGxheVxcLmdvb2dsZVxcLmNvbVxcL3N0b3JlXFwvYXBwc1xcL2RldGFpbHNcXD9pZD1bMC05YS16QS1aLl0rL1xuICAgIClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhbmRyb2lkU3RvcmVVUkwgaXMgaW52YWxpZC4nKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goc3RvcmVVUkwpLnRoZW4oKHIpID0+IHtcbiAgICBpZiAoci5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgcmV0dXJuIHIudGV4dCgpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignYW5kcm9pZFN0b3JlVVJMIGlzIGludmFsaWQuJyk7XG4gIH0pO1xuXG4gIGNvbnN0IG1hdGNoZXMgPSByZXNwb25zZS5tYXRjaCgvXFxbXFxbXFxbWydcIl0oKFxcZCtcXC4pK1xcZCspWydcIl1cXF1cXF0sLyk7XG5cbiAgaWYgKCFtYXRjaGVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiY2FuJ3QgZ2V0IGFuZHJvaWQgYXBwIHZlcnNpb24uXCIpO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXNbMV07XG59O1xuIl19
package/dist/ios.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare const getIOSVersion: (storeURL?: string, country?: string) => Promise<string>;
package/dist/ios.js DELETED
@@ -1,18 +0,0 @@
1
- export const getIOSVersion = async (storeURL = '', country = 'jp') => {
2
- const appID = storeURL.match(/.+id([0-9]+)\??/);
3
- if (!appID) {
4
- throw new Error('iosStoreURL is invalid.');
5
- }
6
- const response = await fetch(`https://itunes.apple.com/lookup?id=${appID[1]}&country=${country}&${new Date().getTime()}`, {
7
- headers: {
8
- 'cache-control': 'no-cache',
9
- },
10
- })
11
- .then((r) => r.text())
12
- .then((r) => JSON.parse(r));
13
- if (!response || !response.results || response.results.length === 0) {
14
- throw new Error(`appID(${appID[1]}) is not released.`);
15
- }
16
- return response.results[0].version;
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLElBQUksRUFBRSxFQUFFO0lBQ25FLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVoRCxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQzVDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQzFCLHNDQUNFLEtBQUssQ0FBQyxDQUFDLENBQ1QsWUFBWSxPQUFPLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUM3QztRQUNFLE9BQU8sRUFBRTtZQUNQLGVBQWUsRUFBRSxVQUFVO1NBQzVCO0tBQ0YsQ0FDRjtTQUNFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3JCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlCLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQWlCLENBQUM7QUFDL0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGdldElPU1ZlcnNpb24gPSBhc3luYyAoc3RvcmVVUkwgPSAnJywgY291bnRyeSA9ICdqcCcpID0+IHtcbiAgY29uc3QgYXBwSUQgPSBzdG9yZVVSTC5tYXRjaCgvLitpZChbMC05XSspXFw/Py8pO1xuXG4gIGlmICghYXBwSUQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2lvc1N0b3JlVVJMIGlzIGludmFsaWQuJyk7XG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgIGBodHRwczovL2l0dW5lcy5hcHBsZS5jb20vbG9va3VwP2lkPSR7XG4gICAgICBhcHBJRFsxXVxuICAgIH0mY291bnRyeT0ke2NvdW50cnl9JiR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YCxcbiAgICB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdjYWNoZS1jb250cm9sJzogJ25vLWNhY2hlJyxcbiAgICAgIH0sXG4gICAgfVxuICApXG4gICAgLnRoZW4oKHIpID0+IHIudGV4dCgpKVxuICAgIC50aGVuKChyKSA9PiBKU09OLnBhcnNlKHIpKTtcblxuICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5yZXN1bHRzIHx8IHJlc3BvbnNlLnJlc3VsdHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBhcHBJRCgke2FwcElEWzFdfSkgaXMgbm90IHJlbGVhc2VkLmApO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdHNbMF0udmVyc2lvbiBhcyBzdHJpbmc7XG59O1xuIl19