@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.
Files changed (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +142 -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 +557 -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/ReadConversions.kt +250 -0
  11. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/Rejections.kt +150 -0
  12. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/StreamRegistry.kt +77 -0
  13. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridge.kt +86 -0
  14. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeOpsImpl.kt +300 -0
  15. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TerraBridgeStreamsImpl.kt +50 -0
  16. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/TokenBroker.kt +198 -0
  17. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeErrors.kt +217 -0
  18. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeOps.kt +582 -0
  19. package/android/src/bridgeCore/kotlin/co/tryterra/sdk/bridge/generated/BridgeTypes.kt +1569 -0
  20. package/android/src/healthConnectOnly/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +11 -0
  21. package/android/src/main/AndroidManifest.xml +24 -0
  22. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraBridgeModule.kt +96 -0
  23. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraReactNativePackage.kt +26 -0
  24. package/android/src/main/java/co/tryterra/sdk/reactnative/TerraStartup.kt +46 -0
  25. package/android/src/samsung/kotlin/co/tryterra/sdk/reactnative/TerraStores.kt +13 -0
  26. package/docs/availability.md +396 -0
  27. package/frameworks/TerraSDK.xcframework/Info.plist +48 -0
  28. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Info.plist +0 -0
  29. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.abi.json +82672 -0
  30. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.package.swiftinterface +2186 -0
  31. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +2186 -0
  32. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  33. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios.swiftinterface +2163 -0
  34. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  35. package/frameworks/TerraSDK.xcframework/ios-arm64/TerraSDK.framework/TerraSDK +0 -0
  36. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  37. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  38. package/frameworks/TerraSDK.xcframework/ios-arm64/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6594 -0
  39. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Info.plist +0 -0
  40. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +82672 -0
  41. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +2186 -0
  42. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2186 -0
  43. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  44. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2163 -0
  45. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +82672 -0
  46. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +2186 -0
  47. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2186 -0
  48. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  49. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/Modules/TerraSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2163 -0
  50. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/PrivacyInfo.xcprivacy +96 -0
  51. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/TerraSDK +0 -0
  52. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/TerraSDK.framework/_CodeSignature/CodeResources +223 -0
  53. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Info.plist +20 -0
  54. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/DWARF/TerraSDK +0 -0
  55. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/aarch64/TerraSDK.yml +6595 -0
  56. package/frameworks/TerraSDK.xcframework/ios-arm64_x86_64-simulator/dSYMs/TerraSDK.framework.dSYM/Contents/Resources/Relocations/x86_64/TerraSDK.yml +6513 -0
  57. package/ios/TerraBridgeCore/BridgeBootstrap.swift +89 -0
  58. package/ios/TerraBridgeCore/BridgeHost.swift +13 -0
  59. package/ios/TerraBridgeCore/Conversions+Reads.swift +259 -0
  60. package/ios/TerraBridgeCore/Conversions.swift +594 -0
  61. package/ios/TerraBridgeCore/Generated/BridgeErrors.swift +179 -0
  62. package/ios/TerraBridgeCore/Generated/BridgeOps.swift +967 -0
  63. package/ios/TerraBridgeCore/Generated/BridgeTypes.swift +2050 -0
  64. package/ios/TerraBridgeCore/Locked.swift +15 -0
  65. package/ios/TerraBridgeCore/README.md +1 -0
  66. package/ios/TerraBridgeCore/Rejections.swift +130 -0
  67. package/ios/TerraBridgeCore/RuntimeAttachment.swift +60 -0
  68. package/ios/TerraBridgeCore/StreamRegistry.swift +59 -0
  69. package/ios/TerraBridgeCore/TerraBridge.swift +122 -0
  70. package/ios/TerraBridgeCore/TerraBridgeOpsImpl.swift +318 -0
  71. package/ios/TerraBridgeCore/TerraBridgeStreamsImpl.swift +60 -0
  72. package/ios/TerraBridgeCore/TokenBroker.swift +147 -0
  73. package/ios/TerraBridgeModule.mm +79 -0
  74. package/ios/TerraBridgeModuleImpl.swift +49 -0
  75. package/ios/TerraReactNative.swift +19 -0
  76. package/lib/EndUser.d.ts +12 -0
  77. package/lib/EndUser.js +13 -0
  78. package/lib/NativeTerraBridge.d.ts +23 -0
  79. package/lib/NativeTerraBridge.js +13 -0
  80. package/lib/Terra.d.ts +223 -0
  81. package/lib/Terra.js +336 -0
  82. package/lib/TerraError.d.ts +42 -0
  83. package/lib/TerraError.js +95 -0
  84. package/lib/createTerra.d.ts +8 -0
  85. package/lib/createTerra.js +19 -0
  86. package/lib/generated/client.d.ts +128 -0
  87. package/lib/generated/client.js +256 -0
  88. package/lib/generated/codecs.d.ts +219 -0
  89. package/lib/generated/codecs.js +2066 -0
  90. package/lib/generated/errors.d.ts +13 -0
  91. package/lib/generated/errors.js +68 -0
  92. package/lib/generated/ops.d.ts +13 -0
  93. package/lib/generated/ops.js +161 -0
  94. package/lib/generated/streams.d.ts +23 -0
  95. package/lib/generated/streams.js +58 -0
  96. package/lib/generated/types.d.ts +794 -0
  97. package/lib/generated/types.js +224 -0
  98. package/lib/index.d.ts +29 -0
  99. package/lib/index.js +55 -0
  100. package/package.json +71 -4
  101. package/src/EndUser.ts +15 -0
  102. package/src/NativeTerraBridge.ts +27 -0
  103. package/src/Terra.ts +592 -0
  104. package/src/TerraError.ts +116 -0
  105. package/src/createTerra.ts +18 -0
  106. package/src/generated/client.ts +315 -0
  107. package/src/generated/codecs.ts +1989 -0
  108. package/src/generated/errors.ts +113 -0
  109. package/src/generated/ops.ts +233 -0
  110. package/src/generated/streams.ts +74 -0
  111. package/src/generated/types.ts +1222 -0
  112. 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": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
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");