@mentra/sdk 2.1.29-beta.1 → 2.1.29-beta.2
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/dist/display-utils/helpers/DisplayHelpers.d.ts +165 -0
- package/dist/display-utils/helpers/DisplayHelpers.d.ts.map +1 -0
- package/dist/display-utils/helpers/ScrollView.d.ts +183 -0
- package/dist/display-utils/helpers/ScrollView.d.ts.map +1 -0
- package/dist/display-utils/helpers/index.d.ts +11 -0
- package/dist/display-utils/helpers/index.d.ts.map +1 -0
- package/dist/display-utils/index.d.ts +108 -0
- package/dist/display-utils/index.d.ts.map +1 -0
- package/dist/display-utils/measurer/TextMeasurer.d.ts +160 -0
- package/dist/display-utils/measurer/TextMeasurer.d.ts.map +1 -0
- package/dist/display-utils/measurer/index.d.ts +10 -0
- package/dist/display-utils/measurer/index.d.ts.map +1 -0
- package/dist/display-utils/measurer/script-detection.d.ts +53 -0
- package/dist/display-utils/measurer/script-detection.d.ts.map +1 -0
- package/dist/display-utils/profiles/g1.d.ts +33 -0
- package/dist/display-utils/profiles/g1.d.ts.map +1 -0
- package/dist/display-utils/profiles/index.d.ts +9 -0
- package/dist/display-utils/profiles/index.d.ts.map +1 -0
- package/dist/display-utils/profiles/types.d.ts +95 -0
- package/dist/display-utils/profiles/types.d.ts.map +1 -0
- package/dist/display-utils/test/ScrollView.test.d.ts +2 -0
- package/dist/display-utils/test/ScrollView.test.d.ts.map +1 -0
- package/dist/display-utils/test/TextMeasurer.test.d.ts +2 -0
- package/dist/display-utils/test/TextMeasurer.test.d.ts.map +1 -0
- package/dist/display-utils/test/TextWrapper.test.d.ts +2 -0
- package/dist/display-utils/test/TextWrapper.test.d.ts.map +1 -0
- package/dist/display-utils/wrapper/TextWrapper.d.ts +94 -0
- package/dist/display-utils/wrapper/TextWrapper.d.ts.map +1 -0
- package/dist/display-utils/wrapper/index.d.ts +12 -0
- package/dist/display-utils/wrapper/index.d.ts.map +1 -0
- package/dist/display-utils/wrapper/types.d.ts +71 -0
- package/dist/display-utils/wrapper/types.d.ts.map +1 -0
- package/dist/display-utils.d.ts +27 -986
- package/dist/display-utils.d.ts.map +1 -1
- package/dist/display-utils.js +9 -9
- package/dist/display-utils.js.map +2 -2
- package/package.json +4 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-utils.d.ts","sourceRoot":"","sources":["../src/display-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"display-utils.d.ts","sourceRoot":"","sources":["../src/display-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAGjB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EAGb,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,oBAAoB,EAGpB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,KAAK,KAAK,EAGV,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EAGnB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GACtB,MAAM,uBAAuB,CAAA"}
|
package/dist/display-utils.js
CHANGED
|
@@ -29,7 +29,7 @@ var __export = (target, all) => {
|
|
|
29
29
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
30
30
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
31
31
|
|
|
32
|
-
//
|
|
32
|
+
// src/display-utils/profiles/g1.ts
|
|
33
33
|
var G1_GLYPH_WIDTHS = {
|
|
34
34
|
" ": 2,
|
|
35
35
|
"!": 1,
|
|
@@ -187,7 +187,7 @@ var G1_PROFILE_LEGACY = {
|
|
|
187
187
|
};
|
|
188
188
|
var G1_HYPHEN_WIDTH_PX = 10;
|
|
189
189
|
var G1_SPACE_WIDTH_PX = 6;
|
|
190
|
-
//
|
|
190
|
+
// src/display-utils/measurer/script-detection.ts
|
|
191
191
|
var SCRIPT_RANGES = {
|
|
192
192
|
cjk: [
|
|
193
193
|
[19968, 40959],
|
|
@@ -310,7 +310,7 @@ function needsHyphenForBreak(charBefore, charAfter) {
|
|
|
310
310
|
return true;
|
|
311
311
|
}
|
|
312
312
|
|
|
313
|
-
//
|
|
313
|
+
// src/display-utils/measurer/TextMeasurer.ts
|
|
314
314
|
class TextMeasurer {
|
|
315
315
|
profile;
|
|
316
316
|
charCache = new Map;
|
|
@@ -465,7 +465,7 @@ class TextMeasurer {
|
|
|
465
465
|
this.buildCharCache();
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
|
-
//
|
|
468
|
+
// src/display-utils/wrapper/types.ts
|
|
469
469
|
var DEFAULT_WRAP_OPTIONS = {
|
|
470
470
|
breakMode: "character",
|
|
471
471
|
hyphenChar: "-",
|
|
@@ -474,7 +474,7 @@ var DEFAULT_WRAP_OPTIONS = {
|
|
|
474
474
|
preserveNewlines: true
|
|
475
475
|
};
|
|
476
476
|
|
|
477
|
-
//
|
|
477
|
+
// src/display-utils/wrapper/TextWrapper.ts
|
|
478
478
|
class TextWrapper {
|
|
479
479
|
measurer;
|
|
480
480
|
defaultOptions;
|
|
@@ -804,7 +804,7 @@ class TextWrapper {
|
|
|
804
804
|
};
|
|
805
805
|
}
|
|
806
806
|
}
|
|
807
|
-
//
|
|
807
|
+
// src/display-utils/helpers/DisplayHelpers.ts
|
|
808
808
|
class DisplayHelpers {
|
|
809
809
|
measurer;
|
|
810
810
|
wrapper;
|
|
@@ -1009,7 +1009,7 @@ class DisplayHelpers {
|
|
|
1009
1009
|
return this.profile;
|
|
1010
1010
|
}
|
|
1011
1011
|
}
|
|
1012
|
-
//
|
|
1012
|
+
// src/display-utils/helpers/ScrollView.ts
|
|
1013
1013
|
class ScrollView {
|
|
1014
1014
|
measurer;
|
|
1015
1015
|
wrapper;
|
|
@@ -1146,7 +1146,7 @@ class ScrollView {
|
|
|
1146
1146
|
return this.profile;
|
|
1147
1147
|
}
|
|
1148
1148
|
}
|
|
1149
|
-
//
|
|
1149
|
+
// src/display-utils/index.ts
|
|
1150
1150
|
function createDisplayToolkit(profile = G1_PROFILE, wrapOptions) {
|
|
1151
1151
|
const measurer = new TextMeasurer(profile);
|
|
1152
1152
|
const wrapper = new TextWrapper(measurer, wrapOptions);
|
|
@@ -1194,4 +1194,4 @@ export {
|
|
|
1194
1194
|
DEFAULT_WRAP_OPTIONS
|
|
1195
1195
|
};
|
|
1196
1196
|
|
|
1197
|
-
//# debugId=
|
|
1197
|
+
//# debugId=7A9C99D0B00FC7CF64756E2164756E21
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../src/display-utils/profiles/g1.ts", "../src/display-utils/measurer/script-detection.ts", "../src/display-utils/measurer/TextMeasurer.ts", "../src/display-utils/wrapper/types.ts", "../src/display-utils/wrapper/TextWrapper.ts", "../src/display-utils/helpers/DisplayHelpers.ts", "../src/display-utils/helpers/ScrollView.ts", "../src/display-utils/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import {DisplayProfile} from \"./types\"\n\n/**\n * Complete G1 glyph widths from G1FontLoaderKt\n * These are GLYPH widths - multiply using renderFormula to get rendered pixels.\n * Rendered width = (glyphWidth + 1) * 2\n */\nconst G1_GLYPH_WIDTHS: Record<string, number> = {\n // Punctuation & Symbols\n \" \": 2,\n \"!\": 1,\n '\"': 2,\n \"#\": 6,\n \"$\": 5,\n \"%\": 6,\n \"&\": 7,\n \"'\": 1,\n \"(\": 2,\n \")\": 2,\n \"*\": 3,\n \"+\": 4,\n \",\": 1,\n \"-\": 4, // Hyphen: 4px glyph → 10px rendered (CRITICAL for breaking!)\n \".\": 1,\n \"/\": 3,\n\n // Numbers\n \"0\": 5,\n \"1\": 3,\n \"2\": 5,\n \"3\": 5,\n \"4\": 5,\n \"5\": 5,\n \"6\": 5,\n \"7\": 5,\n \"8\": 5,\n \"9\": 5,\n\n // More punctuation\n \":\": 1,\n \";\": 1,\n \"<\": 4,\n \"=\": 4,\n \">\": 4,\n \"?\": 5,\n \"@\": 7,\n\n // Uppercase\n \"A\": 6,\n \"B\": 5,\n \"C\": 5,\n \"D\": 5,\n \"E\": 4,\n \"F\": 4,\n \"G\": 5,\n \"H\": 5,\n \"I\": 2,\n \"J\": 3,\n \"K\": 5,\n \"L\": 4,\n \"M\": 7,\n \"N\": 5,\n \"O\": 5,\n \"P\": 5,\n \"Q\": 5,\n \"R\": 5,\n \"S\": 5,\n \"T\": 5,\n \"U\": 5,\n \"V\": 6,\n \"W\": 7,\n \"X\": 6,\n \"Y\": 6,\n \"Z\": 5,\n\n // Brackets & special\n \"[\": 2,\n \"\\\\\": 3,\n \"]\": 2,\n \"^\": 4,\n \"_\": 3,\n \"`\": 2,\n\n // Lowercase\n \"a\": 5,\n \"b\": 4,\n \"c\": 4,\n \"d\": 4,\n \"e\": 4,\n \"f\": 4,\n \"g\": 4,\n \"h\": 4,\n \"i\": 1,\n \"j\": 2,\n \"k\": 4,\n \"l\": 1,\n \"m\": 7,\n \"n\": 4,\n \"o\": 4,\n \"p\": 4,\n \"q\": 4,\n \"r\": 3,\n \"s\": 4,\n \"t\": 3,\n \"u\": 5,\n \"v\": 5,\n \"w\": 7,\n \"x\": 5,\n \"y\": 5,\n \"z\": 4,\n\n // More special\n \"{\": 3,\n \"|\": 1,\n \"}\": 3,\n \"~\": 7,\n}\n\n/**\n * Even Realities G1 Smart Glasses Display Profile\n *\n * Verified through empirical testing with actual hardware.\n * See: line-width-debug-tool/line-width-spec.md\n */\nexport const G1_PROFILE: DisplayProfile = {\n id: \"even-realities-g1\",\n name: \"Even Realities G1\",\n\n // Display dimensions\n displayWidthPx: 576,\n maxLines: 5,\n\n // BLE constraints\n maxPayloadBytes: 390,\n bleChunkSize: 176,\n\n // Font metrics\n fontMetrics: {\n // Glyph widths from G1FontLoaderKt\n glyphWidths: new Map(Object.entries(G1_GLYPH_WIDTHS)),\n\n // Default glyph width for unmapped Latin characters (use max to be safe)\n defaultGlyphWidth: 7,\n\n // Rendered width = (glyphWidth + 1) * 2\n renderFormula: (glyphWidth: number) => (glyphWidth + 1) * 2,\n\n // Uniform-width scripts - ALL characters in these scripts render at this exact width\n // These are verified values in RENDERED pixels, NOT averages\n uniformScripts: {\n cjk: 18, // ALL Chinese/Japanese Kanji chars = 18px (verified)\n hiragana: 18, // ALL Hiragana chars = 18px (verified)\n katakana: 18, // ALL Katakana chars = 18px (verified)\n korean: 24, // ALL Korean Hangul chars = 24px (verified)\n cyrillic: 18, // ALL Cyrillic chars = 18px (verified)\n },\n\n // Fallback for unmapped Latin characters\n // Uses MAX width to guarantee no overflow (safe under-utilization)\n fallback: {\n latinMaxWidth: 16, // Max Latin = 'm', 'w' at (7+1)*2 = 16px\n unknownBehavior: \"useLatinMax\",\n },\n },\n\n constraints: {\n minCharsBeforeHyphen: 3,\n // Kinsoku: Characters that should not appear at start of line\n noStartChars: [\".\", \",\", \"!\", \"?\", \":\", \";\", \")\", \"]\", \"}\", \"。\", \",\", \"!\", \"?\", \":\", \";\", \")\", \"】\", \"」\"],\n // Kinsoku: Characters that should not appear at end of line\n noEndChars: [\"(\", \"[\", \"{\", \"(\", \"【\", \"「\"],\n },\n}\n\n/**\n * G1 Profile for LEGACY mobile clients that have their own wrapping logic.\n *\n * Old mobile clients re-wrap text received from the cloud, causing double-wrapping.\n * This profile uses a reduced display width (~522px instead of 576px) so that\n * when the mobile client re-wraps, the result still fits within 5 lines.\n *\n * Use this profile when:\n * - Mobile client version < X.X.X (has old wrapping logic)\n * - You see text getting cut off or exceeding 5 lines\n *\n * Once all clients are updated, this can be deprecated.\n */\nexport const G1_PROFILE_LEGACY: DisplayProfile = {\n id: \"even-realities-g1-legacy\",\n name: \"Even Realities G1 (Legacy Client Compatibility)\",\n\n // Reduced display width to prevent double-wrapping overflow\n // Old mobile client wraps at ~90% of true width\n displayWidthPx: 420,\n maxLines: 5,\n\n // BLE constraints (same as standard)\n maxPayloadBytes: 390,\n bleChunkSize: 176,\n\n // Font metrics (same as standard)\n fontMetrics: {\n glyphWidths: new Map(Object.entries(G1_GLYPH_WIDTHS)),\n defaultGlyphWidth: 7,\n renderFormula: (glyphWidth: number) => (glyphWidth + 1) * 2,\n uniformScripts: {\n cjk: 18,\n hiragana: 18,\n katakana: 18,\n korean: 24,\n cyrillic: 18,\n },\n fallback: {\n latinMaxWidth: 16,\n unknownBehavior: \"useLatinMax\",\n },\n },\n\n constraints: {\n minCharsBeforeHyphen: 3,\n noStartChars: [\".\", \",\", \"!\", \"?\", \":\", \";\", \")\", \"]\", \"}\", \"。\", \",\", \"!\", \"?\", \":\", \";\", \")\", \"】\", \"」\"],\n noEndChars: [\"(\", \"[\", \"{\", \"(\", \"【\", \"「\"],\n },\n}\n\n/**\n * Get the hyphen width for G1 in rendered pixels.\n * Hyphen glyph = 4px → rendered = (4+1)*2 = 10px\n */\nexport const G1_HYPHEN_WIDTH_PX = 10\n\n/**\n * Get the space width for G1 in rendered pixels.\n * Space glyph = 2px → rendered = (2+1)*2 = 6px\n */\nexport const G1_SPACE_WIDTH_PX = 6\n",
|
|
6
6
|
"import type {ScriptType} from \"../profiles/types\"\n\n/**\n * Unicode ranges for script detection.\n * Used to classify characters for proper width measurement.\n */\nexport const SCRIPT_RANGES = {\n // CJK Unified Ideographs\n cjk: [\n [0x4e00, 0x9fff], // Main block (common Chinese, Japanese Kanji)\n [0x3400, 0x4dbf], // Extension A\n [0x20000, 0x2a6df], // Extension B\n [0x2a700, 0x2b73f], // Extension C\n [0x2b740, 0x2b81f], // Extension D\n [0xf900, 0xfaff], // Compatibility Ideographs\n ] as const,\n\n // Japanese Hiragana\n hiragana: [[0x3040, 0x309f]] as const,\n\n // Japanese Katakana\n katakana: [\n [0x30a0, 0x30ff], // Main block\n [0x31f0, 0x31ff], // Phonetic Extensions\n ] as const,\n\n // Korean\n korean: [\n [0xac00, 0xd7af], // Hangul Syllables\n [0x1100, 0x11ff], // Hangul Jamo\n [0x3130, 0x318f], // Compatibility Jamo\n [0xa960, 0xa97f], // Jamo Extended-A\n [0xd7b0, 0xd7ff], // Jamo Extended-B\n ] as const,\n\n // Cyrillic\n cyrillic: [\n [0x0400, 0x04ff], // Main block\n [0x0500, 0x052f], // Supplement\n ] as const,\n\n // Numbers (ASCII)\n numbers: [[0x30, 0x39]] as const,\n\n // Basic punctuation (ASCII)\n punctuation: [\n [0x20, 0x2f], // Space and basic punctuation\n [0x3a, 0x40], // More punctuation\n [0x5b, 0x60], // Brackets etc.\n [0x7b, 0x7e], // Braces etc.\n ] as const,\n\n // Unsupported scripts (for filtering)\n arabic: [[0x0600, 0x06ff]] as const,\n hebrew: [[0x0590, 0x05ff]] as const,\n thai: [[0x0e00, 0x0e7f]] as const,\n emoji: [\n [0x1f600, 0x1f64f], // Emoticons\n [0x1f300, 0x1f5ff], // Misc Symbols and Pictographs\n [0x1f680, 0x1f6ff], // Transport and Map\n [0x1f1e0, 0x1f1ff], // Flags\n [0x2600, 0x26ff], // Misc Symbols\n [0x2700, 0x27bf], // Dingbats\n [0xfe00, 0xfe0f], // Variation Selectors\n [0x1f900, 0x1f9ff], // Supplemental Symbols\n ] as const,\n} as const\n\n/**\n * Check if a code point is within any of the given ranges.\n */\nfunction inRanges(codePoint: number, ranges: readonly (readonly [number, number])[]): boolean {\n for (const [start, end] of ranges) {\n if (codePoint >= start && codePoint <= end) {\n return true\n }\n }\n return false\n}\n\n/**\n * Detect the script type of a single character.\n *\n * @param char - Single character to classify\n * @returns The script type of the character\n */\nexport function detectScript(char: string): ScriptType {\n if (!char || char.length === 0) {\n return \"latin\"\n }\n\n // Get the code point (handles surrogate pairs for characters outside BMP)\n const codePoint = char.codePointAt(0)\n if (codePoint === undefined) {\n return \"latin\"\n }\n\n // Check each script in order of likelihood/importance\n\n // CJK (most common for multi-byte)\n if (inRanges(codePoint, SCRIPT_RANGES.cjk)) {\n return \"cjk\"\n }\n\n // Japanese kana\n if (inRanges(codePoint, SCRIPT_RANGES.hiragana)) {\n return \"hiragana\"\n }\n if (inRanges(codePoint, SCRIPT_RANGES.katakana)) {\n return \"katakana\"\n }\n\n // Korean\n if (inRanges(codePoint, SCRIPT_RANGES.korean)) {\n return \"korean\"\n }\n\n // Cyrillic\n if (inRanges(codePoint, SCRIPT_RANGES.cyrillic)) {\n return \"cyrillic\"\n }\n\n // Numbers\n if (inRanges(codePoint, SCRIPT_RANGES.numbers)) {\n return \"numbers\"\n }\n\n // Punctuation\n if (inRanges(codePoint, SCRIPT_RANGES.punctuation)) {\n return \"punctuation\"\n }\n\n // Unsupported scripts\n if (\n inRanges(codePoint, SCRIPT_RANGES.arabic) ||\n inRanges(codePoint, SCRIPT_RANGES.hebrew) ||\n inRanges(codePoint, SCRIPT_RANGES.thai) ||\n inRanges(codePoint, SCRIPT_RANGES.emoji)\n ) {\n return \"unsupported\"\n }\n\n // Default to Latin for ASCII letters and anything else\n return \"latin\"\n}\n\n/**\n * Check if a character is a CJK character (Chinese, Japanese Kanji).\n * CJK characters can break anywhere without needing a hyphen.\n */\nexport function isCJKCharacter(char: string): boolean {\n const script = detectScript(char)\n return script === \"cjk\" || script === \"hiragana\" || script === \"katakana\"\n}\n\n/**\n * Check if a character is Korean Hangul.\n */\nexport function isKoreanCharacter(char: string): boolean {\n return detectScript(char) === \"korean\"\n}\n\n/**\n * Check if a character is from a uniform-width script.\n * These scripts render all characters at the same width.\n */\nexport function isUniformWidthScript(char: string): boolean {\n const script = detectScript(char)\n return (\n script === \"cjk\" || script === \"hiragana\" || script === \"katakana\" || script === \"korean\" || script === \"cyrillic\"\n )\n}\n\n/**\n * Check if a character is from an unsupported script.\n * These characters may not render correctly on the glasses.\n */\nexport function isUnsupportedScript(char: string): boolean {\n return detectScript(char) === \"unsupported\"\n}\n\n/**\n * Check if breaking between two characters requires a hyphen.\n * Returns false for:\n * - Breaking after CJK characters (can break anywhere)\n * - Breaking before or after spaces\n * - Breaking after punctuation\n */\nexport function needsHyphenForBreak(charBefore: string, charAfter: string): boolean {\n // No hyphen needed after CJK (can break anywhere)\n if (isCJKCharacter(charBefore)) {\n return false\n }\n\n // No hyphen needed before CJK\n if (isCJKCharacter(charAfter)) {\n return false\n }\n\n // No hyphen needed after space\n if (charBefore === \" \" || charBefore === \"\\t\") {\n return false\n }\n\n // No hyphen needed before space (the space is a natural break point)\n if (charAfter === \" \" || charAfter === \"\\t\") {\n return false\n }\n\n // No hyphen needed after existing punctuation that serves as break\n const breakPunctuation = [\"-\", \"–\", \"—\", \"/\", \"\\\\\", \"|\"]\n if (breakPunctuation.includes(charBefore)) {\n return false\n }\n\n // Default: hyphen is needed for mid-word Latin breaks\n return true\n}\n",
|
|
@@ -12,6 +12,6 @@
|
|
|
12
12
|
"/**\n * @mentra/display-utils\n *\n * Glasses-agnostic, pixel-accurate text measurement and wrapping library\n * for smart glasses displays.\n *\n * Key features:\n * - Pixel-perfect measurement (no abstract units or averages)\n * - Multiple break modes (character, word, strict-word)\n * - Full script support (Latin, CJK, Korean, Cyrillic)\n * - Configurable display profiles for different glasses hardware\n *\n * @example\n * ```typescript\n * import {\n * TextMeasurer,\n * TextWrapper,\n * DisplayHelpers,\n * G1_PROFILE\n * } from '@mentra/display-utils'\n *\n * // Create measurer and wrapper for G1 glasses\n * const measurer = new TextMeasurer(G1_PROFILE)\n * const wrapper = new TextWrapper(measurer, { breakMode: 'character' })\n * const helpers = new DisplayHelpers(measurer, wrapper)\n *\n * // Wrap text for display\n * const result = wrapper.wrap(\"Hello, world! This is a long text.\")\n * console.log(result.lines)\n * // [\"Hello, world! This is a long text th-\", \"at needs wrapping.\"]\n * ```\n */\n\n// =============================================================================\n// Profiles - Hardware configurations for different glasses\n// =============================================================================\n\nexport type {\n DisplayProfile,\n FontMetrics,\n UniformScriptWidths,\n FallbackConfig,\n DisplayConstraints,\n ScriptType,\n} from \"./profiles\"\n\nexport {G1_PROFILE, G1_PROFILE_LEGACY, G1_HYPHEN_WIDTH_PX, G1_SPACE_WIDTH_PX} from \"./profiles\"\n\n// Import for factory functions\nimport {G1_PROFILE_LEGACY} from \"./profiles\"\n\n// =============================================================================\n// Measurer - Pixel-accurate text measurement\n// =============================================================================\n\nexport {TextMeasurer} from \"./measurer\"\nexport type {CharMeasurement, TextMeasurement} from \"./measurer\"\n\n// Script detection utilities\nexport {\n detectScript,\n isCJKCharacter,\n isKoreanCharacter,\n isUniformWidthScript,\n isUnsupportedScript,\n needsHyphenForBreak,\n SCRIPT_RANGES,\n} from \"./measurer\"\n\n// =============================================================================\n// Wrapper - Text wrapping with multiple break modes\n// =============================================================================\n\nexport {TextWrapper} from \"./wrapper\"\nexport type {WrapOptions, WrapResult, LineMetrics, BreakMode} from \"./wrapper\"\nexport {DEFAULT_WRAP_OPTIONS} from \"./wrapper\"\n\n// =============================================================================\n// Helpers - Optional convenience utilities\n// =============================================================================\n\nexport {DisplayHelpers, ScrollView} from \"./helpers\"\nexport type {TruncateResult, Page, Chunk, ScrollPosition, ScrollViewport} from \"./helpers\"\n\n// =============================================================================\n// Convenience factory functions\n// =============================================================================\n\nimport {TextMeasurer} from \"./measurer\"\nimport {TextWrapper} from \"./wrapper\"\nimport {DisplayHelpers} from \"./helpers\"\nimport {G1_PROFILE} from \"./profiles\"\nimport type {DisplayProfile} from \"./profiles\"\nimport type {WrapOptions} from \"./wrapper\"\n\n/**\n * Create a complete display toolkit for a given profile.\n *\n * @param profile - Display profile (defaults to G1)\n * @param wrapOptions - Default wrap options\n * @returns Object with measurer, wrapper, and helpers\n *\n * @example\n * ```typescript\n * const { measurer, wrapper, helpers } = createDisplayToolkit()\n * const lines = wrapper.wrapToLines(\"Hello, world!\")\n * ```\n */\nexport function createDisplayToolkit(\n profile: DisplayProfile = G1_PROFILE,\n wrapOptions?: WrapOptions,\n): {\n measurer: TextMeasurer\n wrapper: TextWrapper\n helpers: DisplayHelpers\n profile: DisplayProfile\n} {\n const measurer = new TextMeasurer(profile)\n const wrapper = new TextWrapper(measurer, wrapOptions)\n const helpers = new DisplayHelpers(measurer, wrapper)\n\n return {\n measurer,\n wrapper,\n helpers,\n profile,\n }\n}\n\n/**\n * Create a G1-configured display toolkit with character breaking.\n * This is the recommended setup for captions and similar high-utilization use cases.\n *\n * @returns Object with measurer, wrapper, and helpers configured for G1\n *\n * @example\n * ```typescript\n * const { wrapper } = createG1Toolkit()\n * const result = wrapper.wrap(\"Your text here\")\n * ```\n */\nexport function createG1Toolkit(): {\n measurer: TextMeasurer\n wrapper: TextWrapper\n helpers: DisplayHelpers\n profile: DisplayProfile\n} {\n return createDisplayToolkit(G1_PROFILE, {\n breakMode: \"character\",\n hyphenChar: \"-\",\n minCharsBeforeHyphen: 3,\n })\n}\n\n/**\n * Create a G1-configured display toolkit for LEGACY mobile clients.\n *\n * Use this when the mobile client has old wrapping logic that re-wraps\n * text received from the cloud. This profile uses a reduced display width\n * (~522px instead of 576px) to prevent double-wrapping overflow.\n *\n * @returns Object with measurer, wrapper, and helpers configured for legacy G1 clients\n *\n * @example\n * ```typescript\n * // For old mobile clients that double-wrap\n * const { wrapper } = createG1LegacyToolkit()\n * const result = wrapper.wrap(\"Your text here\")\n * // Lines will be shorter to account for mobile re-wrapping\n * ```\n */\nexport function createG1LegacyToolkit(): {\n measurer: TextMeasurer\n wrapper: TextWrapper\n helpers: DisplayHelpers\n profile: DisplayProfile\n} {\n return createDisplayToolkit(G1_PROFILE_LEGACY, {\n breakMode: \"character\",\n hyphenChar: \"-\",\n minCharsBeforeHyphen: 3,\n })\n}\n"
|
|
13
13
|
],
|
|
14
14
|
"mappings": "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",
|
|
15
|
-
"debugId": "
|
|
15
|
+
"debugId": "7A9C99D0B00FC7CF64756E2164756E21",
|
|
16
16
|
"names": []
|
|
17
17
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mentra/sdk",
|
|
3
|
-
"version": "2.1.29-beta.
|
|
3
|
+
"version": "2.1.29-beta.2",
|
|
4
4
|
"description": "Build apps for MentraOS smartglasses. This SDK provides everything you need to create real-time smartglasses applications.",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,14 +35,12 @@
|
|
|
35
35
|
"mentra": "./dist/cli.js"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
|
-
"build": "bun run
|
|
39
|
-
"build:js-only": "bun run
|
|
40
|
-
"build:full": "bun run
|
|
38
|
+
"build": "bun run clean && bun run build:js && bun run build:types",
|
|
39
|
+
"build:js-only": "bun run clean && bun run build:js",
|
|
40
|
+
"build:full": "bun run clean && bun run build:js && bun run build:types",
|
|
41
41
|
"clean": "rm -rf dist",
|
|
42
42
|
"build:js": "bun build src/index.ts src/display-utils.ts --outdir dist --target node --format esm --sourcemap=external --external @logtail/pino --external axios --external boxen --external chalk --external cookie-parser --external dotenv --external express --external jimp --external jsonwebtoken --external jsrsasign --external multer --external pino --external pino-pretty --external strip-ansi --external ws",
|
|
43
43
|
"build:types": "bun x tsc --emitDeclarationOnly",
|
|
44
|
-
"prebuild-display-utils-types": "cd ../display-utils && bun x tsc --emitDeclarationOnly",
|
|
45
|
-
"bundle-display-utils-types": "bun run scripts/bundle-display-utils-types.ts",
|
|
46
44
|
"dev": "echo 'No build needed in dev mode - using source files directly'",
|
|
47
45
|
"prepare": "bun run build",
|
|
48
46
|
"link-pkg": "bun link"
|
|
@@ -65,7 +63,6 @@
|
|
|
65
63
|
"ws": "^8.18.2"
|
|
66
64
|
},
|
|
67
65
|
"devDependencies": {
|
|
68
|
-
"@mentra/display-utils": "1.0.0",
|
|
69
66
|
"@mentra/types": "1.0.0",
|
|
70
67
|
"@types/babel__core": "^7.20.5",
|
|
71
68
|
"@types/express": "^4.17.17",
|