@keymanapp/developer-utils 18.0.41-alpha → 18.0.118-alpha
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/build/src/common-messages.d.ts +49 -0
- package/build/src/common-messages.d.ts.map +1 -0
- package/build/src/common-messages.js +35 -0
- package/build/src/common-messages.js.map +1 -0
- package/build/src/compiler-interfaces.d.ts +372 -0
- package/build/src/compiler-interfaces.d.ts.map +1 -0
- package/build/src/compiler-interfaces.js +382 -0
- package/build/src/compiler-interfaces.js.map +1 -0
- package/build/src/deps/xml2js/bom.d.ts +2 -0
- package/build/src/deps/xml2js/bom.d.ts.map +1 -0
- package/build/src/deps/xml2js/bom.js +14 -0
- package/build/src/deps/xml2js/bom.js.map +1 -0
- package/build/src/deps/xml2js/builder.d.ts +6 -0
- package/build/src/deps/xml2js/builder.d.ts.map +1 -0
- package/build/src/deps/xml2js/builder.js +133 -0
- package/build/src/deps/xml2js/builder.js.map +1 -0
- package/build/src/deps/xml2js/defaults.d.ts +69 -0
- package/build/src/deps/xml2js/defaults.d.ts.map +1 -0
- package/build/src/deps/xml2js/defaults.js +73 -0
- package/build/src/deps/xml2js/defaults.js.map +1 -0
- package/build/src/deps/xml2js/parser.d.ts +18 -0
- package/build/src/deps/xml2js/parser.d.ts.map +1 -0
- package/build/src/deps/xml2js/parser.js +395 -0
- package/build/src/deps/xml2js/parser.js.map +1 -0
- package/build/src/deps/xml2js/processors.d.ts +6 -0
- package/build/src/deps/xml2js/processors.d.ts.map +1 -0
- package/build/src/deps/xml2js/processors.js +28 -0
- package/build/src/deps/xml2js/processors.js.map +1 -0
- package/build/src/deps/xml2js/xml2js.d.ts +12 -0
- package/build/src/deps/xml2js/xml2js.d.ts.map +1 -0
- package/build/src/deps/xml2js/xml2js.js +26 -0
- package/build/src/deps/xml2js/xml2js.js.map +1 -0
- package/build/src/index.d.ts +24 -0
- package/build/src/index.d.ts.map +1 -0
- package/build/src/index.js +26 -0
- package/build/src/index.js.map +1 -0
- package/build/src/is-valid-email.d.ts +2 -0
- package/build/src/is-valid-email.d.ts.map +1 -0
- package/build/src/is-valid-email.js +20 -0
- package/build/src/is-valid-email.js.map +1 -0
- package/build/src/types/import/45/cldr_info.json +5 -0
- package/build/src/types/import/45/keys-Latn-implied.xml +80 -0
- package/build/src/types/import/45/keys-Zyyy-currency.xml +15 -0
- package/build/src/types/import/45/keys-Zyyy-punctuation.xml +45 -0
- package/build/src/types/import/45/scanCodes-implied.xml +53 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts +7 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.d.ts.map +1 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.js +74 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-reader.js.map +1 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts +30 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.d.ts.map +1 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.js +123 -0
- package/build/src/types/keyman-touch-layout/keyman-touch-layout-file-writer.js.map +1 -0
- package/build/src/types/kmx/kmx-builder.d.ts +42 -0
- package/build/src/types/kmx/kmx-builder.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-builder.js +192 -0
- package/build/src/types/kmx/kmx-builder.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-disp.d.ts +20 -0
- package/build/src/types/kmx/kmx-plus-builder/build-disp.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-disp.js +29 -0
- package/build/src/types/kmx/kmx-plus-builder/build-disp.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-elem.d.ts +29 -0
- package/build/src/types/kmx/kmx-plus-builder/build-elem.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-elem.js +91 -0
- package/build/src/types/kmx/kmx-plus-builder/build-elem.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-keys.d.ts +59 -0
- package/build/src/types/kmx/kmx-plus-builder/build-keys.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-keys.js +110 -0
- package/build/src/types/kmx/kmx-plus-builder/build-keys.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-layr.d.ts +57 -0
- package/build/src/types/kmx/kmx-plus-builder/build-layr.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-layr.js +104 -0
- package/build/src/types/kmx/kmx-plus-builder/build-layr.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-list.d.ts +38 -0
- package/build/src/types/kmx/kmx-plus-builder/build-list.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-list.js +69 -0
- package/build/src/types/kmx/kmx-plus-builder/build-list.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-loca.d.ts +13 -0
- package/build/src/types/kmx/kmx-plus-builder/build-loca.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-loca.js +23 -0
- package/build/src/types/kmx/kmx-plus-builder/build-loca.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-meta.d.ts +18 -0
- package/build/src/types/kmx/kmx-plus-builder/build-meta.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-meta.js +24 -0
- package/build/src/types/kmx/kmx-plus-builder/build-meta.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-sect.d.ts +16 -0
- package/build/src/types/kmx/kmx-plus-builder/build-sect.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-sect.js +17 -0
- package/build/src/types/kmx/kmx-plus-builder/build-sect.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-strs.d.ts +25 -0
- package/build/src/types/kmx/kmx-plus-builder/build-strs.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-strs.js +49 -0
- package/build/src/types/kmx/kmx-plus-builder/build-strs.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-tran.d.ts +35 -0
- package/build/src/types/kmx/kmx-plus-builder/build-tran.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-tran.js +71 -0
- package/build/src/types/kmx/kmx-plus-builder/build-tran.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-uset.d.ts +34 -0
- package/build/src/types/kmx/kmx-plus-builder/build-uset.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-uset.js +63 -0
- package/build/src/types/kmx/kmx-plus-builder/build-uset.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-vars.d.ts +23 -0
- package/build/src/types/kmx/kmx-plus-builder/build-vars.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/build-vars.js +50 -0
- package/build/src/types/kmx/kmx-plus-builder/build-vars.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/builder-section.d.ts +10 -0
- package/build/src/types/kmx/kmx-plus-builder/builder-section.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/builder-section.js +6 -0
- package/build/src/types/kmx/kmx-plus-builder/builder-section.js.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.d.ts +44 -0
- package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.d.ts.map +1 -0
- package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.js +139 -0
- package/build/src/types/kmx/kmx-plus-builder/kmx-plus-builder.js.map +1 -0
- package/build/src/types/kpj/keyman-developer-project.d.ts +79 -0
- package/build/src/types/kpj/keyman-developer-project.d.ts.map +1 -0
- package/build/src/types/kpj/keyman-developer-project.js +197 -0
- package/build/src/types/kpj/keyman-developer-project.js.map +1 -0
- package/build/src/types/kpj/kpj-file-reader.d.ts +19 -0
- package/build/src/types/kpj/kpj-file-reader.d.ts.map +1 -0
- package/build/src/types/kpj/kpj-file-reader.js +121 -0
- package/build/src/types/kpj/kpj-file-reader.js.map +1 -0
- package/build/src/types/kpj/kpj-file.d.ts +40 -0
- package/build/src/types/kpj/kpj-file.d.ts.map +1 -0
- package/build/src/types/kpj/kpj-file.js +14 -0
- package/build/src/types/kpj/kpj-file.js.map +1 -0
- package/build/src/types/kps/kps-file.d.ts +176 -0
- package/build/src/types/kps/kps-file.d.ts.map +1 -0
- package/build/src/types/kps/kps-file.js +19 -0
- package/build/src/types/kps/kps-file.js.map +1 -0
- package/build/src/types/kvks/kvks-file-reader.d.ts +26 -0
- package/build/src/types/kvks/kvks-file-reader.d.ts.map +1 -0
- package/build/src/types/kvks/kvks-file-reader.js +181 -0
- package/build/src/types/kvks/kvks-file-reader.js.map +1 -0
- package/build/src/types/kvks/kvks-file-writer.d.ts +9 -0
- package/build/src/types/kvks/kvks-file-writer.d.ts.map +1 -0
- package/build/src/types/kvks/kvks-file-writer.js +109 -0
- package/build/src/types/kvks/kvks-file-writer.js.map +1 -0
- package/build/src/types/kvks/kvks-file.d.ts +44 -0
- package/build/src/types/kvks/kvks-file.d.ts.map +1 -0
- package/build/src/types/kvks/kvks-file.js +13 -0
- package/build/src/types/kvks/kvks-file.js.map +1 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts +61 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.d.ts.map +1 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.js +23 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-testdata-xml.js.map +1 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.d.ts +96 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.d.ts.map +1 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.js +430 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml-reader.js.map +1 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml.d.ts +171 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml.d.ts.map +1 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml.js +59 -0
- package/build/src/types/ldml-keyboard/ldml-keyboard-xml.js.map +1 -0
- package/build/src/{KeymanSentry.d.ts → utils/KeymanSentry.d.ts} +11 -11
- package/build/src/utils/KeymanSentry.d.ts.map +1 -0
- package/build/src/{KeymanSentry.js → utils/KeymanSentry.js} +75 -75
- package/build/src/utils/KeymanSentry.js.map +1 -0
- package/build/src/{keyman-urls.d.ts → utils/keyman-urls.d.ts} +14 -14
- package/build/src/utils/keyman-urls.d.ts.map +1 -0
- package/build/src/{keyman-urls.js → utils/keyman-urls.js} +20 -20
- package/build/src/utils/keyman-urls.js.map +1 -0
- package/build/src/{markdown.d.ts → utils/markdown.d.ts} +1 -1
- package/build/src/utils/markdown.d.ts.map +1 -0
- package/build/src/{markdown.js → utils/markdown.js} +22 -22
- package/build/src/utils/markdown.js.map +1 -0
- package/build/src/{options.d.ts → utils/options.d.ts} +43 -43
- package/build/src/utils/options.d.ts.map +1 -0
- package/build/src/{options.js → utils/options.js} +57 -57
- package/build/src/utils/options.js.map +1 -0
- package/build/src/{validate-mit-license.d.ts → utils/validate-mit-license.d.ts} +6 -6
- package/build/src/utils/validate-mit-license.d.ts.map +1 -0
- package/build/src/{validate-mit-license.js → utils/validate-mit-license.js} +50 -50
- package/build/src/utils/validate-mit-license.js.map +1 -0
- package/build/test/helpers/index.d.ts +13 -0
- package/build/test/helpers/index.d.ts.map +1 -0
- package/build/test/helpers/index.js +42 -0
- package/build/test/helpers/index.js.map +1 -0
- package/build/test/helpers/reader-callback-test.d.ts +73 -0
- package/build/test/helpers/reader-callback-test.d.ts.map +1 -0
- package/build/test/helpers/reader-callback-test.js +108 -0
- package/build/test/helpers/reader-callback-test.js.map +1 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.d.ts +2 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.d.ts.map +1 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.js +64 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-file-reader.js.map +1 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.d.ts +2 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.d.ts.map +1 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.js +34 -0
- package/build/test/keyman-touch-layout/test-keyman-touch-layout-round-trip.js.map +1 -0
- package/build/test/kmx/test-ldml-keyboard-testdata-reader.d.ts +2 -0
- package/build/test/kmx/test-ldml-keyboard-testdata-reader.d.ts.map +1 -0
- package/build/test/kmx/test-ldml-keyboard-testdata-reader.js +54 -0
- package/build/test/kmx/test-ldml-keyboard-testdata-reader.js.map +1 -0
- package/build/test/kmx/test-ldml-keyboard-xml-reader.d.ts +2 -0
- package/build/test/kmx/test-ldml-keyboard-xml-reader.d.ts.map +1 -0
- package/build/test/kmx/test-ldml-keyboard-xml-reader.js +209 -0
- package/build/test/kmx/test-ldml-keyboard-xml-reader.js.map +1 -0
- package/build/test/kpj/test-kpj-file-reader.d.ts +2 -0
- package/build/test/kpj/test-kpj-file-reader.d.ts.map +1 -0
- package/build/test/kpj/test-kpj-file-reader.js +141 -0
- package/build/test/kpj/test-kpj-file-reader.js.map +1 -0
- package/build/test/kvks/test-kvk-round-trip.d.ts +2 -0
- package/build/test/kvks/test-kvk-round-trip.d.ts.map +1 -0
- package/build/test/kvks/test-kvk-round-trip.js +108 -0
- package/build/test/kvks/test-kvk-round-trip.js.map +1 -0
- package/build/test/kvks/test-kvk-utils.d.ts +6 -0
- package/build/test/kvks/test-kvk-utils.d.ts.map +1 -0
- package/build/test/kvks/test-kvk-utils.js +42 -0
- package/build/test/kvks/test-kvk-utils.js.map +1 -0
- package/build/test/kvks/test-kvks-file.d.ts +2 -0
- package/build/test/kvks/test-kvks-file.d.ts.map +1 -0
- package/build/test/kvks/test-kvks-file.js +59 -0
- package/build/test/kvks/test-kvks-file.js.map +1 -0
- package/build/test/test-is-valid-email.d.ts +2 -0
- package/build/test/test-is-valid-email.d.ts.map +1 -0
- package/build/test/test-is-valid-email.js +36 -0
- package/build/test/test-is-valid-email.js.map +1 -0
- package/build/test/test-license.d.ts +2 -0
- package/build/test/test-license.d.ts.map +1 -0
- package/build/test/test-license.js +24 -0
- package/build/test/test-license.js.map +1 -0
- package/build/test/tsconfig.tsbuildinfo +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -6
- package/build/index.d.ts +0 -6
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -9
- package/build/index.js.map +0 -1
- package/build/src/KeymanSentry.d.ts.map +0 -1
- package/build/src/KeymanSentry.js.map +0 -1
- package/build/src/keyman-urls.d.ts.map +0 -1
- package/build/src/keyman-urls.js.map +0 -1
- package/build/src/markdown.d.ts.map +0 -1
- package/build/src/markdown.js.map +0 -1
- package/build/src/options.d.ts.map +0 -1
- package/build/src/options.js.map +0 -1
- package/build/src/validate-mit-license.d.ts.map +0 -1
- package/build/src/validate-mit-license.js.map +0 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8bdbff19-a4cf-5b63-8d69-5c96ce007c6e")}catch(e){}}();
|
|
3
|
+
export { validateMITLicense } from './utils/validate-mit-license.js';
|
|
4
|
+
export { KeymanSentry } from './utils/KeymanSentry.js';
|
|
5
|
+
export { getOption, loadOptions, clearOptions } from './utils/options.js';
|
|
6
|
+
export { escapeMarkdownChar } from './utils/markdown.js';
|
|
7
|
+
export { KeymanUrls } from './utils/keyman-urls.js';
|
|
8
|
+
export * as KPJ from './types/kpj/kpj-file.js';
|
|
9
|
+
export { KPJFileReader } from './types/kpj/kpj-file-reader.js';
|
|
10
|
+
export { KeymanDeveloperProject, KeymanDeveloperProjectType, } from './types/kpj/keyman-developer-project.js';
|
|
11
|
+
export { isValidEmail } from './is-valid-email.js';
|
|
12
|
+
export * as KpsFile from './types/kps/kps-file.js';
|
|
13
|
+
export { default as KvksFileReader } from './types/kvks/kvks-file-reader.js';
|
|
14
|
+
export { default as KvksFileWriter } from './types/kvks/kvks-file-writer.js';
|
|
15
|
+
export * as KvksFile from './types/kvks/kvks-file.js';
|
|
16
|
+
export { TouchLayoutFileReader } from './types/keyman-touch-layout/keyman-touch-layout-file-reader.js';
|
|
17
|
+
export { TouchLayoutFileWriter } from './types/keyman-touch-layout/keyman-touch-layout-file-writer.js';
|
|
18
|
+
export { default as KMXBuilder } from './types/kmx/kmx-builder.js';
|
|
19
|
+
export { default as KMXPlusBuilder } from './types/kmx/kmx-plus-builder/kmx-plus-builder.js';
|
|
20
|
+
export * as LDMLKeyboard from './types/ldml-keyboard/ldml-keyboard-xml.js';
|
|
21
|
+
export { LDMLKeyboardXMLSourceFileReader, LDMLKeyboardXMLSourceFileReaderOptions } from './types/ldml-keyboard/ldml-keyboard-xml-reader.js';
|
|
22
|
+
export { defaultCompilerOptions, CompilerErrorNamespace, CompilerErrorSeverity, CompilerError, CompilerMessageSpec, CompilerMessageSpecWithException, compilerErrorSeverity, CompilerErrorMask, CompilerFileCallbacks, compilerErrorSeverityName, compilerErrorFormatCode, CompilerMessageDef, compilerLogLevelToSeverity, compilerEventFormat, ALL_COMPILER_LOG_LEVELS, ALL_COMPILER_LOG_FORMATS } from './compiler-interfaces.js';
|
|
23
|
+
export { CommonTypesMessages } from './common-messages.js';
|
|
24
|
+
export * as xml2js from './deps/xml2js/xml2js.js';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
26
|
+
//# debugId=8bdbff19-a4cf-5b63-8d69-5c96ce007c6e
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAqB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAA8B,0BAA0B,GAAG,MAAM,yCAAyC,CAAC;AAC1I,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAgC,MAAM,gEAAgE,CAAC;AAErI,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAC,MAAO,kDAAkD,CAAC;AAE7F,OAAO,KAAK,YAAY,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,MAAM,mDAAmD,CAAC;AAE5I,OAAO,EAAE,sBAAsB,EAA0E,sBAAsB,EAC7H,qBAAqB,EACrB,aAAa,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,yBAAyB,EAChK,uBAAuB,EAAE,kBAAkB,EAC3C,0BAA0B,EAAoB,mBAAmB,EAAE,uBAAuB,EAC1F,wBAAwB,EAUvB,MAAM,0BAA0B,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC","debug_id":"8bdbff19-a4cf-5b63-8d69-5c96ce007c6e"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-valid-email.d.ts","sourceRoot":"","sources":["../../src/is-valid-email.ts"],"names":[],"mappings":"AAeA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,WAEzC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Keyman is copyright (C) SIL International. MIT License.
|
|
3
|
+
*
|
|
4
|
+
* Verify email address format, following WHATWG guidelines
|
|
5
|
+
*/
|
|
6
|
+
// There is no "good" definition of a valid email address. Email addresses are
|
|
7
|
+
// horrific. They can contain comments, whitespace, and all manner of ugly
|
|
8
|
+
// things. Because we use AJV to verify JSON files, we use their specification
|
|
9
|
+
// on what is a valid email address. Some useful references:
|
|
10
|
+
// * https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
|
|
11
|
+
// * http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
|
|
12
|
+
// * https://github.com/ajv-validator/ajv-formats/blob/4ca86d21bd07571a30178cbb3714133db6eada9a/src/formats.ts#L122
|
|
13
|
+
// * https://github.com/ajv-validator/ajv-formats/blob/4ca86d21bd07571a30178cbb3714133db6eada9a/src/formats.ts#L65
|
|
14
|
+
|
|
15
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d1eaac84-9ecc-5cfd-a949-547896946cc6")}catch(e){}}();
|
|
16
|
+
export function isValidEmail(email) {
|
|
17
|
+
return /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i.test(email);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=is-valid-email.js.map
|
|
20
|
+
//# debugId=d1eaac84-9ecc-5cfd-a949-547896946cc6
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-valid-email.js","sources":["../../src/is-valid-email.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;;;GAIG;AAEH,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,4DAA4D;AAC5D,2EAA2E;AAC3E,qHAAqH;AACrH,mHAAmH;AACnH,kHAAkH;;;AAElH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,kHAAkH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxI,CAAC","debug_id":"d1eaac84-9ecc-5cfd-a949-547896946cc6"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Copyright © 1991-2024 Unicode, Inc.
|
|
4
|
+
For terms of use, see http://www.unicode.org/copyright.html
|
|
5
|
+
SPDX-License-Identifier: Unicode-3.0
|
|
6
|
+
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
|
7
|
+
-->
|
|
8
|
+
<!--
|
|
9
|
+
This is the implied import for implied keys.
|
|
10
|
+
Please note that any implied keys may be overridden by keyboard layouts.
|
|
11
|
+
-->
|
|
12
|
+
<!DOCTYPE keys SYSTEM "../dtd/ldmlKeyboard3.dtd">
|
|
13
|
+
<keys>
|
|
14
|
+
|
|
15
|
+
<key id="gap" gap="true" width="1"/>
|
|
16
|
+
<key id="space" output="\u{0020}" stretch="true" width="1"/>
|
|
17
|
+
|
|
18
|
+
<key id="0" output="0"/>
|
|
19
|
+
<key id="1" output="1"/>
|
|
20
|
+
<key id="2" output="2"/>
|
|
21
|
+
<key id="3" output="3"/>
|
|
22
|
+
<key id="4" output="4"/>
|
|
23
|
+
<key id="5" output="5"/>
|
|
24
|
+
<key id="6" output="6"/>
|
|
25
|
+
<key id="7" output="7"/>
|
|
26
|
+
<key id="8" output="8"/>
|
|
27
|
+
<key id="9" output="9"/>
|
|
28
|
+
<key id="A" output="A"/>
|
|
29
|
+
<key id="B" output="B"/>
|
|
30
|
+
<key id="C" output="C"/>
|
|
31
|
+
<key id="D" output="D"/>
|
|
32
|
+
<key id="E" output="E"/>
|
|
33
|
+
<key id="F" output="F"/>
|
|
34
|
+
<key id="G" output="G"/>
|
|
35
|
+
<key id="H" output="H"/>
|
|
36
|
+
<key id="I" output="I"/>
|
|
37
|
+
<key id="J" output="J"/>
|
|
38
|
+
<key id="K" output="K"/>
|
|
39
|
+
<key id="L" output="L"/>
|
|
40
|
+
<key id="M" output="M"/>
|
|
41
|
+
<key id="N" output="N"/>
|
|
42
|
+
<key id="O" output="O"/>
|
|
43
|
+
<key id="P" output="P"/>
|
|
44
|
+
<key id="Q" output="Q"/>
|
|
45
|
+
<key id="R" output="R"/>
|
|
46
|
+
<key id="S" output="S"/>
|
|
47
|
+
<key id="T" output="T"/>
|
|
48
|
+
<key id="U" output="U"/>
|
|
49
|
+
<key id="V" output="V"/>
|
|
50
|
+
<key id="W" output="W"/>
|
|
51
|
+
<key id="X" output="X"/>
|
|
52
|
+
<key id="Y" output="Y"/>
|
|
53
|
+
<key id="Z" output="Z"/>
|
|
54
|
+
<key id="a" output="a"/>
|
|
55
|
+
<key id="b" output="b"/>
|
|
56
|
+
<key id="c" output="c"/>
|
|
57
|
+
<key id="d" output="d"/>
|
|
58
|
+
<key id="e" output="e"/>
|
|
59
|
+
<key id="f" output="f"/>
|
|
60
|
+
<key id="g" output="g"/>
|
|
61
|
+
<key id="h" output="h"/>
|
|
62
|
+
<key id="i" output="i"/>
|
|
63
|
+
<key id="j" output="j"/>
|
|
64
|
+
<key id="k" output="k"/>
|
|
65
|
+
<key id="l" output="l"/>
|
|
66
|
+
<key id="m" output="m"/>
|
|
67
|
+
<key id="n" output="n"/>
|
|
68
|
+
<key id="o" output="o"/>
|
|
69
|
+
<key id="p" output="p"/>
|
|
70
|
+
<key id="q" output="q"/>
|
|
71
|
+
<key id="r" output="r"/>
|
|
72
|
+
<key id="s" output="s"/>
|
|
73
|
+
<key id="t" output="t"/>
|
|
74
|
+
<key id="u" output="u"/>
|
|
75
|
+
<key id="v" output="v"/>
|
|
76
|
+
<key id="w" output="w"/>
|
|
77
|
+
<key id="x" output="x"/>
|
|
78
|
+
<key id="y" output="y"/>
|
|
79
|
+
<key id="z" output="z"/>
|
|
80
|
+
</keys>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Copyright © 1991-2024 Unicode, Inc.
|
|
4
|
+
SPDX-License-Identifier: Unicode-3.0
|
|
5
|
+
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
|
6
|
+
-->
|
|
7
|
+
<!DOCTYPE keys SYSTEM "../dtd/ldmlKeyboard3.dtd">
|
|
8
|
+
<keys>
|
|
9
|
+
<key id="dollar" output="$" />
|
|
10
|
+
<key id="euro" output="€" />
|
|
11
|
+
<key id="pound" output="£" />
|
|
12
|
+
<key id="yen" output="¥" />
|
|
13
|
+
<key id="cruzeiro" output="₢" />
|
|
14
|
+
<key id="cent" output="¢" />
|
|
15
|
+
</keys>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Copyright © 1991-2024 Unicode, Inc.
|
|
4
|
+
SPDX-License-Identifier: Unicode-3.0
|
|
5
|
+
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
|
|
6
|
+
-->
|
|
7
|
+
<!DOCTYPE keys SYSTEM "../dtd/ldmlKeyboard3.dtd">
|
|
8
|
+
<keys>
|
|
9
|
+
<!-- General Symbols -->
|
|
10
|
+
<key id="amp" output="\u{0026}" />
|
|
11
|
+
<key id="apos" output="'" />
|
|
12
|
+
<key id="asterisk" output="*" />
|
|
13
|
+
<key id="at" output="@" />
|
|
14
|
+
<key id="backslash" output="\u{005C}" />
|
|
15
|
+
<key id="bang" output="!" />
|
|
16
|
+
<key id="caret" output="^" />
|
|
17
|
+
<key id="close-angle" output=">" />
|
|
18
|
+
<key id="close-curly" output="}" />
|
|
19
|
+
<key id="close-paren" output=")" />
|
|
20
|
+
<key id="close-square" output="]" />
|
|
21
|
+
<key id="colon" output=":" />
|
|
22
|
+
<key id="comma" output="," />
|
|
23
|
+
<key id="degree" output="°" />
|
|
24
|
+
<key id="double-quote" output="\u{0022}" />
|
|
25
|
+
<key id="equal" output="=" />
|
|
26
|
+
<key id="grave" output="`" />
|
|
27
|
+
<key id="hash" output="#" />
|
|
28
|
+
<key id="hyphen" output="-" />
|
|
29
|
+
<key id="micro" output="µ" />
|
|
30
|
+
<key id="not" output="¬" />
|
|
31
|
+
<key id="open-angle" output="\u{003C}" />
|
|
32
|
+
<key id="open-curly" output="{" />
|
|
33
|
+
<key id="open-paren" output="(" />
|
|
34
|
+
<key id="open-square" output="[" />
|
|
35
|
+
<key id="percent" output="%" />
|
|
36
|
+
<key id="period" output="." />
|
|
37
|
+
<key id="pipe" output="|" />
|
|
38
|
+
<key id="plus" output="+" />
|
|
39
|
+
<key id="question" output="?" />
|
|
40
|
+
<key id="section" output="§" />
|
|
41
|
+
<key id="semi-colon" output=";" />
|
|
42
|
+
<key id="slash" output="/" />
|
|
43
|
+
<key id="tilde" output="~" />
|
|
44
|
+
<key id="underscore" output="_" />
|
|
45
|
+
</keys>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<forms>
|
|
3
|
+
<!--
|
|
4
|
+
These are the implied form values for hardware layouts.
|
|
5
|
+
Per the spec, this file is assumed to be imported into
|
|
6
|
+
every keyboard file.
|
|
7
|
+
|
|
8
|
+
Each row is a separate scanCodes element.
|
|
9
|
+
Values are space separated hex bytes.
|
|
10
|
+
Frame keys are not included.
|
|
11
|
+
-->
|
|
12
|
+
|
|
13
|
+
<form id="us">
|
|
14
|
+
<scanCodes codes="29 02 03 04 05 06 07 08 09 0A 0B 0C 0D" /> <!-- 13 keys, ` to = -->
|
|
15
|
+
<scanCodes codes="10 11 12 13 14 15 16 17 18 19 1A 1B 2B" /> <!-- 13 keys, Q to \ -->
|
|
16
|
+
<scanCodes codes="1E 1F 20 21 22 23 24 25 26 27 28" /> <!-- 11 keys, A to ' -->
|
|
17
|
+
<scanCodes codes="2C 2D 2E 2F 30 31 32 33 34 35" /> <!-- 10 keys, Z to / -->
|
|
18
|
+
<scanCodes codes="39" /> <!-- 1 key, spacebar -->
|
|
19
|
+
</form>
|
|
20
|
+
<form id="iso">
|
|
21
|
+
<scanCodes codes="29 02 03 04 05 06 07 08 09 0A 0B 0C 0D" /> <!-- 13 keys -->
|
|
22
|
+
<scanCodes codes="10 11 12 13 14 15 16 17 18 19 1A 1B" /> <!-- 12 keys -->
|
|
23
|
+
<scanCodes codes="1E 1F 20 21 22 23 24 25 26 27 28 2B" /> <!-- 12 keys -->
|
|
24
|
+
<scanCodes codes="56 2C 2D 2E 2F 30 31 32 33 34 35" /> <!-- 11 keys-->
|
|
25
|
+
<scanCodes codes="39" /> <!-- 1 key, spacebar -->
|
|
26
|
+
</form>
|
|
27
|
+
<form id="abnt2">
|
|
28
|
+
<scanCodes codes="29 02 03 04 05 06 07 08 09 0A 0B 0C 0D" /> <!-- 13 keys -->
|
|
29
|
+
<scanCodes codes="10 11 12 13 14 15 16 17 18 19 1A 1B" /> <!-- 12 keys -->
|
|
30
|
+
<scanCodes codes="1E 1F 20 21 22 23 24 25 26 27 28 2B" /> <!-- 12 keys -->
|
|
31
|
+
<scanCodes codes="56 2C 2D 2E 2F 30 31 32 33 34 35 73" /> <!-- 12 keys-->
|
|
32
|
+
<scanCodes codes="39" /> <!-- 1 key, spacebar -->
|
|
33
|
+
</form>
|
|
34
|
+
<form id="jis">
|
|
35
|
+
<scanCodes codes="29 02 03 04 05 06 07 08 09 0A 0B 0C 0D 7D" /> <!-- 14 keys -->
|
|
36
|
+
<scanCodes codes="10 11 12 13 14 15 16 17 18 19 1A 1B" /> <!-- 12 keys -->
|
|
37
|
+
<scanCodes codes="1E 1F 20 21 22 23 24 25 26 27 28 2B" /> <!-- 12 keys -->
|
|
38
|
+
<scanCodes codes="2C 2D 2E 2F 30 31 32 33 34 35 73" /> <!-- 11 keys-->
|
|
39
|
+
<scanCodes codes="39" /> <!-- 1 key, spacebar -->
|
|
40
|
+
</form>
|
|
41
|
+
<form id="ks">
|
|
42
|
+
<scanCodes codes="29 02 03 04 05 06 07 08 09 0A 0B 0C 0D 2B" /> <!-- 14 keys -->
|
|
43
|
+
<scanCodes codes="10 11 12 13 14 15 16 17 18 19 1A 1B" /> <!-- 12 keys -->
|
|
44
|
+
<scanCodes codes="1E 1F 20 21 22 23 24 25 26 27 28" /> <!-- 11 keys -->
|
|
45
|
+
<scanCodes codes="2C 2D 2E 2F 30 31 32 33 34 35" /> <!-- 10 keys, Z to / -->
|
|
46
|
+
<scanCodes codes="39" /> <!-- 1 key, spacebar -->
|
|
47
|
+
</form>
|
|
48
|
+
|
|
49
|
+
<!--
|
|
50
|
+
"touch" is not a hardware layout form, and so is not defined here.
|
|
51
|
+
<form id="touch"/>
|
|
52
|
+
-->
|
|
53
|
+
</forms>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TouchLayout } from "@keymanapp/common-types";
|
|
2
|
+
import TouchLayoutFile = TouchLayout.TouchLayoutFile;
|
|
3
|
+
export declare class TouchLayoutFileReader {
|
|
4
|
+
read(source: Uint8Array): TouchLayoutFile;
|
|
5
|
+
validate(source: TouchLayoutFile): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=keyman-touch-layout-file-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyman-touch-layout-file-reader.d.ts","sourceRoot":"","sources":["../../../../src/types/keyman-touch-layout/keyman-touch-layout-file-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;AAGrD,qBAAa,qBAAqB;IACzB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe;IAgEzC,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;CAS/C"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="47ac4f55-4f75-5596-a2a0-c27fcad664f9")}catch(e){}}();
|
|
3
|
+
import { SchemaValidators } from '@keymanapp/common-types';
|
|
4
|
+
export class TouchLayoutFileReader {
|
|
5
|
+
read(source) {
|
|
6
|
+
const decoder = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
|
|
7
|
+
let sourceString;
|
|
8
|
+
try {
|
|
9
|
+
sourceString = decoder.decode(source);
|
|
10
|
+
/* c8 ignore next 7 */
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
if (e instanceof TypeError) {
|
|
14
|
+
// TODO: Do we want to do something else with this?
|
|
15
|
+
throw e;
|
|
16
|
+
}
|
|
17
|
+
throw e;
|
|
18
|
+
}
|
|
19
|
+
let result;
|
|
20
|
+
try {
|
|
21
|
+
result = JSON.parse(sourceString, function (key, value) {
|
|
22
|
+
// `row.id` should be number, but may have been stringified; we use
|
|
23
|
+
// presence of `key` property to recognise this as a `TouchLayoutRow`.
|
|
24
|
+
if (this.key && key == 'id' && typeof value == 'string') {
|
|
25
|
+
const newValue = parseInt(value, 10);
|
|
26
|
+
/* c8 ignore next 3 */
|
|
27
|
+
if (isNaN(newValue)) {
|
|
28
|
+
throw new TypeError(`Invalid row.id: "${value}"`);
|
|
29
|
+
}
|
|
30
|
+
return newValue;
|
|
31
|
+
}
|
|
32
|
+
// `key.width`, `key.pad`, `key.sp` should be number, but may have been
|
|
33
|
+
// stringified
|
|
34
|
+
if (key == 'width' || key == 'pad' || key == 'sp') {
|
|
35
|
+
if (value === '') {
|
|
36
|
+
// Empty string is equivalent to not present, so fall back to
|
|
37
|
+
// default value
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const newValue = parseInt(value, 10);
|
|
41
|
+
/* c8 ignore next 3 */
|
|
42
|
+
if (isNaN(newValue)) {
|
|
43
|
+
throw new TypeError(`Invalid [sub]key.${key}: "${value}"`);
|
|
44
|
+
}
|
|
45
|
+
return newValue;
|
|
46
|
+
}
|
|
47
|
+
if (Array.isArray(value) && value.length == 0) {
|
|
48
|
+
// Delete empty arrays
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
});
|
|
53
|
+
/* c8 ignore next 7 */
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
if (e instanceof SyntaxError) {
|
|
57
|
+
// TODO: Do we want to do something else with this?
|
|
58
|
+
throw e;
|
|
59
|
+
}
|
|
60
|
+
throw e;
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
validate(source) {
|
|
65
|
+
if (!SchemaValidators.default.touchLayoutClean(source))
|
|
66
|
+
/* c8 ignore next 3 */
|
|
67
|
+
{
|
|
68
|
+
throw new Error(JSON.stringify(SchemaValidators.default.touchLayoutClean.errors));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
;
|
|
73
|
+
//# sourceMappingURL=keyman-touch-layout-file-reader.js.map
|
|
74
|
+
//# debugId=47ac4f55-4f75-5596-a2a0-c27fcad664f9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyman-touch-layout-file-reader.js","sources":["../../../../src/types/keyman-touch-layout/keyman-touch-layout-file-reader.ts"],"sourceRoot":"","names":[],"mappings":";;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,OAAO,qBAAqB;IACzB,IAAI,CAAC,MAAkB;QAC5B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAC,KAAK,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QACxE,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,sBAAsB;QACtB,CAAC;QAAC,OAAM,CAAC,EAAE,CAAC;YACV,IAAG,CAAC,YAAY,SAAS,EAAE,CAAC;gBAC1B,mDAAmD;gBACnD,MAAM,CAAC,CAAC;YACV,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QAED,IAAI,MAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,UAAS,GAAG,EAAE,KAAK;gBACnD,mEAAmE;gBACnE,sEAAsE;gBACtE,IAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrC,sBAAsB;oBACtB,IAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACnB,MAAM,IAAI,SAAS,CAAC,oBAAoB,KAAK,GAAG,CAAC,CAAC;oBACpD,CAAC;oBACD,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,uEAAuE;gBACvE,cAAc;gBACd,IAAG,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBACjD,IAAG,KAAK,KAAK,EAAE,EAAE,CAAC;wBAChB,6DAA6D;wBAC7D,gBAAgB;wBAChB,OAAO,SAAS,CAAC;oBACnB,CAAC;oBAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrC,sBAAsB;oBACtB,IAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACnB,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC;oBAC7D,CAAC;oBACD,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,IAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC7C,sBAAsB;oBACtB,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YACL,sBAAsB;QACtB,CAAC;QAAC,OAAM,CAAC,EAAE,CAAC;YACV,IAAG,CAAC,YAAY,WAAW,EAAE,CAAC;gBAC5B,mDAAmD;gBACnD,MAAM,CAAC,CAAC;YACV,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,QAAQ,CAAC,MAAuB;QACrC,IAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACrD,sBAAsB;QACtB,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAO,gBAAgB,CAAC,OAAO,CAAC,gBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CAGF;AAAA,CAAC","debug_id":"47ac4f55-4f75-5596-a2a0-c27fcad664f9"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TouchLayout } from "@keymanapp/common-types";
|
|
2
|
+
import TouchLayoutFile = TouchLayout.TouchLayoutFile;
|
|
3
|
+
export interface TouchLayoutFileWriterOptions {
|
|
4
|
+
formatted?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class TouchLayoutFileWriter {
|
|
7
|
+
options: TouchLayoutFileWriterOptions;
|
|
8
|
+
constructor(options?: TouchLayoutFileWriterOptions);
|
|
9
|
+
/**
|
|
10
|
+
* Writes the touch layout to a .keyman-touch-layout JSON file
|
|
11
|
+
* @param source TouchLayoutFile
|
|
12
|
+
* @returns Uint8Array, the .keyman-touch-layout file
|
|
13
|
+
*/
|
|
14
|
+
write(source: TouchLayoutFile): Uint8Array;
|
|
15
|
+
/**
|
|
16
|
+
* Gets the output as a JSON string
|
|
17
|
+
*/
|
|
18
|
+
toJSONString(source: TouchLayoutFile): string;
|
|
19
|
+
/**
|
|
20
|
+
* Compiles the touch layout file into a KeymanWeb-compatible JSON-style
|
|
21
|
+
* object string. In the future, this may be optimized to remove unnecessary
|
|
22
|
+
* quoting of property names, and remove unused properties, as this string
|
|
23
|
+
* is embedded into .js code.
|
|
24
|
+
* @param source
|
|
25
|
+
* @returns string
|
|
26
|
+
*/
|
|
27
|
+
compile(source: TouchLayoutFile): string;
|
|
28
|
+
fixup(source: TouchLayoutFile): TouchLayoutFile;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=keyman-touch-layout-file-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyman-touch-layout-file-writer.d.ts","sourceRoot":"","sources":["../../../../src/types/keyman-touch-layout/keyman-touch-layout-file-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;AAKrD,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,qBAAqB;IAEhC,OAAO,EAAE,4BAA4B,CAAC;gBAE1B,OAAO,CAAC,EAAE,4BAA4B;IAIlD;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU;IAMjD;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAIpD;;;;;;;OAOG;IACI,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAIxC,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;CAmFvD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e61ba7c0-24c1-5a5b-b351-1f2e112b98f9")}catch(e){}}();
|
|
3
|
+
;
|
|
4
|
+
;
|
|
5
|
+
export class TouchLayoutFileWriter {
|
|
6
|
+
options;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.options = { ...options };
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Writes the touch layout to a .keyman-touch-layout JSON file
|
|
12
|
+
* @param source TouchLayoutFile
|
|
13
|
+
* @returns Uint8Array, the .keyman-touch-layout file
|
|
14
|
+
*/
|
|
15
|
+
write(source) {
|
|
16
|
+
const output = this.toJSONString(source);
|
|
17
|
+
const encoder = new TextEncoder();
|
|
18
|
+
return encoder.encode(output);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Gets the output as a JSON string
|
|
22
|
+
*/
|
|
23
|
+
toJSONString(source) {
|
|
24
|
+
return JSON.stringify(source, null, this.options?.formatted ? 2 : undefined);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Compiles the touch layout file into a KeymanWeb-compatible JSON-style
|
|
28
|
+
* object string. In the future, this may be optimized to remove unnecessary
|
|
29
|
+
* quoting of property names, and remove unused properties, as this string
|
|
30
|
+
* is embedded into .js code.
|
|
31
|
+
* @param source
|
|
32
|
+
* @returns string
|
|
33
|
+
*/
|
|
34
|
+
compile(source) {
|
|
35
|
+
return this.toJSONString(this.fixup(source));
|
|
36
|
+
}
|
|
37
|
+
fixup(source) {
|
|
38
|
+
// Deep copy the source
|
|
39
|
+
source = JSON.parse(JSON.stringify(source));
|
|
40
|
+
// Fixup pad, width and sp to string types, as that's what KeymanWeb
|
|
41
|
+
// currently expects
|
|
42
|
+
const fixupKey = (key) => {
|
|
43
|
+
if (Object.hasOwn(key, 'pad')) {
|
|
44
|
+
if (key.pad == 0) {
|
|
45
|
+
delete key.pad;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
key.pad = key.pad.toString();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (Object.hasOwn(key, 'sp')) {
|
|
52
|
+
if (key.sp == 0) {
|
|
53
|
+
delete key.sp;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
key.sp = key.sp.toString();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (Object.hasOwn(key, 'width')) {
|
|
60
|
+
if (key.width == 0) {
|
|
61
|
+
delete key.width;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
key.width = key.width.toString();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (Object.hasOwn(key, 'text') && key.text === '')
|
|
68
|
+
delete key.text;
|
|
69
|
+
if (Object.hasOwn(key, 'id') && key.id === '')
|
|
70
|
+
delete key.id;
|
|
71
|
+
if (Object.hasOwn(key, 'hint') && key.hint === '')
|
|
72
|
+
delete key.hint;
|
|
73
|
+
if (Object.hasOwn(key, 'default') && key.default === false)
|
|
74
|
+
delete key.default;
|
|
75
|
+
};
|
|
76
|
+
const fixupPlatform = (platform) => {
|
|
77
|
+
// font and fontsize are eliminated if nullish:
|
|
78
|
+
if (Object.hasOwn(platform, 'font') && platform.font == '')
|
|
79
|
+
delete platform.font;
|
|
80
|
+
if (Object.hasOwn(platform, 'fontsize') && platform.fontsize == '')
|
|
81
|
+
delete platform.fontsize;
|
|
82
|
+
// displayUnderlying is always written out by kmcomp, so we do the same for kmc:
|
|
83
|
+
platform.displayUnderlying = !!platform.displayUnderlying;
|
|
84
|
+
for (const layer of platform.layer) {
|
|
85
|
+
for (const row of layer.row) {
|
|
86
|
+
// this matches the old spec for touch layout files
|
|
87
|
+
row.id = row.id.toString();
|
|
88
|
+
for (const key of row.key) {
|
|
89
|
+
fixupKey(key);
|
|
90
|
+
if (key.sk) {
|
|
91
|
+
for (const sk of key.sk) {
|
|
92
|
+
fixupKey(sk);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (key.multitap) {
|
|
96
|
+
for (const sk of key.multitap) {
|
|
97
|
+
fixupKey(sk);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (key.flick) {
|
|
101
|
+
for (const id of Object.keys(key.flick)) {
|
|
102
|
+
fixupKey(key.flick[id]);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
if (source.desktop) {
|
|
110
|
+
fixupPlatform(source.desktop);
|
|
111
|
+
}
|
|
112
|
+
if (source.phone) {
|
|
113
|
+
fixupPlatform(source.phone);
|
|
114
|
+
}
|
|
115
|
+
if (source.tablet) {
|
|
116
|
+
fixupPlatform(source.tablet);
|
|
117
|
+
}
|
|
118
|
+
return source;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
;
|
|
122
|
+
//# sourceMappingURL=keyman-touch-layout-file-writer.js.map
|
|
123
|
+
//# debugId=e61ba7c0-24c1-5a5b-b351-1f2e112b98f9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyman-touch-layout-file-writer.js","sources":["../../../../src/types/keyman-touch-layout/keyman-touch-layout-file-writer.ts"],"sourceRoot":"","names":[],"mappings":";;AAE6D,CAAC;AAM7D,CAAC;AAEF,MAAM,OAAO,qBAAqB;IAEhC,OAAO,CAA+B;IAEtC,YAAY,OAAsC;QAChD,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAuB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,MAAuB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACI,OAAO,CAAC,MAAuB;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAuB;QAClC,uBAAuB;QACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5C,oEAAoE;QACpE,oBAAoB;QAEpB,MAAM,QAAQ,GAAG,CAAC,GAAuC,EAAE,EAAE;YAC3D,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;oBAChB,OAAO,GAAG,CAAC,GAAG,CAAC;gBACjB,CAAC;qBACI,CAAC;oBACH,GAAG,CAAC,GAAW,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC5B,IAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;oBACf,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,CAAC;qBACI,CAAC;oBACH,GAAG,CAAC,EAAU,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACtC,CAAC;YACH,CAAC;YACD,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC/B,IAAG,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;oBAClB,OAAO,GAAG,CAAC,KAAK,CAAC;gBACnB,CAAC;qBACI,CAAC;oBACH,GAAG,CAAC,KAAa,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5C,CAAC;YACH,CAAC;YACD,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;YAClE,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAY,GAAG,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC,EAAE,CAAC;YACpE,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAU,GAAI,CAAC,IAAI,KAAK,EAAE;gBAAE,OAAa,GAAI,CAAC,IAAI,CAAC;YAChF,IAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAU,GAAI,CAAC,OAAO,KAAK,KAAK;gBAAE,OAAa,GAAI,CAAC,OAAO,CAAC;QAC9F,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,QAA6B,EAAE,EAAE;YACtD,+CAA+C;YAC/C,IAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;YAC/E,IAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC;YAC3F,gFAAgF;YAChF,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAE1D,KAAI,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,KAAI,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBAC3B,mDAAmD;oBAClD,GAAG,CAAC,EAAU,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;oBACpC,KAAI,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;wBACzB,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACd,IAAG,GAAG,CAAC,EAAE,EAAE,CAAC;4BACV,KAAI,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gCACvB,QAAQ,CAAC,EAAE,CAAC,CAAC;4BACf,CAAC;wBACH,CAAC;wBACD,IAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;4BAChB,KAAI,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gCAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC;4BACf,CAAC;wBACH,CAAC;wBACD,IAAG,GAAG,CAAC,KAAK,EAAE,CAAC;4BACb,KAAI,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gCACvC,QAAQ,CAAE,GAAG,CAAC,KAAa,CAAC,EAAE,CAAsB,CAAC,CAAC;4BACxD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,IAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAChB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,IAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAAA,CAAC","debug_id":"e61ba7c0-24c1-5a5b-b351-1f2e112b98f9"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { KMX } from '@keymanapp/common-types';
|
|
2
|
+
import KMXFile = KMX.KMXFile;
|
|
3
|
+
import GROUP = KMX.GROUP;
|
|
4
|
+
import KEY = KMX.KEY;
|
|
5
|
+
import STORE = KMX.STORE;
|
|
6
|
+
import BUILDER_COMP_KEYBOARD = KMX.BUILDER_COMP_KEYBOARD;
|
|
7
|
+
import BUILDER_COMP_KEYBOARD_KMXPLUSINFO = KMX.BUILDER_COMP_KEYBOARD_KMXPLUSINFO;
|
|
8
|
+
import BUILDER_COMP_STORE = KMX.BUILDER_COMP_STORE;
|
|
9
|
+
import BUILDER_COMP_GROUP = KMX.BUILDER_COMP_GROUP;
|
|
10
|
+
import BUILDER_COMP_KEY = KMX.BUILDER_COMP_KEY;
|
|
11
|
+
export default class KMXBuilder {
|
|
12
|
+
file: KMXFile;
|
|
13
|
+
base_keyboard: number;
|
|
14
|
+
base_kmxplus: number;
|
|
15
|
+
comp_header: BUILDER_COMP_KEYBOARD;
|
|
16
|
+
comp_kmxplus: BUILDER_COMP_KEYBOARD_KMXPLUSINFO;
|
|
17
|
+
comp_stores: {
|
|
18
|
+
base: number;
|
|
19
|
+
store: STORE;
|
|
20
|
+
obj: BUILDER_COMP_STORE;
|
|
21
|
+
}[];
|
|
22
|
+
comp_groups: {
|
|
23
|
+
base: number;
|
|
24
|
+
group: GROUP;
|
|
25
|
+
obj: BUILDER_COMP_GROUP;
|
|
26
|
+
keys: {
|
|
27
|
+
base: number;
|
|
28
|
+
key: KEY;
|
|
29
|
+
obj: BUILDER_COMP_KEY;
|
|
30
|
+
}[];
|
|
31
|
+
}[];
|
|
32
|
+
comp_kmxplus_data: Uint8Array;
|
|
33
|
+
writeDebug: boolean;
|
|
34
|
+
constructor(file: KMXFile, writeDebug: boolean);
|
|
35
|
+
calculateStringOffsetAndSize(string: string, base: number, requireString?: boolean): number[];
|
|
36
|
+
private build;
|
|
37
|
+
buildBitmap(): number;
|
|
38
|
+
buildKMXPlus(base: number): number;
|
|
39
|
+
setString(file: Uint8Array, pos: number, str: string, requireString?: boolean): void;
|
|
40
|
+
compile(): Uint8Array;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=kmx-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kmx-builder.d.ts","sourceRoot":"","sources":["../../../../src/types/kmx/kmx-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAKvD,OAAO,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAC7B,OAAO,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AACzB,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AACrB,OAAO,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;AACzB,OAAO,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,CAAC;AACzD,OAAO,iCAAiC,GAAG,GAAG,CAAC,iCAAiC,CAAC;AACjF,OAAO,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AACnD,OAAO,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AACnD,OAAO,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,MAAM,CAAK;IAC1B,YAAY,EAAE,MAAM,CAAK;IACzB,WAAW,EAAE,qBAAqB,CAAC;IACnC,YAAY,EAAE,iCAAiC,CAAC;IAChD,WAAW,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,kBAAkB,CAAA;KAAC,EAAE,CAAM;IAC1E,WAAW,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,kBAAkB,CAAC;QAAC,IAAI,EAAE;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,GAAG,CAAC;YAAC,GAAG,EAAE,gBAAgB,CAAA;SAAC,EAAE,CAAA;KAAC,EAAE,CAAM;IACnI,iBAAiB,EAAE,UAAU,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAS;gBAEhB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAK9C,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe;IASzF,OAAO,CAAC,KAAK;IAgHb,WAAW;IAKX,YAAY,CAAC,IAAI,EAAE,MAAM;IAezB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,IAAI;IAa3F,OAAO,IAAI,UAAU;CAmDtB"}
|