@keymanapp/developer-utils 18.0.40-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,59 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Conforms to 45
|
|
3
|
+
//
|
|
4
|
+
// The interfaces in this file are designed with reference to the mapped
|
|
5
|
+
// structures produced by xml2js when passed a LDML keyboard .xml file.
|
|
6
|
+
//
|
|
7
|
+
// Using prefix LK for LDML Keyboard
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
!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]="b14150d8-1e0a-577b-a3f6-d1f556792d0d")}catch(e){}}();
|
|
11
|
+
;
|
|
12
|
+
;
|
|
13
|
+
;
|
|
14
|
+
;
|
|
15
|
+
;
|
|
16
|
+
;
|
|
17
|
+
;
|
|
18
|
+
;
|
|
19
|
+
;
|
|
20
|
+
;
|
|
21
|
+
;
|
|
22
|
+
;
|
|
23
|
+
;
|
|
24
|
+
;
|
|
25
|
+
;
|
|
26
|
+
;
|
|
27
|
+
;
|
|
28
|
+
;
|
|
29
|
+
;
|
|
30
|
+
;
|
|
31
|
+
;
|
|
32
|
+
;
|
|
33
|
+
;
|
|
34
|
+
;
|
|
35
|
+
;
|
|
36
|
+
;
|
|
37
|
+
;
|
|
38
|
+
;
|
|
39
|
+
;
|
|
40
|
+
/**
|
|
41
|
+
* Utilities for determining the import status of items
|
|
42
|
+
*/
|
|
43
|
+
export class ImportStatus {
|
|
44
|
+
/** item came in via implied (spec based) import, such as keys-Latn-implied.xml */
|
|
45
|
+
static impliedImport = Symbol('LDML implied import');
|
|
46
|
+
/** item came in via import */
|
|
47
|
+
static import = Symbol('LDML import');
|
|
48
|
+
/** @returns true if the object was loaded through an implied import */
|
|
49
|
+
static isImpliedImport(o) {
|
|
50
|
+
return o && !!o[ImportStatus.impliedImport];
|
|
51
|
+
}
|
|
52
|
+
/** @returns true if the object was loaded through an explicit import */
|
|
53
|
+
static isImport(o) {
|
|
54
|
+
return o && !!o[ImportStatus.import];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
;
|
|
58
|
+
//# sourceMappingURL=ldml-keyboard-xml.js.map
|
|
59
|
+
//# debugId=b14150d8-1e0a-577b-a3f6-d1f556792d0d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ldml-keyboard-xml.js","sources":["../../../../src/types/ldml-keyboard/ldml-keyboard-xml.ts"],"sourceRoot":"","names":[],"mappings":"AAAA,EAAE;AACF,iBAAiB;AACjB,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,EAAE;AACF,oCAAoC;AACpC,EAAE;;;AAOD,CAAC;AAiBD,CAAC;AAcD,CAAC;AAID,CAAC;AAID,CAAC;AAWD,CAAC;AAID,CAAC;AAKD,CAAC;AAYD,CAAC;AAID,CAAC;AAKD,CAAC;AAiBD,CAAC;AAMD,CAAC;AAID,CAAC;AAMD,CAAC;AAQD,CAAC;AAE2C,CAAC;AACJ,CAAC;AACA,CAAC;AAK3C,CAAC;AAKD,CAAC;AAMD,CAAC;AAQD,CAAC;AAID,CAAC;AAMD,CAAC;AAKD,CAAC;AAID,CAAC;AAKD,CAAC;AAID,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB,kFAAkF;IAClF,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACrD,8BAA8B;IAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAEtC,uEAAuE;IACvE,MAAM,CAAC,eAAe,CAAC,CAAO;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IACD,wEAAwE;IACxE,MAAM,CAAC,QAAQ,CAAC,CAAO;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;;AACF,CAAC","debug_id":"b14150d8-1e0a-577b-a3f6-d1f556792d0d"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import Sentry from "@sentry/node";
|
|
2
|
-
export type SentryNodeOptions = Sentry.NodeOptions;
|
|
3
|
-
export declare class KeymanSentry {
|
|
4
|
-
static isEnabled(): boolean;
|
|
5
|
-
static init(options?: SentryNodeOptions): void;
|
|
6
|
-
private static writeSentryMessage;
|
|
7
|
-
static reportException(e: any, silent?: boolean): Promise<string>;
|
|
8
|
-
static captureMessage(message: string): string;
|
|
9
|
-
static captureException(e: any): Promise<never>;
|
|
10
|
-
static close(): Promise<void>;
|
|
11
|
-
}
|
|
1
|
+
import Sentry from "@sentry/node";
|
|
2
|
+
export type SentryNodeOptions = Sentry.NodeOptions;
|
|
3
|
+
export declare class KeymanSentry {
|
|
4
|
+
static isEnabled(): boolean;
|
|
5
|
+
static init(options?: SentryNodeOptions): void;
|
|
6
|
+
private static writeSentryMessage;
|
|
7
|
+
static reportException(e: any, silent?: boolean): Promise<string>;
|
|
8
|
+
static captureMessage(message: string): string;
|
|
9
|
+
static captureException(e: any): Promise<never>;
|
|
10
|
+
static close(): Promise<void>;
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=KeymanSentry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeymanSentry.d.ts","sourceRoot":"","sources":["../../../src/utils/KeymanSentry.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAIlC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;AAUnD,qBAAa,YAAY;IAEvB,MAAM,CAAC,SAAS;IAWhB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB;IAWvC,OAAO,CAAC,MAAM,CAAC,kBAAkB;WASpB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAE,OAAc;IAW3D,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM;WAQxB,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;WAoBxC,KAAK;CAKnB"}
|
|
@@ -1,84 +1,84 @@
|
|
|
1
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]="
|
|
3
|
-
import Sentry from "@sentry/node";
|
|
4
|
-
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
5
|
-
import { getOption } from "./options.js";
|
|
6
|
-
/**
|
|
7
|
-
* Maximum delay on shutdown of process to send pending events
|
|
8
|
-
* to Sentry, in msec
|
|
9
|
-
*/
|
|
10
|
-
const CLOSE_TIMEOUT = 2000;
|
|
11
|
-
let isInit = false;
|
|
12
|
-
export class KeymanSentry {
|
|
13
|
-
static isEnabled() {
|
|
14
|
-
if (process.argv.includes('--no-error-reporting')) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
if (process.argv.includes('--error-reporting')) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
return getOption('automatically report errors', true);
|
|
21
|
-
}
|
|
22
|
-
static init(options) {
|
|
23
|
-
options = options ?? {};
|
|
24
|
-
Sentry.init({
|
|
25
|
-
...options,
|
|
26
|
-
dsn: 'https://39b25a09410349a58fe12aaf721565af@o1005580.ingest.sentry.io/5983519',
|
|
27
|
-
environment: KEYMAN_VERSION.VERSION_ENVIRONMENT,
|
|
28
|
-
release: KEYMAN_VERSION.VERSION_GIT_TAG,
|
|
29
|
-
});
|
|
30
|
-
isInit = true;
|
|
31
|
-
}
|
|
32
|
-
static writeSentryMessage(eventId) {
|
|
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]="d2c83461-dad0-506a-8c11-c7f1e025737d")}catch(e){}}();
|
|
3
|
+
import Sentry from "@sentry/node";
|
|
4
|
+
import KEYMAN_VERSION from "@keymanapp/keyman-version";
|
|
5
|
+
import { getOption } from "./options.js";
|
|
6
|
+
/**
|
|
7
|
+
* Maximum delay on shutdown of process to send pending events
|
|
8
|
+
* to Sentry, in msec
|
|
9
|
+
*/
|
|
10
|
+
const CLOSE_TIMEOUT = 2000;
|
|
11
|
+
let isInit = false;
|
|
12
|
+
export class KeymanSentry {
|
|
13
|
+
static isEnabled() {
|
|
14
|
+
if (process.argv.includes('--no-error-reporting')) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (process.argv.includes('--error-reporting')) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return getOption('automatically report errors', true);
|
|
21
|
+
}
|
|
22
|
+
static init(options) {
|
|
23
|
+
options = options ?? {};
|
|
24
|
+
Sentry.init({
|
|
25
|
+
...options,
|
|
26
|
+
dsn: 'https://39b25a09410349a58fe12aaf721565af@o1005580.ingest.sentry.io/5983519', // Keyman Developer
|
|
27
|
+
environment: KEYMAN_VERSION.VERSION_ENVIRONMENT,
|
|
28
|
+
release: KEYMAN_VERSION.VERSION_GIT_TAG,
|
|
29
|
+
});
|
|
30
|
+
isInit = true;
|
|
31
|
+
}
|
|
32
|
+
static writeSentryMessage(eventId) {
|
|
33
33
|
process.stderr.write(`
|
|
34
34
|
This error has been automatically reported to the Keyman team.
|
|
35
35
|
Identifier: ${eventId}
|
|
36
36
|
Application: Keyman Developer
|
|
37
37
|
Reported at: https://sentry.io/organizations/keyman/projects/keyman-developer/events/${eventId}/
|
|
38
|
-
`);
|
|
39
|
-
}
|
|
40
|
-
static async reportException(e, silent = true) {
|
|
41
|
-
if (isInit) {
|
|
42
|
-
const eventId = await Sentry.captureException(e);
|
|
43
|
-
if (!silent) {
|
|
44
|
-
this.writeSentryMessage(eventId);
|
|
45
|
-
}
|
|
46
|
-
return eventId;
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
static captureMessage(message) {
|
|
51
|
-
if (isInit) {
|
|
52
|
-
return Sentry.captureMessage(message);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
static async captureException(e) {
|
|
59
|
-
if (isInit) {
|
|
60
|
-
const eventId = Sentry.captureException(e);
|
|
38
|
+
`);
|
|
39
|
+
}
|
|
40
|
+
static async reportException(e, silent = true) {
|
|
41
|
+
if (isInit) {
|
|
42
|
+
const eventId = await Sentry.captureException(e);
|
|
43
|
+
if (!silent) {
|
|
44
|
+
this.writeSentryMessage(eventId);
|
|
45
|
+
}
|
|
46
|
+
return eventId;
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
static captureMessage(message) {
|
|
51
|
+
if (isInit) {
|
|
52
|
+
return Sentry.captureMessage(message);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static async captureException(e) {
|
|
59
|
+
if (isInit) {
|
|
60
|
+
const eventId = Sentry.captureException(e);
|
|
61
61
|
process.stderr.write(`
|
|
62
62
|
Fatal error: ${(e ?? '').toString()}
|
|
63
|
-
`);
|
|
64
|
-
this.writeSentryMessage(eventId);
|
|
65
|
-
await this.close();
|
|
66
|
-
// For local development, we don't want to bury the trace; we need the cast to avoid
|
|
67
|
-
// TS2367 (comparison appears to be unintentional)
|
|
68
|
-
if (KEYMAN_VERSION.VERSION_ENVIRONMENT == 'local') {
|
|
69
|
-
throw e;
|
|
70
|
-
}
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
throw e;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
static async close() {
|
|
78
|
-
if (isInit) {
|
|
79
|
-
await Sentry.close(CLOSE_TIMEOUT);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
63
|
+
`);
|
|
64
|
+
this.writeSentryMessage(eventId);
|
|
65
|
+
await this.close();
|
|
66
|
+
// For local development, we don't want to bury the trace; we need the cast to avoid
|
|
67
|
+
// TS2367 (comparison appears to be unintentional)
|
|
68
|
+
if (KEYMAN_VERSION.VERSION_ENVIRONMENT == 'local') {
|
|
69
|
+
throw e;
|
|
70
|
+
}
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
throw e;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
static async close() {
|
|
78
|
+
if (isInit) {
|
|
79
|
+
await Sentry.close(CLOSE_TIMEOUT);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
83
|
//# sourceMappingURL=KeymanSentry.js.map
|
|
84
|
-
//# debugId=
|
|
84
|
+
//# debugId=d2c83461-dad0-506a-8c11-c7f1e025737d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeymanSentry.js","sources":["../../../src/utils/KeymanSentry.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB,MAAM,OAAO,YAAY;IAEvB,MAAM,CAAC,SAAS;QACd,IAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAA2B;QACrC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,OAAO;YACV,GAAG,EAAE,4EAA4E,EAAG,mBAAmB;YACvG,WAAW,EAAE,cAAc,CAAC,mBAAmB;YAC/C,OAAO,EAAE,cAAc,CAAC,eAAe;SACxC,CAAC,CAAC;QACH,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,OAAe;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;qBAEJ,OAAO;;6FAEiE,OAAO;KAC/F,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAM,EAAE,SAAkB,IAAI;QACzD,IAAG,MAAM,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACjD,IAAG,CAAC,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAe;QACnC,IAAG,MAAM,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAM;QAClC,IAAG,MAAM,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;qBACN,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;OAChC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,oFAAoF;YACpF,kDAAkD;YAClD,IAAI,cAAc,CAAC,mBAA8B,IAAI,OAAO,EAAE,CAAC;gBAC7D,MAAM,CAAC,CAAC;YACV,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK;QAChB,IAAG,MAAM,EAAE,CAAC;YACV,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF","debug_id":"d2c83461-dad0-506a-8c11-c7f1e025737d"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export declare class KeymanUrls {
|
|
2
|
-
static readonly HELP_KEYMAN_COM = "https://help.keyman.com";
|
|
3
|
-
static readonly KEYMAN_COM = "https://keyman.com";
|
|
4
|
-
static readonly NEW_KEYMAN_ISSUE: () => string;
|
|
5
|
-
static readonly LDML_SPEC: (topic: string) => string;
|
|
6
|
-
static readonly COMPILER_ERROR_CODE: (code: string) => string;
|
|
7
|
-
static readonly VIRTUAL_KEYS: () => string;
|
|
8
|
-
static readonly FILE_TYPE: (ext: string) => string;
|
|
9
|
-
static readonly KMN_REF: (topic: string) => string;
|
|
10
|
-
static readonly HELP_KEYBOARD: (id: string) => string;
|
|
11
|
-
static readonly HELP_MODEL: (id: string) => string;
|
|
12
|
-
static readonly KeymanDeveloper_KeymanForAndroidDownload: (version: string) => string;
|
|
13
|
-
static readonly KeymanDeveloper_KeymanForIosDownload: (version: string) => string;
|
|
14
|
-
}
|
|
1
|
+
export declare class KeymanUrls {
|
|
2
|
+
static readonly HELP_KEYMAN_COM = "https://help.keyman.com";
|
|
3
|
+
static readonly KEYMAN_COM = "https://keyman.com";
|
|
4
|
+
static readonly NEW_KEYMAN_ISSUE: () => string;
|
|
5
|
+
static readonly LDML_SPEC: (topic: string) => string;
|
|
6
|
+
static readonly COMPILER_ERROR_CODE: (code: string) => string;
|
|
7
|
+
static readonly VIRTUAL_KEYS: () => string;
|
|
8
|
+
static readonly FILE_TYPE: (ext: string) => string;
|
|
9
|
+
static readonly KMN_REF: (topic: string) => string;
|
|
10
|
+
static readonly HELP_KEYBOARD: (id: string) => string;
|
|
11
|
+
static readonly HELP_MODEL: (id: string) => string;
|
|
12
|
+
static readonly KeymanDeveloper_KeymanForAndroidDownload: (version: string) => string;
|
|
13
|
+
static readonly KeymanDeveloper_KeymanForIosDownload: (version: string) => string;
|
|
14
|
+
}
|
|
15
15
|
//# sourceMappingURL=keyman-urls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyman-urls.d.ts","sourceRoot":"","sources":["../../../src/utils/keyman-urls.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACrB,MAAM,CAAC,QAAQ,CAAC,eAAe,6BAA6B;IAC5D,MAAM,CAAC,QAAQ,CAAC,UAAU,wBAAwB;IAGlD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,eAAgE;IAChG,MAAM,CAAC,QAAQ,CAAC,SAAS,UAAW,MAAM,YAAyE;IAGnH,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAAU,MAAM,YAA8B;IAGjF,MAAM,CAAC,QAAQ,CAAC,YAAY,eAAgH;IAC5I,MAAM,CAAC,QAAQ,CAAC,SAAS,QAAS,MAAM,YAA2F;IACnI,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAW,MAAM,YAA2E;IACnH,MAAM,CAAC,QAAQ,CAAC,aAAa,OAAQ,MAAM,YAAsD;IACjG,MAAM,CAAC,QAAQ,CAAC,UAAU,OAAQ,MAAM,YAAsD;IAI9F,MAAM,CAAC,QAAQ,CAAC,wCAAwC,YAAa,MAAM,YAAoE;IAC/I,MAAM,CAAC,QAAQ,CAAC,oCAAoC,YAAiB,MAAM,YAAgE;CAE5I"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
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]="
|
|
3
|
-
export class KeymanUrls {
|
|
4
|
-
static HELP_KEYMAN_COM = `https://help.keyman.com`;
|
|
5
|
-
static KEYMAN_COM = `https://keyman.com`;
|
|
6
|
-
// Various Sites
|
|
7
|
-
static NEW_KEYMAN_ISSUE = () => 'https://github.com/keymanapp/keyman/issues/new';
|
|
8
|
-
static LDML_SPEC = (topic) => `https://www.unicode.org/reports/tr35/tr35-keyboards.html#${topic}`;
|
|
9
|
-
// TODO: Not formatting code here to avoid dep on @keymanapp/common-types for developer-utils
|
|
10
|
-
static COMPILER_ERROR_CODE = (code) => `https://kmn.sh/${code}`; // code should be km##### (already formatted)
|
|
11
|
-
// help.keyman.com
|
|
12
|
-
static VIRTUAL_KEYS = () => `${KeymanUrls.HELP_KEYMAN_COM}/developer/language/guide/virtual-keys#common-virtual-key-codes`;
|
|
13
|
-
static FILE_TYPE = (ext) => `${KeymanUrls.HELP_KEYMAN_COM}/developer/current-version/reference/file-types/${ext}`;
|
|
14
|
-
static KMN_REF = (topic) => `${KeymanUrls.HELP_KEYMAN_COM}/developer/language/reference/${topic}`;
|
|
15
|
-
static HELP_KEYBOARD = (id) => `${KeymanUrls.HELP_KEYMAN_COM}/keyboard/${id}`;
|
|
16
|
-
static HELP_MODEL = (id) => `${KeymanUrls.HELP_KEYMAN_COM}/model/${id}`;
|
|
17
|
-
// keyman.com
|
|
18
|
-
static KeymanDeveloper_KeymanForAndroidDownload = (version) => `${KeymanUrls.KEYMAN_COM}/go/developer/${version}/android-app`;
|
|
19
|
-
static KeymanDeveloper_KeymanForIosDownload = (version) => `${KeymanUrls.KEYMAN_COM}/go/developer/${version}/ios-app`;
|
|
20
|
-
}
|
|
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]="dbc73e12-d979-5c33-a451-830637fd9de7")}catch(e){}}();
|
|
3
|
+
export class KeymanUrls {
|
|
4
|
+
static HELP_KEYMAN_COM = `https://help.keyman.com`;
|
|
5
|
+
static KEYMAN_COM = `https://keyman.com`;
|
|
6
|
+
// Various Sites
|
|
7
|
+
static NEW_KEYMAN_ISSUE = () => 'https://github.com/keymanapp/keyman/issues/new';
|
|
8
|
+
static LDML_SPEC = (topic) => `https://www.unicode.org/reports/tr35/tr35-keyboards.html#${topic}`;
|
|
9
|
+
// TODO: Not formatting code here to avoid dep on @keymanapp/common-types for developer-utils
|
|
10
|
+
static COMPILER_ERROR_CODE = (code) => `https://kmn.sh/${code}`; // code should be km##### (already formatted)
|
|
11
|
+
// help.keyman.com
|
|
12
|
+
static VIRTUAL_KEYS = () => `${KeymanUrls.HELP_KEYMAN_COM}/developer/language/guide/virtual-keys#common-virtual-key-codes`;
|
|
13
|
+
static FILE_TYPE = (ext) => `${KeymanUrls.HELP_KEYMAN_COM}/developer/current-version/reference/file-types/${ext}`;
|
|
14
|
+
static KMN_REF = (topic) => `${KeymanUrls.HELP_KEYMAN_COM}/developer/language/reference/${topic}`;
|
|
15
|
+
static HELP_KEYBOARD = (id) => `${KeymanUrls.HELP_KEYMAN_COM}/keyboard/${id}`;
|
|
16
|
+
static HELP_MODEL = (id) => `${KeymanUrls.HELP_KEYMAN_COM}/model/${id}`;
|
|
17
|
+
// keyman.com
|
|
18
|
+
static KeymanDeveloper_KeymanForAndroidDownload = (version) => `${KeymanUrls.KEYMAN_COM}/go/developer/${version}/android-app`;
|
|
19
|
+
static KeymanDeveloper_KeymanForIosDownload = (version) => `${KeymanUrls.KEYMAN_COM}/go/developer/${version}/ios-app`;
|
|
20
|
+
}
|
|
21
21
|
//# sourceMappingURL=keyman-urls.js.map
|
|
22
|
-
//# debugId=
|
|
22
|
+
//# debugId=dbc73e12-d979-5c33-a451-830637fd9de7
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyman-urls.js","sources":["../../../src/utils/keyman-urls.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,MAAM,OAAO,UAAU;IACrB,MAAM,CAAU,eAAe,GAAG,yBAAyB,CAAC;IAC5D,MAAM,CAAU,UAAU,GAAG,oBAAoB,CAAC;IAElD,gBAAgB;IAChB,MAAM,CAAU,gBAAgB,GAAG,GAAS,EAAE,CAAC,gDAAgD,CAAC;IAChG,MAAM,CAAU,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,4DAA4D,KAAK,EAAE,CAAC;IAEnH,6FAA6F;IAC7F,MAAM,CAAU,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,6CAA6C;IAE/H,kBAAkB;IAClB,MAAM,CAAU,YAAY,GAAG,GAAW,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,iEAAiE,CAAC;IAC5I,MAAM,CAAU,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,mDAAmD,GAAG,EAAE,CAAC;IACnI,MAAM,CAAU,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,iCAAiC,KAAK,EAAE,CAAC;IACnH,MAAM,CAAU,aAAa,GAAG,CAAC,EAAU,EAAI,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,aAAa,EAAE,EAAE,CAAC;IACjG,MAAM,CAAU,UAAU,GAAG,CAAC,EAAU,EAAO,EAAE,CAAC,GAAG,UAAU,CAAC,eAAe,UAAU,EAAE,EAAE,CAAC;IAG9F,aAAa;IACb,MAAM,CAAU,wCAAwC,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,iBAAiB,OAAO,cAAc,CAAC;IAC/I,MAAM,CAAU,oCAAoC,GAAO,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,UAAU,iBAAiB,OAAO,UAAU,CAAC","debug_id":"dbc73e12-d979-5c33-a451-830637fd9de7"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function escapeMarkdownChar(s: string, whiteSpace: boolean): string;
|
|
1
|
+
export declare function escapeMarkdownChar(s: string, whiteSpace: boolean): string;
|
|
2
2
|
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/utils/markdown.ts"],"names":[],"mappings":"AACA,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,UAmBhE"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
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]="
|
|
3
|
-
export function escapeMarkdownChar(s, whiteSpace) {
|
|
4
|
-
// note: could replace with a common lib but too much baggage to be worth it for now
|
|
5
|
-
// commonmark 2.4: all punct can be escaped
|
|
6
|
-
// const punct = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~';
|
|
7
|
-
// Per ParsedownExtra https://github.com/erusev/parsedown/blob/f5aa6fd1caf5ffb41af2e85d3ef1a51263a31545/Parsedown.php#L1964
|
|
8
|
-
// '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', '~'
|
|
9
|
-
// and add < for start of HTML tag (hyphen moved to end to prevent range match!)
|
|
10
|
-
s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
11
|
-
s = s.replace(/[\\`*_{}\[\]()#+.!|~-]/g, '\\$&');
|
|
12
|
-
// Per commonmark: s = s.replace(/[!"#$%&'()*+,-./:;<=>?@\[\\\]^_`{|}~]/g, '\\$&');
|
|
13
|
-
if (whiteSpace) {
|
|
14
|
-
// replace whitepsace
|
|
15
|
-
s = s.replace(/[\n]/g, '\\n');
|
|
16
|
-
s = s.replace(/[\r]/g, '\\r');
|
|
17
|
-
s = s.replace(/[\t]/g, '\\t');
|
|
18
|
-
s = s.replace(/ /g, ' ');
|
|
19
|
-
s = s.replace(/\u00a0/g, ' ');
|
|
20
|
-
}
|
|
21
|
-
return s;
|
|
22
|
-
}
|
|
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]="f806eaae-2038-5063-b59f-0c6b2f4b0807")}catch(e){}}();
|
|
3
|
+
export function escapeMarkdownChar(s, whiteSpace) {
|
|
4
|
+
// note: could replace with a common lib but too much baggage to be worth it for now
|
|
5
|
+
// commonmark 2.4: all punct can be escaped
|
|
6
|
+
// const punct = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~';
|
|
7
|
+
// Per ParsedownExtra https://github.com/erusev/parsedown/blob/f5aa6fd1caf5ffb41af2e85d3ef1a51263a31545/Parsedown.php#L1964
|
|
8
|
+
// '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', '~'
|
|
9
|
+
// and add < for start of HTML tag (hyphen moved to end to prevent range match!)
|
|
10
|
+
s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
11
|
+
s = s.replace(/[\\`*_{}\[\]()#+.!|~-]/g, '\\$&');
|
|
12
|
+
// Per commonmark: s = s.replace(/[!"#$%&'()*+,-./:;<=>?@\[\\\]^_`{|}~]/g, '\\$&');
|
|
13
|
+
if (whiteSpace) {
|
|
14
|
+
// replace whitepsace
|
|
15
|
+
s = s.replace(/[\n]/g, '\\n');
|
|
16
|
+
s = s.replace(/[\r]/g, '\\r');
|
|
17
|
+
s = s.replace(/[\t]/g, '\\t');
|
|
18
|
+
s = s.replace(/ /g, ' ');
|
|
19
|
+
s = s.replace(/\u00a0/g, ' ');
|
|
20
|
+
}
|
|
21
|
+
return s;
|
|
22
|
+
}
|
|
23
23
|
//# sourceMappingURL=markdown.js.map
|
|
24
|
-
//# debugId=
|
|
24
|
+
//# debugId=f806eaae-2038-5063-b59f-0c6b2f4b0807
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sources":["../../../src/utils/markdown.ts"],"sourceRoot":"","names":[],"mappings":";;AACA,MAAM,UAAU,kBAAkB,CAAC,CAAS,EAAE,UAAmB;IAC/D,oFAAoF;IACpF,2CAA2C;IAC3C,sDAAsD;IACtD,2HAA2H;IAC3H,4FAA4F;IAC5F,gFAAgF;IAChF,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACjD,mFAAmF;IACnF,IAAG,UAAU,EAAE,CAAC;QACd,qBAAqB;QACrB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC","debug_id":"f806eaae-2038-5063-b59f-0c6b2f4b0807"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
export interface KeymanDeveloperOptions {
|
|
2
|
-
"use tab char"?: boolean;
|
|
3
|
-
"link font sizes"?: boolean;
|
|
4
|
-
"indent size"?: number;
|
|
5
|
-
"use old debugger"?: boolean;
|
|
6
|
-
"editor theme"?: string;
|
|
7
|
-
"debugger break when exiting line"?: boolean;
|
|
8
|
-
"debugger single step after break"?: boolean;
|
|
9
|
-
"debugger show store offset"?: boolean;
|
|
10
|
-
"debugger recompile with debug info"?: boolean;
|
|
11
|
-
"debugger auto reset before compilng"?: boolean;
|
|
12
|
-
"auto save before compiling"?: boolean;
|
|
13
|
-
"osk auto save before importing"?: boolean;
|
|
14
|
-
"web host port"?: number;
|
|
15
|
-
"server keep alive"?: boolean;
|
|
16
|
-
"server use local addresses"?: boolean;
|
|
17
|
-
"server ngrok token"?: string;
|
|
18
|
-
"server ngrok region"?: string;
|
|
19
|
-
"server use ngrok"?: boolean;
|
|
20
|
-
"server show console window"?: boolean;
|
|
21
|
-
"char map disable database lookups"?: boolean;
|
|
22
|
-
"char map auto lookup"?: boolean;
|
|
23
|
-
"open keyboard files in source view"?: boolean;
|
|
24
|
-
"display theme"?: string;
|
|
25
|
-
"external editor path"?: string;
|
|
26
|
-
"smtp server"?: string;
|
|
27
|
-
"test email addresses"?: string;
|
|
28
|
-
"web ladder length"?: number;
|
|
29
|
-
"default project path"?: string;
|
|
30
|
-
"automatically report errors"?: boolean;
|
|
31
|
-
"automatically report usage"?: boolean;
|
|
32
|
-
"toolbar visible"?: boolean;
|
|
33
|
-
"active project"?: string;
|
|
34
|
-
"prompt to upgrade projects"?: boolean;
|
|
35
|
-
}
|
|
36
|
-
type KeymanDeveloperOption = keyof KeymanDeveloperOptions;
|
|
37
|
-
export declare function loadOptions(): Promise<KeymanDeveloperOptions>;
|
|
38
|
-
export declare function getOption<T extends KeymanDeveloperOption>(valueName: T, defaultValue: KeymanDeveloperOptions[T]): KeymanDeveloperOptions[T];
|
|
39
|
-
/**
|
|
40
|
-
* unit tests will clear options before running, for consistency
|
|
41
|
-
*/
|
|
42
|
-
export declare function clearOptions(): void;
|
|
43
|
-
export {};
|
|
1
|
+
export interface KeymanDeveloperOptions {
|
|
2
|
+
"use tab char"?: boolean;
|
|
3
|
+
"link font sizes"?: boolean;
|
|
4
|
+
"indent size"?: number;
|
|
5
|
+
"use old debugger"?: boolean;
|
|
6
|
+
"editor theme"?: string;
|
|
7
|
+
"debugger break when exiting line"?: boolean;
|
|
8
|
+
"debugger single step after break"?: boolean;
|
|
9
|
+
"debugger show store offset"?: boolean;
|
|
10
|
+
"debugger recompile with debug info"?: boolean;
|
|
11
|
+
"debugger auto reset before compilng"?: boolean;
|
|
12
|
+
"auto save before compiling"?: boolean;
|
|
13
|
+
"osk auto save before importing"?: boolean;
|
|
14
|
+
"web host port"?: number;
|
|
15
|
+
"server keep alive"?: boolean;
|
|
16
|
+
"server use local addresses"?: boolean;
|
|
17
|
+
"server ngrok token"?: string;
|
|
18
|
+
"server ngrok region"?: string;
|
|
19
|
+
"server use ngrok"?: boolean;
|
|
20
|
+
"server show console window"?: boolean;
|
|
21
|
+
"char map disable database lookups"?: boolean;
|
|
22
|
+
"char map auto lookup"?: boolean;
|
|
23
|
+
"open keyboard files in source view"?: boolean;
|
|
24
|
+
"display theme"?: string;
|
|
25
|
+
"external editor path"?: string;
|
|
26
|
+
"smtp server"?: string;
|
|
27
|
+
"test email addresses"?: string;
|
|
28
|
+
"web ladder length"?: number;
|
|
29
|
+
"default project path"?: string;
|
|
30
|
+
"automatically report errors"?: boolean;
|
|
31
|
+
"automatically report usage"?: boolean;
|
|
32
|
+
"toolbar visible"?: boolean;
|
|
33
|
+
"active project"?: string;
|
|
34
|
+
"prompt to upgrade projects"?: boolean;
|
|
35
|
+
}
|
|
36
|
+
type KeymanDeveloperOption = keyof KeymanDeveloperOptions;
|
|
37
|
+
export declare function loadOptions(): Promise<KeymanDeveloperOptions>;
|
|
38
|
+
export declare function getOption<T extends KeymanDeveloperOption>(valueName: T, defaultValue: KeymanDeveloperOptions[T]): KeymanDeveloperOptions[T];
|
|
39
|
+
/**
|
|
40
|
+
* unit tests will clear options before running, for consistency
|
|
41
|
+
*/
|
|
42
|
+
export declare function clearOptions(): void;
|
|
43
|
+
export {};
|
|
44
44
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/utils/options.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,KAAK,qBAAqB,GAAG,MAAM,sBAAsB,CAAC;AAS1D,wBAAsB,WAAW,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAiCnE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,qBAAqB,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAE3I;AAED;;GAEG;AACH,wBAAgB,YAAY,SAG3B"}
|
|
@@ -1,59 +1,59 @@
|
|
|
1
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]="
|
|
3
|
-
import * as os from 'os';
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import * as path from 'path';
|
|
6
|
-
;
|
|
7
|
-
// Default has no options set, and unit tests will use the defaults (won't call
|
|
8
|
-
// `loadOptions()`)
|
|
9
|
-
let options = {};
|
|
10
|
-
// We only load the options from disk once on first use
|
|
11
|
-
let optionsLoaded = false;
|
|
12
|
-
export async function loadOptions() {
|
|
13
|
-
if (optionsLoaded) {
|
|
14
|
-
return options;
|
|
15
|
-
}
|
|
16
|
-
options = {};
|
|
17
|
-
try {
|
|
18
|
-
const optionsFile = path.join(os.homedir(), '.keymandeveloper', 'options.json');
|
|
19
|
-
if (fs.existsSync(optionsFile)) {
|
|
20
|
-
for (let i = 0; i < 5; i++) {
|
|
21
|
-
try {
|
|
22
|
-
const data = JSON.parse(fs.readFileSync(optionsFile, 'utf-8'));
|
|
23
|
-
if (typeof data == 'object') {
|
|
24
|
-
options = data;
|
|
25
|
-
}
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
if (e?.code == 'EBUSY') {
|
|
30
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
// give up, nothing to report here
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
// Nothing to report here, sadly -- because we cannot rely on Sentry at this
|
|
42
|
-
// low level.
|
|
43
|
-
options = {};
|
|
44
|
-
}
|
|
45
|
-
optionsLoaded = true;
|
|
46
|
-
return options;
|
|
47
|
-
}
|
|
48
|
-
export function getOption(valueName, defaultValue) {
|
|
49
|
-
return options[valueName] ?? defaultValue;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* unit tests will clear options before running, for consistency
|
|
53
|
-
*/
|
|
54
|
-
export function clearOptions() {
|
|
55
|
-
options = {};
|
|
56
|
-
optionsLoaded = true;
|
|
57
|
-
}
|
|
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]="02176b7b-09d0-5136-a2b8-c9795e143d73")}catch(e){}}();
|
|
3
|
+
import * as os from 'os';
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
;
|
|
7
|
+
// Default has no options set, and unit tests will use the defaults (won't call
|
|
8
|
+
// `loadOptions()`)
|
|
9
|
+
let options = {};
|
|
10
|
+
// We only load the options from disk once on first use
|
|
11
|
+
let optionsLoaded = false;
|
|
12
|
+
export async function loadOptions() {
|
|
13
|
+
if (optionsLoaded) {
|
|
14
|
+
return options;
|
|
15
|
+
}
|
|
16
|
+
options = {};
|
|
17
|
+
try {
|
|
18
|
+
const optionsFile = path.join(os.homedir(), '.keymandeveloper', 'options.json');
|
|
19
|
+
if (fs.existsSync(optionsFile)) {
|
|
20
|
+
for (let i = 0; i < 5; i++) {
|
|
21
|
+
try {
|
|
22
|
+
const data = JSON.parse(fs.readFileSync(optionsFile, 'utf-8'));
|
|
23
|
+
if (typeof data == 'object') {
|
|
24
|
+
options = data;
|
|
25
|
+
}
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
if (e?.code == 'EBUSY') {
|
|
30
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// give up, nothing to report here
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
// Nothing to report here, sadly -- because we cannot rely on Sentry at this
|
|
42
|
+
// low level.
|
|
43
|
+
options = {};
|
|
44
|
+
}
|
|
45
|
+
optionsLoaded = true;
|
|
46
|
+
return options;
|
|
47
|
+
}
|
|
48
|
+
export function getOption(valueName, defaultValue) {
|
|
49
|
+
return options[valueName] ?? defaultValue;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* unit tests will clear options before running, for consistency
|
|
53
|
+
*/
|
|
54
|
+
export function clearOptions() {
|
|
55
|
+
options = {};
|
|
56
|
+
optionsLoaded = true;
|
|
57
|
+
}
|
|
58
58
|
//# sourceMappingURL=options.js.map
|
|
59
|
-
//# debugId=
|
|
59
|
+
//# debugId=02176b7b-09d0-5136-a2b8-c9795e143d73
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sources":["../../../src/utils/options.ts"],"sourceRoot":"","names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAoC5B,CAAC;AAIF,+EAA+E;AAC/E,mBAAmB;AACnB,IAAI,OAAO,GAA2B,EAAE,CAAC;AAEzC,uDAAuD;AACvD,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAG,aAAa,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAChF,IAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC/D,IAAG,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;wBAC3B,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;oBACD,MAAM;gBACR,CAAC;gBAAC,OAAM,CAAC,EAAE,CAAC;oBACV,IAAG,CAAC,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC;wBACtB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,kCAAkC;wBAClC,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAM,CAAC,EAAE,CAAC;QACV,4EAA4E;QAC5E,aAAa;QACb,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,aAAa,GAAG,IAAI,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,SAAS,CAAkC,SAAY,EAAE,YAAuC;IAC9G,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,EAAE,CAAC;IACb,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC","debug_id":"02176b7b-09d0-5136-a2b8-c9795e143d73"}
|