@mentra/miniapp 0.3.0-dev.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 (277) hide show
  1. package/README.md +259 -0
  2. package/dist/background/index.d.ts +59 -0
  3. package/dist/background/index.d.ts.map +1 -0
  4. package/dist/background/index.js +25 -0
  5. package/dist/background/index.js.map +1 -0
  6. package/dist/background/register.d.ts +38 -0
  7. package/dist/background/register.d.ts.map +1 -0
  8. package/dist/background/register.js +75 -0
  9. package/dist/background/register.js.map +1 -0
  10. package/dist/dev-reload.d.ts +21 -0
  11. package/dist/dev-reload.d.ts.map +1 -0
  12. package/dist/dev-reload.js +62 -0
  13. package/dist/dev-reload.js.map +1 -0
  14. package/dist/envelope.d.ts +23 -0
  15. package/dist/envelope.d.ts.map +1 -0
  16. package/dist/envelope.js +47 -0
  17. package/dist/envelope.js.map +1 -0
  18. package/dist/globals.d.ts +54 -0
  19. package/dist/globals.d.ts.map +1 -0
  20. package/dist/globals.js +12 -0
  21. package/dist/globals.js.map +1 -0
  22. package/dist/index.d.ts +58 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +31 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/modules/actions.d.ts +54 -0
  27. package/dist/modules/actions.d.ts.map +1 -0
  28. package/dist/modules/actions.js +122 -0
  29. package/dist/modules/actions.js.map +1 -0
  30. package/dist/modules/auth.d.ts +25 -0
  31. package/dist/modules/auth.d.ts.map +1 -0
  32. package/dist/modules/auth.js +52 -0
  33. package/dist/modules/auth.js.map +1 -0
  34. package/dist/modules/base64.d.ts +16 -0
  35. package/dist/modules/base64.d.ts.map +1 -0
  36. package/dist/modules/base64.js +92 -0
  37. package/dist/modules/base64.js.map +1 -0
  38. package/dist/modules/blob.d.ts +161 -0
  39. package/dist/modules/blob.d.ts.map +1 -0
  40. package/dist/modules/blob.js +277 -0
  41. package/dist/modules/blob.js.map +1 -0
  42. package/dist/modules/camera.d.ts +137 -0
  43. package/dist/modules/camera.d.ts.map +1 -0
  44. package/dist/modules/camera.js +104 -0
  45. package/dist/modules/camera.js.map +1 -0
  46. package/dist/modules/cloud.d.ts +34 -0
  47. package/dist/modules/cloud.d.ts.map +1 -0
  48. package/dist/modules/cloud.js +70 -0
  49. package/dist/modules/cloud.js.map +1 -0
  50. package/dist/modules/dashboard.d.ts +16 -0
  51. package/dist/modules/dashboard.d.ts.map +1 -0
  52. package/dist/modules/dashboard.js +27 -0
  53. package/dist/modules/dashboard.js.map +1 -0
  54. package/dist/modules/display.d.ts +106 -0
  55. package/dist/modules/display.d.ts.map +1 -0
  56. package/dist/modules/display.js +57 -0
  57. package/dist/modules/display.js.map +1 -0
  58. package/dist/modules/events.d.ts +167 -0
  59. package/dist/modules/events.d.ts.map +1 -0
  60. package/dist/modules/events.js +123 -0
  61. package/dist/modules/events.js.map +1 -0
  62. package/dist/modules/glasses.d.ts +28 -0
  63. package/dist/modules/glasses.d.ts.map +1 -0
  64. package/dist/modules/glasses.js +39 -0
  65. package/dist/modules/glasses.js.map +1 -0
  66. package/dist/modules/heading.d.ts +16 -0
  67. package/dist/modules/heading.d.ts.map +1 -0
  68. package/dist/modules/heading.js +20 -0
  69. package/dist/modules/heading.js.map +1 -0
  70. package/dist/modules/imu.d.ts +31 -0
  71. package/dist/modules/imu.d.ts.map +1 -0
  72. package/dist/modules/imu.js +40 -0
  73. package/dist/modules/imu.js.map +1 -0
  74. package/dist/modules/input.d.ts +34 -0
  75. package/dist/modules/input.d.ts.map +1 -0
  76. package/dist/modules/input.js +50 -0
  77. package/dist/modules/input.js.map +1 -0
  78. package/dist/modules/led.d.ts +35 -0
  79. package/dist/modules/led.d.ts.map +1 -0
  80. package/dist/modules/led.js +39 -0
  81. package/dist/modules/led.js.map +1 -0
  82. package/dist/modules/location.d.ts +27 -0
  83. package/dist/modules/location.d.ts.map +1 -0
  84. package/dist/modules/location.js +35 -0
  85. package/dist/modules/location.js.map +1 -0
  86. package/dist/modules/mic.d.ts +44 -0
  87. package/dist/modules/mic.d.ts.map +1 -0
  88. package/dist/modules/mic.js +67 -0
  89. package/dist/modules/mic.js.map +1 -0
  90. package/dist/modules/miniapps.d.ts +72 -0
  91. package/dist/modules/miniapps.d.ts.map +1 -0
  92. package/dist/modules/miniapps.js +48 -0
  93. package/dist/modules/miniapps.js.map +1 -0
  94. package/dist/modules/navigation.d.ts +326 -0
  95. package/dist/modules/navigation.d.ts.map +1 -0
  96. package/dist/modules/navigation.js +386 -0
  97. package/dist/modules/navigation.js.map +1 -0
  98. package/dist/modules/permissions.d.ts +58 -0
  99. package/dist/modules/permissions.d.ts.map +1 -0
  100. package/dist/modules/permissions.js +66 -0
  101. package/dist/modules/permissions.js.map +1 -0
  102. package/dist/modules/phone.d.ts +61 -0
  103. package/dist/modules/phone.d.ts.map +1 -0
  104. package/dist/modules/phone.js +94 -0
  105. package/dist/modules/phone.js.map +1 -0
  106. package/dist/modules/pivots/engine.d.ts +169 -0
  107. package/dist/modules/pivots/engine.d.ts.map +1 -0
  108. package/dist/modules/pivots/engine.js +779 -0
  109. package/dist/modules/pivots/engine.js.map +1 -0
  110. package/dist/modules/pivots/geometry.d.ts +84 -0
  111. package/dist/modules/pivots/geometry.d.ts.map +1 -0
  112. package/dist/modules/pivots/geometry.js +371 -0
  113. package/dist/modules/pivots/geometry.js.map +1 -0
  114. package/dist/modules/pivots/instructions.d.ts +139 -0
  115. package/dist/modules/pivots/instructions.d.ts.map +1 -0
  116. package/dist/modules/pivots/instructions.js +280 -0
  117. package/dist/modules/pivots/instructions.js.map +1 -0
  118. package/dist/modules/speaker.d.ts +163 -0
  119. package/dist/modules/speaker.d.ts.map +1 -0
  120. package/dist/modules/speaker.js +250 -0
  121. package/dist/modules/speaker.js.map +1 -0
  122. package/dist/modules/storage.d.ts +50 -0
  123. package/dist/modules/storage.d.ts.map +1 -0
  124. package/dist/modules/storage.js +99 -0
  125. package/dist/modules/storage.js.map +1 -0
  126. package/dist/modules/stream.d.ts +129 -0
  127. package/dist/modules/stream.d.ts.map +1 -0
  128. package/dist/modules/stream.js +52 -0
  129. package/dist/modules/stream.js.map +1 -0
  130. package/dist/modules/system.d.ts +45 -0
  131. package/dist/modules/system.d.ts.map +1 -0
  132. package/dist/modules/system.js +42 -0
  133. package/dist/modules/system.js.map +1 -0
  134. package/dist/modules/transcription.d.ts +67 -0
  135. package/dist/modules/transcription.d.ts.map +1 -0
  136. package/dist/modules/transcription.js +106 -0
  137. package/dist/modules/transcription.js.map +1 -0
  138. package/dist/modules/translation.d.ts +59 -0
  139. package/dist/modules/translation.d.ts.map +1 -0
  140. package/dist/modules/translation.js +119 -0
  141. package/dist/modules/translation.js.map +1 -0
  142. package/dist/modules/ui.d.ts +186 -0
  143. package/dist/modules/ui.d.ts.map +1 -0
  144. package/dist/modules/ui.js +293 -0
  145. package/dist/modules/ui.js.map +1 -0
  146. package/dist/protocol.d.ts +294 -0
  147. package/dist/protocol.d.ts.map +1 -0
  148. package/dist/protocol.js +320 -0
  149. package/dist/protocol.js.map +1 -0
  150. package/dist/react/MentraProvider.d.ts +33 -0
  151. package/dist/react/MentraProvider.d.ts.map +1 -0
  152. package/dist/react/MentraProvider.js +15 -0
  153. package/dist/react/MentraProvider.js.map +1 -0
  154. package/dist/react/MiniappHeader.d.ts +44 -0
  155. package/dist/react/MiniappHeader.d.ts.map +1 -0
  156. package/dist/react/MiniappHeader.js +32 -0
  157. package/dist/react/MiniappHeader.js.map +1 -0
  158. package/dist/react/index.d.ts +13 -0
  159. package/dist/react/index.d.ts.map +1 -0
  160. package/dist/react/index.js +9 -0
  161. package/dist/react/index.js.map +1 -0
  162. package/dist/react/useCapabilities.d.ts +26 -0
  163. package/dist/react/useCapabilities.d.ts.map +1 -0
  164. package/dist/react/useCapabilities.js +27 -0
  165. package/dist/react/useCapabilities.js.map +1 -0
  166. package/dist/react/useCapsuleHeaderStyle.d.ts +27 -0
  167. package/dist/react/useCapsuleHeaderStyle.d.ts.map +1 -0
  168. package/dist/react/useCapsuleHeaderStyle.js +36 -0
  169. package/dist/react/useCapsuleHeaderStyle.js.map +1 -0
  170. package/dist/react/useColorScheme.d.ts +18 -0
  171. package/dist/react/useColorScheme.d.ts.map +1 -0
  172. package/dist/react/useColorScheme.js +24 -0
  173. package/dist/react/useColorScheme.js.map +1 -0
  174. package/dist/react/useConnected.d.ts +17 -0
  175. package/dist/react/useConnected.d.ts.map +1 -0
  176. package/dist/react/useConnected.js +39 -0
  177. package/dist/react/useConnected.js.map +1 -0
  178. package/dist/react/useRpc.d.ts +29 -0
  179. package/dist/react/useRpc.d.ts.map +1 -0
  180. package/dist/react/useRpc.js +82 -0
  181. package/dist/react/useRpc.js.map +1 -0
  182. package/dist/react/useSafeArea.d.ts +21 -0
  183. package/dist/react/useSafeArea.d.ts.map +1 -0
  184. package/dist/react/useSafeArea.js +22 -0
  185. package/dist/react/useSafeArea.js.map +1 -0
  186. package/dist/session.d.ts +310 -0
  187. package/dist/session.d.ts.map +1 -0
  188. package/dist/session.js +653 -0
  189. package/dist/session.js.map +1 -0
  190. package/dist/sub-path-types.test-d.d.ts +28 -0
  191. package/dist/sub-path-types.test-d.d.ts.map +1 -0
  192. package/dist/sub-path-types.test-d.js +37 -0
  193. package/dist/sub-path-types.test-d.js.map +1 -0
  194. package/dist/transport/auto.d.ts +35 -0
  195. package/dist/transport/auto.d.ts.map +1 -0
  196. package/dist/transport/auto.js +125 -0
  197. package/dist/transport/auto.js.map +1 -0
  198. package/dist/transport/dispatch.d.ts +43 -0
  199. package/dist/transport/dispatch.d.ts.map +1 -0
  200. package/dist/transport/dispatch.js +91 -0
  201. package/dist/transport/dispatch.js.map +1 -0
  202. package/dist/transport/local-socket.d.ts +28 -0
  203. package/dist/transport/local-socket.d.ts.map +1 -0
  204. package/dist/transport/local-socket.js +80 -0
  205. package/dist/transport/local-socket.js.map +1 -0
  206. package/dist/transport/mock.d.ts +54 -0
  207. package/dist/transport/mock.d.ts.map +1 -0
  208. package/dist/transport/mock.js +205 -0
  209. package/dist/transport/mock.js.map +1 -0
  210. package/dist/transport/postmessage.d.ts +36 -0
  211. package/dist/transport/postmessage.d.ts.map +1 -0
  212. package/dist/transport/postmessage.js +78 -0
  213. package/dist/transport/postmessage.js.map +1 -0
  214. package/dist/transport/types.d.ts +25 -0
  215. package/dist/transport/types.d.ts.map +1 -0
  216. package/dist/transport/types.js +11 -0
  217. package/dist/transport/types.js.map +1 -0
  218. package/dist/ui/index.d.ts +98 -0
  219. package/dist/ui/index.d.ts.map +1 -0
  220. package/dist/ui/index.js +32 -0
  221. package/dist/ui/index.js.map +1 -0
  222. package/package.json +75 -0
  223. package/src/background/index.ts +152 -0
  224. package/src/background/register.ts +85 -0
  225. package/src/dev-reload.ts +60 -0
  226. package/src/envelope.ts +54 -0
  227. package/src/globals.ts +62 -0
  228. package/src/index.ts +171 -0
  229. package/src/modules/actions.ts +156 -0
  230. package/src/modules/auth.ts +68 -0
  231. package/src/modules/base64.ts +87 -0
  232. package/src/modules/blob.ts +341 -0
  233. package/src/modules/camera.ts +196 -0
  234. package/src/modules/cloud.ts +94 -0
  235. package/src/modules/dashboard.ts +31 -0
  236. package/src/modules/display.ts +122 -0
  237. package/src/modules/events.ts +264 -0
  238. package/src/modules/glasses.ts +44 -0
  239. package/src/modules/heading.ts +23 -0
  240. package/src/modules/imu.ts +44 -0
  241. package/src/modules/input.ts +71 -0
  242. package/src/modules/led.ts +61 -0
  243. package/src/modules/location.ts +39 -0
  244. package/src/modules/mic.ts +74 -0
  245. package/src/modules/miniapps.ts +90 -0
  246. package/src/modules/navigation.ts +670 -0
  247. package/src/modules/permissions.ts +84 -0
  248. package/src/modules/phone.ts +120 -0
  249. package/src/modules/pivots/engine.ts +863 -0
  250. package/src/modules/pivots/geometry.ts +409 -0
  251. package/src/modules/pivots/instructions.ts +343 -0
  252. package/src/modules/speaker.ts +328 -0
  253. package/src/modules/storage.ts +109 -0
  254. package/src/modules/stream.ts +163 -0
  255. package/src/modules/system.ts +76 -0
  256. package/src/modules/transcription.ts +128 -0
  257. package/src/modules/translation.ts +149 -0
  258. package/src/modules/ui.ts +498 -0
  259. package/src/protocol.ts +371 -0
  260. package/src/react/MentraProvider.tsx +50 -0
  261. package/src/react/MiniappHeader.tsx +122 -0
  262. package/src/react/index.ts +12 -0
  263. package/src/react/useCapabilities.ts +29 -0
  264. package/src/react/useCapsuleHeaderStyle.ts +54 -0
  265. package/src/react/useColorScheme.ts +26 -0
  266. package/src/react/useConnected.ts +47 -0
  267. package/src/react/useRpc.ts +106 -0
  268. package/src/react/useSafeArea.ts +40 -0
  269. package/src/session.ts +878 -0
  270. package/src/sub-path-types.test-d.ts +49 -0
  271. package/src/transport/auto.ts +143 -0
  272. package/src/transport/dispatch.ts +106 -0
  273. package/src/transport/local-socket.ts +93 -0
  274. package/src/transport/mock.ts +248 -0
  275. package/src/transport/postmessage.ts +95 -0
  276. package/src/transport/types.ts +26 -0
  277. package/src/ui/index.ts +122 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Compile-time test for the two-layer SDK split.
3
+ *
4
+ * The package exports two sub-paths with distinct type-roots:
5
+ * - `@mentra/miniapp/background` exposes `MiniappSession` + module
6
+ * types; it does NOT declare the `mentra` global.
7
+ * - `@mentra/miniapp/ui` exposes the `MentraUiGlobal` / `MentraTyped`
8
+ * types + React adapters. It deliberately does NOT declare a
9
+ * `var mentra` on `globalThis` — that would lock every consumer
10
+ * into the SDK's default `Record<string, unknown>` channel shape
11
+ * and break per-miniapp `Channels` registries via TS's `var`
12
+ * declaration-merging rules. Each miniapp declares its own typed
13
+ * `var mentra: MentraTyped<MyChannels>` in `shared/channels.ts`.
14
+ *
15
+ * Wrong-layer imports should be caught at compile time. This file is
16
+ * type-only (`.test-d.ts`) — no runtime assertions. `bun typecheck` /
17
+ * `bun x tsc -p tsconfig.json` is the executor.
18
+ *
19
+ * NOTE: this file lives inside `src/` so it ships with the package and
20
+ * downstream consumers' typechecks would also catch a regression. The
21
+ * `@ts-expect-error` lines fail the build if the named symbol *does*
22
+ * become reachable on the wrong path, which is the contract we want.
23
+ */
24
+ import type { MentraTyped } from "./ui/index";
25
+ export type _Typed = MentraTyped<{
26
+ foo: number;
27
+ }>;
28
+ //# sourceMappingURL=sub-path-types.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-path-types.test-d.d.ts","sourceRoot":"","sources":["../src/sub-path-types.test-d.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAUH,OAAO,KAAK,EAAiB,WAAW,EAAC,MAAM,YAAY,CAAA;AAS3D,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC,CAAA"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Compile-time test for the two-layer SDK split.
3
+ *
4
+ * The package exports two sub-paths with distinct type-roots:
5
+ * - `@mentra/miniapp/background` exposes `MiniappSession` + module
6
+ * types; it does NOT declare the `mentra` global.
7
+ * - `@mentra/miniapp/ui` exposes the `MentraUiGlobal` / `MentraTyped`
8
+ * types + React adapters. It deliberately does NOT declare a
9
+ * `var mentra` on `globalThis` — that would lock every consumer
10
+ * into the SDK's default `Record<string, unknown>` channel shape
11
+ * and break per-miniapp `Channels` registries via TS's `var`
12
+ * declaration-merging rules. Each miniapp declares its own typed
13
+ * `var mentra: MentraTyped<MyChannels>` in `shared/channels.ts`.
14
+ *
15
+ * Wrong-layer imports should be caught at compile time. This file is
16
+ * type-only (`.test-d.ts`) — no runtime assertions. `bun typecheck` /
17
+ * `bun x tsc -p tsconfig.json` is the executor.
18
+ *
19
+ * NOTE: this file lives inside `src/` so it ships with the package and
20
+ * downstream consumers' typechecks would also catch a regression. The
21
+ * `@ts-expect-error` lines fail the build if the named symbol *does*
22
+ * become reachable on the wrong path, which is the contract we want.
23
+ */
24
+ // ✅ MiniappSession is reachable from the background entry.
25
+ const _bg = undefined;
26
+ void _bg;
27
+ // ✅ MentraUiGlobal is reachable from the ui entry.
28
+ const _ui = undefined;
29
+ void _ui;
30
+ export {};
31
+ // ----- compile-time guardrails ------------------------------------------
32
+ // (TypeScript doesn't ship a `// @ts-expect-no-error` mirror, so we just
33
+ // rely on the named imports above failing if the corresponding files
34
+ // disappear. The asymmetric exports are enforced by package.json's
35
+ // `exports` map at consumer time; this file proves the source files
36
+ // expose what they should.)
37
+ //# sourceMappingURL=sub-path-types.test-d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-path-types.test-d.js","sourceRoot":"","sources":["../src/sub-path-types.test-d.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,2DAA2D;AAC3D,MAAM,GAAG,GAA+B,SAAS,CAAA;AACjD,KAAK,GAAG,CAAA;AAKR,mDAAmD;AACnD,MAAM,GAAG,GAA+B,SAAS,CAAA;AACjD,KAAK,GAAG,CAAA;;AAOR,2EAA2E;AAC3E,yEAAyE;AACzE,qEAAqE;AACrE,mEAAmE;AACnE,oEAAoE;AACpE,4BAA4B"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @fileoverview Auto-detect the right Transport based on environment.
3
+ */
4
+ import { Transport } from "./types";
5
+ export interface CreateTransportOptions {
6
+ /** Force a specific transport. Skip auto-detection. */
7
+ transport?: Transport;
8
+ /** For LocalSocketTransport fallback — override the ws URL. */
9
+ localSocketUrl?: string;
10
+ }
11
+ /**
12
+ * Return a Transport appropriate for the current environment.
13
+ *
14
+ * Detection order (first match wins):
15
+ *
16
+ * 1. **DispatchTransport** — when running in a per-miniapp JSContext
17
+ * (no DOM, but `__dispatch` is installed on `globalThis` by the
18
+ * MentraJS runtime). This is the production path.
19
+ * 2. **PostMessageTransport** — inside a MentraOS WebView
20
+ * (`window.ReactNativeWebView` defined). This is the existing UI
21
+ * layer path and the only transport miniapp UI bundles need.
22
+ * 3. **MockTransport** — explicit opt-in via `?mentra=mock` or
23
+ * `localStorage.MENTRA_MOCK=1`. Useful for Storybook / unit tests.
24
+ * 4. **LocalSocketWithMockFallback** — external browser, races a
25
+ * `ws://127.0.0.1` LocalSocketTransport open against a 500ms timeout
26
+ * and falls back to MockTransport so the page doesn't hang.
27
+ * 5. **MockTransport** — no `WebSocket` at all (some embedded contexts,
28
+ * jsdom without a polyfill). Keeps the SDK from throwing.
29
+ *
30
+ * DispatchTransport is checked FIRST because the JSContext doesn't have
31
+ * a `window` global, so it'd otherwise fall through to LocalSocket and
32
+ * race a non-existent dev WebSocket — annoying and confusing in logs.
33
+ */
34
+ export declare function createTransport(options?: CreateTransportOptions): Transport;
35
+ //# sourceMappingURL=auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/transport/auto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAC,SAAS,EAAsD,MAAM,SAAS,CAAA;AAItF,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,SAAS,CA0B/E"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * @fileoverview Auto-detect the right Transport based on environment.
3
+ */
4
+ import { DispatchTransport } from "./dispatch";
5
+ import { LocalSocketTransport } from "./local-socket";
6
+ import { MockTransport, isMockExplicitlyRequested } from "./mock";
7
+ import { PostMessageTransport } from "./postmessage";
8
+ const LOCAL_SOCKET_OPEN_TIMEOUT_MS = 500;
9
+ /**
10
+ * Return a Transport appropriate for the current environment.
11
+ *
12
+ * Detection order (first match wins):
13
+ *
14
+ * 1. **DispatchTransport** — when running in a per-miniapp JSContext
15
+ * (no DOM, but `__dispatch` is installed on `globalThis` by the
16
+ * MentraJS runtime). This is the production path.
17
+ * 2. **PostMessageTransport** — inside a MentraOS WebView
18
+ * (`window.ReactNativeWebView` defined). This is the existing UI
19
+ * layer path and the only transport miniapp UI bundles need.
20
+ * 3. **MockTransport** — explicit opt-in via `?mentra=mock` or
21
+ * `localStorage.MENTRA_MOCK=1`. Useful for Storybook / unit tests.
22
+ * 4. **LocalSocketWithMockFallback** — external browser, races a
23
+ * `ws://127.0.0.1` LocalSocketTransport open against a 500ms timeout
24
+ * and falls back to MockTransport so the page doesn't hang.
25
+ * 5. **MockTransport** — no `WebSocket` at all (some embedded contexts,
26
+ * jsdom without a polyfill). Keeps the SDK from throwing.
27
+ *
28
+ * DispatchTransport is checked FIRST because the JSContext doesn't have
29
+ * a `window` global, so it'd otherwise fall through to LocalSocket and
30
+ * race a non-existent dev WebSocket — annoying and confusing in logs.
31
+ */
32
+ export function createTransport(options = {}) {
33
+ if (options.transport)
34
+ return options.transport;
35
+ // 1) JSContext background world — single check for the native bridge.
36
+ if (DispatchTransport.isAvailable()) {
37
+ return new DispatchTransport();
38
+ }
39
+ if (typeof window !== "undefined" && window.ReactNativeWebView) {
40
+ return new PostMessageTransport();
41
+ }
42
+ // Explicit opt-in to mock — useful for stories / framework-level testing.
43
+ if (isMockExplicitlyRequested()) {
44
+ return new MockTransport();
45
+ }
46
+ if (typeof WebSocket !== "undefined") {
47
+ const localSocketOptions = {};
48
+ if (options.localSocketUrl)
49
+ localSocketOptions.url = options.localSocketUrl;
50
+ return new LocalSocketWithMockFallback(localSocketOptions);
51
+ }
52
+ // No WebSocket at all (some embedded contexts, jsdom without a polyfill).
53
+ // MockTransport keeps the SDK from throwing during construction.
54
+ return new MockTransport();
55
+ }
56
+ /**
57
+ * Internal wrapper transport: tries LocalSocketTransport first; if open() hasn't
58
+ * resolved within LOCAL_SOCKET_OPEN_TIMEOUT_MS, swaps in MockTransport so a
59
+ * miniapp opened in a regular browser tab gets a synthetic CONNECT_ACK instead
60
+ * of a 10-second hang while the SDK's CONNECT_ACK timeout expires.
61
+ *
62
+ * Once a delegate is selected, all subsequent calls forward to it.
63
+ */
64
+ class LocalSocketWithMockFallback {
65
+ constructor(options) {
66
+ this.options = options;
67
+ this.active = null;
68
+ this.messageHandler = null;
69
+ this.disconnectHandler = null;
70
+ }
71
+ async open() {
72
+ const local = new LocalSocketTransport(this.options);
73
+ let timedOut = false;
74
+ const timeout = new Promise((_, reject) => {
75
+ setTimeout(() => {
76
+ timedOut = true;
77
+ reject(new Error("LocalSocketTransport open timed out"));
78
+ }, LOCAL_SOCKET_OPEN_TIMEOUT_MS);
79
+ });
80
+ try {
81
+ await Promise.race([local.open(), timeout]);
82
+ // LocalSocket succeeded.
83
+ this.active = local;
84
+ }
85
+ catch {
86
+ try {
87
+ local.close();
88
+ }
89
+ catch {
90
+ /* ignore */
91
+ }
92
+ const mock = new MockTransport();
93
+ await mock.open();
94
+ this.active = mock;
95
+ // eslint-disable-next-line no-console
96
+ console.log(timedOut
97
+ ? "[mentra-miniapp] No phone WebSocket reachable; using MockTransport so the page can render."
98
+ : "[mentra-miniapp] LocalSocketTransport failed; using MockTransport.");
99
+ }
100
+ if (this.messageHandler)
101
+ this.active.onMessage(this.messageHandler);
102
+ if (this.disconnectHandler)
103
+ this.active.onDisconnect(this.disconnectHandler);
104
+ }
105
+ send(raw) {
106
+ if (!this.active)
107
+ throw new Error("LocalSocketWithMockFallback: send() before open()");
108
+ this.active.send(raw);
109
+ }
110
+ onMessage(handler) {
111
+ this.messageHandler = handler;
112
+ this.active?.onMessage(handler);
113
+ }
114
+ onDisconnect(handler) {
115
+ this.disconnectHandler = handler;
116
+ this.active?.onDisconnect(handler);
117
+ }
118
+ close() {
119
+ this.active?.close();
120
+ }
121
+ isOpen() {
122
+ return this.active?.isOpen() === true;
123
+ }
124
+ }
125
+ //# sourceMappingURL=auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/transport/auto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @fileoverview DispatchTransport — Transport implementation that rides
3
+ * the native `__dispatch(iface, method, argsJson)` bridge exposed by the
4
+ * MentraJS runtime (per-miniapp JSContext on iOS-JSC, Zipline/QuickJS
5
+ * context on Android).
6
+ *
7
+ * The existing `MiniappSession` (session.ts) is transport-agnostic — it
8
+ * serialises envelopes into JSON strings and hands them to Transport.send().
9
+ * The native side has historically been on the other end of a
10
+ * `window.ReactNativeWebView.postMessage(...)` shim (PostMessageTransport)
11
+ * inside a WebView. In the new architecture, background JS runs in a
12
+ * JSContext that has no WebView — so the wire is `__dispatch` instead.
13
+ *
14
+ * What this transport does:
15
+ * - send(raw) — calls __dispatch("__bridge", "send", [raw]). The host
16
+ * side `MentraJSRouter` consumes the raw string verbatim, same shape
17
+ * as PostMessageTransport's wire payload.
18
+ * - The polyfill bundle (`startup.ts`) wires __deliver({kind:'bridge',raw})
19
+ * back into this transport's message handler so the host can push
20
+ * unsolicited events (mic_pcm, transcription, button events, etc.)
21
+ * into the SDK.
22
+ * - open()/close() are no-ops — the JSContext is alive as long as the
23
+ * host has the runtime spawned; nothing to handshake here.
24
+ *
25
+ * On Android Zipline `__dispatch` is suspending under the hood; on
26
+ * iOS-JSC it's a synchronous Swift block. Both shapes are JSON-string in,
27
+ * JSON-string out, so the JS-side surface is identical.
28
+ */
29
+ import { Transport, TransportDisconnectHandler, TransportMessageHandler } from "./types";
30
+ export declare class DispatchTransport implements Transport {
31
+ private messageHandler;
32
+ private disconnectHandler;
33
+ private open_;
34
+ /** True iff `__dispatch` is bound on the current globalThis. */
35
+ static isAvailable(): boolean;
36
+ open(): Promise<void>;
37
+ send(raw: string): void;
38
+ onMessage(handler: TransportMessageHandler): void;
39
+ onDisconnect(handler: TransportDisconnectHandler): void;
40
+ close(): void;
41
+ isOpen(): boolean;
42
+ }
43
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/transport/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAC,SAAS,EAAE,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAYtF,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,KAAK,CAAQ;IAErB,gEAAgE;IAChE,MAAM,CAAC,WAAW,IAAI,OAAO;IAIvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAqBvB,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAIjD,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAIvD,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,OAAO;CAGlB"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @fileoverview DispatchTransport — Transport implementation that rides
3
+ * the native `__dispatch(iface, method, argsJson)` bridge exposed by the
4
+ * MentraJS runtime (per-miniapp JSContext on iOS-JSC, Zipline/QuickJS
5
+ * context on Android).
6
+ *
7
+ * The existing `MiniappSession` (session.ts) is transport-agnostic — it
8
+ * serialises envelopes into JSON strings and hands them to Transport.send().
9
+ * The native side has historically been on the other end of a
10
+ * `window.ReactNativeWebView.postMessage(...)` shim (PostMessageTransport)
11
+ * inside a WebView. In the new architecture, background JS runs in a
12
+ * JSContext that has no WebView — so the wire is `__dispatch` instead.
13
+ *
14
+ * What this transport does:
15
+ * - send(raw) — calls __dispatch("__bridge", "send", [raw]). The host
16
+ * side `MentraJSRouter` consumes the raw string verbatim, same shape
17
+ * as PostMessageTransport's wire payload.
18
+ * - The polyfill bundle (`startup.ts`) wires __deliver({kind:'bridge',raw})
19
+ * back into this transport's message handler so the host can push
20
+ * unsolicited events (mic_pcm, transcription, button events, etc.)
21
+ * into the SDK.
22
+ * - open()/close() are no-ops — the JSContext is alive as long as the
23
+ * host has the runtime spawned; nothing to handshake here.
24
+ *
25
+ * On Android Zipline `__dispatch` is suspending under the hood; on
26
+ * iOS-JSC it's a synchronous Swift block. Both shapes are JSON-string in,
27
+ * JSON-string out, so the JS-side surface is identical.
28
+ */
29
+ export class DispatchTransport {
30
+ constructor() {
31
+ this.messageHandler = null;
32
+ this.disconnectHandler = null;
33
+ this.open_ = false;
34
+ }
35
+ /** True iff `__dispatch` is bound on the current globalThis. */
36
+ static isAvailable() {
37
+ return typeof globalThis.__dispatch === "function";
38
+ }
39
+ async open() {
40
+ if (!DispatchTransport.isAvailable()) {
41
+ throw new Error("DispatchTransport: __dispatch is not installed on globalThis");
42
+ }
43
+ // Wire up the inbound delivery hook so the polyfill's __deliver can
44
+ // route bridge frames here. Installed lazily so multiple transports
45
+ // can share the same global if a test spins up two.
46
+ const g = globalThis;
47
+ g.__mentraDeliverBridgeRaw = (raw) => {
48
+ if (this.messageHandler)
49
+ this.messageHandler(raw);
50
+ };
51
+ this.open_ = true;
52
+ }
53
+ send(raw) {
54
+ if (!this.open_) {
55
+ throw new Error("DispatchTransport: send() before open()");
56
+ }
57
+ const g = globalThis;
58
+ if (typeof g.__dispatch !== "function") {
59
+ // Native bridge gone — surface as a transport-level disconnect so
60
+ // upstream callers don't hang on pending requests.
61
+ this.open_ = false;
62
+ this.disconnectHandler?.("DispatchTransport: __dispatch disappeared");
63
+ return;
64
+ }
65
+ // Wire format: stringify the args array as a single-element array
66
+ // containing the raw envelope. The router unwraps it.
67
+ try {
68
+ g.__dispatch("__bridge", "send", JSON.stringify([raw]));
69
+ }
70
+ catch (e) {
71
+ this.disconnectHandler?.(`DispatchTransport: __dispatch threw: ${String(e)}`);
72
+ }
73
+ }
74
+ onMessage(handler) {
75
+ this.messageHandler = handler;
76
+ }
77
+ onDisconnect(handler) {
78
+ this.disconnectHandler = handler;
79
+ }
80
+ close() {
81
+ this.open_ = false;
82
+ const g = globalThis;
83
+ if (g.__mentraDeliverBridgeRaw) {
84
+ delete g.__mentraDeliverBridgeRaw;
85
+ }
86
+ }
87
+ isOpen() {
88
+ return this.open_;
89
+ }
90
+ }
91
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/transport/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAcH,MAAM,OAAO,iBAAiB;IAA9B;QACU,mBAAc,GAAmC,IAAI,CAAA;QACrD,sBAAiB,GAAsC,IAAI,CAAA;QAC3D,UAAK,GAAG,KAAK,CAAA;IA6DvB,CAAC;IA3DC,gEAAgE;IAChE,MAAM,CAAC,WAAW;QAChB,OAAO,OAAQ,UAA6C,CAAC,UAAU,KAAK,UAAU,CAAA;IACxF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACjF,CAAC;QACD,oEAAoE;QACpE,oEAAoE;QACpE,oDAAoD;QACpD,MAAM,CAAC,GAAG,UAA4C,CAAA;QACtD,CAAC,CAAC,wBAAwB,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACnD,CAAC,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,CAAC,GAAG,UAA4C,CAAA;QACtD,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,kEAAkE;YAClE,mDAAmD;YACnD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC,2CAA2C,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QACD,kEAAkE;QAClE,sDAAsD;QACtD,IAAI,CAAC;YACH,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,iBAAiB,EAAE,CAAC,wCAAwC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAgC;QACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;IAC/B,CAAC;IAED,YAAY,CAAC,OAAmC;QAC9C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAA;IAClC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,MAAM,CAAC,GAAG,UAA4C,CAAA;QACtD,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC,wBAAwB,CAAA;QACnC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview LocalSocket transport — browser fallback.
3
+ *
4
+ * When the miniapp runs in an external browser (Safari/Chrome, not inside the
5
+ * MentraOS React Native WebView), it connects to a localhost WebSocket that
6
+ * MentraOS exposes via MiniSockets.
7
+ *
8
+ * Default endpoint: ws://127.0.0.1:8765. Override via the `url` option for
9
+ * dev / testing.
10
+ */
11
+ import { Transport, TransportDisconnectHandler, TransportMessageHandler } from "./types";
12
+ export interface LocalSocketTransportOptions {
13
+ url?: string;
14
+ }
15
+ export declare class LocalSocketTransport implements Transport {
16
+ private url;
17
+ private ws;
18
+ private messageHandler;
19
+ private disconnectHandler;
20
+ constructor(options?: LocalSocketTransportOptions);
21
+ open(): Promise<void>;
22
+ send(raw: string): void;
23
+ onMessage(handler: TransportMessageHandler): void;
24
+ onDisconnect(handler: TransportDisconnectHandler): void;
25
+ close(): void;
26
+ isOpen(): boolean;
27
+ }
28
+ //# sourceMappingURL=local-socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-socket.d.ts","sourceRoot":"","sources":["../../src/transport/local-socket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAC,SAAS,EAAE,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAEtF,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAID,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,iBAAiB,CAA0C;gBAEvD,OAAO,GAAE,2BAAgC;IAI/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOvB,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAIjD,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAIvD,KAAK,IAAI,IAAI;IAUb,MAAM,IAAI,OAAO;CAGlB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @fileoverview LocalSocket transport — browser fallback.
3
+ *
4
+ * When the miniapp runs in an external browser (Safari/Chrome, not inside the
5
+ * MentraOS React Native WebView), it connects to a localhost WebSocket that
6
+ * MentraOS exposes via MiniSockets.
7
+ *
8
+ * Default endpoint: ws://127.0.0.1:8765. Override via the `url` option for
9
+ * dev / testing.
10
+ */
11
+ const DEFAULT_URL = "ws://127.0.0.1:8765";
12
+ export class LocalSocketTransport {
13
+ constructor(options = {}) {
14
+ this.ws = null;
15
+ this.messageHandler = null;
16
+ this.disconnectHandler = null;
17
+ this.url = options.url ?? DEFAULT_URL;
18
+ }
19
+ async open() {
20
+ if (this.ws && this.ws.readyState === WebSocket.OPEN)
21
+ return;
22
+ if (typeof WebSocket === "undefined") {
23
+ throw new Error("LocalSocketTransport: browser WebSocket global not available");
24
+ }
25
+ await new Promise((resolve, reject) => {
26
+ const ws = new WebSocket(this.url);
27
+ let settled = false;
28
+ const settle = (fn) => {
29
+ if (settled)
30
+ return;
31
+ settled = true;
32
+ fn();
33
+ };
34
+ ws.onopen = () => {
35
+ this.ws = ws;
36
+ settle(() => resolve());
37
+ };
38
+ ws.onerror = (ev) => {
39
+ settle(() => reject(new Error(`LocalSocketTransport: failed to connect to ${this.url}: ${String(ev)}`)));
40
+ };
41
+ ws.onmessage = (ev) => {
42
+ const data = ev.data;
43
+ if (typeof data === "string")
44
+ this.messageHandler?.(data);
45
+ };
46
+ ws.onclose = (ev) => {
47
+ if (this.ws === ws)
48
+ this.ws = null;
49
+ this.disconnectHandler?.(`closed: ${ev.code} ${ev.reason}`);
50
+ };
51
+ });
52
+ }
53
+ send(raw) {
54
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
55
+ throw new Error("LocalSocketTransport: not connected");
56
+ }
57
+ this.ws.send(raw);
58
+ }
59
+ onMessage(handler) {
60
+ this.messageHandler = handler;
61
+ }
62
+ onDisconnect(handler) {
63
+ this.disconnectHandler = handler;
64
+ }
65
+ close() {
66
+ if (!this.ws)
67
+ return;
68
+ try {
69
+ this.ws.close();
70
+ }
71
+ catch {
72
+ // ignore
73
+ }
74
+ this.ws = null;
75
+ }
76
+ isOpen() {
77
+ return !!this.ws && this.ws.readyState === WebSocket.OPEN;
78
+ }
79
+ }
80
+ //# sourceMappingURL=local-socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-socket.js","sourceRoot":"","sources":["../../src/transport/local-socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @fileoverview MockTransport — browser-tab fallback so the SDK doesn't hang.
3
+ *
4
+ * Activates when:
5
+ * - `window.ReactNativeWebView` is undefined (not in MentraOS WebView), AND
6
+ * - The first LocalSocketTransport connection attempt fails fast, OR
7
+ * - The author opts in via `?mentra=mock` query param / `localStorage.MENTRA_MOCK = "1"`.
8
+ *
9
+ * Behaviors:
10
+ * - On `open()`: synthesize a CONNECT_ACK envelope so `session.connect()` resolves.
11
+ * - On `send(envelope)`: parse, log to console with `[mock-transport]` prefix,
12
+ * auto-reply with synthetic results for any request that needs one.
13
+ * - Does NOT emit any glasses events. Subscribing succeeds silently.
14
+ *
15
+ * This is the Stage-1 stopgap from `agents/miniapp-quick-fixes-spec.md` #6.
16
+ * The full simulator (event injection, glasses-display preview, hardware bridge)
17
+ * is Stage 2 — see `agents/miniapp-browser-testing-simulator-spec.md`.
18
+ */
19
+ import type { Transport, TransportDisconnectHandler, TransportMessageHandler } from "./types";
20
+ /**
21
+ * Returns true if the current environment requested the mock transport
22
+ * explicitly. Checks `?mentra=mock` query param and `localStorage.MENTRA_MOCK`.
23
+ */
24
+ export declare function isMockExplicitlyRequested(): boolean;
25
+ export interface MockTransportOptions {
26
+ /** Override the synthetic userId. Default "mock-user". */
27
+ userId?: string;
28
+ /** Override the synthetic miniapp auth token. Default "mock-miniapp-token". */
29
+ authToken?: string;
30
+ /** Override the synthetic packageName when window.MentraOS isn't set. */
31
+ packageName?: string;
32
+ /** Suppress the [mock-transport] console logs. Default false. */
33
+ silent?: boolean;
34
+ }
35
+ export declare class MockTransport implements Transport {
36
+ private messageHandler;
37
+ private disconnectHandler;
38
+ private open_;
39
+ private readonly userId;
40
+ private readonly authToken;
41
+ private readonly packageName;
42
+ private readonly silent;
43
+ constructor(options?: MockTransportOptions);
44
+ open(): Promise<void>;
45
+ send(raw: string): void;
46
+ onMessage(handler: TransportMessageHandler): void;
47
+ onDisconnect(handler: TransportDisconnectHandler): void;
48
+ close(): void;
49
+ isOpen(): boolean;
50
+ private deliverConnectAck;
51
+ private deliverSyntheticResult;
52
+ private log;
53
+ }
54
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/transport/mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAC,SAAS,EAAE,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAA;AAI3F;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAkBnD;AAED,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,GAAE,oBAAyB;IAOxC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAuCvB,SAAS,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAIjD,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAIvD,KAAK,IAAI,IAAI;IAMb,MAAM,IAAI,OAAO;IAMjB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,GAAG;CAKZ"}