@tryterra/react-native 0.0.0-stage → 2.1.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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -2
  3. package/TerraReactNative.podspec +48 -0
  4. package/android/build.gradle +87 -0
  5. package/android/src/bridgeCore/kotlin/README.md +1 -0
  6. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/BridgeBootstrap.kt +133 -0
  7. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/BridgeHost.kt +32 -0
  8. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Conversions.kt +468 -0
  9. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/LauncherSlots.kt +41 -0
  10. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Rejections.kt +150 -0
  11. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/StreamRegistry.kt +77 -0
  12. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridge.kt +86 -0
  13. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeOpsImpl.kt +258 -0
  14. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeStreamsImpl.kt +52 -0
  15. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TokenBroker.kt +198 -0
  16. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeErrors.kt +217 -0
  17. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeOps.kt +493 -0
  18. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeTypes.kt +897 -0
  19. package/android/src/healthConnectOnly/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +11 -0
  20. package/android/src/main/AndroidManifest.xml +24 -0
  21. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraBridgeModule.kt +96 -0
  22. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraReactNativePackage.kt +26 -0
  23. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraStartup.kt +46 -0
  24. package/android/src/samsung/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +13 -0
  25. package/docs/availability.md +246 -0
  26. package/frameworks/TerraSDK.xcframework/Info.plist +48 -0
  27. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Info.plist +0 -0
  28. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.abi.json +81513 -0
  29. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.package.swiftinterface +2150 -0
  30. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +2150 -0
  31. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  32. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftinterface +2127 -0
  33. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  34. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/TerraSDK +0 -0
  35. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  36. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  37. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6473 -0
  38. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Info.plist +0 -0
  39. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +81513 -0
  40. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +2150 -0
  41. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2150 -0
  42. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  43. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2127 -0
  44. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +81513 -0
  45. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +2150 -0
  46. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2150 -0
  47. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  48. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2127 -0
  49. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  50. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/TerraSDK +0 -0
  51. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/_CodeSignature/CodeResources +223 -0
  52. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  53. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  54. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6474 -0
  55. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/TerraSDK.yml +6392 -0
  56. package/ios/TerraBridgeCore/BridgeBootstrap.swift +89 -0
  57. package/ios/TerraBridgeCore/BridgeHost.swift +13 -0
  58. package/ios/TerraBridgeCore/Conversions.swift +467 -0
  59. package/ios/TerraBridgeCore/Generated/BridgeErrors.swift +179 -0
  60. package/ios/TerraBridgeCore/Generated/BridgeOps.swift +795 -0
  61. package/ios/TerraBridgeCore/Generated/BridgeTypes.swift +1317 -0
  62. package/ios/TerraBridgeCore/Locked.swift +15 -0
  63. package/ios/TerraBridgeCore/README.md +1 -0
  64. package/ios/TerraBridgeCore/Rejections.swift +130 -0
  65. package/ios/TerraBridgeCore/RuntimeAttachment.swift +60 -0
  66. package/ios/TerraBridgeCore/StreamRegistry.swift +59 -0
  67. package/ios/TerraBridgeCore/TerraBridge.swift +122 -0
  68. package/ios/TerraBridgeCore/TerraBridgeOpsImpl.swift +254 -0
  69. package/ios/TerraBridgeCore/TerraBridgeStreamsImpl.swift +60 -0
  70. package/ios/TerraBridgeCore/TokenBroker.swift +147 -0
  71. package/ios/TerraBridgeModule.mm +79 -0
  72. package/ios/TerraBridgeModuleImpl.swift +49 -0
  73. package/ios/TerraReactNative.swift +19 -0
  74. package/lib/EndUser.d.ts +12 -0
  75. package/lib/EndUser.js +13 -0
  76. package/lib/NativeTerraBridge.d.ts +23 -0
  77. package/lib/NativeTerraBridge.js +13 -0
  78. package/lib/Terra.d.ts +154 -0
  79. package/lib/Terra.js +280 -0
  80. package/lib/TerraError.d.ts +42 -0
  81. package/lib/TerraError.js +95 -0
  82. package/lib/createTerra.d.ts +8 -0
  83. package/lib/createTerra.js +19 -0
  84. package/lib/generated/client.d.ts +92 -0
  85. package/lib/generated/client.js +196 -0
  86. package/lib/generated/codecs.d.ts +135 -0
  87. package/lib/generated/codecs.js +1358 -0
  88. package/lib/generated/errors.d.ts +13 -0
  89. package/lib/generated/errors.js +68 -0
  90. package/lib/generated/ops.d.ts +13 -0
  91. package/lib/generated/ops.js +137 -0
  92. package/lib/generated/streams.d.ts +23 -0
  93. package/lib/generated/streams.js +58 -0
  94. package/lib/generated/types.d.ts +481 -0
  95. package/lib/generated/types.js +92 -0
  96. package/lib/index.d.ts +29 -0
  97. package/lib/index.js +55 -0
  98. package/package.json +71 -4
  99. package/src/EndUser.ts +15 -0
  100. package/src/NativeTerraBridge.ts +27 -0
  101. package/src/Terra.ts +462 -0
  102. package/src/TerraError.ts +116 -0
  103. package/src/createTerra.ts +18 -0
  104. package/src/generated/client.ts +243 -0
  105. package/src/generated/codecs.ts +1287 -0
  106. package/src/generated/errors.ts +113 -0
  107. package/src/generated/ops.ts +197 -0
  108. package/src/generated/streams.ts +74 -0
  109. package/src/generated/types.ts +667 -0
  110. package/src/index.ts +52 -0
@@ -0,0 +1,217 @@
1
+ // Generated from surface/terra-surface.json by surface/gen. Do not edit by hand.
2
+ // Regenerate with: node surface/gen/src/cli.ts generate
3
+
4
+ package co.tryterra.sdk.bridge.generated
5
+
6
+ /**
7
+ * The codes the bridge itself raises, as opposed to the ones it forwards from the SDK.
8
+ *
9
+ * Namespaced under `bridge.` so that they can never collide with a code the SDK grows later.
10
+ */
11
+ public sealed class BridgeError(message: String) : Exception(message) {
12
+ public abstract val code: String
13
+ public abstract val isRetryable: Boolean
14
+
15
+ /**
16
+ * The native bootstrap did not run, so there is no client to attach to. On iOS the host is
17
+ * missing TerraReactNative.bootstrap() in its app delegate; details.line carries the exact
18
+ * line to add.
19
+ */
20
+ public data class NotBootstrapped(public val line: String) :
21
+ BridgeError("bridge.not_bootstrapped") {
22
+ override val code: String get() = "bridge.not_bootstrapped"
23
+ override val isRetryable: Boolean get() = false
24
+ }
25
+
26
+ /**
27
+ * The op exists in the surface and this platform's SDK has no entry point for it. A temporary
28
+ * gap, unlike a structurally absent member, which is typed optional instead.
29
+ */
30
+ public data class UnsupportedOnPlatform(public val op: String) :
31
+ BridgeError("bridge.unsupported_on_platform") {
32
+ override val code: String get() = "bridge.unsupported_on_platform"
33
+ override val isRetryable: Boolean get() = false
34
+ }
35
+
36
+ /**
37
+ * Android only: a permission sheet was asked for while no activity had registered a launcher
38
+ * for it. Retryable because the next foreground attempt can succeed.
39
+ *
40
+ * Available on android only.
41
+ */
42
+ public data object NoActivity : BridgeError("bridge.no_activity") {
43
+ override val code: String get() = "bridge.no_activity"
44
+ override val isRetryable: Boolean get() = true
45
+ }
46
+
47
+ /**
48
+ * Android only: the launcher the activity registered cannot present now, because a sheet from
49
+ * an earlier request is still up or the launcher was released. Retryable once that sheet is
50
+ * answered or a new activity registers. Nothing was recorded as requested.
51
+ *
52
+ * Available on android only.
53
+ */
54
+ public data object PermissionSheetUnavailable : BridgeError("bridge.permission_sheet_unavailable") {
55
+ override val code: String get() = "bridge.permission_sheet_unavailable"
56
+ override val isRetryable: Boolean get() = true
57
+ }
58
+
59
+ /**
60
+ * The JS token provider did not answer inside its budget. Distinct from token_provider_failed,
61
+ * which is the provider answering with an error.
62
+ */
63
+ public data class TokenTimeout(public val timeoutMs: Int) :
64
+ BridgeError("bridge.token_timeout") {
65
+ override val code: String get() = "bridge.token_timeout"
66
+ override val isRetryable: Boolean get() = false
67
+ }
68
+
69
+ /**
70
+ * A request did not decode against its declared type. `path` identifies the malformed field
71
+ * (for example, `$.field[index]`); values are omitted because they may be health samples.
72
+ */
73
+ public data class InvalidPayload(public val path: String) :
74
+ BridgeError("bridge.invalid_payload") {
75
+ override val code: String get() = "bridge.invalid_payload"
76
+ override val isRetryable: Boolean get() = false
77
+ }
78
+
79
+ }
80
+
81
+ /** Every code in the surface, for the parity test that reads the same list out of the schema. */
82
+ public object BridgeErrorCodes {
83
+ public val all: List<String> = listOf(
84
+ "health_data_unavailable",
85
+ "not_connected",
86
+ "route_awaiting_converter",
87
+ "token_unavailable",
88
+ "token_rejected",
89
+ "token_provider_failed",
90
+ "user_limit_reached",
91
+ "upgrade_required",
92
+ "platform",
93
+ "device_key_unavailable",
94
+ "signature_rejected",
95
+ "clock_skewed",
96
+ "link_revoked",
97
+ "dev_id_mismatch",
98
+ "link_conflict",
99
+ "sync_already_running",
100
+ "link_already_running",
101
+ "store_locked",
102
+ "store_unreadable",
103
+ "deadline_exceeded",
104
+ "read_quota_exceeded",
105
+ "permission_denied",
106
+ "authorization_not_determined",
107
+ "sample_not_found",
108
+ "rollback_incomplete",
109
+ "distance_not_attributable",
110
+ "blood_pressure_incomplete",
111
+ "authorization_unavailable_in_extension",
112
+ "planned_workout_unnamed",
113
+ "network.transport",
114
+ "network.throttled",
115
+ "network.server_error",
116
+ "network.malformed_response",
117
+ "network.offline",
118
+ "network.timed_out",
119
+ "bridge.not_bootstrapped",
120
+ "bridge.unsupported_on_platform",
121
+ "bridge.no_activity",
122
+ "bridge.permission_sheet_unavailable",
123
+ "bridge.token_timeout",
124
+ "bridge.invalid_payload",
125
+ )
126
+
127
+ /** Codes this platform can produce. A code the other platform owns must never be raised here. */
128
+ public val onThisPlatform: List<String> = listOf(
129
+ "health_data_unavailable",
130
+ "not_connected",
131
+ "route_awaiting_converter",
132
+ "token_unavailable",
133
+ "token_rejected",
134
+ "token_provider_failed",
135
+ "user_limit_reached",
136
+ "upgrade_required",
137
+ "platform",
138
+ "device_key_unavailable",
139
+ "signature_rejected",
140
+ "clock_skewed",
141
+ "link_revoked",
142
+ "dev_id_mismatch",
143
+ "link_conflict",
144
+ "sync_already_running",
145
+ "link_already_running",
146
+ "store_locked",
147
+ "store_unreadable",
148
+ "deadline_exceeded",
149
+ "read_quota_exceeded",
150
+ "permission_denied",
151
+ "authorization_not_determined",
152
+ "sample_not_found",
153
+ "rollback_incomplete",
154
+ "distance_not_attributable",
155
+ "blood_pressure_incomplete",
156
+ "authorization_unavailable_in_extension",
157
+ "network.transport",
158
+ "network.throttled",
159
+ "network.server_error",
160
+ "network.malformed_response",
161
+ "bridge.not_bootstrapped",
162
+ "bridge.unsupported_on_platform",
163
+ "bridge.no_activity",
164
+ "bridge.permission_sheet_unavailable",
165
+ "bridge.token_timeout",
166
+ "bridge.invalid_payload",
167
+ )
168
+
169
+ public val retryable: Map<String, Boolean> = mapOf(
170
+ "health_data_unavailable" to false,
171
+ "not_connected" to false,
172
+ "route_awaiting_converter" to false,
173
+ "token_unavailable" to false,
174
+ "token_rejected" to false,
175
+ "token_provider_failed" to false,
176
+ "user_limit_reached" to false,
177
+ "upgrade_required" to false,
178
+ "platform" to false,
179
+ "device_key_unavailable" to false,
180
+ "signature_rejected" to false,
181
+ "clock_skewed" to false,
182
+ "link_revoked" to false,
183
+ "dev_id_mismatch" to false,
184
+ "link_conflict" to true,
185
+ "sync_already_running" to false,
186
+ "link_already_running" to false,
187
+ "store_locked" to true,
188
+ "store_unreadable" to false,
189
+ "deadline_exceeded" to true,
190
+ "read_quota_exceeded" to true,
191
+ "permission_denied" to false,
192
+ "authorization_not_determined" to false,
193
+ "sample_not_found" to false,
194
+ "rollback_incomplete" to false,
195
+ "distance_not_attributable" to false,
196
+ "blood_pressure_incomplete" to false,
197
+ "authorization_unavailable_in_extension" to false,
198
+ "planned_workout_unnamed" to false,
199
+ "network.transport" to true,
200
+ "network.throttled" to true,
201
+ "network.malformed_response" to false,
202
+ "network.offline" to true,
203
+ "network.timed_out" to true,
204
+ "bridge.not_bootstrapped" to false,
205
+ "bridge.unsupported_on_platform" to false,
206
+ "bridge.no_activity" to true,
207
+ "bridge.permission_sheet_unavailable" to true,
208
+ "bridge.token_timeout" to false,
209
+ "bridge.invalid_payload" to false,
210
+ )
211
+
212
+ /** Codes whose retryability is decided per instance; read the value, not this table. */
213
+ public val carried: List<String> = listOf(
214
+ "network.server_error",
215
+ )
216
+ }
217
+