@lvce-editor/shared-process 0.0.41 → 0.2.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 (37) hide show
  1. package/config/defaultKeyBindings.json +5 -0
  2. package/extensions/builtin.language-basics-docker/extension.json +13 -3
  3. package/extensions/builtin.language-basics-go/extension.json +3 -2
  4. package/extensions/builtin.language-basics-json/extension.json +2 -1
  5. package/extensions/builtin.language-basics-json/src/tokenizeJson.js +6 -2
  6. package/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +288 -11
  7. package/extensions/builtin.language-basics-perl/README.md +14 -0
  8. package/extensions/builtin.language-basics-perl/extension.json +12 -0
  9. package/extensions/builtin.language-basics-perl/src/tokenizePerl.js +31 -0
  10. package/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +1 -1
  11. package/extensions/builtin.language-basics-toml/extension.json +10 -2
  12. package/extensions/builtin.theme-slime/color-theme.json +4 -0
  13. package/extensions/builtin.vscode-icons/icon-theme.json +12 -0
  14. package/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +1 -1
  15. package/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +1 -1
  16. package/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +1 -1
  17. package/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +1 -0
  18. package/extensions/builtin.vscode-icons/icons/file_type_unison.svg +1 -0
  19. package/package.json +6 -6
  20. package/src/parts/Command/Command.js +5 -18
  21. package/src/parts/DirentType/DirentType.js +13 -0
  22. package/src/parts/Download/Download.js +6 -8
  23. package/src/parts/ExtensionManagement/ExtensionManagement.js +16 -41
  24. package/src/parts/ExtensionManagement/ExtensionManagementColorTheme.js +4 -6
  25. package/src/parts/ExtensionManagement/ExtensionManagementIconTheme.js +4 -6
  26. package/src/parts/ExtensionManifestStatus/ExtensionManifestStatus.js +3 -0
  27. package/src/parts/FileSystem/FileSystem.js +33 -74
  28. package/src/parts/Json/Json.js +7 -55
  29. package/src/parts/JsonError/JsonError.js +70 -0
  30. package/src/parts/JsonFile/JsonFile.js +5 -5
  31. package/src/parts/Native/Native.js +2 -6
  32. package/src/parts/Preferences/Preferences.js +1 -1
  33. package/src/parts/RecentlyOpened/RecentlyOpened.ipc.js +5 -0
  34. package/src/parts/RecentlyOpened/RecentlyOpened.js +52 -0
  35. package/src/parts/Search/Search.js +9 -3
  36. package/src/parts/Electron/Electron.ipc.js +0 -18
  37. package/src/parts/Electron/Electron.js +0 -110
@@ -261,6 +261,11 @@
261
261
  "command": "Explorer.expandAll",
262
262
  "when": "focus.Explorer"
263
263
  },
264
+ {
265
+ "key": "alt+ArrowRight",
266
+ "command": "Explorer.expandRecursively",
267
+ "when": "focus.Explorer"
268
+ },
264
269
  {
265
270
  "key": "ctrl+ArrowLeft",
266
271
  "command": "Explorer.collapseAll",
@@ -1,13 +1,23 @@
1
1
  {
2
2
  "id": "builtin.language-basics-docker",
3
+ "version": "0.0.0-dev",
3
4
  "name": "Language Basics Docker",
4
5
  "description": "Provides syntax highlighting and bracket matching in Dockerfile files.",
5
6
  "languages": [
6
7
  {
7
8
  "id": "dockerfile",
8
- "extensions": [".dockerfile", ".containerfile"],
9
- "fileNames": ["Dockerfile", "Containerfile"],
10
- "fileNamePatterns": ["Dockerfile.*", "Containerfile.*"],
9
+ "extensions": [
10
+ ".dockerfile",
11
+ ".containerfile"
12
+ ],
13
+ "fileNames": [
14
+ "Dockerfile",
15
+ "Containerfile"
16
+ ],
17
+ "fileNamePatterns": [
18
+ "Dockerfile.*",
19
+ "Containerfile.*"
20
+ ],
11
21
  "tokenize": "src/tokenizeDockerfile.js"
12
22
  }
13
23
  ]
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "id": "builtin.language-basics-go",
3
3
  "name": "Language Basics Go",
4
- "description": "Provides syntax highlighting and bracket matching in Gp files.",
4
+ "description": "Provides syntax highlighting and bracket matching in Go files.",
5
5
  "languages": [
6
6
  {
7
7
  "id": "go",
8
8
  "extensions": [".go"],
9
- "configuration": "./languageConfiguration.json"
9
+ "configuration": "./languageConfiguration.json",
10
+ "tokenize": "src/tokenizeGo.js"
10
11
  }
11
12
  ]
12
13
  }
@@ -26,7 +26,8 @@
26
26
  ".swcrc",
27
27
  ".hintrc",
28
28
  ".babelrc",
29
- ".prettierrc"
29
+ ".prettierrc",
30
+ ".sublime-project"
30
31
  ],
31
32
  "filenames": ["composer.lock", ".watchmanconfig"],
32
33
  "tokenize": "src/tokenizeJson.js"
@@ -220,6 +220,9 @@ export const tokenizeLine = (line, lineState) => {
220
220
  if ((next = part.match(RE_COLON))) {
221
221
  token = TokenType.Punctuation
222
222
  state = State.AfterPropertyNameAfterColon
223
+ } else if ((next = part.match(RE_ANYTHING))) {
224
+ token = TokenType.Text
225
+ state = State.AfterCurlyOpen
223
226
  } else {
224
227
  throw new Error('no')
225
228
  }
@@ -309,9 +312,10 @@ export const tokenizeLine = (line, lineState) => {
309
312
  // }) //?
310
313
 
311
314
  const result = tokenizeLine(
312
- `{ "testRegex": "/scripts/jest/dont-run-jest-directly\\.js$"`,
315
+ `"extends: "eslint:recommended",
316
+ `,
313
317
  {
314
- state: State.TopLevelContent,
318
+ state: State.AfterCurlyOpen,
315
319
  stack: [],
316
320
  }
317
321
  ) //?
@@ -1,31 +1,308 @@
1
+ /**
2
+ * @enum number
3
+ */
4
+ const State = {
5
+ TopLevelContent: 1,
6
+ AfterOpeningAngleBracket: 2,
7
+ InsideOpeningTag: 3,
8
+ InsideOpeningTagAndHasSeenWhitespace: 4,
9
+ AfterClosingTagAngleBrackets: 5,
10
+ AfterClosingTagName: 6,
11
+ AfterAttributeName: 7,
12
+ AfterAttributeEqualSign: 8,
13
+ InsideAttributeDoubleQuote: 9,
14
+ InsideBlockComment: 10,
15
+ None: 11,
16
+ InsideDoubleQuoteString: 12,
17
+ InsideSingleQuoteString: 13,
18
+ }
19
+
20
+ export const StateMap = {}
21
+
1
22
  /**
2
23
  * @enum number
3
24
  */
4
25
  export const TokenType = {
5
- Text: 1,
26
+ None: 99999999,
27
+ Numeric: 30,
28
+ String: 50,
29
+ Whitespace: 0,
30
+ Comment: 60,
31
+ Text: 117,
32
+ PunctuationTag: 228,
33
+ TagName: 118,
34
+ AttributeName: 119,
35
+ Punctuation: 10,
36
+ Error: 141,
37
+ PunctuationString: 11,
38
+ NewLine: 891,
39
+ Heading: 13,
6
40
  }
7
41
 
8
42
  export const TokenMap = {
43
+ [TokenType.None]: 'None',
44
+ [TokenType.Numeric]: 'Numeric',
45
+ [TokenType.String]: 'String',
46
+ [TokenType.Whitespace]: 'Whitespace',
47
+ [TokenType.Comment]: 'Comment',
9
48
  [TokenType.Text]: 'Text',
49
+ [TokenType.PunctuationTag]: 'PunctuationTag',
50
+ [TokenType.TagName]: 'TagName',
51
+ [TokenType.AttributeName]: 'AttributeName',
52
+ [TokenType.Punctuation]: 'Punctuation',
53
+ [TokenType.Error]: 'Error',
54
+ [TokenType.PunctuationString]: 'PunctuationString',
55
+ [TokenType.Heading]: 'Heading',
10
56
  }
11
57
 
58
+ const RE_ANGLE_BRACKET_CLOSE = /^>/
59
+ const RE_ANGLE_BRACKET_ONLY = /^</
60
+ const RE_ANGLE_BRACKET_OPEN = /^</
61
+ const RE_ANGLE_BRACKET_OPEN_TAG = /^<(?!\s)/
62
+ const RE_ANY_TEXT = /^[^\n]+/
63
+ const RE_ATTRIBUTE_NAME = /^[a-zA-Z\d\-]+/
64
+ const RE_BLOCK_COMMENT_CONTENT = /^.(?:.*?)(?=-->|$)/s
65
+ const RE_BLOCK_COMMENT_END = /^-->/
66
+ const RE_BLOCK_COMMENT_START = /^<!--/
67
+ const RE_DASH_DASH = /^\-\-/
68
+ const RE_DOUBLE_QUOTE = /^"/
69
+ const RE_EQUAL_SIGN = /^=/
70
+ const RE_EXCLAMATION_MARK = /^!/
71
+ const RE_INVALID_INSIDE_ClOSING_TAG = /^[^a-zA-Z>]/
72
+ const RE_INVALID_INSIDE_OPENING_TAG = /^[^a-zA-Z>]/
73
+ const RE_NEWLINE = /^\n/
74
+ const RE_NEWLINE_WHITESPACE = /^\n\s*/
75
+ const RE_NOT_TAGNAME = /^[^a-zA-Z\d]+/
76
+ const RE_PUNCTUATION = /^[<;'".,]/
77
+ const RE_PUNCTUATION_SELF_CLOSING = /^\/>/
78
+ const RE_SELF_CLOSING = /^\/>/
79
+ const RE_SINGLE_QUOTE = /^'/
80
+ const RE_SLASH = /^\//
81
+ const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"]+/
82
+ const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^']+/
83
+ const RE_TAG_TEXT = /^[^\s>]+/
84
+ const RE_TAGNAME = /^[!\w]+/
85
+ const RE_TEXT = /^[^<>\n]+/
86
+ const RE_WHITESPACE = /^\s+/
87
+ const RE_WORD = /^[^\s]+/
88
+ const RE_HEADING = /^\#.*/s
89
+
12
90
  export const initialLineState = {
13
- state: 0,
14
- tokens: [],
91
+ state: State.TopLevelContent,
92
+ }
93
+
94
+ /**
95
+ *
96
+ * @param {any} lineStateA
97
+ * @param {any} lineStateB
98
+ * @returns
99
+ */
100
+ export const isLineStateEqual = (lineStateA, lineStateB) => {
101
+ return lineStateA.state === lineStateB.state
15
102
  }
16
103
 
17
104
  /**
105
+ *
18
106
  * @param {string} line
107
+ * @param {any} lineState
108
+ * @returns
19
109
  */
20
- export const tokenizeLine = (line) => {
21
- const tokens = [
22
- {
23
- type: TokenType.Text,
24
- length: line.length,
25
- },
26
- ]
110
+ export const tokenizeLine = (line, lineState) => {
111
+ let next = null
112
+ let index = 0
113
+ let tokens = []
114
+ let token = TokenType.None
115
+ let state = lineState.state
116
+ while (index < line.length) {
117
+ const part = line.slice(index)
118
+ switch (state) {
119
+ case State.TopLevelContent:
120
+ if ((next = part.match(RE_BLOCK_COMMENT_START))) {
121
+ token = TokenType.Comment
122
+ state = State.InsideBlockComment
123
+ } else if ((next = part.match(RE_ANGLE_BRACKET_OPEN_TAG))) {
124
+ token = TokenType.PunctuationTag
125
+ state = State.AfterOpeningAngleBracket
126
+ } else if ((next = part.match(RE_HEADING))) {
127
+ token = TokenType.Heading
128
+ } else if ((next = part.match(RE_TEXT))) {
129
+ token = TokenType.Text
130
+ state = State.TopLevelContent
131
+ } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
132
+ token = TokenType.Text
133
+ state = State.TopLevelContent
134
+ } else if ((next = part.match(RE_ANGLE_BRACKET_OPEN))) {
135
+ token = TokenType.Text
136
+ state = State.TopLevelContent
137
+ } else {
138
+ part //?
139
+ throw new Error('no')
140
+ }
141
+ break
142
+ case State.AfterOpeningAngleBracket:
143
+ if ((next = part.match(RE_TAGNAME))) {
144
+ token = TokenType.TagName
145
+ state = State.InsideOpeningTag
146
+ } else if ((next = part.match(RE_SLASH))) {
147
+ token = TokenType.PunctuationTag
148
+ state = State.AfterClosingTagAngleBrackets
149
+ } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
150
+ token = TokenType.PunctuationTag
151
+ state = State.TopLevelContent
152
+ } else if ((next = part.match(RE_ANY_TEXT))) {
153
+ token = TokenType.Text
154
+ state = State.TopLevelContent
155
+ } else {
156
+ part //?
157
+ throw new Error('no')
158
+ }
159
+ break
160
+ case State.InsideOpeningTag:
161
+ if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
162
+ token = TokenType.PunctuationTag
163
+ state = State.TopLevelContent
164
+ } else if ((next = part.match(RE_EXCLAMATION_MARK))) {
165
+ token = TokenType.PunctuationTag
166
+ state = State.InsideOpeningTag
167
+ } else if ((next = part.match(RE_WHITESPACE))) {
168
+ token = TokenType.Whitespace
169
+ state = State.InsideOpeningTagAndHasSeenWhitespace
170
+ } else if ((next = part.match(RE_DASH_DASH))) {
171
+ token = TokenType.Comment
172
+ state = State.InsideBlockComment
173
+ } else if ((next = part.match(RE_TAG_TEXT))) {
174
+ token = TokenType.Text
175
+ state = State.InsideOpeningTag
176
+ } else {
177
+ part //?
178
+ throw new Error('no')
179
+ }
180
+ break
181
+ case State.AfterClosingTagAngleBrackets:
182
+ if ((next = part.match(RE_TAGNAME))) {
183
+ token = TokenType.TagName
184
+ state = State.AfterClosingTagName
185
+ } else if ((next = part.match(RE_ANY_TEXT))) {
186
+ token = TokenType.Text
187
+ state = State.TopLevelContent
188
+ } else {
189
+ part //?
190
+ throw new Error('no')
191
+ }
192
+ break
193
+ case State.AfterClosingTagName:
194
+ if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
195
+ token = TokenType.PunctuationTag
196
+ state = State.TopLevelContent
197
+ } else if ((next = part.match(RE_TEXT))) {
198
+ token = TokenType.Text
199
+ state = State.TopLevelContent
200
+ } else {
201
+ throw new Error('no')
202
+ }
203
+ break
204
+ case State.InsideOpeningTagAndHasSeenWhitespace:
205
+ if ((next = part.match(RE_ATTRIBUTE_NAME))) {
206
+ token = TokenType.AttributeName
207
+ state = State.AfterAttributeName
208
+ } else if ((next = part.match(RE_SELF_CLOSING))) {
209
+ token = TokenType.PunctuationTag
210
+ state = State.TopLevelContent
211
+ } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
212
+ token = TokenType.PunctuationTag
213
+ state = State.TopLevelContent
214
+ } else if ((next = part.match(RE_TAG_TEXT))) {
215
+ token = TokenType.Text
216
+ state = State.TopLevelContent
217
+ } else {
218
+ part //?
219
+ throw new Error('no')
220
+ }
221
+ break
222
+ case State.AfterAttributeName:
223
+ if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
224
+ token = TokenType.PunctuationTag
225
+ state = State.TopLevelContent
226
+ } else if ((next = part.match(RE_EQUAL_SIGN))) {
227
+ token = TokenType.Punctuation
228
+ state = State.AfterAttributeEqualSign
229
+ } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
230
+ token = TokenType.PunctuationString
231
+ state = State.InsideDoubleQuoteString
232
+ } else if ((next = part.match(RE_SINGLE_QUOTE))) {
233
+ token = TokenType.PunctuationString
234
+ state = State.InsideSingleQuoteString
235
+ } else if ((next = part.match(RE_TAG_TEXT))) {
236
+ token = TokenType.Text
237
+ state = State.InsideOpeningTag
238
+ } else if ((next = part.match(RE_WHITESPACE))) {
239
+ token = TokenType.Whitespace
240
+ state = State.InsideOpeningTagAndHasSeenWhitespace
241
+ } else {
242
+ // TODO check quotation mark
243
+ part //?
244
+ throw new Error('no')
245
+ }
246
+ break
247
+ case State.AfterAttributeEqualSign:
248
+ if ((next = part.match(RE_DOUBLE_QUOTE))) {
249
+ token = TokenType.PunctuationString
250
+ state = State.InsideDoubleQuoteString
251
+ } else if ((next = part.match(RE_SINGLE_QUOTE))) {
252
+ token = TokenType.PunctuationString
253
+ state = State.InsideSingleQuoteString
254
+ } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
255
+ token = TokenType.PunctuationTag
256
+ state = State.TopLevelContent
257
+ } else {
258
+ throw new Error('no')
259
+ }
260
+ break
261
+ case State.InsideDoubleQuoteString:
262
+ if ((next = part.match(RE_DOUBLE_QUOTE))) {
263
+ token = TokenType.PunctuationString
264
+ state = State.InsideOpeningTag
265
+ } else if ((next = part.match(RE_STRING_DOUBLE_QUOTE_CONTENT))) {
266
+ token = TokenType.String
267
+ state = State.InsideDoubleQuoteString
268
+ } else {
269
+ throw new Error('no')
270
+ }
271
+ break
272
+ case State.InsideSingleQuoteString:
273
+ if ((next = part.match(RE_SINGLE_QUOTE))) {
274
+ token = TokenType.PunctuationString
275
+ state = State.InsideOpeningTag
276
+ } else if ((next = part.match(RE_STRING_SINGLE_QUOTE_CONTENT))) {
277
+ token = TokenType.String
278
+ state = State.InsideSingleQuoteString
279
+ } else {
280
+ throw new Error('no')
281
+ }
282
+ break
283
+ case State.InsideBlockComment:
284
+ if ((next = part.match(RE_BLOCK_COMMENT_END))) {
285
+ token = TokenType.Comment
286
+ state = State.TopLevelContent
287
+ } else if ((next = part.match(RE_BLOCK_COMMENT_CONTENT))) {
288
+ token = TokenType.Comment
289
+ state = State.InsideBlockComment
290
+ } else {
291
+ throw new Error('no')
292
+ }
293
+ break
294
+ default:
295
+ state
296
+ throw new Error('no')
297
+ }
298
+ index += next[0].length
299
+ tokens.push({
300
+ type: token,
301
+ length: next[0].length,
302
+ })
303
+ }
27
304
  return {
28
- state: 0,
305
+ state,
29
306
  tokens,
30
307
  }
31
308
  }
@@ -0,0 +1,14 @@
1
+ # Language Basics Perl
2
+
3
+ ## Contributing
4
+
5
+ ```sh
6
+ git clone git@github.com:lvce-editor/language-basics-perl.git &&
7
+ cd language-basics-perl &&
8
+ npm ci &&
9
+ npm test
10
+ ```
11
+
12
+ ## Gitpod
13
+
14
+ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/language-basics-perl)
@@ -0,0 +1,12 @@
1
+ {
2
+ "id": "builtin.language-basics-perl",
3
+ "name": "Language Basics Perl",
4
+ "description": "Provides syntax highlighting and bracket matching in Perl files.",
5
+ "languages": [
6
+ {
7
+ "id": "perl",
8
+ "extensions": [".perl"],
9
+ "tokenize": "src/tokenizePerl.js"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @enum number
3
+ */
4
+ export const TokenType = {
5
+ Text: 1,
6
+ }
7
+
8
+ export const TokenMap = {
9
+ [TokenType.Text]: 'Text',
10
+ }
11
+
12
+ export const initialLineState = {
13
+ state: 0,
14
+ tokens: [],
15
+ }
16
+
17
+ /**
18
+ * @param {string} line
19
+ */
20
+ export const tokenizeLine = (line) => {
21
+ const tokens = [
22
+ {
23
+ type: TokenType.Text,
24
+ length: line.length,
25
+ },
26
+ ]
27
+ return {
28
+ state: 0,
29
+ tokens,
30
+ }
31
+ }
@@ -10,7 +10,7 @@ export const TokenMap = {
10
10
  }
11
11
 
12
12
  export const initialLineState = {
13
- state: 0,
13
+ state: 1,
14
14
  tokens: [],
15
15
  }
16
16
 
@@ -1,12 +1,20 @@
1
1
  {
2
2
  "id": "builtin.language-basics-toml",
3
+ "version": "0.0.0-dev",
3
4
  "name": "Language Basics Toml",
4
5
  "description": "Provides syntax highlighting and bracket matching in Toml files.",
5
6
  "languages": [
6
7
  {
7
8
  "id": "toml",
8
- "extensions": [".toml", ".tml", ".replit"],
9
- "filenames": ["Cargo.lock", "Gopkg.lock"],
9
+ "extensions": [
10
+ ".toml",
11
+ ".tml",
12
+ ".replit"
13
+ ],
14
+ "filenames": [
15
+ "Cargo.lock",
16
+ "Gopkg.lock"
17
+ ],
10
18
  "tokenize": "src/tokenizeToml.js"
11
19
  }
12
20
  ]
@@ -200,6 +200,10 @@
200
200
  {
201
201
  "name": "StorageModifier",
202
202
  "foreground": "#AB9B67"
203
+ },
204
+ {
205
+ "name": "Heading",
206
+ "foreground": "#bf93b5"
203
207
  }
204
208
  ]
205
209
  }
@@ -941,6 +941,7 @@
941
941
  "_f_light_toml": "/icons/file_type_light_toml.svg",
942
942
  "_f_tox": "/icons/file_type_tox.svg",
943
943
  "_f_travis": "/icons/file_type_travis.svg",
944
+ "_f_truffle": "/icons/file_type_truffle.svg",
944
945
  "_f_trunk": "/icons/file_type_trunk.svg",
945
946
  "_f_tsconfig": "/icons/file_type_tsconfig.svg",
946
947
  "_f_tslint": "/icons/file_type_tslint.svg",
@@ -956,6 +957,7 @@
956
957
  "_f_typo3": "/icons/file_type_typo3.svg",
957
958
  "_f_unibeautify": "/icons/file_type_unibeautify.svg",
958
959
  "_f_light_unibeautify": "/icons/file_type_light_unibeautify.svg",
960
+ "_f_unison": "/icons/file_type_unison.svg",
959
961
  "_f_unlicense": "/icons/file_type_unlicense.svg",
960
962
  "_f_vagrant": "/icons/file_type_vagrant.svg",
961
963
  "_f_vala": "/icons/file_type_vala.svg",
@@ -1311,9 +1313,11 @@
1311
1313
  "jest.config.json": "_f_jest",
1312
1314
  "jest.config.base.json": "_f_jest",
1313
1315
  "jest.config.common.json": "_f_jest",
1316
+ "jest.config.e2e.json": "_f_jest",
1314
1317
  "jest.config.ts": "_f_jest",
1315
1318
  "jest.config.base.ts": "_f_jest",
1316
1319
  "jest.config.common.ts": "_f_jest",
1320
+ "jest.config.e2e.ts": "_f_jest",
1317
1321
  "jest.json": "_f_jest",
1318
1322
  ".jestrc": "_f_jest",
1319
1323
  ".jestrc.js": "_f_jest",
@@ -1330,6 +1334,9 @@
1330
1334
  "jest.config.babel.js": "_f_jest",
1331
1335
  "jest.config.babel.cjs": "_f_jest",
1332
1336
  "jest.config.babel.mjs": "_f_jest",
1337
+ "jest.config.e2e.js": "_f_jest",
1338
+ "jest.config.e2e.cjs": "_f_jest",
1339
+ "jest.config.e2e.mjs": "_f_jest",
1333
1340
  ".jpmignore": "_f_jpm",
1334
1341
  ".jsbeautifyrc": "_f_jsbeautify",
1335
1342
  "jsbeautifyrc": "_f_jsbeautify",
@@ -1662,10 +1669,13 @@
1662
1669
  ".tfignore": "_f_tfs",
1663
1670
  "tox.ini": "_f_tox",
1664
1671
  ".travis.yml": "_f_travis",
1672
+ "truffle-config.js": "_f_truffle",
1673
+ "truffle-config.ts": "_f_truffle",
1665
1674
  "trunk.yaml": "_f_trunk",
1666
1675
  "tsconfig.json": "_f_tsconfig",
1667
1676
  "tsconfig.app.json": "_f_tsconfig",
1668
1677
  "tsconfig.base.json": "_f_tsconfig",
1678
+ "tsconfig.build.json": "_f_tsconfig",
1669
1679
  "tsconfig.common.json": "_f_tsconfig",
1670
1680
  "tsconfig.dev.json": "_f_tsconfig",
1671
1681
  "tsconfig.development.json": "_f_tsconfig",
@@ -3078,6 +3088,7 @@
3078
3088
  "d.ts": "_f_typescriptdef",
3079
3089
  "d.cts": "_f_typescriptdef",
3080
3090
  "d.mts": "_f_typescriptdef",
3091
+ "u": "_f_unison",
3081
3092
  "vala": "_f_vala",
3082
3093
  "css.ts": "_f_vanilla_extract",
3083
3094
  "vapi": "_f_vapi",
@@ -3496,6 +3507,7 @@
3496
3507
  "twig": "_f_twig",
3497
3508
  "typescript": "_f_typescript",
3498
3509
  "typoscript": "_f_typo3",
3510
+ "unison": "_f_unison",
3499
3511
  "vb": "_f_vb",
3500
3512
  "vba": "_f_vba",
3501
3513
  "velocity": "_f_velocity",
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_light_objidconfig</title><path d="M6.337,3.126A3.4,3.4,0,0,0,6.146,4.9c.045.387.383.926.383,1.281a11.26,11.26,0,0,0-1.293-.4,6.425,6.425,0,0,0-1.473-.174c-.309,0-1.079-.081-1.337.141-.315.272-.12.439.128.776A5.947,5.947,0,0,0,6.228,8.815a13.113,13.113,0,0,0-.082,14.43,12.905,12.905,0,0,0,23.578-5.936,12.967,12.967,0,0,0-7.67-13.071,13.187,13.187,0,0,0-8.306-.687,12.623,12.623,0,0,0-3.163,1.264c-.279.155-1.4,1.076-1.616.967a7.916,7.916,0,0,1-.357-.859,4.231,4.231,0,0,0-.72-.932C7.7,3.8,6.54,2.8,6.337,3.126M7.709,14.074a76.3,76.3,0,0,0,11.11.67c1.761-.046,3.519-.18,5.271-.366a22.36,22.36,0,0,1,2.71-.322c.623.014.686.357.74.976.263,3.024-3.83,4.3-6.11,4.712a24.5,24.5,0,0,1-9.8-.259,7.691,7.691,0,0,1-4.494-2.534,2.758,2.758,0,0,1-.567-1.988c.1-.946.258-1,1.14-.89m2.423,1.318c-.282.456.084,1.467.331,1.86a2.429,2.429,0,0,0,1.389,1.038,2.4,2.4,0,0,0,1.652-.131c.37-.172,1.46-.979,1.305-1.509a16.333,16.333,0,0,1-2.472-.21,15.591,15.591,0,0,1-2.2-1.048m13.146.1a6.353,6.353,0,0,1-3.685,1.174c-.336,0-.694-.138-.743.151s.648.923.853,1.077a2.476,2.476,0,0,0,2.932-.042,2.362,2.362,0,0,0,.873-1.274c.067-.254.217-1.411-.23-1.086" style="fill:#242424"/><path d="M6.889,13.994c-.433.242-.381,1.441-.3,1.836A3.409,3.409,0,0,0,7.515,17.4a8.78,8.78,0,0,0,4.421,2.156A23.247,23.247,0,0,0,22.6,19.479c2.1-.553,5.367-1.96,4.9-4.683-.106-.625-.222-.778-.853-.722-1.153.1-2.3.283-3.453.394-1.883.181-3.773.29-5.666.3-2.2.006-4.4-.13-6.6-.339-.84-.08-1.68-.171-2.519-.266-.286-.033-1.253-.319-1.53-.164m3.679,1.633a6.311,6.311,0,0,0,2.239.927c.182.037,2.006.119,2,.1.167.57-.985,1.377-1.407,1.551a2.405,2.405,0,0,1-3.175-1.439,2.127,2.127,0,0,1-.12-1.181c.134-.29.1-.2.463.045m12.979,0c.407,2.451-2.851,3.625-4.32,1.79-.182-.228-.5-.579-.311-.772a9.13,9.13,0,0,1,1.384-.008,6.185,6.185,0,0,0,1.9-.52c.333-.15,1.267-.964,1.346-.491" style="fill:#04b3c3"/></svg>
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000" xml:space="preserve"><style>.st1{fill:#262626}</style><path class="st1" d="M188.36 281.28c-51.78-13.02-94.02-38.55-121.23-87.56 46.12-13.74 89-6.19 131.83 14.73-15.23-32.18-17.91-64.2-7.13-98.1 39.14 16.12 63.93 44.44 75.8 85.06C369.86 119.34 482.3 94.5 605.09 128.1c89.88 24.6 161.26 77.38 213.66 155.45 105.08 156.55 82.11 369.06-53.22 497.88-137.87 131.24-347.13 141.68-495.61 25.54-157.26-122.99-198.07-354.89-81.56-525.69zm17.38 155.01c-2.52 6.01-5.14 10.74-6.53 15.81-12.84 46.97 11.46 93.16 69.99 121.51 121.18 58.7 249.3 55.75 377.65 34.95 62.94-10.2 122.96-31.52 160.77-89.89 16.76-25.88 14.85-53.15 1.1-81.71-201.14 33.95-401.52 30.45-602.98-.67z"/><path d="M205.74 436.29c201.47 31.13 401.84 34.63 602.98.67 13.76 28.55 15.66 55.83-1.1 81.71-37.81 58.37-97.83 79.69-160.77 89.89-128.35 20.8-256.47 23.74-377.65-34.96-58.53-28.35-82.83-74.54-69.99-121.51 1.39-5.07 4.01-9.8 6.53-15.8zm492.94 42.19c-41.78 31.76-87.52 44.63-139.06 38.88 7.9 24.5 22.95 40.93 46.03 48.62 28.27 9.42 53.8 3.22 74.72-18.27 18.35-18.85 23.92-41.89 18.31-69.23zm-257.05 38.86c-51.68 5.85-97.51-7.24-139.15-38.84-5.41 27.03-.09 49.95 17.94 68.75 20.75 21.64 46.21 28.1 74.57 18.92 23.38-7.58 38.6-24.08 46.64-48.83z" style="fill:#00b6c1"/><path class="st1" d="M698.68 478.48c5.61 27.34.04 50.38-18.3 69.22-20.92 21.49-46.45 27.68-74.72 18.27-23.08-7.69-38.13-24.12-46.03-48.62 51.53 5.76 97.26-7.11 139.05-38.87zM441.63 517.34c-8.04 24.75-23.26 41.25-46.65 48.83-28.35 9.18-53.82 2.72-74.57-18.92-18.03-18.8-23.35-41.72-17.94-68.75 41.65 31.59 87.48 44.68 139.16 38.84z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_objidconfig</title><path d="M10.073,15.412c-.5,3.024,4.139,4.325,4.807,1.162a6,6,0,0,1-2.917-.3,6.116,6.116,0,0,1-.9-.41c-.186-.1-.953-.667-.988-.455m13.3-.066A4.828,4.828,0,0,1,20.7,16.533a14.126,14.126,0,0,0-1.66.078c-.313.1-.21-.125-.215.2a1.332,1.332,0,0,0,.306.6,2.552,2.552,0,0,0,2.506.975,2.486,2.486,0,0,0,1.81-1.535,2.426,2.426,0,0,0,.123-.69c0-.037.022-1.107-.2-.814" style="fill:#d4d4d4"/><path d="M6.337,3.126A3.4,3.4,0,0,0,6.146,4.9c.045.387.383.926.383,1.281a11.26,11.26,0,0,0-1.293-.4,6.425,6.425,0,0,0-1.473-.174c-.309,0-1.079-.081-1.337.141-.315.272-.12.439.128.776A5.947,5.947,0,0,0,6.228,8.815a13.113,13.113,0,0,0-.082,14.43,12.905,12.905,0,0,0,23.578-5.936,12.967,12.967,0,0,0-7.67-13.071,13.187,13.187,0,0,0-8.306-.687,12.623,12.623,0,0,0-3.163,1.264c-.279.155-1.4,1.076-1.616.967a7.916,7.916,0,0,1-.357-.859,4.231,4.231,0,0,0-.72-.932C7.7,3.8,6.54,2.8,6.337,3.126m.875,10.928c.214.2,1.078.146,1.362.181.5.061,1.008.115,1.509.171,1.068.121,2.148.185,3.22.257,1.644.11,3.289.183,4.939.161a57.347,57.347,0,0,0,6.076-.412c.432-.052.867-.1,1.3-.15.4-.048,1.08-.3,1.46-.142.507.215.474,1.224.382,1.7-.483,2.523-4.045,3.523-6.168,3.89a23.644,23.644,0,0,1-10.212-.426,8.358,8.358,0,0,1-3.225-1.64,3.558,3.558,0,0,1-1.231-1.853c-.026-.136.026-2.262.588-1.74" style="fill:#04b4c4"/></svg>
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000" xml:space="preserve"><style>.st3{fill:#d2d2d2}</style><path d="M188.36 281.28c-51.78-13.02-94.02-38.55-121.23-87.56 46.12-13.74 89-6.19 131.83 14.73-15.23-32.18-17.91-64.2-7.13-98.1 39.14 16.12 63.93 44.44 75.8 85.06C369.86 119.34 482.3 94.5 605.09 128.1c89.88 24.6 161.26 77.38 213.66 155.45 105.08 156.55 82.11 369.06-53.22 497.88-137.87 131.24-347.13 141.68-495.61 25.54-157.26-122.99-198.07-354.89-81.56-525.69zm17.38 155.01c-2.52 6.01-5.14 10.74-6.53 15.81-12.84 46.97 11.46 93.16 69.99 121.51 121.18 58.7 249.3 55.75 377.65 34.95 62.94-10.2 122.96-31.52 160.77-89.89 16.76-25.88 14.85-53.15 1.1-81.71-201.14 33.95-401.52 30.45-602.98-.67z" style="fill:#00b7c3"/><path class="st3" d="M698.68 478.48c5.61 27.34.04 50.38-18.3 69.22-20.92 21.49-46.45 27.68-74.72 18.27-23.08-7.69-38.13-24.12-46.03-48.62 51.53 5.76 97.26-7.11 139.05-38.87zM441.63 517.34c-8.04 24.75-23.26 41.25-46.65 48.83-28.35 9.18-53.82 2.72-74.57-18.92-18.03-18.8-23.35-41.72-17.94-68.75 41.65 31.59 87.48 44.68 139.16 38.84z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_renovate</title><circle cx="16" cy="16" r="14" style="fill:#ffe42e"/><path d="M21.052,21.433l-2.889-2.889a1.293,1.293,0,0,1,0-1.829l4.28-4.28a.375.375,0,0,0,0-.53l-1.577-1.577a.374.374,0,0,0-.53,0l-.963.963-.65-.649.963-.963a1.293,1.293,0,0,1,1.829,0l1.577,1.577a1.3,1.3,0,0,1,0,1.829l-4.28,4.279a.377.377,0,0,0,0,.53l2.89,2.889Z" style="fill:#8bb5b5"/><path d="M24.738,23.879l-.59.59a.833.833,0,0,1-1.179,0l-3.538-3.538a.833.833,0,0,1,0-1.179l.59-.59a.835.835,0,0,1,1.179,0L24.738,22.7A.835.835,0,0,1,24.738,23.879Z" style="fill:#d95612"/><rect x="8.549" y="15.058" width="1.922" height="1.922" transform="translate(-8.542 11.416) rotate(-45)" style="fill:#24bfbe"/><path d="M18.679,9.566l1.769,1.769a.833.833,0,0,1,0,1.179L12.783,20.18a.835.835,0,0,1-1.179,0L9.835,18.411a.834.834,0,0,1,0-1.18L17.5,9.566A.835.835,0,0,1,18.679,9.566Z" style="fill:#25c4c3"/><rect x="9.908" y="13.699" width="1.922" height="1.922" transform="translate(-7.183 11.979) rotate(-45)" style="fill:#1ddedd"/><rect x="11.248" y="12.359" width="1.922" height="1.922" transform="translate(-5.842 12.535) rotate(-45)" style="fill:#24bfbe"/><rect x="12.608" y="10.999" width="1.922" height="1.922" transform="translate(-4.483 13.098) rotate(-45)" style="fill:#1ddedd"/><rect x="13.967" y="9.64" width="1.922" height="1.922" transform="translate(-3.124 13.661) rotate(-45)" style="fill:#1bcfce"/><rect x="15.326" y="8.281" width="1.922" height="1.922" transform="translate(-1.765 14.224) rotate(-45)" style="fill:#24bfbe"/><rect x="7.189" y="13.699" width="1.922" height="1.922" transform="translate(-7.979 10.057) rotate(-45)" style="fill:#1bcfce"/><rect x="9.889" y="10.999" width="1.922" height="1.922" transform="translate(-5.279 11.175) rotate(-45)" style="fill:#1bcfce"/><rect x="12.608" y="8.281" width="1.922" height="1.922" transform="translate(-2.561 12.301) rotate(-45)" style="fill:#34edeb"/><rect x="13.967" y="6.921" width="1.922" height="1.922" transform="translate(-1.202 12.864) rotate(-45)" style="fill:#1bcfce"/><rect x="8.53" y="9.64" width="1.922" height="1.922" transform="translate(-4.716 9.816) rotate(-45)" style="fill:#34edeb"/><rect x="12.608" y="5.562" width="1.922" height="1.922" transform="translate(-0.638 11.505) rotate(-45)" style="fill:#34edeb"/><rect x="4.471" y="10.98" width="1.922" height="1.922" transform="translate(-6.853 7.339) rotate(-45)" style="fill:#98edeb"/><rect x="8.53" y="6.921" width="1.922" height="1.922" transform="translate(-2.794 9.02) rotate(-45)" style="fill:#98edeb"/><path d="M19.829,10.716l.619.619a.833.833,0,0,1,0,1.179L12.783,20.18a.835.835,0,0,1-1.179,0l-.619-.62a.833.833,0,0,0,1.179,0L19.829,11.9A.833.833,0,0,0,19.829,10.716Z" style="fill:#00a3a2"/><path d="M19.3,10.185l-.619-.619a.835.835,0,0,0-1.179,0L9.835,17.231a.834.834,0,0,0,0,1.18l.619.619a.836.836,0,0,1,0-1.18l7.665-7.665A.835.835,0,0,1,19.3,10.185Z" style="fill:#39d9d8"/><path d="M21.748,19.71l-.314-.314a1.252,1.252,0,0,0-1.769,0h0a1.25,1.25,0,0,0,0,1.769l.314.314a.835.835,0,0,1,0-1.179l.59-.59A.835.835,0,0,1,21.748,19.71Z" style="fill:#eb6e2d"/><path d="M12.194,20.791a1.194,1.194,0,0,1-.85-.352L9.575,18.67a1.2,1.2,0,0,1,0-1.7L17.24,9.306a1.2,1.2,0,0,1,1.7,0l1.769,1.769a1.2,1.2,0,0,1,0,1.7l-7.665,7.665A1.194,1.194,0,0,1,12.194,20.791Zm5.9-11.1a.463.463,0,0,0-.33.136L10.1,17.491a.466.466,0,0,0,0,.66l1.769,1.769a.467.467,0,0,0,.659,0l7.666-7.665a.468.468,0,0,0,0-.66L18.42,9.826A.464.464,0,0,0,18.09,9.69Z" style="fill:#13acbd"/><path d="M23.559,25.081a1.194,1.194,0,0,1-.85-.352l-3.538-3.538a1.2,1.2,0,0,1,0-1.7l.59-.589a1.2,1.2,0,0,1,1.7,0L25,22.44a1.2,1.2,0,0,1,0,1.7l-.59.59A1.194,1.194,0,0,1,23.559,25.081ZM20.61,19.286a.462.462,0,0,0-.329.136l-.59.59a.467.467,0,0,0,0,.66l3.538,3.537a.465.465,0,0,0,.659,0l.59-.589a.467.467,0,0,0,0-.66L20.94,19.422A.464.464,0,0,0,20.61,19.286Z" style="fill:#bf4404"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_renovate</title><circle cx="16" cy="16" r="14" fill="#007fa0"/><path d="M21.052 21.433l-2.889-2.889a1.293 1.293 0 010-1.829l4.28-4.28a.375.375 0 000-.53l-1.577-1.577a.374.374 0 00-.53 0l-.963.963-.65-.649.963-.963a1.293 1.293 0 011.829 0l1.577 1.577a1.3 1.3 0 010 1.829l-4.28 4.279a.377.377 0 000 .53l2.89 2.889z" fill="#fff"/><path d="M24.738 23.879l-.59.59a.833.833 0 01-1.179 0l-3.538-3.538a.833.833 0 010-1.179l.59-.59a.835.835 0 011.179 0l3.538 3.538a.835.835 0 010 1.179z" fill="#007fa0"/><path fill="#fff" d="M8.15 16.019l1.36-1.36 1.359 1.36-1.36 1.359z"/><path d="M18.679 9.566l1.769 1.769a.833.833 0 010 1.179l-7.665 7.666a.835.835 0 01-1.179 0l-1.769-1.769a.834.834 0 010-1.18L17.5 9.566a.835.835 0 011.179 0zM9.51 14.66l1.359-1.36 1.359 1.36-1.36 1.359z" fill="#3cb6b0"/><path fill="#fff" d="M10.85 13.32l1.36-1.358 1.359 1.359-1.36 1.359z"/><path fill="#3cb6b0" d="M12.21 11.96l1.359-1.359 1.359 1.36-1.36 1.358z"/><path fill="#fff" d="M14.928 9.242l1.359-1.359 1.359 1.36-1.36 1.358z"/><path fill="#3cb6b0" d="M6.791 14.66l1.36-1.359 1.358 1.36-1.359 1.358zM9.491 11.96l1.36-1.36 1.358 1.36-1.359 1.359zM12.21 9.241l1.359-1.359 1.359 1.36-1.36 1.358z"/><path fill="#3cb6b0" d="M13.568 7.882l1.36-1.36 1.358 1.36-1.359 1.359zM8.132 10.6l1.36-1.358L10.85 10.6 9.491 11.96z"/><path fill="#3cb6b0" d="M12.21 6.523l1.36-1.36 1.358 1.36-1.359 1.359zM4.073 11.942l1.359-1.36 1.359 1.36L5.43 13.3zM8.132 7.882L9.49 6.523l1.359 1.36L9.49 9.24z"/><path d="M12.194 20.791a1.194 1.194 0 01-.85-.352L9.575 18.67a1.2 1.2 0 010-1.7l7.665-7.664a1.2 1.2 0 011.7 0l1.769 1.769a1.2 1.2 0 010 1.7l-7.665 7.665a1.194 1.194 0 01-.85.351zm5.9-11.1a.463.463 0 00-.33.136L10.1 17.491a.466.466 0 000 .66l1.769 1.769a.467.467 0 00.659 0l7.666-7.665a.468.468 0 000-.66L18.42 9.826a.464.464 0 00-.33-.136z" fill="#007fa0"/><path d="M23.559 25.081a1.194 1.194 0 01-.85-.352l-3.538-3.538a1.2 1.2 0 010-1.7l.59-.589a1.2 1.2 0 011.7 0L25 22.44a1.2 1.2 0 010 1.7l-.59.59a1.194 1.194 0 01-.851.351zm-2.949-5.795a.462.462 0 00-.329.136l-.59.59a.467.467 0 000 .66l3.538 3.537a.465.465 0 00.659 0l.59-.589a.467.467 0 000-.66l-3.538-3.538a.464.464 0 00-.33-.136z" fill="#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16,2.25a13.79,13.79,0,0,1,0,27.58A13.71,13.71,0,0,1,2.34,16,13.71,13.71,0,0,1,16,2.25" style="fill:#5e464d"/><path d="M11.68,28.27c.55.19,2.43.8,2.51.21,0-.33-.94-.67-2.28-1.37a21.58,21.58,0,0,1-5.17-3.82,11.87,11.87,0,0,1-3.55-8.24,11.7,11.7,0,0,1,4.2-9.72A13.74,13.74,0,0,0,2,15.88a12.87,12.87,0,0,0,2.35,7.87A9.12,9.12,0,0,0,6.1,25.44a21.25,21.25,0,0,0,5.58,2.83" style="fill:#fff"/><path d="M29.85,12.87c-.85-4-3.47-6.76-7-8.72,2.69,1.91,6.47,6,4.24,9.57-1.89,2.87-6.49,2.31-9,.95-3-1.63-6.72-5.27-3-8.84,2.38-2.3,10,.28,8.65,3.73-.78,2-3.82,1.56-5.19.58a3,3,0,0,1-1.4-3.25c.14-.42.12-1-.46-.58a2.33,2.33,0,0,0-.73,1.46c-.63,4.5,7.37,8,9.75,3.63,1.23-2.25-.77-5.53-3.28-6.87A11.12,11.12,0,0,0,16.14,3c-3.86.28-7.09,2.69-7.49,6.63s2.21,7.44,5.29,9.55c3.24,2.22,7.6,3.67,11.58,2.35,3.58-1.18,5.05-5.28,4.33-8.63" style="fill:#fff"/><path d="M24.76,9.84c.38-2.58-2-4.35-4.1-5.15-2.53-1-5.88-.53-7.73,1.57-1.36,1.54-1.26,3.78-.57,5.59a9.56,9.56,0,0,0,6.2,5.57,11,11,0,0,0,6.34.23c2.91-.94,3.85-4,3.25-6.74a8.11,8.11,0,0,0-.59-1.74c-.36-.77-1.49-2.33.06-.43a7.66,7.66,0,0,1,.45.66,7.24,7.24,0,0,1,.75,1.68,6.21,6.21,0,0,1-2.16,7.18,8.88,8.88,0,0,1-6.17,1,11.66,11.66,0,0,1-7.26-3.93c-1.67-2-2.81-4.82-2.12-7.43A5.8,5.8,0,0,1,15,4a8.71,8.71,0,0,1,7,.82,6.36,6.36,0,0,1,2.56,2.58A4,4,0,0,1,25,9a3,3,0,0,1,0,.67c0,.08-.19.31-.16.12" style="fill:#3fe0c5"/></svg>