@tryterra/react-native 0.0.0-stage → 2.2.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.
- package/LICENSE +21 -0
- package/README.md +142 -2
- package/TerraReactNative.podspec +48 -0
- package/android/build.gradle +87 -0
- package/android/src/bridgeCore/kotlin/README.md +1 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/BridgeBootstrap.kt +133 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/BridgeHost.kt +32 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Conversions.kt +557 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/LauncherSlots.kt +41 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/ReadConversions.kt +250 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Rejections.kt +150 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/StreamRegistry.kt +77 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridge.kt +86 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeOpsImpl.kt +300 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeStreamsImpl.kt +50 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TokenBroker.kt +198 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeErrors.kt +217 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeOps.kt +582 -0
- package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeTypes.kt +1569 -0
- package/android/src/healthConnectOnly/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +11 -0
- package/android/src/main/AndroidManifest.xml +24 -0
- package/android/src/main/java/co/tryterra/sdk/reactnative/TerraBridgeModule.kt +96 -0
- package/android/src/main/java/co/tryterra/sdk/reactnative/TerraReactNativePackage.kt +26 -0
- package/android/src/main/java/co/tryterra/sdk/reactnative/TerraStartup.kt +46 -0
- package/android/src/samsung/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +13 -0
- package/docs/availability.md +396 -0
- package/frameworks/TerraSDK.xcframework/Info.plist +48 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Info.plist +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.abi.json +82672 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.package.swiftinterface +2186 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +2186 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftinterface +2163 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/TerraSDK +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6594 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Info.plist +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +82672 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +2186 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2186 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2163 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +82672 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +2186 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2186 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2163 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/TerraSDK +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/_CodeSignature/CodeResources +223 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6595 -0
- package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/TerraSDK.yml +6513 -0
- package/ios/TerraBridgeCore/BridgeBootstrap.swift +89 -0
- package/ios/TerraBridgeCore/BridgeHost.swift +13 -0
- package/ios/TerraBridgeCore/Conversions+Reads.swift +259 -0
- package/ios/TerraBridgeCore/Conversions.swift +594 -0
- package/ios/TerraBridgeCore/Generated/BridgeErrors.swift +179 -0
- package/ios/TerraBridgeCore/Generated/BridgeOps.swift +967 -0
- package/ios/TerraBridgeCore/Generated/BridgeTypes.swift +2050 -0
- package/ios/TerraBridgeCore/Locked.swift +15 -0
- package/ios/TerraBridgeCore/README.md +1 -0
- package/ios/TerraBridgeCore/Rejections.swift +130 -0
- package/ios/TerraBridgeCore/RuntimeAttachment.swift +60 -0
- package/ios/TerraBridgeCore/StreamRegistry.swift +59 -0
- package/ios/TerraBridgeCore/TerraBridge.swift +122 -0
- package/ios/TerraBridgeCore/TerraBridgeOpsImpl.swift +318 -0
- package/ios/TerraBridgeCore/TerraBridgeStreamsImpl.swift +60 -0
- package/ios/TerraBridgeCore/TokenBroker.swift +147 -0
- package/ios/TerraBridgeModule.mm +79 -0
- package/ios/TerraBridgeModuleImpl.swift +49 -0
- package/ios/TerraReactNative.swift +19 -0
- package/lib/EndUser.d.ts +12 -0
- package/lib/EndUser.js +13 -0
- package/lib/NativeTerraBridge.d.ts +23 -0
- package/lib/NativeTerraBridge.js +13 -0
- package/lib/Terra.d.ts +223 -0
- package/lib/Terra.js +336 -0
- package/lib/TerraError.d.ts +42 -0
- package/lib/TerraError.js +95 -0
- package/lib/createTerra.d.ts +8 -0
- package/lib/createTerra.js +19 -0
- package/lib/generated/client.d.ts +128 -0
- package/lib/generated/client.js +256 -0
- package/lib/generated/codecs.d.ts +219 -0
- package/lib/generated/codecs.js +2066 -0
- package/lib/generated/errors.d.ts +13 -0
- package/lib/generated/errors.js +68 -0
- package/lib/generated/ops.d.ts +13 -0
- package/lib/generated/ops.js +161 -0
- package/lib/generated/streams.d.ts +23 -0
- package/lib/generated/streams.js +58 -0
- package/lib/generated/types.d.ts +794 -0
- package/lib/generated/types.js +224 -0
- package/lib/index.d.ts +29 -0
- package/lib/index.js +55 -0
- package/package.json +71 -4
- package/src/EndUser.ts +15 -0
- package/src/NativeTerraBridge.ts +27 -0
- package/src/Terra.ts +592 -0
- package/src/TerraError.ts +116 -0
- package/src/createTerra.ts +18 -0
- package/src/generated/client.ts +315 -0
- package/src/generated/codecs.ts +1989 -0
- package/src/generated/errors.ts +113 -0
- package/src/generated/ops.ts +233 -0
- package/src/generated/streams.ts +74 -0
- package/src/generated/types.ts +1222 -0
- package/src/index.ts +54 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Generated from surface/terra-surface.json by surface/gen. Do not edit by hand.
|
|
3
|
+
// Regenerate with: node surface/gen/src/cli.ts generate
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.MenstrualEventKindValues = exports.VO2MaxTestTypeValues = exports.HeartRateVariabilityMetricValues = exports.BodyTemperatureMetricValues = exports.GlucoseSpecimenValues = exports.GlucoseMealTimeValues = exports.BloodGlucoseUnitValues = exports.BodyMetricValues = exports.WorkoutIntensityMetricValues = exports.IntradayMetricValues = exports.DayTotalMetricValues = exports.WorkoutSchedulingStatusValues = exports.FailureCodeValues = exports.DeviceKeyRevokeOutcomeValues = exports.DiagnosticsReasonValues = exports.BackgroundRestrictionReasonValues = exports.ActivityMoveModeValues = exports.BiologicalSexValues = exports.MenstruationFlowValues = exports.MealTypeValues = exports.NutrientValues = exports.MotionContextValues = exports.PermissionStatusValues = exports.DataCategoryValues = exports.SourceValues = void 0;
|
|
6
|
+
exports.SourceValues = [
|
|
7
|
+
"health",
|
|
8
|
+
"samsungHealth",
|
|
9
|
+
];
|
|
10
|
+
exports.DataCategoryValues = [
|
|
11
|
+
"activity",
|
|
12
|
+
"body",
|
|
13
|
+
"daily",
|
|
14
|
+
"sleep",
|
|
15
|
+
"nutrition",
|
|
16
|
+
"menstruation",
|
|
17
|
+
"athlete",
|
|
18
|
+
];
|
|
19
|
+
exports.PermissionStatusValues = [
|
|
20
|
+
"granted",
|
|
21
|
+
"denied",
|
|
22
|
+
"notDetermined",
|
|
23
|
+
"notDisclosed",
|
|
24
|
+
"unsupported",
|
|
25
|
+
"unavailable",
|
|
26
|
+
];
|
|
27
|
+
exports.MotionContextValues = [
|
|
28
|
+
"unknown",
|
|
29
|
+
"sedentary",
|
|
30
|
+
"active",
|
|
31
|
+
];
|
|
32
|
+
exports.NutrientValues = [
|
|
33
|
+
"energyConsumed",
|
|
34
|
+
"protein",
|
|
35
|
+
"carbohydrates",
|
|
36
|
+
"fatTotal",
|
|
37
|
+
"fatSaturated",
|
|
38
|
+
"fatMonounsaturated",
|
|
39
|
+
"fatPolyunsaturated",
|
|
40
|
+
"sugar",
|
|
41
|
+
"fiber",
|
|
42
|
+
"cholesterol",
|
|
43
|
+
"sodium",
|
|
44
|
+
"potassium",
|
|
45
|
+
"calcium",
|
|
46
|
+
"iron",
|
|
47
|
+
"magnesium",
|
|
48
|
+
"zinc",
|
|
49
|
+
"phosphorus",
|
|
50
|
+
"iodine",
|
|
51
|
+
"manganese",
|
|
52
|
+
"molybdenum",
|
|
53
|
+
"selenium",
|
|
54
|
+
"copper",
|
|
55
|
+
"chromium",
|
|
56
|
+
"chloride",
|
|
57
|
+
"caffeine",
|
|
58
|
+
"vitaminA",
|
|
59
|
+
"vitaminC",
|
|
60
|
+
"vitaminD",
|
|
61
|
+
"vitaminE",
|
|
62
|
+
"vitaminK",
|
|
63
|
+
"vitaminB6",
|
|
64
|
+
"vitaminB12",
|
|
65
|
+
"thiamin",
|
|
66
|
+
"riboflavin",
|
|
67
|
+
"niacin",
|
|
68
|
+
"folate",
|
|
69
|
+
"biotin",
|
|
70
|
+
"pantothenicAcid",
|
|
71
|
+
];
|
|
72
|
+
exports.MealTypeValues = [
|
|
73
|
+
"breakfast",
|
|
74
|
+
"lunch",
|
|
75
|
+
"dinner",
|
|
76
|
+
"snack",
|
|
77
|
+
"unknown",
|
|
78
|
+
];
|
|
79
|
+
exports.MenstruationFlowValues = [
|
|
80
|
+
"unspecified",
|
|
81
|
+
"light",
|
|
82
|
+
"medium",
|
|
83
|
+
"heavy",
|
|
84
|
+
"none",
|
|
85
|
+
];
|
|
86
|
+
exports.BiologicalSexValues = [
|
|
87
|
+
"female",
|
|
88
|
+
"male",
|
|
89
|
+
"other",
|
|
90
|
+
"notSet",
|
|
91
|
+
];
|
|
92
|
+
exports.ActivityMoveModeValues = [
|
|
93
|
+
"activeEnergy",
|
|
94
|
+
"appleMoveTime",
|
|
95
|
+
];
|
|
96
|
+
exports.BackgroundRestrictionReasonValues = [
|
|
97
|
+
"oemRestricted",
|
|
98
|
+
"backgroundReadDenied",
|
|
99
|
+
"healthConnectFeatureUnavailable",
|
|
100
|
+
"storeFeatureUnavailable",
|
|
101
|
+
"ticksNotRunning",
|
|
102
|
+
];
|
|
103
|
+
exports.DiagnosticsReasonValues = [
|
|
104
|
+
"uploadFailed",
|
|
105
|
+
"backfillAbandoned",
|
|
106
|
+
"backgroundObservationUnavailable",
|
|
107
|
+
"backgroundRestricted",
|
|
108
|
+
"backgroundRefreshUnscheduled",
|
|
109
|
+
"quiet",
|
|
110
|
+
"requested",
|
|
111
|
+
];
|
|
112
|
+
exports.DeviceKeyRevokeOutcomeValues = [
|
|
113
|
+
"revoked",
|
|
114
|
+
"alreadyRevoked",
|
|
115
|
+
"routeAbsent",
|
|
116
|
+
];
|
|
117
|
+
exports.FailureCodeValues = [
|
|
118
|
+
"healthDataUnavailable",
|
|
119
|
+
"notConnected",
|
|
120
|
+
"tokenUnavailable",
|
|
121
|
+
"tokenRejected",
|
|
122
|
+
"tokenProviderFailed",
|
|
123
|
+
"offline",
|
|
124
|
+
"timedOut",
|
|
125
|
+
"serverError",
|
|
126
|
+
"transport",
|
|
127
|
+
"malformedResponse",
|
|
128
|
+
"userLimitReached",
|
|
129
|
+
"upgradeRequired",
|
|
130
|
+
"platform",
|
|
131
|
+
"deviceKeyUnavailable",
|
|
132
|
+
"signatureRejected",
|
|
133
|
+
"linkRevoked",
|
|
134
|
+
"linkConflict",
|
|
135
|
+
"clockSkewed",
|
|
136
|
+
"devIDMismatch",
|
|
137
|
+
"syncAlreadyRunning",
|
|
138
|
+
"linkAlreadyRunning",
|
|
139
|
+
"storeLocked",
|
|
140
|
+
"storeUnreadable",
|
|
141
|
+
"deadlineExceeded",
|
|
142
|
+
"permissionDenied",
|
|
143
|
+
"authorizationNotDetermined",
|
|
144
|
+
"sampleNotFound",
|
|
145
|
+
"rollbackIncomplete",
|
|
146
|
+
"distanceNotAttributable",
|
|
147
|
+
"bloodPressureIncomplete",
|
|
148
|
+
"authorizationUnavailableInExtension",
|
|
149
|
+
"routeAwaitingConverter",
|
|
150
|
+
"readQuotaExceeded",
|
|
151
|
+
"plannedWorkoutUnnamed",
|
|
152
|
+
];
|
|
153
|
+
exports.WorkoutSchedulingStatusValues = [
|
|
154
|
+
"unsupported",
|
|
155
|
+
"notDetermined",
|
|
156
|
+
"denied",
|
|
157
|
+
"authorized",
|
|
158
|
+
];
|
|
159
|
+
exports.DayTotalMetricValues = [
|
|
160
|
+
"distanceWalkingRunning",
|
|
161
|
+
"distanceCycling",
|
|
162
|
+
"distanceSwimming",
|
|
163
|
+
"distanceWheelchair",
|
|
164
|
+
"activeEnergyBurned",
|
|
165
|
+
"basalEnergyBurned",
|
|
166
|
+
"flightsClimbed",
|
|
167
|
+
"appleExerciseTime",
|
|
168
|
+
];
|
|
169
|
+
exports.IntradayMetricValues = [
|
|
170
|
+
"activeEnergy",
|
|
171
|
+
"basalEnergy",
|
|
172
|
+
"distance",
|
|
173
|
+
"floorsClimbed",
|
|
174
|
+
];
|
|
175
|
+
exports.WorkoutIntensityMetricValues = [
|
|
176
|
+
"speed",
|
|
177
|
+
"power",
|
|
178
|
+
"cadence",
|
|
179
|
+
];
|
|
180
|
+
exports.BodyMetricValues = [
|
|
181
|
+
"weight",
|
|
182
|
+
"height",
|
|
183
|
+
"bodyFatPercentage",
|
|
184
|
+
"leanBodyMass",
|
|
185
|
+
"bmi",
|
|
186
|
+
];
|
|
187
|
+
exports.BloodGlucoseUnitValues = [
|
|
188
|
+
"mg/dL",
|
|
189
|
+
"mmol/L",
|
|
190
|
+
];
|
|
191
|
+
exports.GlucoseMealTimeValues = [
|
|
192
|
+
"preprandial",
|
|
193
|
+
"postprandial",
|
|
194
|
+
"unknown",
|
|
195
|
+
];
|
|
196
|
+
exports.GlucoseSpecimenValues = [
|
|
197
|
+
"capillary",
|
|
198
|
+
"interstitial",
|
|
199
|
+
"plasma",
|
|
200
|
+
"serum",
|
|
201
|
+
"tears",
|
|
202
|
+
"wholeBlood",
|
|
203
|
+
"unknown",
|
|
204
|
+
];
|
|
205
|
+
exports.BodyTemperatureMetricValues = [
|
|
206
|
+
"body",
|
|
207
|
+
"basal",
|
|
208
|
+
"wrist",
|
|
209
|
+
"skin",
|
|
210
|
+
];
|
|
211
|
+
exports.HeartRateVariabilityMetricValues = [
|
|
212
|
+
"sdnn",
|
|
213
|
+
"rmssd",
|
|
214
|
+
];
|
|
215
|
+
exports.VO2MaxTestTypeValues = [
|
|
216
|
+
"maxExercise",
|
|
217
|
+
"predictedSubMaxExercise",
|
|
218
|
+
"predictedNonExercise",
|
|
219
|
+
];
|
|
220
|
+
exports.MenstrualEventKindValues = [
|
|
221
|
+
"intermenstrualBleeding",
|
|
222
|
+
"ovulationTest",
|
|
223
|
+
"cervicalMucus",
|
|
224
|
+
];
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The package's public surface.
|
|
3
|
+
*
|
|
4
|
+
* Everything re-exported from `./generated` comes out of `surface/terra-surface.json`. The
|
|
5
|
+
* hand-written members are shapes rather than vocabulary - `Terra`, `TerraError`, `EndUser` and
|
|
6
|
+
* `createTerra` - and none of them names a data type, an op or a code of its own.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const terra = createTerra({ tokenProvider: () => api.terraToken() });
|
|
10
|
+
* await terra.connect("health", EndUser.reference(user.id));
|
|
11
|
+
* await terra.permissions.request({ read: ["body"] });
|
|
12
|
+
* const hr = await terra.body.heartRate({ kind: "lastHours", hours: 1 });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export { createTerra } from "./createTerra";
|
|
16
|
+
export { Terra } from "./Terra";
|
|
17
|
+
export type { ActivityMetrics, AthleteMetrics, Background, BodyMetrics, DailyMetrics, Diagnostics, MenstruationMetrics, NativeBridge, NutritionMetrics, Permissions, PlannedWorkouts, SleepMetrics, StreamListener, TerraOptions, TokenProvider, Unsubscribe, } from "./Terra";
|
|
18
|
+
export { TerraError } from "./TerraError";
|
|
19
|
+
export type { TerraErrorJSON } from "./TerraError";
|
|
20
|
+
export { EndUser } from "./EndUser";
|
|
21
|
+
export { GeneratedClient } from "./generated/client";
|
|
22
|
+
export type { Invoker } from "./generated/client";
|
|
23
|
+
export type { TerraErrorCode } from "./generated/errors";
|
|
24
|
+
export { retryableByCode, bridgeOwnedCodes, platformOnlyCodes } from "./generated/errors";
|
|
25
|
+
export type { OpId, StreamId } from "./generated/ops";
|
|
26
|
+
export { opIds, streamIds, availableOn, eventKinds } from "./generated/ops";
|
|
27
|
+
export type { StreamElements, StreamDelivery } from "./generated/streams";
|
|
28
|
+
export { decodeStreamDelivery, decodeStreamElement, streamAvailableOn } from "./generated/streams";
|
|
29
|
+
export * from "./generated/types";
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The package's public surface.
|
|
4
|
+
*
|
|
5
|
+
* Everything re-exported from `./generated` comes out of `surface/terra-surface.json`. The
|
|
6
|
+
* hand-written members are shapes rather than vocabulary - `Terra`, `TerraError`, `EndUser` and
|
|
7
|
+
* `createTerra` - and none of them names a data type, an op or a code of its own.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const terra = createTerra({ tokenProvider: () => api.terraToken() });
|
|
11
|
+
* await terra.connect("health", EndUser.reference(user.id));
|
|
12
|
+
* await terra.permissions.request({ read: ["body"] });
|
|
13
|
+
* const hr = await terra.body.heartRate({ kind: "lastHours", hours: 1 });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(o, k2, desc);
|
|
23
|
+
}) : (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
o[k2] = m[k];
|
|
26
|
+
}));
|
|
27
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
28
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.streamAvailableOn = exports.decodeStreamElement = exports.decodeStreamDelivery = exports.eventKinds = exports.availableOn = exports.streamIds = exports.opIds = exports.platformOnlyCodes = exports.bridgeOwnedCodes = exports.retryableByCode = exports.GeneratedClient = exports.EndUser = exports.TerraError = exports.Terra = exports.createTerra = void 0;
|
|
32
|
+
var createTerra_1 = require("./createTerra");
|
|
33
|
+
Object.defineProperty(exports, "createTerra", { enumerable: true, get: function () { return createTerra_1.createTerra; } });
|
|
34
|
+
var Terra_1 = require("./Terra");
|
|
35
|
+
Object.defineProperty(exports, "Terra", { enumerable: true, get: function () { return Terra_1.Terra; } });
|
|
36
|
+
var TerraError_1 = require("./TerraError");
|
|
37
|
+
Object.defineProperty(exports, "TerraError", { enumerable: true, get: function () { return TerraError_1.TerraError; } });
|
|
38
|
+
var EndUser_1 = require("./EndUser");
|
|
39
|
+
Object.defineProperty(exports, "EndUser", { enumerable: true, get: function () { return EndUser_1.EndUser; } });
|
|
40
|
+
var client_1 = require("./generated/client");
|
|
41
|
+
Object.defineProperty(exports, "GeneratedClient", { enumerable: true, get: function () { return client_1.GeneratedClient; } });
|
|
42
|
+
var errors_1 = require("./generated/errors");
|
|
43
|
+
Object.defineProperty(exports, "retryableByCode", { enumerable: true, get: function () { return errors_1.retryableByCode; } });
|
|
44
|
+
Object.defineProperty(exports, "bridgeOwnedCodes", { enumerable: true, get: function () { return errors_1.bridgeOwnedCodes; } });
|
|
45
|
+
Object.defineProperty(exports, "platformOnlyCodes", { enumerable: true, get: function () { return errors_1.platformOnlyCodes; } });
|
|
46
|
+
var ops_1 = require("./generated/ops");
|
|
47
|
+
Object.defineProperty(exports, "opIds", { enumerable: true, get: function () { return ops_1.opIds; } });
|
|
48
|
+
Object.defineProperty(exports, "streamIds", { enumerable: true, get: function () { return ops_1.streamIds; } });
|
|
49
|
+
Object.defineProperty(exports, "availableOn", { enumerable: true, get: function () { return ops_1.availableOn; } });
|
|
50
|
+
Object.defineProperty(exports, "eventKinds", { enumerable: true, get: function () { return ops_1.eventKinds; } });
|
|
51
|
+
var streams_1 = require("./generated/streams");
|
|
52
|
+
Object.defineProperty(exports, "decodeStreamDelivery", { enumerable: true, get: function () { return streams_1.decodeStreamDelivery; } });
|
|
53
|
+
Object.defineProperty(exports, "decodeStreamElement", { enumerable: true, get: function () { return streams_1.decodeStreamElement; } });
|
|
54
|
+
Object.defineProperty(exports, "streamAvailableOn", { enumerable: true, get: function () { return streams_1.streamAvailableOn; } });
|
|
55
|
+
__exportStar(require("./generated/types"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,73 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tryterra/react-native",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "2.2.1",
|
|
4
|
+
"description": "Terra's health SDK for React Native",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"homepage": "https://docs.tryterra.co",
|
|
7
|
+
"author": "Terra",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/tryterra/terra-mobile.git",
|
|
11
|
+
"directory": "react-native"
|
|
12
|
+
},
|
|
13
|
+
"main": "lib/index.js",
|
|
14
|
+
"types": "lib/index.d.ts",
|
|
15
|
+
"react-native": "src/index.ts",
|
|
16
|
+
"source": "src/index.ts",
|
|
17
|
+
"files": [
|
|
18
|
+
"src",
|
|
19
|
+
"!src/__tests__",
|
|
20
|
+
"lib",
|
|
21
|
+
"ios",
|
|
22
|
+
"frameworks",
|
|
23
|
+
"android",
|
|
24
|
+
"!android/build",
|
|
25
|
+
"!android/.gradle",
|
|
26
|
+
"!android/.cxx",
|
|
27
|
+
"TerraReactNative.podspec",
|
|
28
|
+
"docs",
|
|
29
|
+
"!docs/distribution.md"
|
|
30
|
+
],
|
|
31
|
+
"terraNative": {
|
|
32
|
+
"ios": "2.2.1",
|
|
33
|
+
"android": "2.2.1"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"typecheck": "tsc --noEmit",
|
|
37
|
+
"test": "jest",
|
|
38
|
+
"build": "node scripts/clean-lib.js && tsc -p tsconfig.build.json",
|
|
39
|
+
"vendor": "node scripts/vendor-bridge-core.js",
|
|
40
|
+
"fetch-sdk": "node scripts/fetch-terrasdk.js",
|
|
41
|
+
"prepack": "npm run build && npm run vendor && npm run fetch-sdk"
|
|
42
|
+
},
|
|
43
|
+
"codegenConfig": {
|
|
44
|
+
"name": "TerraReactNativeSpec",
|
|
45
|
+
"type": "modules",
|
|
46
|
+
"jsSrcsDir": "src",
|
|
47
|
+
"android": {
|
|
48
|
+
"javaPackageName": "co.tryterra.sdk.reactnative"
|
|
49
|
+
},
|
|
50
|
+
"ios": {
|
|
51
|
+
"modulesProvider": {
|
|
52
|
+
"TerraBridge": "TerraBridgeModule"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"react-native": ">=0.81.0"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@babel/core": "7.26.0",
|
|
61
|
+
"@babel/preset-env": "7.26.0",
|
|
62
|
+
"@babel/preset-typescript": "7.26.0",
|
|
63
|
+
"@types/jest": "29.5.14",
|
|
64
|
+
"babel-jest": "29.7.0",
|
|
65
|
+
"jest": "29.7.0",
|
|
66
|
+
"react-native": "0.81.6",
|
|
67
|
+
"typescript": "5.9.2"
|
|
68
|
+
},
|
|
69
|
+
"publishConfig": {
|
|
70
|
+
"access": "public",
|
|
71
|
+
"registry": "https://registry.npmjs.org/"
|
|
72
|
+
}
|
|
73
|
+
}
|
package/src/EndUser.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Who a connect is for. Every connect names one: a second account on the same phone is a different
|
|
3
|
+
* person, and must not be handed the first one's link.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { EndUser as WireEndUser } from "./generated/types";
|
|
7
|
+
|
|
8
|
+
export type EndUser = WireEndUser;
|
|
9
|
+
|
|
10
|
+
export const EndUser = {
|
|
11
|
+
/** The person your backend knows as `id`: the same value it mints their token with. */
|
|
12
|
+
reference: (id: string): EndUser => ({ kind: "reference", id }),
|
|
13
|
+
/** Nobody your backend tracks. Every anonymous connect on one device is the same person. */
|
|
14
|
+
anonymous: { kind: "anonymous" } as EndUser,
|
|
15
|
+
} as const;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TurboModule spec. React Native's Codegen reads this file at the host app's build and
|
|
3
|
+
* generates the native interfaces that `ios/TerraBridgeModule.mm` and
|
|
4
|
+
* `android/.../TerraBridgeModule.kt` implement.
|
|
5
|
+
*
|
|
6
|
+
* Deliberately narrow: one op call, one stream subscription, one emitter. The op strings and their
|
|
7
|
+
* payloads are typed on both sides by `surface/gen`, so nothing here changes when the SDK grows an
|
|
8
|
+
* op.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type { CodegenTypes, TurboModule } from "react-native";
|
|
12
|
+
import { TurboModuleRegistry } from "react-native";
|
|
13
|
+
|
|
14
|
+
export type StreamMessageEvent = {
|
|
15
|
+
subscriptionId: string;
|
|
16
|
+
/** A `StreamMessage`, as the wire spells it. */
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export interface Spec extends TurboModule {
|
|
21
|
+
invoke(op: string, payload: string): Promise<string>;
|
|
22
|
+
subscribe(stream: string, params: string): Promise<string>;
|
|
23
|
+
unsubscribe(subscriptionId: string): void;
|
|
24
|
+
readonly onMessage: CodegenTypes.EventEmitter<StreamMessageEvent>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default TurboModuleRegistry.getEnforcing<Spec>("TerraBridge");
|