react-native-store-version 1.4.2 → 2.0.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 (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
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // デフォルト UI(Force / Warning)が共有する部品: 配色、Context の読み取りと文言の解決、ボタン、文字のスタイル。
3
+ // 値は元のデザイン(Force / Warning)の style と配色の定義からそのまま写す(目分量で変えない)。
4
+ // RN 標準のコンポーネントだけで作り、依存は足さない。Modal の枠は StoreVersionModal.tsx
5
+ import { useContext, useMemo } from 'react';
6
+ import { Pressable, StyleSheet, Text, useColorScheme, } from 'react-native';
7
+ import { resolveTexts } from './texts.js';
8
+ import { StoreVersionDisplayContext, StoreVersionStateContext, } from './useStoreVersion.js';
9
+ /** ライト / ダークの配色(Force / Warning の配色の定義。両方のデザインで同じ値) */
10
+ export const PALETTES = {
11
+ light: {
12
+ card: '#FFFFFF',
13
+ text: '#18181B',
14
+ sub: '#52525B',
15
+ primary: '#1D4ED8',
16
+ iconBg: '#DBEAFE',
17
+ handle: '#D4D4D8',
18
+ secondaryText: '#1D4ED8',
19
+ },
20
+ dark: {
21
+ card: '#27272A',
22
+ text: '#FAFAFA',
23
+ sub: '#D4D4D8',
24
+ primary: '#2563EB',
25
+ iconBg: '#1E3A8A',
26
+ handle: '#52525B',
27
+ secondaryText: '#93C5FD',
28
+ },
29
+ };
30
+ /** 塗りのボタンの文字(デザインは `color: #FFFFFF` 固定。ライト / ダークで変わらない) */
31
+ export const BUTTON_TEXT_COLOR = '#FFFFFF';
32
+ /**
33
+ * カード / シートの最大幅(デザインから意図的に変える点)。タブレットや横向きで画面いっぱいに広がらないようにする。
34
+ * スマホの縦向き(幅 480 未満)では効かないので見た目は変わらない
35
+ */
36
+ export const MAX_CONTENT_WIDTH = 480;
37
+ /**
38
+ * `primaryColor` として使える値か。JS の利用者が false / '' / null などを渡しても(`isBrand && '#E11D48'` など)、
39
+ * 既定の配色に戻す(そのまま style に入れると塗りが透明になる。`icon` / `texts` と同じ扱い)
40
+ */
41
+ const isUsableColor = (value) => typeof value === 'string'
42
+ ? value !== ''
43
+ : typeof value === 'number' ||
44
+ (typeof value === 'object' && value !== null);
45
+ /**
46
+ * 端末の配色に合わせた色(`useColorScheme`。null(未対応の環境)はライト)。
47
+ * Provider に `primaryColor` があれば、ボタンの塗りと「あとで」の文字をそれにする
48
+ */
49
+ export const usePalette = () => {
50
+ const palette = PALETTES[useColorScheme() === 'dark' ? 'dark' : 'light'];
51
+ const primaryColor = useContext(StoreVersionDisplayContext)?.primaryColor;
52
+ return useMemo(() => !isUsableColor(primaryColor)
53
+ ? palette
54
+ : { ...palette, primary: primaryColor, secondaryText: primaryColor }, [palette, primaryColor]);
55
+ };
56
+ /**
57
+ * `icon` を描くかどうかの正規化。JS からの利用で null / false を渡されても「無し」として扱う
58
+ * (`components` に渡す `icon` も undefined にそろえる)
59
+ */
60
+ export const normalizeIcon = (icon) => {
61
+ const value = icon;
62
+ return value == null || value === false ? undefined : icon;
63
+ };
64
+ /**
65
+ * 判定の状態と表示の設定を読み、文言を解決する。Provider の中でしか描画されないので Context は必ずある。
66
+ * 文言は `texts` / `local` / `remote` が変わったときだけ解決し直す(`texts` の変更は表示中のモーダルに即座に反映される)
67
+ */
68
+ export const useDefaultUiContext = () => {
69
+ const state = useContext(StoreVersionStateContext);
70
+ const display = useContext(StoreVersionDisplayContext);
71
+ if (state === null || display === null) {
72
+ // Provider が描くので外から到達できない。型を狭めるためだけの throw
73
+ throw new Error('the default UI of react-native-store-version must be rendered by <StoreVersionProvider>');
74
+ }
75
+ const rawTexts = display.texts;
76
+ const { local, remote } = state;
77
+ const texts = useMemo(() => resolveTexts(rawTexts, { local, remote }), [rawTexts, local, remote]);
78
+ return { state, display, texts };
79
+ };
80
+ /**
81
+ * ボタン(デザイン: 高さ 50・radius 12・文字 16/600)。高さはフォントスケールで伸びるよう `minHeight` にする(デザインから意図的に変える点)。
82
+ * 押している間だけ `opacity: 0.7`(デザインに無いので決めた値)。`allowFontScaling` は切らない(既定 true)
83
+ */
84
+ export const ActionButton = ({ label, onPress, backgroundColor, color, }) => (_jsx(Pressable, { accessibilityRole: "button", onPress: onPress, style: ({ pressed }) => [
85
+ styles.button,
86
+ backgroundColor === undefined ? null : { backgroundColor },
87
+ pressed ? styles.pressed : null,
88
+ ], children: _jsx(Text, { style: [styles.buttonText, { color }], children: label }) }));
89
+ /** タイトル(デザイン: 20/28 bold)。フォントはプラットフォーム標準(fontFamily は指定しない) */
90
+ export const titleStyle = {
91
+ fontSize: 20,
92
+ lineHeight: 28,
93
+ fontWeight: '700',
94
+ };
95
+ /** 本文(デザイン: 15/22) */
96
+ export const messageStyle = {
97
+ fontSize: 15,
98
+ lineHeight: 22,
99
+ };
100
+ const styles = StyleSheet.create({
101
+ button: {
102
+ minHeight: 50,
103
+ borderRadius: 12,
104
+ alignItems: 'center',
105
+ justifyContent: 'center',
106
+ // 押せる範囲の余白。文字 16 の行の高さ(約 22)+ 上下 8 ずつは minHeight 50 に収まるので、デザインの見た目の大きさは変わらない。
107
+ // 文字が長くて折り返したときや大きいフォントでは、文字が端に貼り付かずに済む
108
+ paddingVertical: 8,
109
+ paddingHorizontal: 16,
110
+ },
111
+ buttonText: {
112
+ fontSize: 16,
113
+ fontWeight: '600',
114
+ },
115
+ pressed: {
116
+ opacity: 0.7,
117
+ },
118
+ });
@@ -0,0 +1,146 @@
1
+ import type { CompareDetail, CompareResult, DiffType } from '../compare.ts';
2
+ import { StoreVersionError } from '../errors.ts';
3
+ import type { VersionGetter } from '../fetchers/custom.ts';
4
+ import { type Action, type Policy } from '../policy.ts';
5
+ import type { StoreVersionStatus, UseStoreVersionResult } from './useStoreVersion.ts';
6
+ /** 判定全体の既定のタイムアウト(Android の HTML が約 1.25MB あるため) */
7
+ export declare const DEFAULT_TIMEOUT_MS = 10000;
8
+ /** `onResult` に渡す値(`ready` になるたびに 1 回) */
9
+ export type StoreVersionCheckResult = {
10
+ /** v1 の `checkVersion()` と同じ比較の結果。最新バージョンが比較できず、最低バージョンで force になったときは null */
11
+ result: CompareResult | null;
12
+ detail: CompareDetail | null;
13
+ action: Action;
14
+ diff: DiffType | null;
15
+ local: string;
16
+ /** Play の版が比較できず、最低バージョンで force になったときは null */
17
+ remote: string | null;
18
+ };
19
+ /** Provider の props のうち、判定に使うもの(表示の props は StoreVersionProvider.tsx) */
20
+ export type StoreVersionCheckProps = {
21
+ /**
22
+ * false なら何もしない(`status: 'skipped'`。`onError` も呼ばない)。既定 true。
23
+ * true → false に変わったら判定を取り消して `skipped` にし、false → true に変わったら判定を始める
24
+ */
25
+ enabled?: boolean;
26
+ /**
27
+ * アプリのバージョン。必ずネイティブのバージョン(iOS の `CFBundleShortVersionString` / Android の `versionName`)を渡す。
28
+ * `Constants.expoConfig.version` や `package.json` の値は JS バンドルに含まれ、OTA 更新で変わってしまう
29
+ * (ネイティブは古いのに「更新済み」と誤判定し、force が出なくなる)ので使わないこと。
30
+ * 省略すると expo-application の `nativeApplicationVersion` → react-native-device-info の `getVersion()` の順に取る
31
+ */
32
+ version?: string | null;
33
+ /** iOS の bundleId。省略すると expo-application の `applicationId` → react-native-device-info の `getBundleId()` の順に取る */
34
+ bundleId?: string | null;
35
+ /** Android の package name。省略すると expo-application の `applicationId` → react-native-device-info の `getBundleId()` の順に取る */
36
+ packageName?: string | null;
37
+ /** iTunes Lookup の国(`jp` など)。既定は端末ロケールの地域(取れなければ `us`) */
38
+ country?: string;
39
+ /**
40
+ * ストアとの差分に対する扱い。既定 `{ major: 'force', minor: 'warning', patch: 'warning' }`。
41
+ * `'force'` のような 1 つの値、`{ minor: 'force' }` のような個別指定(省略したキーは既定)、`(local, remote) => Action` の関数で書ける。
42
+ * 変わったら取り直さずに、直近の判定の最新 / 最低バージョンで `action` だけを計算し直す
43
+ * (関数は判定のたびと policy が変わるたびに呼ばれ、インラインで書いた関数は描画のたびに変わる)。
44
+ * 判定が `POLICY_FAILED` で止まり取得結果が無いとき(取得の前に検証で止まった・取得の後に policy の関数が throw した)は、
45
+ * policy を直しても `recheck()` まで `error` のまま。
46
+ *
47
+ * 注意(Android の段階公開): Android で段階公開を使う場合、公開対象外のユーザーは新バージョンを
48
+ * 入手できないため、ストア差分による `force` でアプリを使えなくなる可能性がある。
49
+ * `Platform.OS === 'android'` のときは `major: 'warning'` にするか、`getMinimumVersion` で
50
+ * force を制御すること。iOS の段階的リリースは自動アップデートの配信ペースだけを制御し、
51
+ * App Store から手動ならいつでも更新できるので問題ない。
52
+ */
53
+ policy?: Policy | null;
54
+ /** 判定全体のタイムアウト(ms)。既定 10000。最新バージョンが間に合わなければ `TIMEOUT`(UI は出さない) */
55
+ timeoutMs?: number;
56
+ /**
57
+ * バックグラウンドからの復帰時(`AppState` が `background` → `active`)にも再チェックする。既定 false。
58
+ * iOS の通知センターや権限ダイアログによる `inactive` → `active` では再チェックしない。
59
+ * Android には `inactive` が無く、権限ダイアログやほかのアプリから戻ったときも `background` → `active` になり再チェックする。
60
+ * Android は再チェックのたびに Play Store のページ(約 1.25MB)を取得する
61
+ */
62
+ recheckOnForeground?: boolean;
63
+ /**
64
+ * 最新バージョンの取得元(Remote Config / 自前の JSON など)。指定するとストアのバージョンは使わない
65
+ * (iOS はストア URL を得るためだけに lookup する。Android はストアに問い合わせない)。失敗はストアにフォールバックせず `error`。
66
+ * StrictMode では開発時だけ、マウント時に 2 回呼ばれうる(ストアへの fetch は 1 回にまとまる)
67
+ */
68
+ getLatestVersion?: VersionGetter | null;
69
+ /**
70
+ * 最低バージョンの取得元。これ未満は差分に関係なく force。失敗は最低バージョンの判定だけを飛ばす(`onError` には渡す)。
71
+ * StrictMode では開発時だけ、マウント時に 2 回呼ばれうる
72
+ */
73
+ getMinimumVersion?: VersionGetter | null;
74
+ /**
75
+ * 判定が `ready` になるたびに 1 回呼ぶ(`skipped` / `error` では呼ばない)。
76
+ * Promise を返しても待たない(reject しても unhandled rejection にはしない。開発時は `console.warn`)
77
+ */
78
+ onResult?: (result: StoreVersionCheckResult) => void;
79
+ /**
80
+ * エラーを受け取る(UI は出さない)。1 回の判定で複数回呼ばれうる(例: 最低バージョンの取得の失敗と、
81
+ * 最新バージョンの取得の失敗、iOS のストア URL の lookup の失敗)。判定の取り消し(アンマウント・バックグラウンド)では呼ばない。
82
+ * 再チェックの失敗(前回の結果は残る)と `openStore()` の失敗(`STORE_URL_UNAVAILABLE`)も渡す。
83
+ * 渡さない場合は `__DEV__` のときだけ `console.warn` する。
84
+ * Promise を返しても待たない(reject しても unhandled rejection にはしない。開発時は `console.warn`)
85
+ */
86
+ onError?: (error: StoreVersionError) => void;
87
+ };
88
+ /**
89
+ * `country` の既定。端末ロケールの地域を JS だけで取る(`Intl.DateTimeFormat().resolvedOptions().locale`)。
90
+ * 取れなければ `us`。例外は投げない(パッケージの入口からは export しない)
91
+ */
92
+ export declare const defaultCountry: () => string;
93
+ type Evaluation = {
94
+ result: CompareResult | null;
95
+ detail: CompareDetail | null;
96
+ action: Action;
97
+ diff: DiffType | null;
98
+ };
99
+ /** policy を当て直すために残す、直近の判定の取得結果 */
100
+ type Snapshot = {
101
+ latest: string | null;
102
+ minimum: string | null;
103
+ storeUrl: string | null;
104
+ releaseNotes: string | undefined;
105
+ };
106
+ /** engine の状態。React の state にはこれをそのまま写す */
107
+ export type Model = {
108
+ status: StoreVersionStatus;
109
+ local: string | null;
110
+ error: StoreVersionError | null;
111
+ /**
112
+ * 直近の判定の取得結果。`ready`、再チェック中(前回の ready を見せ続ける `checking`)、
113
+ * policy を当て直して `POLICY_FAILED` になった `error` のときにある
114
+ */
115
+ snapshot: Snapshot | null;
116
+ /** 見せる判定の結果。`ready` と、再チェック中(前回の ready の値)のときだけある */
117
+ evaluation: Evaluation | null;
118
+ };
119
+ export declare const IDLE: Model;
120
+ /** Provider の判定の操作(StoreVersionProvider.tsx が effect と hook の値に配線する) */
121
+ export type Engine = {
122
+ /** マウント(AppState の購読と最初の判定) */
123
+ mount(): void;
124
+ /** アンマウント(判定を取り消し、それ以降は setState / onResult / onError を呼ばない) */
125
+ unmount(): void;
126
+ /** 判定を始める(`recheck()`)。バックグラウンドの間は active まで待つ */
127
+ start(): void;
128
+ /** `enabled` の切り替え */
129
+ setEnabled(enabled: boolean): void;
130
+ /** `policy` の変更(取り直さずに action を計算し直す) */
131
+ applyPolicy(policy: Policy | null | undefined): void;
132
+ openStore(): Promise<boolean>;
133
+ dismiss(): void;
134
+ };
135
+ /**
136
+ * Provider の engine を作る。判断はすべてここの変数(最新の値)で行い、React の state は `setModel` で写すだけにする。
137
+ * props はいつも `getProps()` で最新のものを読む(変わっても取り直さない。例外は `enabled` の切り替え)
138
+ */
139
+ export declare const createEngine: (getProps: () => StoreVersionCheckProps, setModel: (model: Model) => void, setDismissedRemote: (remote: string) => void) => Engine;
140
+ /**
141
+ * engine の状態から hook の戻り値を作る。判定の結果(result / action / remote / storeUrl など)は ready のとき
142
+ * (再チェック中は前回の ready の値)だけ見せる
143
+ */
144
+ export declare const stateOf: (model: Model, dismissedRemote: string | null, engine: Engine) => UseStoreVersionResult;
145
+ export {};
146
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/react/engine.ts"],"names":[],"mappings":"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"}