@mentra/sdk 2.1.31-beta.5 → 3.0.0-alpha.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/README.md +54 -9
- package/dist/MiniAppServer.d.ts +58 -0
- package/dist/MiniAppServer.d.ts.map +1 -0
- package/dist/app/server/index.d.ts +208 -70
- package/dist/app/server/index.d.ts.map +1 -1
- package/dist/app/session/events.d.ts +20 -3
- package/dist/app/session/events.d.ts.map +1 -1
- package/dist/app/session/index.d.ts +56 -3
- package/dist/app/session/index.d.ts.map +1 -1
- package/dist/app/session/modules/audio-output-stream.d.ts +108 -0
- package/dist/app/session/modules/audio-output-stream.d.ts.map +1 -0
- package/dist/app/session/modules/audio.d.ts +36 -1
- package/dist/app/session/modules/audio.d.ts.map +1 -1
- package/dist/app/session/modules/camera-managed-extension.d.ts +37 -33
- package/dist/app/session/modules/camera-managed-extension.d.ts.map +1 -1
- package/dist/app/session/modules/camera.d.ts +113 -93
- package/dist/app/session/modules/camera.d.ts.map +1 -1
- package/dist/app/session/modules/index.d.ts +4 -3
- package/dist/app/session/modules/index.d.ts.map +1 -1
- package/dist/app/session/modules/led.d.ts.map +1 -1
- package/dist/app/session/modules/location.d.ts.map +1 -1
- package/dist/app/session/settings.d.ts +5 -1
- package/dist/app/session/settings.d.ts.map +1 -1
- package/dist/app/webview/index.d.ts +67 -9
- package/dist/app/webview/index.d.ts.map +1 -1
- package/dist/constants/log-messages/updates.d.ts +32 -9
- package/dist/constants/log-messages/updates.d.ts.map +1 -1
- package/dist/constants/log-messages/warning.d.ts +12 -0
- package/dist/constants/log-messages/warning.d.ts.map +1 -1
- package/dist/display-utils.d.ts +3 -1
- package/dist/display-utils.d.ts.map +1 -1
- package/dist/display-utils.js +443 -26
- package/dist/display-utils.js.map +10 -6
- package/dist/index.d.ts +22 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8957 -4428
- package/dist/index.js.map +63 -31
- package/dist/internal/_SessionManager.d.ts +76 -0
- package/dist/internal/_SessionManager.d.ts.map +1 -0
- package/dist/logging/clean-transport.d.ts +50 -0
- package/dist/logging/clean-transport.d.ts.map +1 -0
- package/dist/logging/errors.d.ts +90 -0
- package/dist/logging/errors.d.ts.map +1 -0
- package/dist/logging/logger.d.ts +72 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/telemetry-transport.d.ts +51 -0
- package/dist/logging/telemetry-transport.d.ts.map +1 -0
- package/dist/session/DataStreamRouter.d.ts +219 -0
- package/dist/session/DataStreamRouter.d.ts.map +1 -0
- package/dist/session/MentraSession.d.ts +102 -0
- package/dist/session/MentraSession.d.ts.map +1 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/internal/_ConnectionManager.d.ts +43 -0
- package/dist/session/internal/_ConnectionManager.d.ts.map +1 -0
- package/dist/session/internal/_MessageRouter.d.ts +11 -0
- package/dist/session/internal/_MessageRouter.d.ts.map +1 -0
- package/dist/session/internal/_SubscriptionManager.d.ts +32 -0
- package/dist/session/internal/_SubscriptionManager.d.ts.map +1 -0
- package/dist/session/internal/_V2AudioStreamShim.d.ts +12 -0
- package/dist/session/internal/_V2AudioStreamShim.d.ts.map +1 -0
- package/dist/session/internal/_V2CameraShim.d.ts +52 -0
- package/dist/session/internal/_V2CameraShim.d.ts.map +1 -0
- package/dist/session/internal/_V2EventManagerShim.d.ts +52 -0
- package/dist/session/internal/_V2EventManagerShim.d.ts.map +1 -0
- package/dist/session/internal/_V2SessionShim.d.ts +169 -0
- package/dist/session/internal/_V2SessionShim.d.ts.map +1 -0
- package/dist/session/internal/_V2SettingsShim.d.ts +17 -0
- package/dist/session/internal/_V2SettingsShim.d.ts.map +1 -0
- package/dist/session/managers/CameraManager.d.ts +198 -0
- package/dist/session/managers/CameraManager.d.ts.map +1 -0
- package/dist/session/managers/DashboardManager.d.ts +131 -0
- package/dist/session/managers/DashboardManager.d.ts.map +1 -0
- package/dist/session/managers/DeviceManager.d.ts +348 -0
- package/dist/session/managers/DeviceManager.d.ts.map +1 -0
- package/dist/session/managers/DisplayManager.d.ts +171 -0
- package/dist/session/managers/DisplayManager.d.ts.map +1 -0
- package/dist/session/managers/LedManager.d.ts +116 -0
- package/dist/session/managers/LedManager.d.ts.map +1 -0
- package/dist/session/managers/LocationManager.d.ts +224 -0
- package/dist/session/managers/LocationManager.d.ts.map +1 -0
- package/dist/session/managers/MicManager.d.ts +252 -0
- package/dist/session/managers/MicManager.d.ts.map +1 -0
- package/dist/session/managers/PermissionsManager.d.ts +139 -0
- package/dist/session/managers/PermissionsManager.d.ts.map +1 -0
- package/dist/session/managers/PhoneManager.d.ts +351 -0
- package/dist/session/managers/PhoneManager.d.ts.map +1 -0
- package/dist/session/managers/SpeakerManager.d.ts +285 -0
- package/dist/session/managers/SpeakerManager.d.ts.map +1 -0
- package/dist/session/managers/StorageManager.d.ts +289 -0
- package/dist/session/managers/StorageManager.d.ts.map +1 -0
- package/dist/session/managers/TimeUtils.d.ts +175 -0
- package/dist/session/managers/TimeUtils.d.ts.map +1 -0
- package/dist/session/managers/TranscriptionManager.d.ts +195 -0
- package/dist/session/managers/TranscriptionManager.d.ts.map +1 -0
- package/dist/session/managers/TranslationManager.d.ts +189 -0
- package/dist/session/managers/TranslationManager.d.ts.map +1 -0
- package/dist/session.d.ts +41 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +4110 -0
- package/dist/session.js.map +44 -0
- package/dist/transport/Transport.d.ts +119 -0
- package/dist/transport/Transport.d.ts.map +1 -0
- package/dist/transport/WebSocketTransport.d.ts +73 -0
- package/dist/transport/WebSocketTransport.d.ts.map +1 -0
- package/dist/types/index.d.ts +31 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/message-types.d.ts +25 -9
- package/dist/types/message-types.d.ts.map +1 -1
- package/dist/types/messages/app-to-cloud.d.ts +113 -16
- package/dist/types/messages/app-to-cloud.d.ts.map +1 -1
- package/dist/types/messages/cloud-to-app.d.ts +50 -4
- package/dist/types/messages/cloud-to-app.d.ts.map +1 -1
- package/dist/types/messages/cloud-to-glasses.d.ts +43 -14
- package/dist/types/messages/cloud-to-glasses.d.ts.map +1 -1
- package/dist/types/messages/glasses-to-cloud.d.ts +5 -5
- package/dist/types/messages/glasses-to-cloud.d.ts.map +1 -1
- package/dist/types/models.d.ts +17 -0
- package/dist/types/models.d.ts.map +1 -1
- package/dist/types/rtmp-stream.d.ts +4 -4
- package/dist/types/rtmp-stream.d.ts.map +1 -1
- package/dist/types/streams.d.ts +6 -1
- package/dist/types/streams.d.ts.map +1 -1
- package/dist/types/webhooks.d.ts +11 -0
- package/dist/types/webhooks.d.ts.map +1 -1
- package/dist/utils/error-utils.d.ts +139 -0
- package/dist/utils/error-utils.d.ts.map +1 -0
- package/dist/utils/permissions-utils.d.ts +30 -7
- package/dist/utils/permissions-utils.d.ts.map +1 -1
- package/node_modules/@mentra/types/dist/applet.d.ts +5 -1
- package/node_modules/@mentra/types/dist/applet.d.ts.map +1 -1
- package/node_modules/@mentra/types/dist/capabilities/even-realities-g2.d.ts +12 -0
- package/node_modules/@mentra/types/dist/capabilities/even-realities-g2.d.ts.map +1 -0
- package/node_modules/@mentra/types/dist/capabilities/even-realities-g2.js +61 -0
- package/node_modules/@mentra/types/dist/capabilities/mentra-display.d.ts +12 -0
- package/node_modules/@mentra/types/dist/capabilities/mentra-display.d.ts.map +1 -0
- package/node_modules/@mentra/types/dist/capabilities/mentra-display.js +54 -0
- package/node_modules/@mentra/types/dist/capabilities/none.d.ts +13 -0
- package/node_modules/@mentra/types/dist/capabilities/none.d.ts.map +1 -0
- package/node_modules/@mentra/types/dist/capabilities/none.js +67 -0
- package/node_modules/@mentra/types/dist/enums.d.ts +8 -2
- package/node_modules/@mentra/types/dist/enums.d.ts.map +1 -1
- package/node_modules/@mentra/types/dist/enums.js +9 -2
- package/node_modules/@mentra/types/dist/hardware.d.ts +3 -1
- package/node_modules/@mentra/types/dist/hardware.d.ts.map +1 -1
- package/node_modules/@mentra/types/dist/hardware.js +12 -2
- package/node_modules/@mentra/types/dist/index.d.ts +1 -1
- package/node_modules/@mentra/types/dist/index.d.ts.map +1 -1
- package/node_modules/@mentra/types/dist/index.js +2 -1
- package/node_modules/@mentra/types/package.json +2 -2
- package/package.json +24 -12
- package/dist/examples/managed-rtmp-streaming-example.d.ts +0 -2
- package/dist/examples/managed-rtmp-streaming-example.d.ts.map +0 -1
- package/dist/examples/managed-rtmp-streaming-with-restream-example.d.ts +0 -11
- package/dist/examples/managed-rtmp-streaming-with-restream-example.d.ts.map +0 -1
- package/dist/examples/rtmp-streaming-example.d.ts +0 -2
- package/dist/examples/rtmp-streaming-example.d.ts.map +0 -1
- package/node_modules/@mentra/types/src/applet.ts +0 -51
- package/node_modules/@mentra/types/src/capabilities/even-realities-g1.ts +0 -63
- package/node_modules/@mentra/types/src/capabilities/mentra-live.ts +0 -103
- package/node_modules/@mentra/types/src/capabilities/simulated-glasses.ts +0 -76
- package/node_modules/@mentra/types/src/capabilities/vuzix-z100.ts +0 -60
- package/node_modules/@mentra/types/src/cli.ts +0 -169
- package/node_modules/@mentra/types/src/device.ts +0 -43
- package/node_modules/@mentra/types/src/enums.ts +0 -36
- package/node_modules/@mentra/types/src/hardware.ts +0 -172
- package/node_modules/@mentra/types/src/index.ts +0 -64
- package/node_modules/@mentra/types/tsconfig.json +0 -22
- package/node_modules/@mentra/types/tsconfig.tsbuildinfo +0 -1
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* warning.ts
|
|
3
|
+
*
|
|
4
|
+
* Permission warning messages for the MentraOS SDK.
|
|
5
|
+
*
|
|
6
|
+
* Previously used boxen-bordered ASCII art banners with side-by-side layouts.
|
|
7
|
+
* Now returns plain single-line strings that the clean transport formats with
|
|
8
|
+
* color/prefix.
|
|
9
|
+
*
|
|
10
|
+
* The clean logger renders these as:
|
|
11
|
+
* MentraOS ⚠ camera permission required for requestPhoto — enable at https://console.mentra.glass/apps/org.example.myapp/edit
|
|
12
|
+
*/
|
|
1
13
|
export declare const noMicrophoneWarn: (funcName?: string, packageName?: string) => string;
|
|
2
14
|
export declare const locationWarn: (funcName?: string, packageName?: string) => string;
|
|
3
15
|
export declare const baackgroundLocationWarn: (funcName?: string, packageName?: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warning.d.ts","sourceRoot":"","sources":["../../../src/constants/log-messages/warning.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"warning.d.ts","sourceRoot":"","sources":["../../../src/constants/log-messages/warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACb,CAAC;AAE/D,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACX,CAAC;AAE7D,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACX,CAAC;AAExE,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACX,CAAC;AAE7D,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACT,CAAC;AAEtE,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACT,CAAC;AAEtE,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,MACX,CAAC"}
|
package/dist/display-utils.d.ts
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Glasses-agnostic, pixel-accurate text measurement and wrapping library
|
|
5
5
|
* for smart glasses displays.
|
|
6
6
|
*
|
|
7
|
+
* This module re-exports from the shared @mentra/display-utils package.
|
|
8
|
+
*
|
|
7
9
|
* @example
|
|
8
10
|
* ```typescript
|
|
9
11
|
* import {
|
|
@@ -26,5 +28,5 @@
|
|
|
26
28
|
* const viewport = scrollView.getViewport()
|
|
27
29
|
* ```
|
|
28
30
|
*/
|
|
29
|
-
export
|
|
31
|
+
export * from "@mentra/display-utils";
|
|
30
32
|
//# sourceMappingURL=display-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-utils.d.ts","sourceRoot":"","sources":["../src/display-utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"display-utils.d.ts","sourceRoot":"","sources":["../src/display-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,cAAc,uBAAuB,CAAA"}
|
package/dist/display-utils.js
CHANGED
|
@@ -3,33 +3,43 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
|
|
6
|
+
function __accessProp(key) {
|
|
7
|
+
return this[key];
|
|
8
|
+
}
|
|
7
9
|
var __toCommonJS = (from) => {
|
|
8
|
-
var entry = __moduleCache.get(from), desc;
|
|
10
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
9
11
|
if (entry)
|
|
10
12
|
return entry;
|
|
11
13
|
entry = __defProp({}, "__esModule", { value: true });
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function")
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (var key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(entry, key))
|
|
17
|
+
__defProp(entry, key, {
|
|
18
|
+
get: __accessProp.bind(from, key),
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
17
22
|
__moduleCache.set(from, entry);
|
|
18
23
|
return entry;
|
|
19
24
|
};
|
|
25
|
+
var __moduleCache;
|
|
26
|
+
var __returnValue = (v) => v;
|
|
27
|
+
function __exportSetter(name, newValue) {
|
|
28
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
29
|
+
}
|
|
20
30
|
var __export = (target, all) => {
|
|
21
31
|
for (var name in all)
|
|
22
32
|
__defProp(target, name, {
|
|
23
33
|
get: all[name],
|
|
24
34
|
enumerable: true,
|
|
25
35
|
configurable: true,
|
|
26
|
-
set: (
|
|
36
|
+
set: __exportSetter.bind(all, name)
|
|
27
37
|
});
|
|
28
38
|
};
|
|
29
39
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
30
40
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
31
41
|
|
|
32
|
-
//
|
|
42
|
+
// ../display-utils/src/profiles/g1.ts
|
|
33
43
|
var G1_GLYPH_WIDTHS = {
|
|
34
44
|
" ": 2,
|
|
35
45
|
"!": 1,
|
|
@@ -187,7 +197,273 @@ var G1_PROFILE_LEGACY = {
|
|
|
187
197
|
};
|
|
188
198
|
var G1_HYPHEN_WIDTH_PX = 10;
|
|
189
199
|
var G1_SPACE_WIDTH_PX = 6;
|
|
190
|
-
//
|
|
200
|
+
// ../display-utils/src/profiles/z100.ts
|
|
201
|
+
var Z100_GLYPH_WIDTHS = {
|
|
202
|
+
" ": 5,
|
|
203
|
+
"!": 6,
|
|
204
|
+
'"': 9,
|
|
205
|
+
"#": 14,
|
|
206
|
+
$: 12,
|
|
207
|
+
"%": 17,
|
|
208
|
+
"&": 15,
|
|
209
|
+
"'": 5,
|
|
210
|
+
"(": 6,
|
|
211
|
+
")": 6,
|
|
212
|
+
"*": 12,
|
|
213
|
+
"+": 12,
|
|
214
|
+
",": 6,
|
|
215
|
+
"-": 7,
|
|
216
|
+
".": 6,
|
|
217
|
+
"/": 8,
|
|
218
|
+
"0": 12,
|
|
219
|
+
"1": 12,
|
|
220
|
+
"2": 12,
|
|
221
|
+
"3": 12,
|
|
222
|
+
"4": 12,
|
|
223
|
+
"5": 12,
|
|
224
|
+
"6": 12,
|
|
225
|
+
"7": 12,
|
|
226
|
+
"8": 12,
|
|
227
|
+
"9": 12,
|
|
228
|
+
":": 6,
|
|
229
|
+
";": 6,
|
|
230
|
+
"<": 12,
|
|
231
|
+
"=": 12,
|
|
232
|
+
">": 12,
|
|
233
|
+
"?": 9,
|
|
234
|
+
"@": 19,
|
|
235
|
+
A: 13,
|
|
236
|
+
B: 14,
|
|
237
|
+
C: 13,
|
|
238
|
+
D: 15,
|
|
239
|
+
E: 12,
|
|
240
|
+
F: 11,
|
|
241
|
+
G: 15,
|
|
242
|
+
H: 16,
|
|
243
|
+
I: 7,
|
|
244
|
+
J: 6,
|
|
245
|
+
K: 13,
|
|
246
|
+
L: 11,
|
|
247
|
+
M: 19,
|
|
248
|
+
N: 16,
|
|
249
|
+
O: 16,
|
|
250
|
+
P: 13,
|
|
251
|
+
Q: 16,
|
|
252
|
+
R: 13,
|
|
253
|
+
S: 12,
|
|
254
|
+
T: 12,
|
|
255
|
+
U: 15,
|
|
256
|
+
V: 13,
|
|
257
|
+
W: 20,
|
|
258
|
+
X: 12,
|
|
259
|
+
Y: 12,
|
|
260
|
+
Z: 12,
|
|
261
|
+
"[": 7,
|
|
262
|
+
"\\": 8,
|
|
263
|
+
"]": 7,
|
|
264
|
+
"^": 12,
|
|
265
|
+
_: 9,
|
|
266
|
+
"`": 6,
|
|
267
|
+
a: 12,
|
|
268
|
+
b: 13,
|
|
269
|
+
c: 10,
|
|
270
|
+
d: 13,
|
|
271
|
+
e: 12,
|
|
272
|
+
f: 7,
|
|
273
|
+
g: 13,
|
|
274
|
+
h: 13,
|
|
275
|
+
i: 5,
|
|
276
|
+
j: 5,
|
|
277
|
+
k: 11,
|
|
278
|
+
l: 5,
|
|
279
|
+
m: 20,
|
|
280
|
+
n: 13,
|
|
281
|
+
o: 13,
|
|
282
|
+
p: 13,
|
|
283
|
+
q: 13,
|
|
284
|
+
r: 9,
|
|
285
|
+
s: 10,
|
|
286
|
+
t: 8,
|
|
287
|
+
u: 13,
|
|
288
|
+
v: 11,
|
|
289
|
+
w: 17,
|
|
290
|
+
x: 11,
|
|
291
|
+
y: 11,
|
|
292
|
+
z: 10,
|
|
293
|
+
"{": 8,
|
|
294
|
+
"|": 12,
|
|
295
|
+
"}": 8,
|
|
296
|
+
"~": 12
|
|
297
|
+
};
|
|
298
|
+
var Z100_PROFILE = {
|
|
299
|
+
id: "vuzix-z100",
|
|
300
|
+
name: "Vuzix Z100",
|
|
301
|
+
displayWidthPx: 390,
|
|
302
|
+
maxLines: 7,
|
|
303
|
+
maxPayloadBytes: 512,
|
|
304
|
+
bleChunkSize: 180,
|
|
305
|
+
fontMetrics: {
|
|
306
|
+
glyphWidths: new Map(Object.entries(Z100_GLYPH_WIDTHS)),
|
|
307
|
+
defaultGlyphWidth: 12,
|
|
308
|
+
renderFormula: (glyphWidth) => glyphWidth,
|
|
309
|
+
uniformScripts: {
|
|
310
|
+
cjk: 21,
|
|
311
|
+
hiragana: 21,
|
|
312
|
+
katakana: 21,
|
|
313
|
+
korean: 21,
|
|
314
|
+
cyrillic: 14
|
|
315
|
+
},
|
|
316
|
+
fallback: {
|
|
317
|
+
latinMaxWidth: 20,
|
|
318
|
+
unknownBehavior: "useLatinMax"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
constraints: {
|
|
322
|
+
minCharsBeforeHyphen: 3,
|
|
323
|
+
noStartChars: [".", ",", "!", "?", ":", ";", ")", "]", "}", "。", ",", "!", "?", ":", ";", ")", "】", "」"],
|
|
324
|
+
noEndChars: ["(", "[", "{", "(", "【", "「"]
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
var Z100_HYPHEN_WIDTH_PX = 7;
|
|
328
|
+
var Z100_SPACE_WIDTH_PX = 5;
|
|
329
|
+
// ../display-utils/src/profiles/g2.ts
|
|
330
|
+
var G2_PROFILE = {
|
|
331
|
+
...G1_PROFILE,
|
|
332
|
+
id: "even-realities-g2",
|
|
333
|
+
name: "Even Realities G2"
|
|
334
|
+
};
|
|
335
|
+
var G2_HYPHEN_WIDTH_PX = 10;
|
|
336
|
+
var G2_SPACE_WIDTH_PX = 6;
|
|
337
|
+
// ../display-utils/src/profiles/nex.ts
|
|
338
|
+
var NEX_GLYPH_WIDTHS = {
|
|
339
|
+
" ": 2,
|
|
340
|
+
"!": 1,
|
|
341
|
+
'"': 2,
|
|
342
|
+
"#": 6,
|
|
343
|
+
$: 5,
|
|
344
|
+
"%": 6,
|
|
345
|
+
"&": 7,
|
|
346
|
+
"'": 1,
|
|
347
|
+
"(": 2,
|
|
348
|
+
")": 2,
|
|
349
|
+
"*": 3,
|
|
350
|
+
"+": 4,
|
|
351
|
+
",": 1,
|
|
352
|
+
"-": 4,
|
|
353
|
+
".": 1,
|
|
354
|
+
"/": 3,
|
|
355
|
+
"0": 5,
|
|
356
|
+
"1": 3,
|
|
357
|
+
"2": 5,
|
|
358
|
+
"3": 5,
|
|
359
|
+
"4": 5,
|
|
360
|
+
"5": 5,
|
|
361
|
+
"6": 5,
|
|
362
|
+
"7": 5,
|
|
363
|
+
"8": 5,
|
|
364
|
+
"9": 5,
|
|
365
|
+
":": 1,
|
|
366
|
+
";": 1,
|
|
367
|
+
"<": 4,
|
|
368
|
+
"=": 4,
|
|
369
|
+
">": 4,
|
|
370
|
+
"?": 5,
|
|
371
|
+
"@": 7,
|
|
372
|
+
A: 6,
|
|
373
|
+
B: 5,
|
|
374
|
+
C: 5,
|
|
375
|
+
D: 5,
|
|
376
|
+
E: 4,
|
|
377
|
+
F: 4,
|
|
378
|
+
G: 5,
|
|
379
|
+
H: 5,
|
|
380
|
+
I: 2,
|
|
381
|
+
J: 3,
|
|
382
|
+
K: 5,
|
|
383
|
+
L: 4,
|
|
384
|
+
M: 7,
|
|
385
|
+
N: 5,
|
|
386
|
+
O: 5,
|
|
387
|
+
P: 5,
|
|
388
|
+
Q: 5,
|
|
389
|
+
R: 5,
|
|
390
|
+
S: 5,
|
|
391
|
+
T: 5,
|
|
392
|
+
U: 5,
|
|
393
|
+
V: 6,
|
|
394
|
+
W: 7,
|
|
395
|
+
X: 6,
|
|
396
|
+
Y: 6,
|
|
397
|
+
Z: 5,
|
|
398
|
+
"[": 2,
|
|
399
|
+
"\\": 3,
|
|
400
|
+
"]": 2,
|
|
401
|
+
"^": 4,
|
|
402
|
+
_: 3,
|
|
403
|
+
"`": 2,
|
|
404
|
+
a: 5,
|
|
405
|
+
b: 4,
|
|
406
|
+
c: 4,
|
|
407
|
+
d: 4,
|
|
408
|
+
e: 4,
|
|
409
|
+
f: 4,
|
|
410
|
+
g: 4,
|
|
411
|
+
h: 4,
|
|
412
|
+
i: 1,
|
|
413
|
+
j: 2,
|
|
414
|
+
k: 4,
|
|
415
|
+
l: 1,
|
|
416
|
+
m: 7,
|
|
417
|
+
n: 4,
|
|
418
|
+
o: 4,
|
|
419
|
+
p: 4,
|
|
420
|
+
q: 4,
|
|
421
|
+
r: 3,
|
|
422
|
+
s: 4,
|
|
423
|
+
t: 3,
|
|
424
|
+
u: 5,
|
|
425
|
+
v: 5,
|
|
426
|
+
w: 7,
|
|
427
|
+
x: 5,
|
|
428
|
+
y: 5,
|
|
429
|
+
z: 4,
|
|
430
|
+
"{": 3,
|
|
431
|
+
"|": 1,
|
|
432
|
+
"}": 3,
|
|
433
|
+
"~": 7
|
|
434
|
+
};
|
|
435
|
+
var NEX_PROFILE = {
|
|
436
|
+
id: "mentra-nex",
|
|
437
|
+
name: "Mentra Nex",
|
|
438
|
+
displayWidthPx: 576,
|
|
439
|
+
maxLines: 5,
|
|
440
|
+
maxPayloadBytes: 390,
|
|
441
|
+
bleChunkSize: 176,
|
|
442
|
+
fontMetrics: {
|
|
443
|
+
glyphWidths: new Map(Object.entries(NEX_GLYPH_WIDTHS)),
|
|
444
|
+
defaultGlyphWidth: 7,
|
|
445
|
+
renderFormula: (glyphWidth) => (glyphWidth + 1) * 2,
|
|
446
|
+
uniformScripts: {
|
|
447
|
+
cjk: 18,
|
|
448
|
+
hiragana: 18,
|
|
449
|
+
katakana: 18,
|
|
450
|
+
korean: 24,
|
|
451
|
+
cyrillic: 18
|
|
452
|
+
},
|
|
453
|
+
fallback: {
|
|
454
|
+
latinMaxWidth: 16,
|
|
455
|
+
unknownBehavior: "useLatinMax"
|
|
456
|
+
}
|
|
457
|
+
},
|
|
458
|
+
constraints: {
|
|
459
|
+
minCharsBeforeHyphen: 3,
|
|
460
|
+
noStartChars: [".", ",", "!", "?", ":", ";", ")", "]", "}", "。", ",", "!", "?", ":", ";", ")", "】", "」"],
|
|
461
|
+
noEndChars: ["(", "[", "{", "(", "【", "「"]
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
var NEX_HYPHEN_WIDTH_PX = 10;
|
|
465
|
+
var NEX_SPACE_WIDTH_PX = 6;
|
|
466
|
+
// ../display-utils/src/measurer/script-detection.ts
|
|
191
467
|
var SCRIPT_RANGES = {
|
|
192
468
|
cjk: [
|
|
193
469
|
[19968, 40959],
|
|
@@ -310,7 +586,7 @@ function needsHyphenForBreak(charBefore, charAfter) {
|
|
|
310
586
|
return true;
|
|
311
587
|
}
|
|
312
588
|
|
|
313
|
-
//
|
|
589
|
+
// ../display-utils/src/measurer/TextMeasurer.ts
|
|
314
590
|
class TextMeasurer {
|
|
315
591
|
profile;
|
|
316
592
|
charCache = new Map;
|
|
@@ -465,16 +741,16 @@ class TextMeasurer {
|
|
|
465
741
|
this.buildCharCache();
|
|
466
742
|
}
|
|
467
743
|
}
|
|
468
|
-
//
|
|
744
|
+
// ../display-utils/src/wrapper/types.ts
|
|
469
745
|
var DEFAULT_WRAP_OPTIONS = {
|
|
470
|
-
breakMode: "character",
|
|
746
|
+
breakMode: "character-no-hyphen",
|
|
471
747
|
hyphenChar: "-",
|
|
472
748
|
minCharsBeforeHyphen: 3,
|
|
473
749
|
trimLines: true,
|
|
474
750
|
preserveNewlines: true
|
|
475
751
|
};
|
|
476
752
|
|
|
477
|
-
//
|
|
753
|
+
// ../display-utils/src/wrapper/TextWrapper.ts
|
|
478
754
|
class TextWrapper {
|
|
479
755
|
measurer;
|
|
480
756
|
defaultOptions;
|
|
@@ -571,6 +847,8 @@ class TextWrapper {
|
|
|
571
847
|
switch (breakMode) {
|
|
572
848
|
case "character":
|
|
573
849
|
return this.wrapCharacterMode(trimmed, maxWidthPx, opts);
|
|
850
|
+
case "character-no-hyphen":
|
|
851
|
+
return this.wrapCharacterNoHyphenMode(trimmed, maxWidthPx, opts);
|
|
574
852
|
case "word":
|
|
575
853
|
return this.wrapWordMode(trimmed, maxWidthPx, opts);
|
|
576
854
|
case "strict-word":
|
|
@@ -580,6 +858,12 @@ class TextWrapper {
|
|
|
580
858
|
}
|
|
581
859
|
}
|
|
582
860
|
wrapCharacterMode(text, maxWidthPx, opts) {
|
|
861
|
+
return this.wrapCharacterModeInternal(text, maxWidthPx, opts, true);
|
|
862
|
+
}
|
|
863
|
+
wrapCharacterNoHyphenMode(text, maxWidthPx, opts) {
|
|
864
|
+
return this.wrapCharacterModeInternal(text, maxWidthPx, opts, false);
|
|
865
|
+
}
|
|
866
|
+
wrapCharacterModeInternal(text, maxWidthPx, opts, useHyphen) {
|
|
583
867
|
const lines = [];
|
|
584
868
|
const hyphenWidth = this.measurer.measureChar(opts.hyphenChar);
|
|
585
869
|
let currentLine = "";
|
|
@@ -593,7 +877,7 @@ class TextWrapper {
|
|
|
593
877
|
currentWidth += charWidth;
|
|
594
878
|
} else {
|
|
595
879
|
const prevChar = currentLine.length > 0 ? currentLine[currentLine.length - 1] : "";
|
|
596
|
-
const needsHyphen = currentLine.length >= opts.minCharsBeforeHyphen && needsHyphenForBreak(prevChar, char);
|
|
880
|
+
const needsHyphen = useHyphen && currentLine.length >= opts.minCharsBeforeHyphen && needsHyphenForBreak(prevChar, char);
|
|
597
881
|
if (needsHyphen) {
|
|
598
882
|
const result = this.backoffForHyphen(currentLine, currentWidth, maxWidthPx, hyphenWidth, opts);
|
|
599
883
|
if (result.skipHyphen) {
|
|
@@ -603,6 +887,13 @@ class TextWrapper {
|
|
|
603
887
|
}
|
|
604
888
|
currentLine = result.remainder + char;
|
|
605
889
|
currentWidth = this.measurer.measureText(currentLine);
|
|
890
|
+
} else if (useHyphen === false && !isCJKCharacter(char) && char !== " ") {
|
|
891
|
+
const trimmedLine = opts.trimLines ? currentLine.trimEnd() : currentLine;
|
|
892
|
+
if (trimmedLine) {
|
|
893
|
+
lines.push(trimmedLine);
|
|
894
|
+
}
|
|
895
|
+
currentLine = char;
|
|
896
|
+
currentWidth = charWidth;
|
|
606
897
|
} else {
|
|
607
898
|
const trimmedLine = opts.trimLines ? currentLine.trimEnd() : currentLine;
|
|
608
899
|
if (trimmedLine) {
|
|
@@ -804,7 +1095,7 @@ class TextWrapper {
|
|
|
804
1095
|
};
|
|
805
1096
|
}
|
|
806
1097
|
}
|
|
807
|
-
//
|
|
1098
|
+
// ../display-utils/src/helpers/DisplayHelpers.ts
|
|
808
1099
|
class DisplayHelpers {
|
|
809
1100
|
measurer;
|
|
810
1101
|
wrapper;
|
|
@@ -1009,7 +1300,7 @@ class DisplayHelpers {
|
|
|
1009
1300
|
return this.profile;
|
|
1010
1301
|
}
|
|
1011
1302
|
}
|
|
1012
|
-
//
|
|
1303
|
+
// ../display-utils/src/helpers/ScrollView.ts
|
|
1013
1304
|
class ScrollView {
|
|
1014
1305
|
measurer;
|
|
1015
1306
|
wrapper;
|
|
@@ -1146,30 +1437,142 @@ class ScrollView {
|
|
|
1146
1437
|
return this.profile;
|
|
1147
1438
|
}
|
|
1148
1439
|
}
|
|
1149
|
-
//
|
|
1440
|
+
// ../display-utils/src/composer/ColumnComposer.ts
|
|
1441
|
+
class ColumnComposer {
|
|
1442
|
+
profile;
|
|
1443
|
+
measurer;
|
|
1444
|
+
wrapper;
|
|
1445
|
+
spaceWidthPx;
|
|
1446
|
+
constructor(profile, breakMode = "character-no-hyphen") {
|
|
1447
|
+
this.profile = profile;
|
|
1448
|
+
this.measurer = new TextMeasurer(profile);
|
|
1449
|
+
this.wrapper = new TextWrapper(this.measurer, {
|
|
1450
|
+
breakMode
|
|
1451
|
+
});
|
|
1452
|
+
this.spaceWidthPx = this.measurer.measureText(" ");
|
|
1453
|
+
}
|
|
1454
|
+
composeDoubleTextWall(leftText, rightText, options = {}) {
|
|
1455
|
+
const config = this.getColumnConfig(options.columnConfig);
|
|
1456
|
+
const leftWrapOptions = {
|
|
1457
|
+
maxWidthPx: config.leftColumnWidthPx,
|
|
1458
|
+
maxLines: config.maxLines
|
|
1459
|
+
};
|
|
1460
|
+
const rightWrapOptions = {
|
|
1461
|
+
maxWidthPx: config.rightColumnWidthPx,
|
|
1462
|
+
maxLines: config.maxLines
|
|
1463
|
+
};
|
|
1464
|
+
const leftResult = this.wrapper.wrap(leftText || "", leftWrapOptions);
|
|
1465
|
+
const rightResult = this.wrapper.wrap(rightText || "", rightWrapOptions);
|
|
1466
|
+
const leftLines = this.padLines(leftResult.lines, config.maxLines);
|
|
1467
|
+
const rightLines = this.padLines(rightResult.lines, config.maxLines);
|
|
1468
|
+
const composedText = this.mergeColumns(leftLines, rightLines, config);
|
|
1469
|
+
return {
|
|
1470
|
+
composedText,
|
|
1471
|
+
leftLines,
|
|
1472
|
+
rightLines,
|
|
1473
|
+
config
|
|
1474
|
+
};
|
|
1475
|
+
}
|
|
1476
|
+
getDefaultColumnConfig() {
|
|
1477
|
+
return this.getColumnConfig();
|
|
1478
|
+
}
|
|
1479
|
+
setBreakMode(breakMode) {
|
|
1480
|
+
this.wrapper = new TextWrapper(this.measurer, {
|
|
1481
|
+
breakMode
|
|
1482
|
+
});
|
|
1483
|
+
}
|
|
1484
|
+
getColumnConfig(overrides) {
|
|
1485
|
+
const displayWidth = this.profile.displayWidthPx;
|
|
1486
|
+
const defaults = {
|
|
1487
|
+
leftColumnWidthPx: Math.floor(displayWidth * 0.5),
|
|
1488
|
+
rightColumnStartPx: Math.floor(displayWidth * 0.55),
|
|
1489
|
+
rightColumnWidthPx: displayWidth - Math.floor(displayWidth * 0.55),
|
|
1490
|
+
maxLines: this.profile.maxLines,
|
|
1491
|
+
leftMarginSpaces: 0
|
|
1492
|
+
};
|
|
1493
|
+
return {
|
|
1494
|
+
...defaults,
|
|
1495
|
+
...overrides
|
|
1496
|
+
};
|
|
1497
|
+
}
|
|
1498
|
+
padLines(lines, count) {
|
|
1499
|
+
const result = [...lines];
|
|
1500
|
+
while (result.length < count) {
|
|
1501
|
+
result.push("");
|
|
1502
|
+
}
|
|
1503
|
+
return result.slice(0, count);
|
|
1504
|
+
}
|
|
1505
|
+
mergeColumns(leftLines, rightLines, config) {
|
|
1506
|
+
const lines = [];
|
|
1507
|
+
for (let i = 0;i < config.maxLines; i++) {
|
|
1508
|
+
const leftText = this.cleanEnspaces(leftLines[i] || "");
|
|
1509
|
+
const rightText = this.cleanEnspaces(rightLines[i] || "");
|
|
1510
|
+
const leftWidthPx = this.measurer.measureText(leftText);
|
|
1511
|
+
const spacesNeeded = this.calculateSpacesForAlignment(leftWidthPx, config.rightColumnStartPx);
|
|
1512
|
+
let line = "";
|
|
1513
|
+
if (config.leftMarginSpaces && config.leftMarginSpaces > 0) {
|
|
1514
|
+
line += " ".repeat(config.leftMarginSpaces);
|
|
1515
|
+
}
|
|
1516
|
+
line += leftText;
|
|
1517
|
+
line += " ".repeat(spacesNeeded);
|
|
1518
|
+
line += rightText;
|
|
1519
|
+
lines.push(line);
|
|
1520
|
+
}
|
|
1521
|
+
return lines.join(`
|
|
1522
|
+
`);
|
|
1523
|
+
}
|
|
1524
|
+
calculateSpacesForAlignment(currentWidthPx, targetPositionPx) {
|
|
1525
|
+
const pixelsNeeded = targetPositionPx - currentWidthPx;
|
|
1526
|
+
if (pixelsNeeded <= 0) {
|
|
1527
|
+
return 1;
|
|
1528
|
+
}
|
|
1529
|
+
const spaces = Math.max(1, Math.floor(pixelsNeeded / this.spaceWidthPx));
|
|
1530
|
+
return Math.min(spaces, 100);
|
|
1531
|
+
}
|
|
1532
|
+
cleanEnspaces(text) {
|
|
1533
|
+
return text.replace(/\u2002/g, "");
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
function createColumnComposer(profile, breakMode = "word") {
|
|
1537
|
+
return new ColumnComposer(profile, breakMode);
|
|
1538
|
+
}
|
|
1539
|
+
// ../display-utils/src/index.ts
|
|
1150
1540
|
function createDisplayToolkit(profile = G1_PROFILE, wrapOptions) {
|
|
1151
1541
|
const measurer = new TextMeasurer(profile);
|
|
1152
1542
|
const wrapper = new TextWrapper(measurer, wrapOptions);
|
|
1153
1543
|
const helpers = new DisplayHelpers(measurer, wrapper);
|
|
1544
|
+
const composer = new ColumnComposer(profile, wrapOptions?.breakMode || "word");
|
|
1154
1545
|
return {
|
|
1155
1546
|
measurer,
|
|
1156
1547
|
wrapper,
|
|
1157
1548
|
helpers,
|
|
1549
|
+
composer,
|
|
1158
1550
|
profile
|
|
1159
1551
|
};
|
|
1160
1552
|
}
|
|
1161
1553
|
function createG1Toolkit() {
|
|
1162
1554
|
return createDisplayToolkit(G1_PROFILE, {
|
|
1163
|
-
breakMode: "character"
|
|
1164
|
-
hyphenChar: "-",
|
|
1165
|
-
minCharsBeforeHyphen: 3
|
|
1555
|
+
breakMode: "character-no-hyphen"
|
|
1166
1556
|
});
|
|
1167
1557
|
}
|
|
1168
1558
|
function createG1LegacyToolkit() {
|
|
1169
1559
|
return createDisplayToolkit(G1_PROFILE_LEGACY, {
|
|
1170
|
-
breakMode: "character"
|
|
1171
|
-
|
|
1172
|
-
|
|
1560
|
+
breakMode: "character-no-hyphen"
|
|
1561
|
+
});
|
|
1562
|
+
}
|
|
1563
|
+
function createG2Toolkit() {
|
|
1564
|
+
return createDisplayToolkit(G2_PROFILE, {
|
|
1565
|
+
breakMode: "character-no-hyphen"
|
|
1566
|
+
});
|
|
1567
|
+
}
|
|
1568
|
+
function createZ100Toolkit() {
|
|
1569
|
+
return createDisplayToolkit(Z100_PROFILE, {
|
|
1570
|
+
breakMode: "character-no-hyphen"
|
|
1571
|
+
});
|
|
1572
|
+
}
|
|
1573
|
+
function createNexToolkit() {
|
|
1574
|
+
return createDisplayToolkit(NEX_PROFILE, {
|
|
1575
|
+
breakMode: "character-no-hyphen"
|
|
1173
1576
|
});
|
|
1174
1577
|
}
|
|
1175
1578
|
export {
|
|
@@ -1179,19 +1582,33 @@ export {
|
|
|
1179
1582
|
isKoreanCharacter,
|
|
1180
1583
|
isCJKCharacter,
|
|
1181
1584
|
detectScript,
|
|
1585
|
+
createZ100Toolkit,
|
|
1586
|
+
createNexToolkit,
|
|
1587
|
+
createG2Toolkit,
|
|
1182
1588
|
createG1Toolkit,
|
|
1183
1589
|
createG1LegacyToolkit,
|
|
1184
1590
|
createDisplayToolkit,
|
|
1591
|
+
createColumnComposer,
|
|
1592
|
+
Z100_SPACE_WIDTH_PX,
|
|
1593
|
+
Z100_PROFILE,
|
|
1594
|
+
Z100_HYPHEN_WIDTH_PX,
|
|
1185
1595
|
TextWrapper,
|
|
1186
1596
|
TextMeasurer,
|
|
1187
1597
|
ScrollView,
|
|
1188
1598
|
SCRIPT_RANGES,
|
|
1599
|
+
NEX_SPACE_WIDTH_PX,
|
|
1600
|
+
NEX_PROFILE,
|
|
1601
|
+
NEX_HYPHEN_WIDTH_PX,
|
|
1602
|
+
G2_SPACE_WIDTH_PX,
|
|
1603
|
+
G2_PROFILE,
|
|
1604
|
+
G2_HYPHEN_WIDTH_PX,
|
|
1189
1605
|
G1_SPACE_WIDTH_PX,
|
|
1190
1606
|
G1_PROFILE_LEGACY,
|
|
1191
1607
|
G1_PROFILE,
|
|
1192
1608
|
G1_HYPHEN_WIDTH_PX,
|
|
1193
1609
|
DisplayHelpers,
|
|
1194
|
-
DEFAULT_WRAP_OPTIONS
|
|
1610
|
+
DEFAULT_WRAP_OPTIONS,
|
|
1611
|
+
ColumnComposer
|
|
1195
1612
|
};
|
|
1196
1613
|
|
|
1197
|
-
//# debugId=
|
|
1614
|
+
//# debugId=78924D4AB945D2A664756E2164756E21
|