@ohm_studio/sdk-react-native 0.5.2 → 0.6.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.
- package/README.md +36 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -30,6 +30,8 @@ const ohm = new OHM({
|
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
// Audio → structured JSON in one call
|
|
33
|
+
// `transcript` is always English — Tamil, Hindi, Telugu, Bengali, or any
|
|
34
|
+
// code-mixed consult is translated server-side before extraction runs.
|
|
33
35
|
const { transcript, data } = await ohm.audio.extract({
|
|
34
36
|
apiSlug: "opd-clinic",
|
|
35
37
|
file: { uri: localUri, name: "rec.m4a", type: "audio/mp4" },
|
|
@@ -64,6 +66,40 @@ export default function App() {
|
|
|
64
66
|
}
|
|
65
67
|
```
|
|
66
68
|
|
|
69
|
+
## Cancellation, upload progress, and discovery (v0.6+)
|
|
70
|
+
|
|
71
|
+
Every method accepts `signal?: AbortSignal`. `audio.transcribe` and
|
|
72
|
+
`audio.extract` accept `onProgress`. `ohm.apis.list()` enumerates
|
|
73
|
+
published APIs.
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
const controller = new AbortController();
|
|
77
|
+
|
|
78
|
+
const { data } = await ohm.audio.extract({
|
|
79
|
+
apiSlug: "opd-clinic",
|
|
80
|
+
file: { uri, name: "rec.m4a", type: "audio/mp4" },
|
|
81
|
+
signal: controller.signal,
|
|
82
|
+
onProgress: ({ percent }) => setProgress(percent),
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const apis = await ohm.apis.list();
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The React hooks (`useOhmExtract`, `useOhmAudioExtract`,
|
|
89
|
+
`useOhmSummarize`, `useRecorder`) auto-abort on unmount and on the next
|
|
90
|
+
mutation. Aborts surface as `OHMAbortError` (`code: "aborted"`) —
|
|
91
|
+
pattern match to ignore them.
|
|
92
|
+
|
|
93
|
+
## Typed `data` with the Studio CLI
|
|
94
|
+
|
|
95
|
+
Pair with [`@ohm_studio/cli`](https://www.npmjs.com/package/@ohm_studio/cli)
|
|
96
|
+
to generate TypeScript interfaces from your Studio schemas:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm install -D @ohm_studio/cli
|
|
100
|
+
npx ohm-studio pull-all --out src/ohm
|
|
101
|
+
```
|
|
102
|
+
|
|
67
103
|
## Production: proxy your backend
|
|
68
104
|
|
|
69
105
|
Don't ship live keys. Run a tiny proxy on your backend that holds the live key and forwards requests from your RN app (authenticated with your existing session token). Documented at [docs.ohm.doctor/security/rn-key-handling](https://docs.ohm.doctor/security/rn-key-handling).
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OHMCoreClient } from "@ohm_studio/sdk-core";
|
|
2
|
-
import type { OHMInit } from "@ohm_studio/sdk-core";
|
|
2
|
+
import type { OHMInit, UploadProgressEvent } from "@ohm_studio/sdk-core";
|
|
3
3
|
export * from "@ohm_studio/sdk-core";
|
|
4
4
|
export { ExpoRecorder, RecorderError, isExpoAvAvailable, } from "./recorder";
|
|
5
5
|
export type { ExpoRecorderOptions, RNFile, RecorderState, RecorderErrorCode, } from "./recorder";
|
|
@@ -33,7 +33,17 @@ export declare class OHM extends OHMCoreClient {
|
|
|
33
33
|
path: string;
|
|
34
34
|
file: any;
|
|
35
35
|
fields?: Record<string, string>;
|
|
36
|
+
signal?: AbortSignal;
|
|
37
|
+
onProgress?: (event: UploadProgressEvent) => void;
|
|
36
38
|
}): Promise<T>;
|
|
39
|
+
/**
|
|
40
|
+
* RN doesn't expose upload progress through `fetch`, so when the
|
|
41
|
+
* caller wants progress we fall back to XMLHttpRequest. Mirrors the
|
|
42
|
+
* sdk-js implementation byte-for-byte; kept duplicated rather than
|
|
43
|
+
* lifted into core because the FormData body type differs by platform
|
|
44
|
+
* and we want zero-cost when the caller doesn't request progress.
|
|
45
|
+
*/
|
|
46
|
+
private runMultipartXhr;
|
|
37
47
|
protected buildMultipartBody(file: unknown, fields?: Record<string, string>): Promise<unknown>;
|
|
38
48
|
}
|
|
39
49
|
export default OHM;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAEV,OAAO,EACP,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAY3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,GAAI,SAAQ,aAAa;gBACxB,IAAI,EAAE,OAAO;cAiBT,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE;QACpC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,GAAG,CAAC;QACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;KACnD,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBd;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;cAkFP,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC;CAuBpB;AAED,eAAe,GAAG,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OHMConfigError, OHMCoreClient } from "@ohm_studio/sdk-core";
|
|
1
|
+
import { OHMAbortError, OHMAuthError, OHMConfigError, OHMCoreClient, OHMRateLimitError, OHMServerError, OHMValidationError, } from "@ohm_studio/sdk-core";
|
|
2
2
|
export * from "@ohm_studio/sdk-core";
|
|
3
3
|
export { ExpoRecorder, RecorderError, isExpoAvAvailable, } from "./recorder";
|
|
4
4
|
export { BareRecorder } from "./bare-recorder";
|
|
@@ -47,7 +47,96 @@ export class OHM extends OHMCoreClient {
|
|
|
47
47
|
}
|
|
48
48
|
async runMultipart(opts) {
|
|
49
49
|
const fd = (await this.buildMultipartBody(opts.file, opts.fields));
|
|
50
|
-
|
|
50
|
+
if (opts.onProgress && typeof XMLHttpRequest !== "undefined") {
|
|
51
|
+
return this.runMultipartXhr({
|
|
52
|
+
path: opts.path,
|
|
53
|
+
body: fd,
|
|
54
|
+
signal: opts.signal,
|
|
55
|
+
onProgress: opts.onProgress,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return this.requestRaw("POST", opts.path, { body: fd }, { signal: opts.signal });
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* RN doesn't expose upload progress through `fetch`, so when the
|
|
62
|
+
* caller wants progress we fall back to XMLHttpRequest. Mirrors the
|
|
63
|
+
* sdk-js implementation byte-for-byte; kept duplicated rather than
|
|
64
|
+
* lifted into core because the FormData body type differs by platform
|
|
65
|
+
* and we want zero-cost when the caller doesn't request progress.
|
|
66
|
+
*/
|
|
67
|
+
runMultipartXhr(opts) {
|
|
68
|
+
const url = `${this.baseUrl}${opts.path}`;
|
|
69
|
+
const apiKey = this.apiKey;
|
|
70
|
+
const jwt = this.jwt;
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
if (opts.signal?.aborted) {
|
|
73
|
+
reject(new OHMAbortError());
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const xhr = new XMLHttpRequest();
|
|
77
|
+
xhr.open("POST", url, true);
|
|
78
|
+
if (apiKey)
|
|
79
|
+
xhr.setRequestHeader("Authorization", `Bearer ${apiKey}`);
|
|
80
|
+
else if (jwt)
|
|
81
|
+
xhr.setRequestHeader("Authorization", `Bearer ${jwt}`);
|
|
82
|
+
xhr.setRequestHeader("X-OHM-Client", "@ohm_studio/sdk-react-native@0.6.0");
|
|
83
|
+
xhr.upload.onprogress = (ev) => {
|
|
84
|
+
const total = ev.lengthComputable ? ev.total : 0;
|
|
85
|
+
const loaded = ev.loaded;
|
|
86
|
+
const percent = total > 0 ? Math.round((loaded / total) * 1000) / 10 : 0;
|
|
87
|
+
opts.onProgress({ loaded, total, percent });
|
|
88
|
+
};
|
|
89
|
+
xhr.onerror = () => reject(new OHMServerError({
|
|
90
|
+
message: "Network error during upload",
|
|
91
|
+
status: 0,
|
|
92
|
+
}));
|
|
93
|
+
xhr.onabort = () => reject(new OHMAbortError());
|
|
94
|
+
xhr.onload = () => {
|
|
95
|
+
const status = xhr.status;
|
|
96
|
+
const requestId = xhr.getResponseHeader("x-request-id") ||
|
|
97
|
+
xhr.getResponseHeader("x-ohm-request-id") ||
|
|
98
|
+
undefined;
|
|
99
|
+
let body = {};
|
|
100
|
+
try {
|
|
101
|
+
body = xhr.responseText ? JSON.parse(xhr.responseText) : {};
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
body = { message: xhr.responseText };
|
|
105
|
+
}
|
|
106
|
+
if (status >= 200 && status < 300) {
|
|
107
|
+
resolve(body);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const message = body?.message || `HTTP ${status}`;
|
|
111
|
+
if (status === 401 || status === 403) {
|
|
112
|
+
reject(new OHMAuthError({ message, status, requestId }));
|
|
113
|
+
}
|
|
114
|
+
else if (status === 422 || status === 400) {
|
|
115
|
+
reject(new OHMValidationError({
|
|
116
|
+
message,
|
|
117
|
+
status,
|
|
118
|
+
requestId,
|
|
119
|
+
fields: body?.fields,
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
else if (status === 429) {
|
|
123
|
+
const retryAfter = xhr.getResponseHeader("retry-after");
|
|
124
|
+
reject(new OHMRateLimitError({
|
|
125
|
+
message,
|
|
126
|
+
status,
|
|
127
|
+
requestId,
|
|
128
|
+
retryAfterSec: retryAfter ? Number(retryAfter) : body?.retryAfterSec,
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
reject(new OHMServerError({ message, status, requestId }));
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
if (opts.signal) {
|
|
136
|
+
opts.signal.addEventListener("abort", () => xhr.abort(), { once: true });
|
|
137
|
+
}
|
|
138
|
+
xhr.send(opts.body);
|
|
139
|
+
});
|
|
51
140
|
}
|
|
52
141
|
async buildMultipartBody(file, fields) {
|
|
53
142
|
const fd = new FormData();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ohm_studio/sdk-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "OHM Studio SDK for React Native. Voice-to-structured-JSON clinical extraction APIs in your mobile app.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@ohm_studio/sdk-core": "0.
|
|
44
|
+
"@ohm_studio/sdk-core": "0.4.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"react": ">=17",
|