sheel-deer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/.vscode/launch.json +51 -0
  2. package/.vscode/settings.json +94 -0
  3. package/.vscode/tasks.json +57 -0
  4. package/App.elen +70 -0
  5. package/README.MD +0 -0
  6. package/Test.elen +24 -0
  7. package/compile-all-ts.js +76 -0
  8. package/dist/index.es.js +1 -0
  9. package/dist/index.umd.js +1 -0
  10. package/elen/App.elen +7 -0
  11. package/elen/LICENSE +15 -0
  12. package/elen/dist/extension.js +130 -0
  13. package/elen/dist/init.js +28 -0
  14. package/elen/elen-1.0.0.vsix +0 -0
  15. package/elen/extension.ts +122 -0
  16. package/elen/icon-theme.json +2423 -0
  17. package/elen/icon.svg +1 -0
  18. package/elen/images/icon.svg +1 -0
  19. package/elen/init.ts +28 -0
  20. package/elen/language-configuration.json +26 -0
  21. package/elen/package-lock.json +549 -0
  22. package/elen/package.json +52 -0
  23. package/elen/seti.woff +0 -0
  24. package/elen/src/App.elen +0 -0
  25. package/elen/syntaxes/elen.tmLanguage.json +312 -0
  26. package/elen/tsconfig.json +14 -0
  27. package/elen-icon-theme/LICENSE +15 -0
  28. package/elen-icon-theme/README.md +18 -0
  29. package/elen-icon-theme/elen-icon-theme-1.0.0.vsix +0 -0
  30. package/elen-icon-theme/elen-icon-theme-1.0.1.vsix +0 -0
  31. package/elen-icon-theme/elen-icon-theme-1.0.13.vsix +0 -0
  32. package/elen-icon-theme/elen-icon-theme-1.0.15.vsix +0 -0
  33. package/elen-icon-theme/elen-icon-theme-1.0.16.vsix +0 -0
  34. package/elen-icon-theme/elen-icon-theme-1.0.17.vsix +0 -0
  35. package/elen-icon-theme/elen-icon-theme-1.0.18.vsix +0 -0
  36. package/elen-icon-theme/elen-icon-theme-1.0.19.vsix +0 -0
  37. package/elen-icon-theme/elen-icon-theme-1.0.2.vsix +0 -0
  38. package/elen-icon-theme/elen-icon-theme-1.0.20.vsix +0 -0
  39. package/elen-icon-theme/elen-icon-theme-1.0.3.vsix +0 -0
  40. package/elen-icon-theme/elen-icon-theme-1.0.4.vsix +0 -0
  41. package/elen-icon-theme/elen-icon-theme-1.0.5.vsix +0 -0
  42. package/elen-icon-theme/elen-icon-theme-1.0.6.vsix +0 -0
  43. package/elen-icon-theme/elen-icon-theme-1.0.7.vsix +0 -0
  44. package/elen-icon-theme/elen-icon-theme-1.0.8.vsix +0 -0
  45. package/elen-icon-theme/elen-icon-theme-1.0.9.vsix +0 -0
  46. package/elen-icon-theme/extension.js +226 -0
  47. package/elen-icon-theme/icon-theme.json +2425 -0
  48. package/elen-icon-theme/icon.svg +1 -0
  49. package/elen-icon-theme/images/icon.svg +1 -0
  50. package/elen-icon-theme/package.json +36 -0
  51. package/elen-icon-theme/seti.woff +0 -0
  52. package/icon.svg +8 -0
  53. package/index.html +11 -0
  54. package/init-start-page.ts +59 -0
  55. package/logo.html +15 -0
  56. package/package.json +42 -0
  57. package/server.ts +31 -0
  58. package/shells/data-page/Elen.ts +23 -0
  59. package/squarings/.json +132 -0
  60. package/squarings/App.json +59 -0
  61. package/squarings/Test.json +27 -0
  62. package/src/base/Component.ts +113 -0
  63. package/src/classes/BinaryData.ts +81 -0
  64. package/src/classes/DataModel.ts +386 -0
  65. package/src/classes/DataTypes.ts +116 -0
  66. package/src/components/squaring.ts +226 -0
  67. package/src/components/vtm.ts +231 -0
  68. package/src/data/ascii.ts +134 -0
  69. package/src/data/binary-resources.ts +209 -0
  70. package/src/events/event-handler.js +34 -0
  71. package/src/index.ts +1 -0
  72. package/src/methods/app-template.ts +7 -0
  73. package/src/methods/array-helpers.ts +176 -0
  74. package/src/methods/css-template.ts +5 -0
  75. package/src/methods/errors-helpers.ts +26 -0
  76. package/src/methods/html-template.ts +22 -0
  77. package/src/methods/parsers.ts +1012 -0
  78. package/src/methods/square.ts +80 -0
  79. package/src/methods/ts-template.ts +36 -0
  80. package/src/methods/using-template.ts +3 -0
  81. package/src/models/ascii.ts +26 -0
  82. package/src/models/data-stream.ts +5 -0
  83. package/src/models/data-type-model.ts +22 -0
  84. package/src/models/template-binary-model.ts +5 -0
  85. package/src/routes.ts +9 -0
  86. package/syntaxes/enel.tmLanguage.json +28 -0
  87. package/tsconfig.json +68 -0
  88. package/viewController/Inital.elen +8 -0
  89. package/vite.config.ts +25 -0
  90. package/vue.config.js +30 -0
@@ -0,0 +1,226 @@
1
+ import { translateTS } from "../methods/parsers";
2
+ import { Vtm } from "./vtm";
3
+ export let currentSquaring: Squaring[] = [];
4
+ export let lastSquaring: Squaring[] = [];
5
+
6
+ export const setCurrentSquaring = (squaring: Squaring[]) => {
7
+ lastSquaring = currentSquaring;
8
+ currentSquaring = squaring;
9
+ for(let sq of squaring){
10
+ Vtm.saveToFile(sq, `./squarings/${sq.name}.json`);
11
+ }
12
+ }
13
+
14
+ export const getCurrentSquaring = () => currentSquaring;
15
+ export const getLastSquaring = () => lastSquaring;
16
+
17
+ export class Squaring {
18
+ constructor() { }
19
+
20
+ id: number = 0;
21
+ name: string = "";
22
+ files: string[] = [];
23
+ created: Date = new Date();
24
+ squares: Squaring[] = [];
25
+ data: Data = new Data();
26
+ squaringParameters: SquaringParameters[] = [];
27
+
28
+ addSquare(square: Squaring) {
29
+ this.squares.push(square);
30
+ }
31
+
32
+ //update or create new square with name and files
33
+ changeComponentProperty: ((item: ComponentData) => void)[] = [];
34
+
35
+ ///child ///parent
36
+ ///change notation property or update event property
37
+ changeNotationProperty: ((item: NotationData) => void)[] = [];
38
+
39
+ initComponentData: ((name: string, properties: DataProperty[], template: string, annotations: string[], version: string) => void)[] = [];
40
+ initNotationData: ((name: string, properties: DataProperty[], template: string, annotations: string[], version: string) => void)[] = [];
41
+
42
+
43
+ ///write note template in squaring
44
+ createSquareNotes(componentData: NotationData) {
45
+ ///create notation with name and value of property => create notation template => write notation template in template of component => read notation template in component and update it with value of property => track changes of property and update notation template and component template.
46
+
47
+ this.data.notations = [...this.data.notations, componentData];
48
+ }
49
+
50
+
51
+ ///write component template in squaring
52
+ createSquareComponents(componentData: ComponentData) {
53
+ ///create component with name and value of property => create component template => write component template in template of component => read component template in component and update it with value of property => track changes of property and update component template and parent component template.
54
+
55
+ this.data.components = [...this.data.components, componentData];
56
+ }
57
+
58
+ createSquareMethods(methodData: Methods) {
59
+ this.data.methods = [...this.data.methods, methodData];
60
+ }
61
+
62
+ populateFromTranslateTS(data: number[]) {
63
+ const translatedData = translateTS(data);
64
+
65
+ // Example logic to populate components, notations, and methods
66
+ const component = new ComponentData();
67
+ component.name = "GeneratedComponent";
68
+ component.template = "<div>Generated Template</div>";
69
+ this.data.components.push(component);
70
+
71
+ const notation = new NotationData();
72
+ notation.name = "GeneratedNotation";
73
+ notation.template = "<span>Generated Notation</span>";
74
+ this.data.notations.push(notation);
75
+
76
+ const method = new Methods();
77
+ method.name = "GeneratedMethod";
78
+ method.type = "function";
79
+ method.returnType = "void";
80
+ this.data.methods.push(method);
81
+ }
82
+
83
+ initComponentTemplate(componentData: ComponentData) {
84
+
85
+ this.createSquareComponents(componentData);
86
+ this.initComponentData.forEach(func => func(componentData.name, componentData.properties || [], componentData.template, componentData.annotations || [], componentData.version));
87
+ }
88
+
89
+ initNotationTemplate(notationData: NotationData) {
90
+
91
+ this.createSquareNotes(notationData);
92
+ this.initNotationData.forEach(func => func(notationData.name, notationData.properties || [], notationData.template, notationData.annotations || [], notationData.version));
93
+ }
94
+
95
+
96
+ ///change Component Data
97
+ changeComponentData(item: ComponentData) {
98
+ let component = this.data.components.find(cmp => cmp.name === item.name);
99
+ if (component) {
100
+ component.properties = item.properties;
101
+ component.template = item.template;
102
+ component.annotations = item.annotations;
103
+ } else {
104
+ this.data.components.push(item);
105
+ }
106
+
107
+ this.changeComponentProperty.forEach(func => func(item));
108
+ }
109
+
110
+ ////change Notation Data
111
+ changeNotationData(item: NotationData) {
112
+ let notation = this.data.notations.find(ntn => ntn.name === item.name);
113
+ if (notation) {
114
+ notation.properties = item.properties;
115
+ notation.template = item.template;
116
+ notation.annotations = item.annotations;
117
+ } else {
118
+ this.data.notations.push(item);
119
+ }
120
+
121
+ this.changeNotationProperty.forEach(func => func(item));
122
+ }
123
+
124
+ updateNotationType(name: string = '', type: string = '') {
125
+ let notation = this.data.methods.find(x=> x.name == name);
126
+
127
+ if(notation){
128
+ notation.type = type;
129
+ }
130
+ }
131
+
132
+ }
133
+
134
+ export class Data {
135
+ components: ComponentData[] = [];
136
+ squaringReferences: Squaring[] = [];
137
+ notations: NotationData[] = []; ////
138
+ methods: Methods[] = []; ////
139
+ imports: ImportData[] = [];
140
+ }
141
+
142
+ export class Controllers{
143
+ name: string = "";
144
+ type: string = "";
145
+ controllers: ViewComponent[] = [];
146
+ }
147
+
148
+ export class ViewComponent extends Component{
149
+ name: string = "";
150
+ reference: string = "";
151
+ }
152
+
153
+ export class Methods {
154
+ name: string = "";
155
+ type: string = "";
156
+ body: string[] = [];
157
+ value: any;
158
+ parameters: any[] = [];
159
+ returnType: string = "";
160
+ }
161
+
162
+ export class MethodParameters{
163
+ name: string = "";
164
+ type: string = "";
165
+ body: string = "";
166
+ }
167
+
168
+ export class ComponentData {
169
+ name: string = "";
170
+ properties: DataProperty[] = [];
171
+ template: string = "";
172
+ annotations?: string[] = [];
173
+ version: string = "1.0.0";
174
+ }
175
+
176
+ export class NotationData {
177
+ name: string = ""; ////cmp name =>
178
+ properties: DataProperty[] = [];
179
+ template: string = "";
180
+ annotations?: string[] = [];
181
+ version: string = "1.0.0";
182
+ }
183
+
184
+ export class ImportData {
185
+ name: string = "";
186
+ type: string = ""
187
+ properties: ImportProperty[] = [];
188
+ }
189
+
190
+ export class ImportProperty {
191
+ name: string = "";
192
+ type: string = "";
193
+ path: string = "";
194
+ nullable: boolean = false;
195
+ value: any;
196
+ }
197
+
198
+ export class DataProperty {
199
+ name: string = "";
200
+ nullable: boolean = false;
201
+ type: string = "";
202
+ value: any;
203
+ }
204
+
205
+ export class SquaringParameters {
206
+ parameters: any[] = [];
207
+ name: string = "";
208
+ path: string = "";
209
+ version: string = "";
210
+ }
211
+
212
+ ////type "string" | "number" | "boolean" | "Component" | "Notation" | "Event"
213
+ ///Component<Test> Test;
214
+
215
+ import { Component } from './../base/Component';
216
+
217
+ export class Controller {
218
+ from(component: Component){
219
+
220
+ }
221
+ }
222
+
223
+ export class ViewController{
224
+ name: string = "";
225
+ components: ViewComponent[] = [] as any;
226
+ }
@@ -0,0 +1,231 @@
1
+ // squaring-storage.ts
2
+
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+
6
+ import {
7
+ Squaring,
8
+ Data,
9
+ ComponentData,
10
+ NotationData,
11
+ DataProperty
12
+ } from "./squaring";
13
+
14
+ import { translateTS } from "../methods/parsers";
15
+ import { flatList } from "../methods/array-helpers";
16
+
17
+ export interface SerializedSquare {
18
+ id: number;
19
+ name: string;
20
+ files: string[];
21
+ created: string;
22
+
23
+ data: {
24
+ components: ComponentData[];
25
+ notations: NotationData[];
26
+ };
27
+
28
+ squares: SerializedSquare[];
29
+ }
30
+
31
+ export class Vtm {
32
+
33
+ static saveToFile(
34
+ square: Squaring,
35
+ filePath: string
36
+ ): void {
37
+
38
+ const dir = path.dirname(filePath);
39
+
40
+ if (!fs.existsSync(dir)) {
41
+ fs.mkdirSync(dir, { recursive: true });
42
+ }
43
+
44
+ const json = JSON.stringify(
45
+ this.serializeSquaring(square),
46
+ null,
47
+ 4
48
+ );
49
+
50
+ fs.writeFileSync(
51
+ filePath,
52
+ json,
53
+ "utf8"
54
+ );
55
+ }
56
+
57
+ static loadFromFile(
58
+ filePath: string
59
+ ): Squaring {
60
+
61
+ if (!fs.existsSync(filePath)) {
62
+ throw new Error(
63
+ `File not found: ${filePath}`
64
+ );
65
+ }
66
+
67
+ const content = fs.readFileSync(
68
+ filePath,
69
+ "utf8"
70
+ );
71
+
72
+ const parsed: SerializedSquare =
73
+ JSON.parse(content);
74
+
75
+ return this.deserializeSquaring(parsed);
76
+ }
77
+
78
+ static updateFile(
79
+ square: Squaring,
80
+ filePath: string
81
+ ): void {
82
+
83
+ this.saveToFile(square, filePath);
84
+ }
85
+
86
+ static createEmpty(
87
+ filePath: string
88
+ ): Squaring {
89
+
90
+ const square = new Squaring();
91
+
92
+ this.saveToFile(square, filePath);
93
+
94
+ return square;
95
+ }
96
+
97
+ static populateAndSave(
98
+ square: Squaring,
99
+ data: number[],
100
+ filePath: string
101
+ ): void {
102
+
103
+ square.populateFromTranslateTS(data);
104
+ this.saveToFile(square, filePath);
105
+ }
106
+
107
+ static loadAndTranslate(
108
+ filePath: string
109
+ ): Squaring {
110
+
111
+ const square = this.loadFromFile(filePath);
112
+ const data = translateTS([]); // Replace with actual data source
113
+ square.populateFromTranslateTS(flatList(data));
114
+ return square;
115
+ }
116
+
117
+ private static serializeSquaring(
118
+ square: Squaring
119
+ ): SerializedSquare {
120
+
121
+ return {
122
+ id: square.id,
123
+ name: square.name,
124
+ files: square.files,
125
+ created: square.created.toISOString(),
126
+
127
+ data: {
128
+ components: square.data.components,
129
+ notations: square.data.notations
130
+ },
131
+
132
+ squares: square.squares.map(
133
+ (item: Squaring): SerializedSquare =>
134
+ this.serializeSquaring(item)
135
+ )
136
+ };
137
+ }
138
+
139
+ private static deserializeSquaring(
140
+ obj: SerializedSquare
141
+ ): Squaring {
142
+
143
+ const square = new Squaring();
144
+
145
+ square.id = obj.id || 0;
146
+ square.name = obj.name || "";
147
+ square.files = obj.files || [];
148
+ square.created = new Date(obj.created);
149
+
150
+ square.data = new Data();
151
+
152
+ square.data.components =
153
+ (obj.data?.components || []).map(
154
+ (cmp: ComponentData): ComponentData =>
155
+ this.deserializeComponent(cmp)
156
+ );
157
+
158
+ square.data.notations =
159
+ (obj.data?.notations || []).map(
160
+ (ntn: NotationData): NotationData =>
161
+ this.deserializeNotation(ntn)
162
+ );
163
+
164
+ square.squares =
165
+ (obj.squares || []).map(
166
+ (sq: SerializedSquare): Squaring =>
167
+ this.deserializeSquaring(sq)
168
+ );
169
+
170
+ return square;
171
+ }
172
+
173
+ private static deserializeComponent(
174
+ obj: ComponentData
175
+ ): ComponentData {
176
+
177
+ const component = new ComponentData();
178
+
179
+ component.name = obj.name || "";
180
+ component.template = obj.template || "";
181
+ component.version =
182
+ obj.version || "1.0.0";
183
+
184
+ component.annotations =
185
+ obj.annotations || [];
186
+
187
+ component.properties =
188
+ (obj.properties || []).map(
189
+ (prop: DataProperty): DataProperty =>
190
+ this.deserializeProperty(prop)
191
+ );
192
+
193
+ return component;
194
+ }
195
+
196
+ private static deserializeNotation(
197
+ obj: NotationData
198
+ ): NotationData {
199
+
200
+ const notation = new NotationData();
201
+
202
+ notation.name = obj.name || "";
203
+ notation.template = obj.template || "";
204
+ notation.version =
205
+ obj.version || "1.0.0";
206
+
207
+ notation.annotations =
208
+ obj.annotations || [];
209
+
210
+ notation.properties =
211
+ (obj.properties || []).map(
212
+ (prop: DataProperty): DataProperty =>
213
+ this.deserializeProperty(prop)
214
+ );
215
+
216
+ return notation;
217
+ }
218
+
219
+ private static deserializeProperty(
220
+ obj: DataProperty
221
+ ): DataProperty {
222
+
223
+ const property = new DataProperty();
224
+
225
+ property.name = obj.name || "";
226
+ property.type = obj.type || "";
227
+ property.value = obj.value;
228
+
229
+ return property;
230
+ }
231
+ }
@@ -0,0 +1,134 @@
1
+ import { ASCIITable } from "../models/ascii";
2
+
3
+ export const asciiTable: ASCIITable = {
4
+ ascii: [
5
+ { "code": 0, "hex": "0x00", "char": "", "name": "NUL", "printable": false },
6
+ { "code": 1, "hex": "0x01", "char": "", "name": "SOH", "printable": false },
7
+ { "code": 2, "hex": "0x02", "char": "", "name": "STX", "printable": false },
8
+ { "code": 3, "hex": "0x03", "char": "", "name": "ETX", "printable": false },
9
+ { "code": 4, "hex": "0x04", "char": "", "name": "EOT", "printable": false },
10
+ { "code": 5, "hex": "0x05", "char": "", "name": "ENQ", "printable": false },
11
+ { "code": 6, "hex": "0x06", "char": "", "name": "ACK", "printable": false },
12
+ { "code": 7, "hex": "0x07", "char": "", "name": "BEL", "printable": false },
13
+ { "code": 8, "hex": "0x08", "char": "", "name": "BS", "printable": false },
14
+ { "code": 9, "hex": "0x09", "char": "", "name": "HT", "printable": false },
15
+ { "code": 10, "hex": "0x0A", "char": "", "name": "LF", "printable": false },
16
+ { "code": 11, "hex": "0x0B", "char": "", "name": "VT", "printable": false },
17
+ { "code": 12, "hex": "0x0C", "char": "", "name": "FF", "printable": false },
18
+ { "code": 13, "hex": "0x0D", "char": "", "name": "CR", "printable": false },
19
+ { "code": 14, "hex": "0x0E", "char": "", "name": "SO", "printable": false },
20
+ { "code": 15, "hex": "0x0F", "char": "", "name": "SI", "printable": false },
21
+ { "code": 16, "hex": "0x10", "char": "", "name": "DLE", "printable": false },
22
+ { "code": 17, "hex": "0x11", "char": "", "name": "DC1", "printable": false },
23
+ { "code": 18, "hex": "0x12", "char": "", "name": "DC2", "printable": false },
24
+ { "code": 19, "hex": "0x13", "char": "", "name": "DC3", "printable": false },
25
+ { "code": 20, "hex": "0x14", "char": "", "name": "DC4", "printable": false },
26
+ { "code": 21, "hex": "0x15", "char": "", "name": "NAK", "printable": false },
27
+ { "code": 22, "hex": "0x16", "char": "", "name": "SYN", "printable": false },
28
+ { "code": 23, "hex": "0x17", "char": "", "name": "ETB", "printable": false },
29
+ { "code": 24, "hex": "0x18", "char": "", "name": "CAN", "printable": false },
30
+ { "code": 25, "hex": "0x19", "char": "", "name": "EM", "printable": false },
31
+ { "code": 26, "hex": "0x1A", "char": "", "name": "SUB", "printable": false },
32
+ { "code": 27, "hex": "0x1B", "char": "", "name": "ESC", "printable": false },
33
+ { "code": 28, "hex": "0x1C", "char": "", "name": "FS", "printable": false },
34
+ { "code": 29, "hex": "0x1D", "char": "", "name": "GS", "printable": false },
35
+ { "code": 30, "hex": "0x1E", "char": "", "name": "RS", "printable": false },
36
+ { "code": 31, "hex": "0x1F", "char": "", "name": "US", "printable": false },
37
+ { "code": 32, "hex": "0x20", "char": " ", "name": "SPACE", "printable": true },
38
+ { "code": 33, "hex": "0x21", "char": "!", "name": "EXCLAMATION MARK", "printable": true },
39
+ { "code": 34, "hex": "0x22", "char": "\"", "name": "QUOTATION MARK", "printable": true },
40
+ { "code": 35, "hex": "0x23", "char": "#", "name": "NUMBER SIGN", "printable": true },
41
+ { "code": 36, "hex": "0x24", "char": "$", "name": "DOLLAR SIGN", "printable": true },
42
+ { "code": 37, "hex": "0x25", "char": "%", "name": "PERCENT SIGN", "printable": true },
43
+ { "code": 38, "hex": "0x26", "char": "&", "name": "AMPERSAND", "printable": true },
44
+ { "code": 39, "hex": "0x27", "char": "'", "name": "APOSTROPHE", "printable": true },
45
+ { "code": 40, "hex": "0x28", "char": "(", "name": "LEFT PARENTHESIS", "printable": true },
46
+ { "code": 41, "hex": "0x29", "char": ")", "name": "RIGHT PARENTHESIS", "printable": true },
47
+ { "code": 42, "hex": "0x2A", "char": "*", "name": "ASTERISK", "printable": true },
48
+ { "code": 43, "hex": "0x2B", "char": "+", "name": "PLUS SIGN", "printable": true },
49
+ { "code": 44, "hex": "0x2C", "char": ",", "name": "COMMA", "printable": true },
50
+ { "code": 45, "hex": "0x2D", "char": "-", "name": "HYPHEN-MINUS", "printable": true },
51
+ { "code": 46, "hex": "0x2E", "char": ".", "name": "FULL STOP", "printable": true },
52
+ { "code": 47, "hex": "0x2F", "char": "/", "name": "SOLIDUS", "printable": true },
53
+ { "code": 48, "hex": "0x30", "char": "0", "name": "DIGIT ZERO", "printable": true },
54
+ { "code": 49, "hex": "0x31", "char": "1", "name": "DIGIT ONE", "printable": true },
55
+ { "code": 50, "hex": "0x32", "char": "2", "name": "DIGIT TWO", "printable": true },
56
+ { "code": 51, "hex": "0x33", "char": "3", "name": "DIGIT THREE", "printable": true },
57
+ { "code": 52, "hex": "0x34", "char": "4", "name": "DIGIT FOUR", "printable": true },
58
+ { "code": 53, "hex": "0x35", "char": "5", "name": "DIGIT FIVE", "printable": true },
59
+ { "code": 54, "hex": "0x36", "char": "6", "name": "DIGIT SIX", "printable": true },
60
+ { "code": 55, "hex": "0x37", "char": "7", "name": "DIGIT SEVEN", "printable": true },
61
+ { "code": 56, "hex": "0x38", "char": "8", "name": "DIGIT EIGHT", "printable": true },
62
+ { "code": 57, "hex": "0x39", "char": "9", "name": "DIGIT NINE", "printable": true },
63
+ { "code": 58, "hex": "0x3A", "char": ":", "name": "COLON", "printable": true },
64
+ { "code": 59, "hex": "0x3B", "char": ";", "name": "SEMICOLON", "printable": true },
65
+ { "code": 60, "hex": "0x3C", "char": "<", "name": "LESS-THAN SIGN", "printable": true },
66
+ { "code": 61, "hex": "0x3D", "char": "=", "name": "EQUALS SIGN", "printable": true },
67
+ { "code": 62, "hex": "0x3E", "char": ">", "name": "GREATER-THAN SIGN", "printable": true },
68
+ { "code": 63, "hex": "0x3F", "char": "?", "name": "QUESTION MARK", "printable": true },
69
+ { "code": 64, "hex": "0x40", "char": "@", "name": "COMMERCIAL AT", "printable": true },
70
+ { "code": 65, "hex": "0x41", "char": "A", "name": "LATIN CAPITAL LETTER A", "printable": true },
71
+ { "code": 66, "hex": "0x42", "char": "B", "name": "LATIN CAPITAL LETTER B", "printable": true },
72
+ { "code": 67, "hex": "0x43", "char": "C", "name": "LATIN CAPITAL LETTER C", "printable": true },
73
+ { "code": 68, "hex": "0x44", "char": "D", "name": "LATIN CAPITAL LETTER D", "printable": true },
74
+ { "code": 69, "hex": "0x45", "char": "E", "name": "LATIN CAPITAL LETTER E", "printable": true },
75
+ { "code": 70, "hex": "0x46", "char": "F", "name": "LATIN CAPITAL LETTER F", "printable": true },
76
+ { "code": 71, "hex": "0x47", "char": "G", "name": "LATIN CAPITAL LETTER G", "printable": true },
77
+ { "code": 72, "hex": "0x48", "char": "H", "name": "LATIN CAPITAL LETTER H", "printable": true },
78
+ { "code": 73, "hex": "0x49", "char": "I", "name": "LATIN CAPITAL LETTER I", "printable": true },
79
+ { "code": 74, "hex": "0x4A", "char": "J", "name": "LATIN CAPITAL LETTER J", "printable": true },
80
+ { "code": 75, "hex": "0x4B", "char": "K", "name": "LATIN CAPITAL LETTER K", "printable": true },
81
+ { "code": 76, "hex": "0x4C", "char": "L", "name": "LATIN CAPITAL LETTER L", "printable": true },
82
+ { "code": 77, "hex": "0x4D", "char": "M", "name": "LATIN CAPITAL LETTER M", "printable": true },
83
+ { "code": 78, "hex": "0x4E", "char": "N", "name": "LATIN CAPITAL LETTER N", "printable": true },
84
+ { "code": 79, "hex": "0x4F", "char": "O", "name": "LATIN CAPITAL LETTER O", "printable": true },
85
+ { "code": 80, "hex": "0x50", "char": "P", "name": "LATIN CAPITAL LETTER P", "printable": true },
86
+ { "code": 81, "hex": "0x51", "char": "Q", "name": "LATIN CAPITAL LETTER Q", "printable": true },
87
+ { "code": 82, "hex": "0x52", "char": "R", "name": "LATIN CAPITAL LETTER R", "printable": true },
88
+ { "code": 83, "hex": "0x53", "char": "S", "name": "LATIN CAPITAL LETTER S", "printable": true },
89
+ { "code": 84, "hex": "0x54", "char": "T", "name": "LATIN CAPITAL LETTER T", "printable": true },
90
+ { "code": 85, "hex": "0x55", "char": "U", "name": "LATIN CAPITAL LETTER U", "printable": true },
91
+ { "code": 86, "hex": "0x56", "char": "V", "name": "LATIN CAPITAL LETTER V", "printable": true },
92
+ { "code": 87, "hex": "0x57", "char": "W", "name": "LATIN CAPITAL LETTER W", "printable": true },
93
+ { "code": 88, "hex": "0x58", "char": "X", "name": "LATIN CAPITAL LETTER X", "printable": true },
94
+ { "code": 89, "hex": "0x59", "char": "Y", "name": "LATIN CAPITAL LETTER Y", "printable": true },
95
+ { "code": 90, "hex": "0x5A", "char": "Z", "name": "LATIN CAPITAL LETTER Z", "printable": true },
96
+ { "code": 91, "hex": "0x5B", "char": "[", "name": "LEFT SQUARE BRACKET", "printable": true },
97
+ { "code": 92, "hex": "0x5C", "char": "\\", "name": "REVERSE SOLIDUS", "printable": true },
98
+ { "code": 93, "hex": "0x5D", "char": "]", "name": "RIGHT SQUARE BRACKET", "printable": true },
99
+ { "code": 94, "hex": "0x5E", "char": "^", "name": "CIRCUMFLEX ACCENT", "printable": true },
100
+ { "code": 95, "hex": "0x5F", "char": "_", "name": "LOW LINE", "printable": true },
101
+ { "code": 96, "hex": "0x60", "char": "`", "name": "GRAVE ACCENT", "printable": true },
102
+ { "code": 97, "hex": "0x61", "char": "a", "name": "LATIN SMALL LETTER A", "printable": true },
103
+ { "code": 98, "hex": "0x62", "char": "b", "name": "LATIN SMALL LETTER B", "printable": true },
104
+ { "code": 99, "hex": "0x63", "char": "c", "name": "LATIN SMALL LETTER C", "printable": true },
105
+ { "code": 100, "hex": "0x64", "char": "d", "name": "LATIN SMALL LETTER D", "printable": true },
106
+ { "code": 101, "hex": "0x65", "char": "e", "name": "LATIN SMALL LETTER E", "printable": true },
107
+ { "code": 102, "hex": "0x66", "char": "f", "name": "LATIN SMALL LETTER F", "printable": true },
108
+ { "code": 103, "hex": "0x67", "char": "g", "name": "LATIN SMALL LETTER G", "printable": true },
109
+ { "code": 104, "hex": "0x68", "char": "h", "name": "LATIN SMALL LETTER H", "printable": true },
110
+ { "code": 105, "hex": "0x69", "char": "i", "name": "LATIN SMALL LETTER I", "printable": true },
111
+ { "code": 106, "hex": "0x6A", "char": "j", "name": "LATIN SMALL LETTER J", "printable": true },
112
+ { "code": 107, "hex": "0x6B", "char": "k", "name": "LATIN SMALL LETTER K", "printable": true },
113
+ { "code": 108, "hex": "0x6C", "char": "l", "name": "LATIN SMALL LETTER L", "printable": true },
114
+ { "code": 109, "hex": "0x6D", "char": "m", "name": "LATIN SMALL LETTER M", "printable": true },
115
+ { "code": 110, "hex": "0x6E", "char": "n", "name": "LATIN SMALL LETTER N", "printable": true },
116
+ { "code": 111, "hex": "0x6F", "char": "o", "name": "LATIN SMALL LETTER O", "printable": true },
117
+ { "code": 112, "hex": "0x70", "char": "p", "name": "LATIN SMALL LETTER P", "printable": true },
118
+ { "code": 113, "hex": "0x71", "char": "q", "name": "LATIN SMALL LETTER Q", "printable": true },
119
+ { "code": 114, "hex": "0x72", "char": "r", "name": "LATIN SMALL LETTER R", "printable": true },
120
+ { "code": 115, "hex": "0x73", "char": "s", "name": "LATIN SMALL LETTER S", "printable": true },
121
+ { "code": 116, "hex": "0x74", "char": "t", "name": "LATIN SMALL LETTER T", "printable": true },
122
+ { "code": 117, "hex": "0x75", "char": "u", "name": "LATIN SMALL LETTER U", "printable": true },
123
+ { "code": 118, "hex": "0x76", "char": "v", "name": "LATIN SMALL LETTER V", "printable": true },
124
+ { "code": 119, "hex": "0x77", "char": "w", "name": "LATIN SMALL LETTER W", "printable": true },
125
+ { "code": 120, "hex": "0x78", "char": "x", "name": "LATIN SMALL LETTER X", "printable": true },
126
+ { "code": 121, "hex": "0x79", "char": "y", "name": "LATIN SMALL LETTER Y", "printable": true },
127
+ { "code": 122, "hex": "0x7A", "char": "z", "name": "LATIN SMALL LETTER Z", "printable": true },
128
+ { "code": 123, "hex": "0x7B", "char": "{", "name": "LEFT CURLY BRACKET", "printable": true },
129
+ { "code": 124, "hex": "0x7C", "char": "|", "name": "VERTICAL LINE", "printable": true },
130
+ { "code": 125, "hex": "0x7D", "char": "}", "name": "RIGHT CURLY BRACKET", "printable": true },
131
+ { "code": 126, "hex": "0x7E", "char": "~", "name": "TILDE", "printable": true },
132
+ { "code": 127, "hex": "0x7F", "char": "", "name": "DEL", "printable": false }
133
+ ]
134
+ }