@seniorsistemas/angular-components 14.10.0 → 14.10.1

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 (69) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +39 -361
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/code-editor/core/facades/core-facade.d.ts +3 -1
  6. package/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -1
  7. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.d.ts +0 -1
  8. package/components/code-editor/infra/utils/index.d.ts +0 -1
  9. package/esm2015/components/code-editor/core/facades/core-facade.js +15 -10
  10. package/esm2015/components/code-editor/core/use-cases/core-linters.js +5 -8
  11. package/esm2015/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +7 -4
  12. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +6 -3
  13. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +2 -3
  14. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +1 -3
  15. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +1 -2
  16. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +6 -3
  17. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +4 -4
  18. package/esm2015/components/code-editor/infra/utils/index.js +1 -2
  19. package/esm2015/components/code-editor/presentation/code-editor-component.js +3 -2
  20. package/esm5/components/code-editor/core/facades/core-facade.js +15 -10
  21. package/esm5/components/code-editor/core/use-cases/core-linters.js +5 -8
  22. package/esm5/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +7 -4
  23. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +6 -3
  24. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +2 -3
  25. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +1 -3
  26. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +1 -2
  27. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +6 -3
  28. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +4 -4
  29. package/esm5/components/code-editor/infra/utils/index.js +1 -2
  30. package/esm5/components/code-editor/presentation/code-editor-component.js +3 -2
  31. package/fesm2015/seniorsistemas-angular-components.js +40 -283
  32. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  33. package/fesm5/seniorsistemas-angular-components.js +40 -362
  34. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  35. package/package.json +1 -1
  36. package/seniorsistemas-angular-components.metadata.json +1 -1
  37. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.d.ts +0 -1
  38. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.d.ts +0 -4
  39. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.d.ts +0 -6
  40. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.d.ts +0 -2
  41. package/components/code-editor/infra/linters/tax-calculation/models/index.d.ts +0 -1
  42. package/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.d.ts +0 -4
  43. package/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.d.ts +0 -11
  44. package/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.d.ts +0 -2
  45. package/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.d.ts +0 -6
  46. package/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.d.ts +0 -6
  47. package/components/code-editor/infra/utils/regex-index-of.d.ts +0 -8
  48. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.js +0 -1
  49. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.js +0 -1
  50. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.js +0 -164
  51. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.js +0 -30
  52. package/esm2015/components/code-editor/infra/linters/tax-calculation/models/index.js +0 -1
  53. package/esm2015/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js +0 -1
  54. package/esm2015/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.js +0 -19
  55. package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js +0 -3
  56. package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.js +0 -16
  57. package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.js +0 -25
  58. package/esm2015/components/code-editor/infra/utils/regex-index-of.js +0 -12
  59. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.js +0 -1
  60. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.js +0 -1
  61. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.js +0 -191
  62. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.js +0 -34
  63. package/esm5/components/code-editor/infra/linters/tax-calculation/models/index.js +0 -1
  64. package/esm5/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js +0 -1
  65. package/esm5/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.js +0 -21
  66. package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js +0 -3
  67. package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.js +0 -49
  68. package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.js +0 -42
  69. package/esm5/components/code-editor/infra/utils/regex-index-of.js +0 -12
@@ -1,6 +0,0 @@
1
- import { Extension } from "@codemirror/state";
2
- /**
3
- * Adds an watcher to the paste command that updates the core's completions items
4
- * @returns An extension containing everything needed to create the the updater
5
- */
6
- export declare function onPasteCompletionItemsUpdater(): Extension;
@@ -1,2 +0,0 @@
1
- import { CompletionItem } from "../models";
2
- export declare function updateCoreCompletionItems(completionItem: CompletionItem): void;
@@ -1 +0,0 @@
1
- export * from "./interfaces/validation";
@@ -1,4 +0,0 @@
1
- import { Marker } from "../../../../../core/models";
2
- export interface Validation {
3
- validate: (code: string, completionItems: string[]) => Promise<Marker[]>;
4
- }
@@ -1,11 +0,0 @@
1
- import { LinterFacade } from "../../../core/facades/linter-facade";
2
- import { Marker } from "../../../core/models";
3
- /**
4
- * Linter for the "TaxCalculation" Language
5
- */
6
- export declare class TaxCalculationLinter implements LinterFacade {
7
- private _validation;
8
- constructor();
9
- lint(code: string, completionItems?: string[]): Promise<Marker[]>;
10
- private setValidation;
11
- }
@@ -1,2 +0,0 @@
1
- export * from "./validation-workers-compositor/validations-workers-composite";
2
- export * from "./validation-composite";
@@ -1,6 +0,0 @@
1
- import { Marker } from "../../../../core/models";
2
- import { Validation } from "../models";
3
- export declare class ValidationComposite implements Validation {
4
- private _validations;
5
- validate(code: string, completionItems: string[]): Promise<Marker[]>;
6
- }
@@ -1,6 +0,0 @@
1
- import { Marker } from "../../../../../core/models";
2
- import { Validation } from "../../models";
3
- export declare class ValidationWorkersComposite implements Validation {
4
- private _validations;
5
- validate(code: string, completionItems: string[]): Promise<Marker[]>;
6
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Function to get the position of the first occurrence of a regex in a string
3
- * @param string The string to search into
4
- * @param regex The regex to search into the string
5
- * @param position The index at which to begin searching the string. If omitted, search starts at the index 0.
6
- * @returns the position of the first occurrence of the informed regex.
7
- */
8
- export declare function regexIndexOf(string: string, regex: RegExp, position: number): number;
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvbGFuZ3VhZ2VzL3RheC1jYWxjdWxhdGlvbi9leHRlbnNpb25zL29uLXBhc3RlLWNvbXBsZXRpb24taXRlbXMtdXBkYXRlci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIEludGVyZmFjZXMgKi9cbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXMvcmVxdWVzdC1leHRyYS1pbmZvXCI7XG4iXX0=
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1leHRyYS1pbmZvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vZXh0ZW5zaW9ucy9vbi1wYXN0ZS1jb21wbGV0aW9uLWl0ZW1zLXVwZGF0ZXIvbW9kZWxzL2ludGVyZmFjZXMvcmVxdWVzdC1leHRyYS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RFeHRyYUluZm8ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBmaWx0ZXI6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,164 +0,0 @@
1
- import { keymap, } from "@codemirror/view";
2
- import { AutocompleteService } from "../autocomplete/autocomplete.service";
3
- import { Keywords, RequestTypes, MetaType, CompletionTypes, } from "../../models";
4
- import { getLanguageConfigs, getSafeResponse, updateCoreCompletionItems } from "../../utils";
5
- /**
6
- * Adds an watcher to the paste command that updates the core's completions items
7
- * @returns An extension containing everything needed to create the the updater
8
- */
9
- export function onPasteCompletionItemsUpdater() {
10
- return [
11
- keymap.of([
12
- {
13
- key: "Ctrl-v",
14
- run: searchCompletionResultsCommand,
15
- }
16
- ])
17
- ];
18
- }
19
- let cancelLastCompletionSearch = () => { };
20
- const ɵ0 = cancelLastCompletionSearch;
21
- /*
22
- * Must use the setTimeout for we does not have access to the code pasted on the current state, so we need to wait codemirror
23
- * remake the state, also it would be way more difficult to work with the clipboard
24
- */
25
- function searchCompletionResultsCommand(view) {
26
- cancelLastCompletionSearch();
27
- const token = new AbortController();
28
- setTimeout(() => {
29
- if (!token.signal.aborted) {
30
- searchCompletionResults(view.state.doc.toString(), token);
31
- }
32
- }, 200);
33
- cancelLastCompletionSearch = () => token.abort();
34
- return false;
35
- }
36
- /*
37
- * Requests the necessary items to update the core's completionItems when the user uses the ctrl+v
38
- */
39
- function searchCompletionResults(code, token) {
40
- const codeWithoutStrings = getCodeWithoutStringedCode(code);
41
- const variablesToVerify = getVariablesToVerify(codeWithoutStrings);
42
- const requests = getRequestsBasedOnVariables(variablesToVerify, token.signal);
43
- Promise
44
- .all(requests)
45
- .then(responses => {
46
- if (!token.signal.aborted) {
47
- const expressionsCompletionItems = getExpressionsCompletionsItems(responses);
48
- const entitiesCompletionItems = getEntitiesCompletionsItems(responses);
49
- const completionItems = expressionsCompletionItems.concat(entitiesCompletionItems);
50
- updateCompletionItems(completionItems);
51
- }
52
- });
53
- }
54
- /*
55
- * Returns the code itself without its inside double quotes parts, e.g
56
- * on string `return this "here not" code`, the return value will be `return this code`;
57
- */
58
- function getCodeWithoutStringedCode(code) {
59
- return (code !== null && code !== void 0 ? code : "").replace(/"([^"])*["]?/g, " ");
60
- }
61
- /*
62
- * Returns the code's parts that need to be verified by requests, excluding the keywords,
63
- * special character (except dot/`.` in middle of two regex's \w and at the end and hashtag in sentence's start)
64
- * e.g on string `SE (something.another OU expression E something.another.)`, the variables array would be
65
- * ["something.another", "expression", "something.another."]
66
- */
67
- function getVariablesToVerify(code) {
68
- var _a;
69
- const keywordsRegex = Object
70
- .values(Keywords)
71
- .map(keyword => `(?!${keyword}\\b)`)
72
- .join("");
73
- return (_a = (code !== null && code !== void 0 ? code : "").match(new RegExp(`[#]?\\b(${keywordsRegex})(\\w+\\.)*\\w+[\\.]?`, "g"))) !== null && _a !== void 0 ? _a : [];
74
- }
75
- /*
76
- * Only needs to request the expressions and the fields from an entity;
77
- * Creates an request to every variable;
78
- * Uses the AutocompleteService for the requests needed here are Autocomplete's usage, so we are just
79
- * borrowing from it
80
- */
81
- function getRequestsBasedOnVariables(variables, abortSignal) {
82
- var _a;
83
- const languageConfigs = getLanguageConfigs();
84
- const requests = [];
85
- for (const variable of variables) {
86
- const splittedVariable = variable.split(".");
87
- if (splittedVariable.length === 1) {
88
- const extraInfo = {
89
- path: "",
90
- filter: splittedVariable[0]
91
- };
92
- requests.push({
93
- requestType: RequestTypes.ListExpressionMetadata,
94
- request: AutocompleteService.listExpressionMetadata({
95
- context: languageConfigs.contexts,
96
- subcontext: (_a = languageConfigs.subContexts) !== null && _a !== void 0 ? _a : [],
97
- name: splittedVariable[0]
98
- }, abortSignal),
99
- extraInfo
100
- });
101
- }
102
- else if (splittedVariable.length > 2) {
103
- const extraInfo = {
104
- path: splittedVariable
105
- .slice(0, splittedVariable.length - 1)
106
- .join("."),
107
- filter: ""
108
- };
109
- requests.push({
110
- requestType: RequestTypes.GetFacadeMetadataByPath,
111
- request: AutocompleteService.getFacadeMetadataByPath({
112
- context: splittedVariable[0],
113
- entityName: splittedVariable[1],
114
- fields: splittedVariable.slice(2, splittedVariable.length - 1)
115
- }, abortSignal),
116
- extraInfo
117
- });
118
- }
119
- }
120
- return requests.map(request => getSafeResponse(request));
121
- }
122
- function getExpressionsCompletionsItems(responses) {
123
- const expressionsResponses = responses.filter(response => (response === null || response === void 0 ? void 0 : response.requestType) === RequestTypes.ListExpressionMetadata);
124
- return expressionsResponses
125
- .map(expressionsResponse => {
126
- var _a, _b, _c, _d, _e, _f;
127
- return {
128
- path: (_b = (_a = expressionsResponse.extraInfo) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : "",
129
- filter: (_d = (_c = expressionsResponse.extraInfo) === null || _c === void 0 ? void 0 : _c.filter) !== null && _d !== void 0 ? _d : "",
130
- completions: ((_f = (_e = expressionsResponse.response) === null || _e === void 0 ? void 0 : _e.expressionMetadata) !== null && _f !== void 0 ? _f : [])
131
- .map(expressionMetadata => ({
132
- label: expressionMetadata.name,
133
- type: expressionMetadata.type === MetaType.PUBLIC_EXPRESSION
134
- ? CompletionTypes.Expression
135
- : CompletionTypes.UserExpression
136
- }))
137
- };
138
- })
139
- .flat();
140
- }
141
- function getEntitiesCompletionsItems(responses) {
142
- const facadesResponsesFromGet = responses.filter(response => (response === null || response === void 0 ? void 0 : response.requestType) === RequestTypes.GetFacadeMetadataByPath);
143
- return facadesResponsesFromGet
144
- .map(facadesResponseFromGet => {
145
- var _a, _b, _c;
146
- return {
147
- path: facadesResponseFromGet.extraInfo.path,
148
- filter: facadesResponseFromGet.extraInfo.filter,
149
- completions: ((_c = (_b = (_a = facadesResponseFromGet.response) === null || _a === void 0 ? void 0 : _a.facadeMetadata) === null || _b === void 0 ? void 0 : _b.fields) !== null && _c !== void 0 ? _c : [])
150
- .map(facade => ({
151
- label: facade.name,
152
- type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue
153
- }))
154
- };
155
- })
156
- .flat();
157
- }
158
- function updateCompletionItems(completionItems) {
159
- for (const completionItem of completionItems) {
160
- updateCoreCompletionItems(completionItem);
161
- }
162
- }
163
- export { ɵ0 };
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tcGFzdGUtY29tcGxldGlvbi1pdGVtcy11cGRhdGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vZXh0ZW5zaW9ucy9vbi1wYXN0ZS1jb21wbGV0aW9uLWl0ZW1zLXVwZGF0ZXIvb24tcGFzdGUtY29tcGxldGlvbi1pdGVtcy11cGRhdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxNQUFNLEdBQ1QsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFlBQVksRUFNWixRQUFRLEVBQ1IsZUFBZSxHQUdsQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZix5QkFBeUIsRUFDNUIsTUFBTSxhQUFhLENBQUM7QUFFckI7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QjtJQUN6QyxPQUFPO1FBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNOO2dCQUNJLEdBQUcsRUFBRSxRQUFRO2dCQUNiLEdBQUcsRUFBRSw4QkFBOEI7YUFDdEM7U0FDSixDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUM7QUFFRCxJQUFJLDBCQUEwQixHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQzs7QUFFdEQ7OztHQUdHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FBQyxJQUFnQjtJQUNwRCwwQkFBMEIsRUFBRSxDQUFDO0lBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFFcEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN2Qix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVSLDBCQUEwQixHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHVCQUF1QixDQUFDLElBQVksRUFBRSxLQUFzQjtJQUNqRSxNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVELE1BQU0saUJBQWlCLEdBQWEsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM3RSxNQUFNLFFBQVEsR0FBRywyQkFBMkIsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUUsT0FBTztTQUNGLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDYixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDdkIsTUFBTSwwQkFBMEIsR0FBcUIsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0YsTUFBTSx1QkFBdUIsR0FBcUIsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekYsTUFBTSxlQUFlLEdBQXFCLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JHLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsb0JBQW9CLENBQUMsSUFBWTs7SUFDdEMsTUFBTSxhQUFhLEdBQUcsTUFBTTtTQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDO1NBQ2hCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sT0FBTyxNQUFNLENBQUM7U0FDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsYUFBTyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLGFBQWEsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDO0FBQ3RHLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsMkJBQTJCLENBQUMsU0FBbUIsRUFBRSxXQUF3Qjs7SUFDOUUsTUFBTSxlQUFlLEdBQTBCLGtCQUFrQixFQUFFLENBQUM7SUFDcEUsTUFBTSxRQUFRLEdBQWtCLEVBQUUsQ0FBQztJQUVuQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtRQUM5QixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQy9CLE1BQU0sU0FBUyxHQUFxQjtnQkFDaEMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQzthQUM5QixDQUFDO1lBRUYsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDVixXQUFXLEVBQUUsWUFBWSxDQUFDLHNCQUFzQjtnQkFDaEQsT0FBTyxFQUFFLG1CQUFtQixDQUFDLHNCQUFzQixDQUMvQztvQkFDSSxPQUFPLEVBQUUsZUFBZSxDQUFDLFFBQVE7b0JBQ2pDLFVBQVUsUUFBRSxlQUFlLENBQUMsV0FBVyxtQ0FBSSxFQUFFO29CQUM3QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2lCQUM1QixFQUNELFdBQVcsQ0FDZDtnQkFDRCxTQUFTO2FBQ1osQ0FBQyxDQUFDO1NBRU47YUFBTSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxTQUFTLEdBQXFCO2dCQUNoQyxJQUFJLEVBQUUsZ0JBQWdCO3FCQUNqQixLQUFLLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7cUJBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ2QsTUFBTSxFQUFFLEVBQUU7YUFDYixDQUFDO1lBRUYsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDVixXQUFXLEVBQUUsWUFBWSxDQUFDLHVCQUF1QjtnQkFDakQsT0FBTyxFQUFFLG1CQUFtQixDQUFDLHVCQUF1QixDQUNoRDtvQkFDSSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO29CQUM1QixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO29CQUMvQixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUNqRSxFQUNELFdBQVcsQ0FDZDtnQkFDRCxTQUFTO2FBQ1osQ0FBQyxDQUFDO1NBQ047S0FDSjtJQUVELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFNBQTBCO0lBQzlELE1BQU0sb0JBQW9CLEdBQWlFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDbkgsQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsV0FBVyxNQUFLLFlBQVksQ0FBQyxzQkFBc0IsQ0FDaEUsQ0FBQztJQUVGLE9BQU8sb0JBQW9CO1NBQ3RCLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFOztRQUN2QixPQUFPO1lBQ0gsSUFBSSxjQUFFLG1CQUFtQixDQUFDLFNBQVMsMENBQUUsSUFBSSxtQ0FBSSxFQUFFO1lBQy9DLE1BQU0sY0FBRSxtQkFBbUIsQ0FBQyxTQUFTLDBDQUFFLE1BQU0sbUNBQUksRUFBRTtZQUNuRCxXQUFXLEVBQUUsYUFBQyxtQkFBbUIsQ0FBQyxRQUFRLDBDQUFFLGtCQUFrQixtQ0FBSSxFQUFFLENBQUM7aUJBQ2hFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDeEIsS0FBSyxFQUFFLGtCQUFrQixDQUFDLElBQUk7Z0JBQzlCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGlCQUFpQjtvQkFDeEQsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVO29CQUM1QixDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWM7YUFDdkMsQ0FBQyxDQUFDO1NBQ1YsQ0FBQztJQUNOLENBQUMsQ0FBQztTQUNELElBQUksRUFBRSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLFNBQTBCO0lBQzNELE1BQU0sdUJBQXVCLEdBQWtFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDdkgsQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsV0FBVyxNQUFLLFlBQVksQ0FBQyx1QkFBdUIsQ0FDakUsQ0FBQztJQUVGLE9BQU8sdUJBQXVCO1NBQ3pCLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFOztRQUMxQixPQUFPO1lBQ0gsSUFBSSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQzNDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUMvQyxXQUFXLEVBQUUsbUJBQUMsc0JBQXNCLENBQUMsUUFBUSwwQ0FBRSxjQUFjLDBDQUFFLE1BQU0sbUNBQUksRUFBRSxDQUFDO2lCQUN2RSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDbEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVU7YUFDOUYsQ0FBQyxDQUFDO1NBQ1YsQ0FBQztJQUNOLENBQUMsQ0FBQztTQUNELElBQUksRUFBRSxDQUFDO0FBRWhCLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLGVBQWlDO0lBQzVELEtBQUssTUFBTSxjQUFjLElBQUksZUFBZSxFQUFFO1FBQzFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQzdDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRWRpdG9yVmlldyxcbiAgICBrZXltYXAsXG59IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcblxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlU2VydmljZSB9IGZyb20gXCIuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgS2V5d29yZHMsXG4gICAgUmVxdWVzdFR5cGVzLFxuICAgIFJlc3BvbnNlLFxuICAgIFNhZmVSZXF1ZXN0LFxuICAgIFNhZmVSZXNwb25zZSxcbiAgICBUYXhDYWxjdWxhdGlvbkNvbmZpZ3MsXG4gICAgTGlzdEV4cHJlc3Npb25NZXRhZGF0YVJlc3BvbnNlLFxuICAgIE1ldGFUeXBlLFxuICAgIENvbXBsZXRpb25UeXBlcyxcbiAgICBDb21wbGV0aW9uSXRlbSxcbiAgICBHZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aFJlc3BvbnNlLFxufSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBSZXF1ZXN0RXh0cmFJbmZvIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQge1xuICAgIGdldExhbmd1YWdlQ29uZmlncyxcbiAgICBnZXRTYWZlUmVzcG9uc2UsXG4gICAgdXBkYXRlQ29yZUNvbXBsZXRpb25JdGVtc1xufSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcblxuLyoqXG4gKiBBZGRzIGFuIHdhdGNoZXIgdG8gdGhlIHBhc3RlIGNvbW1hbmQgdGhhdCB1cGRhdGVzIHRoZSBjb3JlJ3MgY29tcGxldGlvbnMgaXRlbXNcbiAqIEByZXR1cm5zIEFuIGV4dGVuc2lvbiBjb250YWluaW5nIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgdGhlIHVwZGF0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9uUGFzdGVDb21wbGV0aW9uSXRlbXNVcGRhdGVyICgpOiBFeHRlbnNpb24ge1xuICAgIHJldHVybiBbXG4gICAgICAgIGtleW1hcC5vZihbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcIkN0cmwtdlwiLFxuICAgICAgICAgICAgICAgIHJ1bjogc2VhcmNoQ29tcGxldGlvblJlc3VsdHNDb21tYW5kLFxuICAgICAgICAgICAgfVxuICAgICAgICBdKVxuICAgIF07XG59XG5cbmxldCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4vKlxuICogTXVzdCB1c2UgdGhlIHNldFRpbWVvdXQgZm9yIHdlIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBjb2RlIHBhc3RlZCBvbiB0aGUgY3VycmVudCBzdGF0ZSwgc28gd2UgbmVlZCB0byB3YWl0IGNvZGVtaXJyb3JcbiAqIHJlbWFrZSB0aGUgc3RhdGUsIGFsc28gaXQgd291bGQgYmUgd2F5IG1vcmUgZGlmZmljdWx0IHRvIHdvcmsgd2l0aCB0aGUgY2xpcGJvYXJkXG4gKi9cbmZ1bmN0aW9uIHNlYXJjaENvbXBsZXRpb25SZXN1bHRzQ29tbWFuZCh2aWV3OiBFZGl0b3JWaWV3KTogYm9vbGVhbiB7XG4gICAgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2goKTtcbiAgICBjb25zdCB0b2tlbiA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRva2VuLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICBzZWFyY2hDb21wbGV0aW9uUmVzdWx0cyh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9LCAyMDApO1xuXG4gICAgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2ggPSAoKSA9PiB0b2tlbi5hYm9ydCgpO1xuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLypcbiAqIFJlcXVlc3RzIHRoZSBuZWNlc3NhcnkgaXRlbXMgdG8gdXBkYXRlIHRoZSBjb3JlJ3MgY29tcGxldGlvbkl0ZW1zIHdoZW4gdGhlIHVzZXIgdXNlcyB0aGUgY3RybCt2XG4gKi9cbmZ1bmN0aW9uIHNlYXJjaENvbXBsZXRpb25SZXN1bHRzKGNvZGU6IHN0cmluZywgdG9rZW46IEFib3J0Q29udHJvbGxlcik6IHZvaWQge1xuICAgIGNvbnN0IGNvZGVXaXRob3V0U3RyaW5ncyA9IGdldENvZGVXaXRob3V0U3RyaW5nZWRDb2RlKGNvZGUpO1xuICAgIGNvbnN0IHZhcmlhYmxlc1RvVmVyaWZ5OiBzdHJpbmdbXSA9IGdldFZhcmlhYmxlc1RvVmVyaWZ5KGNvZGVXaXRob3V0U3RyaW5ncyk7XG4gICAgY29uc3QgcmVxdWVzdHMgPSBnZXRSZXF1ZXN0c0Jhc2VkT25WYXJpYWJsZXModmFyaWFibGVzVG9WZXJpZnksIHRva2VuLnNpZ25hbCk7XG5cbiAgICBQcm9taXNlXG4gICAgICAgIC5hbGwocmVxdWVzdHMpXG4gICAgICAgIC50aGVuKHJlc3BvbnNlcyA9PiB7XG4gICAgICAgICAgICBpZiAoIXRva2VuLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbnNDb21wbGV0aW9uSXRlbXM6IENvbXBsZXRpb25JdGVtW10gPSBnZXRFeHByZXNzaW9uc0NvbXBsZXRpb25zSXRlbXMocmVzcG9uc2VzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRpdGllc0NvbXBsZXRpb25JdGVtczogQ29tcGxldGlvbkl0ZW1bXSA9IGdldEVudGl0aWVzQ29tcGxldGlvbnNJdGVtcyhyZXNwb25zZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRpb25JdGVtczogQ29tcGxldGlvbkl0ZW1bXSA9IGV4cHJlc3Npb25zQ29tcGxldGlvbkl0ZW1zLmNvbmNhdChlbnRpdGllc0NvbXBsZXRpb25JdGVtcyk7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcGxldGlvbkl0ZW1zKGNvbXBsZXRpb25JdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xufVxuXG4vKlxuICogUmV0dXJucyB0aGUgY29kZSBpdHNlbGYgd2l0aG91dCBpdHMgaW5zaWRlIGRvdWJsZSBxdW90ZXMgcGFydHMsIGUuZ1xuICogb24gc3RyaW5nIGByZXR1cm4gdGhpcyBcImhlcmUgbm90XCIgY29kZWAsIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSBgcmV0dXJuIHRoaXMgIGNvZGVgO1xuICovXG5mdW5jdGlvbiBnZXRDb2RlV2l0aG91dFN0cmluZ2VkQ29kZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoY29kZSA/PyBcIlwiKS5yZXBsYWNlKC9cIihbXlwiXSkqW1wiXT8vZywgXCIgXCIpO1xufVxuXG4vKlxuICogUmV0dXJucyB0aGUgY29kZSdzIHBhcnRzIHRoYXQgbmVlZCB0byBiZSB2ZXJpZmllZCBieSByZXF1ZXN0cywgZXhjbHVkaW5nIHRoZSBrZXl3b3JkcyxcbiAqIHNwZWNpYWwgY2hhcmFjdGVyIChleGNlcHQgZG90L2AuYCBpbiBtaWRkbGUgb2YgdHdvIHJlZ2V4J3MgXFx3IGFuZCBhdCB0aGUgZW5kIGFuZCBoYXNodGFnIGluIHNlbnRlbmNlJ3Mgc3RhcnQpXG4gKiBlLmcgb24gc3RyaW5nIGBTRSAoc29tZXRoaW5nLmFub3RoZXIgT1UgZXhwcmVzc2lvbiBFIHNvbWV0aGluZy5hbm90aGVyLilgLCB0aGUgdmFyaWFibGVzIGFycmF5IHdvdWxkIGJlXG4gKiBbXCJzb21ldGhpbmcuYW5vdGhlclwiLCBcImV4cHJlc3Npb25cIiwgXCJzb21ldGhpbmcuYW5vdGhlci5cIl1cbiAqL1xuZnVuY3Rpb24gZ2V0VmFyaWFibGVzVG9WZXJpZnkoY29kZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGtleXdvcmRzUmVnZXggPSBPYmplY3RcbiAgICAgICAgLnZhbHVlcyhLZXl3b3JkcylcbiAgICAgICAgLm1hcChrZXl3b3JkID0+IGAoPyEke2tleXdvcmR9XFxcXGIpYClcbiAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgcmV0dXJuIChjb2RlID8/IFwiXCIpLm1hdGNoKG5ldyBSZWdFeHAoYFsjXT9cXFxcYigke2tleXdvcmRzUmVnZXh9KShcXFxcdytcXFxcLikqXFxcXHcrW1xcXFwuXT9gLCBcImdcIikpID8/IFtdO1xufVxuXG4vKlxuICogT25seSBuZWVkcyB0byByZXF1ZXN0IHRoZSBleHByZXNzaW9ucyBhbmQgdGhlIGZpZWxkcyBmcm9tIGFuIGVudGl0eTtcbiAqIENyZWF0ZXMgYW4gcmVxdWVzdCB0byBldmVyeSB2YXJpYWJsZTtcbiAqIFVzZXMgdGhlIEF1dG9jb21wbGV0ZVNlcnZpY2UgZm9yIHRoZSByZXF1ZXN0cyBuZWVkZWQgaGVyZSBhcmUgQXV0b2NvbXBsZXRlJ3MgdXNhZ2UsIHNvIHdlIGFyZSBqdXN0XG4gKiBib3Jyb3dpbmcgZnJvbSBpdFxuICovXG5mdW5jdGlvbiBnZXRSZXF1ZXN0c0Jhc2VkT25WYXJpYWJsZXModmFyaWFibGVzOiBzdHJpbmdbXSwgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogU2FmZVJlc3BvbnNlW10ge1xuICAgIGNvbnN0IGxhbmd1YWdlQ29uZmlnczogVGF4Q2FsY3VsYXRpb25Db25maWdzID0gZ2V0TGFuZ3VhZ2VDb25maWdzKCk7XG4gICAgY29uc3QgcmVxdWVzdHM6IFNhZmVSZXF1ZXN0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2YgdmFyaWFibGVzKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVkVmFyaWFibGUgPSB2YXJpYWJsZS5zcGxpdChcIi5cIik7XG5cbiAgICAgICAgaWYgKHNwbGl0dGVkVmFyaWFibGUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBleHRyYUluZm86IFJlcXVlc3RFeHRyYUluZm8gPSB7XG4gICAgICAgICAgICAgICAgcGF0aDogXCJcIixcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHNwbGl0dGVkVmFyaWFibGVbMF1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuTGlzdEV4cHJlc3Npb25NZXRhZGF0YSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0OiBBdXRvY29tcGxldGVTZXJ2aWNlLmxpc3RFeHByZXNzaW9uTWV0YWRhdGEoXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxhbmd1YWdlQ29uZmlncy5jb250ZXh0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YmNvbnRleHQ6IGxhbmd1YWdlQ29uZmlncy5zdWJDb250ZXh0cyA/PyBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHNwbGl0dGVkVmFyaWFibGVbMF1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYWJvcnRTaWduYWxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGV4dHJhSW5mb1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChzcGxpdHRlZFZhcmlhYmxlLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4dHJhSW5mbzogUmVxdWVzdEV4dHJhSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwYXRoOiBzcGxpdHRlZFZhcmlhYmxlXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCBzcGxpdHRlZFZhcmlhYmxlLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKFwiLlwiKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiXCJcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuR2V0RmFjYWRlTWV0YWRhdGFCeVBhdGgsXG4gICAgICAgICAgICAgICAgcmVxdWVzdDogQXV0b2NvbXBsZXRlU2VydmljZS5nZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aChcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogc3BsaXR0ZWRWYXJpYWJsZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IHNwbGl0dGVkVmFyaWFibGVbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IHNwbGl0dGVkVmFyaWFibGUuc2xpY2UoMiwgc3BsaXR0ZWRWYXJpYWJsZS5sZW5ndGggLSAxKVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhYm9ydFNpZ25hbFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZXh0cmFJbmZvXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0cy5tYXAocmVxdWVzdCA9PiBnZXRTYWZlUmVzcG9uc2UocmVxdWVzdCkpO1xufVxuXG5mdW5jdGlvbiBnZXRFeHByZXNzaW9uc0NvbXBsZXRpb25zSXRlbXMocmVzcG9uc2VzOiBSZXNwb25zZTxhbnk+W10pOiBDb21wbGV0aW9uSXRlbVtdIHtcbiAgICBjb25zdCBleHByZXNzaW9uc1Jlc3BvbnNlczogUmVzcG9uc2U8TGlzdEV4cHJlc3Npb25NZXRhZGF0YVJlc3BvbnNlLCBSZXF1ZXN0RXh0cmFJbmZvPltdID0gcmVzcG9uc2VzLmZpbHRlcihyZXNwb25zZSA9PlxuICAgICAgICByZXNwb25zZT8ucmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlcy5MaXN0RXhwcmVzc2lvbk1ldGFkYXRhXG4gICAgKTtcblxuICAgIHJldHVybiBleHByZXNzaW9uc1Jlc3BvbnNlc1xuICAgICAgICAubWFwKGV4cHJlc3Npb25zUmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwYXRoOiBleHByZXNzaW9uc1Jlc3BvbnNlLmV4dHJhSW5mbz8ucGF0aCA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZXhwcmVzc2lvbnNSZXNwb25zZS5leHRyYUluZm8/LmZpbHRlciA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zOiAoZXhwcmVzc2lvbnNSZXNwb25zZS5yZXNwb25zZT8uZXhwcmVzc2lvbk1ldGFkYXRhID8/IFtdKVxuICAgICAgICAgICAgICAgICAgICAubWFwKGV4cHJlc3Npb25NZXRhZGF0YSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGV4cHJlc3Npb25NZXRhZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXhwcmVzc2lvbk1ldGFkYXRhLnR5cGUgPT09IE1ldGFUeXBlLlBVQkxJQ19FWFBSRVNTSU9OXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBDb21wbGV0aW9uVHlwZXMuRXhwcmVzc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29tcGxldGlvblR5cGVzLlVzZXJFeHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZsYXQoKTtcbn1cblxuZnVuY3Rpb24gZ2V0RW50aXRpZXNDb21wbGV0aW9uc0l0ZW1zKHJlc3BvbnNlczogUmVzcG9uc2U8YW55PltdKTogQ29tcGxldGlvbkl0ZW1bXSB7XG4gICAgY29uc3QgZmFjYWRlc1Jlc3BvbnNlc0Zyb21HZXQ6IFJlc3BvbnNlPEdldEZhY2FkZU1ldGFkYXRhQnlQYXRoUmVzcG9uc2UsIFJlcXVlc3RFeHRyYUluZm8+W10gPSByZXNwb25zZXMuZmlsdGVyKHJlc3BvbnNlID0+XG4gICAgICAgIHJlc3BvbnNlPy5yZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGVzLkdldEZhY2FkZU1ldGFkYXRhQnlQYXRoXG4gICAgKTtcblxuICAgIHJldHVybiBmYWNhZGVzUmVzcG9uc2VzRnJvbUdldFxuICAgICAgICAubWFwKGZhY2FkZXNSZXNwb25zZUZyb21HZXQgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwYXRoOiBmYWNhZGVzUmVzcG9uc2VGcm9tR2V0LmV4dHJhSW5mby5wYXRoLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZmFjYWRlc1Jlc3BvbnNlRnJvbUdldC5leHRyYUluZm8uZmlsdGVyLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zOiAoZmFjYWRlc1Jlc3BvbnNlRnJvbUdldC5yZXNwb25zZT8uZmFjYWRlTWV0YWRhdGE/LmZpZWxkcyA/PyBbXSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcChmYWNhZGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBmYWNhZGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGZhY2FkZS50eXBlID09PSBNZXRhVHlwZS5FTlRJVFkgPyBDb21wbGV0aW9uVHlwZXMuRW50aXR5IDogQ29tcGxldGlvblR5cGVzLkZpbmFsVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgICAuZmxhdCgpO1xuXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbXBsZXRpb25JdGVtcyhjb21wbGV0aW9uSXRlbXM6IENvbXBsZXRpb25JdGVtW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGNvbXBsZXRpb25JdGVtIG9mIGNvbXBsZXRpb25JdGVtcykge1xuICAgICAgICB1cGRhdGVDb3JlQ29tcGxldGlvbkl0ZW1zKGNvbXBsZXRpb25JdGVtKTtcbiAgICB9XG59XG4iXX0=
@@ -1,30 +0,0 @@
1
- import { CodeMirror6Core } from "../../../codemirror-6-core";
2
- import { CompletionTypes } from "../models";
3
- const completionItemsMap = new Map();
4
- const usefulToCompletionItemsCompletionTypes = [
5
- CompletionTypes.Expression,
6
- CompletionTypes.UserExpression,
7
- CompletionTypes.FinalValue
8
- ];
9
- /*
10
- * Updates the completionItems used by the core.
11
- * Utilizes the path and filter to create a key and store the results from the search to the given "path.filter" on a map.
12
- * Must save the results to each different filter for the search does not bring all the results, so the user must do a more
13
- * specific filter to achieve its objective
14
- */
15
- export function updateCoreCompletionItems(completionItem) {
16
- const { path, filter, completions } = completionItem;
17
- const mapPath = `${path}.${filter}`;
18
- const filteredCompletions = (completions || []).filter(completion => usefulToCompletionItemsCompletionTypes.includes(completion === null || completion === void 0 ? void 0 : completion.type));
19
- const formattedSearchResults = filteredCompletions.map(completion => path === "" ? completion === null || completion === void 0 ? void 0 : completion.label : `${path}.${completion === null || completion === void 0 ? void 0 : completion.label}`);
20
- completionItemsMap.delete(mapPath);
21
- if (formattedSearchResults.length) {
22
- completionItemsMap.set(mapPath, formattedSearchResults);
23
- }
24
- const allArraysFromMap = Array.from(completionItemsMap.values());
25
- const unrepeatedCompletionItems = new Set(allArraysFromMap.flat());
26
- CodeMirror6Core
27
- .$onCompletionItemsUpdate
28
- .next(Array.from(unrepeatedCompletionItems));
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNvcmUtY29tcGxldGlvbi1pdGVtcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi9sYW5ndWFnZXMvdGF4LWNhbGN1bGF0aW9uL3V0aWxzL3VwZGF0ZS1jb3JlLWNvbXBsZXRpb24taXRlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFFSCxlQUFlLEVBQ2xCLE1BQU0sV0FBVyxDQUFDO0FBRW5CLE1BQU0sa0JBQWtCLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7QUFDNUQsTUFBTSxzQ0FBc0MsR0FBc0I7SUFDOUQsZUFBZSxDQUFDLFVBQVU7SUFDMUIsZUFBZSxDQUFDLGNBQWM7SUFDOUIsZUFBZSxDQUFDLFVBQVU7Q0FDN0IsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGNBQThCO0lBQ3BFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLGNBQWMsQ0FBQztJQUNyRCxNQUFNLE9BQU8sR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUNwQyxNQUFNLG1CQUFtQixHQUFpQixDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDOUUsc0NBQXNDLENBQUMsUUFBUSxDQUFDLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxJQUF1QixDQUFDLENBQ3ZGLENBQUM7SUFDRixNQUFNLHNCQUFzQixHQUFhLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUMxRSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsS0FBSyxFQUFFLENBQ25FLENBQUM7SUFFRixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbkMsSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUU7UUFDL0Isa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakUsTUFBTSx5QkFBeUIsR0FBZ0IsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVoRixlQUFlO1NBQ1Ysd0JBQXdCO1NBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGxldGlvbiB9IGZyb20gXCJAY29kZW1pcnJvci9hdXRvY29tcGxldGVcIjtcblxuaW1wb3J0IHsgQ29kZU1pcnJvcjZDb3JlIH0gZnJvbSBcIi4uLy4uLy4uL2NvZGVtaXJyb3ItNi1jb3JlXCI7XG5pbXBvcnQge1xuICAgIENvbXBsZXRpb25JdGVtLFxuICAgIENvbXBsZXRpb25UeXBlc1xufSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5cbmNvbnN0IGNvbXBsZXRpb25JdGVtc01hcDogTWFwPHN0cmluZywgc3RyaW5nW10+ID0gbmV3IE1hcCgpO1xuY29uc3QgdXNlZnVsVG9Db21wbGV0aW9uSXRlbXNDb21wbGV0aW9uVHlwZXM6IENvbXBsZXRpb25UeXBlc1tdID0gW1xuICAgIENvbXBsZXRpb25UeXBlcy5FeHByZXNzaW9uLFxuICAgIENvbXBsZXRpb25UeXBlcy5Vc2VyRXhwcmVzc2lvbixcbiAgICBDb21wbGV0aW9uVHlwZXMuRmluYWxWYWx1ZVxuXTtcblxuLypcbiAqIFVwZGF0ZXMgdGhlIGNvbXBsZXRpb25JdGVtcyB1c2VkIGJ5IHRoZSBjb3JlLlxuICogVXRpbGl6ZXMgdGhlIHBhdGggYW5kIGZpbHRlciB0byBjcmVhdGUgYSBrZXkgYW5kIHN0b3JlIHRoZSByZXN1bHRzIGZyb20gdGhlIHNlYXJjaCB0byB0aGUgZ2l2ZW4gXCJwYXRoLmZpbHRlclwiIG9uIGEgbWFwLlxuICogTXVzdCBzYXZlIHRoZSByZXN1bHRzIHRvIGVhY2ggZGlmZmVyZW50IGZpbHRlciBmb3IgdGhlIHNlYXJjaCBkb2VzIG5vdCBicmluZyBhbGwgdGhlIHJlc3VsdHMsIHNvIHRoZSB1c2VyIG11c3QgZG8gYSBtb3JlXG4gKiBzcGVjaWZpYyBmaWx0ZXIgdG8gYWNoaWV2ZSBpdHMgb2JqZWN0aXZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDb3JlQ29tcGxldGlvbkl0ZW1zKGNvbXBsZXRpb25JdGVtOiBDb21wbGV0aW9uSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHsgcGF0aCwgZmlsdGVyLCBjb21wbGV0aW9ucyB9ID0gY29tcGxldGlvbkl0ZW07XG4gICAgY29uc3QgbWFwUGF0aCA9IGAke3BhdGh9LiR7ZmlsdGVyfWA7XG4gICAgY29uc3QgZmlsdGVyZWRDb21wbGV0aW9uczogQ29tcGxldGlvbltdID0gKGNvbXBsZXRpb25zIHx8IFtdKS5maWx0ZXIoY29tcGxldGlvbiA9PlxuICAgICAgICB1c2VmdWxUb0NvbXBsZXRpb25JdGVtc0NvbXBsZXRpb25UeXBlcy5pbmNsdWRlcyhjb21wbGV0aW9uPy50eXBlIGFzIENvbXBsZXRpb25UeXBlcylcbiAgICApO1xuICAgIGNvbnN0IGZvcm1hdHRlZFNlYXJjaFJlc3VsdHM6IHN0cmluZ1tdID0gZmlsdGVyZWRDb21wbGV0aW9ucy5tYXAoY29tcGxldGlvbiA9PlxuICAgICAgICBwYXRoID09PSBcIlwiID8gY29tcGxldGlvbj8ubGFiZWwgOiBgJHtwYXRofS4ke2NvbXBsZXRpb24/LmxhYmVsfWBcbiAgICApO1xuXG4gICAgY29tcGxldGlvbkl0ZW1zTWFwLmRlbGV0ZShtYXBQYXRoKTtcblxuICAgIGlmIChmb3JtYXR0ZWRTZWFyY2hSZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBjb21wbGV0aW9uSXRlbXNNYXAuc2V0KG1hcFBhdGgsIGZvcm1hdHRlZFNlYXJjaFJlc3VsdHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbEFycmF5c0Zyb21NYXAgPSBBcnJheS5mcm9tKGNvbXBsZXRpb25JdGVtc01hcC52YWx1ZXMoKSk7XG4gICAgY29uc3QgdW5yZXBlYXRlZENvbXBsZXRpb25JdGVtczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KGFsbEFycmF5c0Zyb21NYXAuZmxhdCgpKTtcblxuICAgIENvZGVNaXJyb3I2Q29yZVxuICAgICAgICAuJG9uQ29tcGxldGlvbkl0ZW1zVXBkYXRlXG4gICAgICAgIC5uZXh0KEFycmF5LmZyb20odW5yZXBlYXRlZENvbXBsZXRpb25JdGVtcykpO1xufVxuIl19
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIEludGVyZmFjZXMgKi9cbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXMvdmFsaWRhdGlvblwiO1xuIl19
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2xpbnRlcnMvdGF4LWNhbGN1bGF0aW9uL21vZGVscy9pbnRlcmZhY2VzL3ZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcmtlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb24ge1xuICAgIHZhbGlkYXRlOiAoY29kZTogc3RyaW5nLCBjb21wbGV0aW9uSXRlbXM6IHN0cmluZ1tdKSA9PiBQcm9taXNlPE1hcmtlcltdPjtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { ValidationComposite, ValidationWorkersComposite } from "./validation-compositors";
2
- /**
3
- * Linter for the "TaxCalculation" Language
4
- */
5
- export class TaxCalculationLinter {
6
- constructor() {
7
- this.setValidation();
8
- }
9
- lint(code, completionItems) {
10
- return this._validation.validate(code, completionItems || []);
11
- }
12
- setValidation() {
13
- const browserSupportsWorkers = typeof Worker !== "undefined";
14
- this._validation = browserSupportsWorkers
15
- ? new ValidationWorkersComposite()
16
- : new ValidationComposite();
17
- }
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNhbGN1bGF0aW9uLWxpbnRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2xpbnRlcnMvdGF4LWNhbGN1bGF0aW9uL3RheC1jYWxjdWxhdGlvbi1saW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUNILG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDN0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQzs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFJN0I7UUFDSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLElBQUksQ0FBRSxJQUFZLEVBQUUsZUFBMEI7UUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxhQUFhO1FBQ2pCLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsc0JBQXNCO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixFQUFFO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFFcEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGludGVyRmFjYWRlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZmFjYWRlcy9saW50ZXItZmFjYWRlXCI7XG5pbXBvcnQgeyBNYXJrZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9tb2RlbHNcIjtcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tIFwiLi9tb2RlbHNcIjtcbmltcG9ydCB7XG4gICAgVmFsaWRhdGlvbkNvbXBvc2l0ZSxcbiAgICBWYWxpZGF0aW9uV29ya2Vyc0NvbXBvc2l0ZVxufSBmcm9tIFwiLi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzXCI7XG5cbi8qKlxuICogTGludGVyIGZvciB0aGUgXCJUYXhDYWxjdWxhdGlvblwiIExhbmd1YWdlXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXhDYWxjdWxhdGlvbkxpbnRlciBpbXBsZW1lbnRzIExpbnRlckZhY2FkZSB7XG5cbiAgICBwcml2YXRlIF92YWxpZGF0aW9uITogVmFsaWRhdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkYXRpb24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGludCAoY29kZTogc3RyaW5nLCBjb21wbGV0aW9uSXRlbXM/OiBzdHJpbmdbXSk6IFByb21pc2U8TWFya2VyW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRpb24udmFsaWRhdGUoY29kZSwgY29tcGxldGlvbkl0ZW1zIHx8IFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJyb3dzZXJTdXBwb3J0c1dvcmtlcnMgPSB0eXBlb2YgV29ya2VyICE9PSBcInVuZGVmaW5lZFwiO1xuICAgICAgICB0aGlzLl92YWxpZGF0aW9uID0gYnJvd3NlclN1cHBvcnRzV29ya2Vyc1xuICAgICAgICAgICAgPyBuZXcgVmFsaWRhdGlvbldvcmtlcnNDb21wb3NpdGUoKVxuICAgICAgICAgICAgOiBuZXcgVmFsaWRhdGlvbkNvbXBvc2l0ZSgpO1xuXG4gICAgfVxufVxuIl19
@@ -1,3 +0,0 @@
1
- export * from "./validation-workers-compositor/validations-workers-composite";
2
- export * from "./validation-composite";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb24td29ya2Vycy1jb21wb3NpdG9yL3ZhbGlkYXRpb25zLXdvcmtlcnMtY29tcG9zaXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92YWxpZGF0aW9uLWNvbXBvc2l0ZVwiO1xuIl19
@@ -1,16 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- export class ValidationComposite {
3
- constructor() {
4
- this._validations = [];
5
- }
6
- validate(code, completionItems) {
7
- return __awaiter(this, void 0, void 0, function* () {
8
- const markers = [];
9
- for (const validation of this._validations) {
10
- markers.concat(yield validation.validate(code, completionItems));
11
- }
12
- return markers;
13
- });
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1jb21wb3NpdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzL3ZhbGlkYXRpb24tY29tcG9zaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxNQUFNLE9BQU8sbUJBQW1CO0lBQWhDO1FBRVksaUJBQVksR0FBaUIsRUFBRSxDQUFDO0lBWTVDLENBQUM7SUFWZ0IsUUFBUSxDQUFDLElBQVksRUFBRSxlQUF5Qjs7WUFDekQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1lBRTdCLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDeEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDcEU7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDO0tBQUE7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcmtlciB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL21vZGVsc1wiXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkNvbXBvc2l0ZSBpbXBsZW1lbnRzIFZhbGlkYXRpb24ge1xuXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGlvbnM6IFZhbGlkYXRpb25bXSA9IFtdO1xuXG4gICAgcHVibGljIGFzeW5jIHZhbGlkYXRlKGNvZGU6IHN0cmluZywgY29tcGxldGlvbkl0ZW1zOiBzdHJpbmdbXSk6IFByb21pc2U8TWFya2VyW10+IHtcbiAgICAgICAgY29uc3QgbWFya2VyczogTWFya2VyW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgdGhpcy5fdmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgIG1hcmtlcnMuY29uY2F0KGF3YWl0IHZhbGlkYXRpb24udmFsaWRhdGUoY29kZSwgY29tcGxldGlvbkl0ZW1zKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFya2VycztcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- export class ValidationWorkersComposite {
3
- constructor() {
4
- this._validations = [];
5
- }
6
- validate(code, completionItems) {
7
- return __awaiter(this, void 0, void 0, function* () {
8
- return new Promise(resolve => {
9
- const markers = [];
10
- let finishedWorkers = 0;
11
- for (const worker of this._validations) {
12
- worker.onmessage = ({ data }) => {
13
- markers.concat(data);
14
- finishedWorkers++;
15
- if (finishedWorkers === this._validations.length) {
16
- resolve(markers);
17
- }
18
- };
19
- worker.postMessage({ code, completionItems });
20
- }
21
- });
22
- });
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMtd29ya2Vycy1jb21wb3NpdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi92YWxpZGF0aW9uLWNvbXBvc2l0b3JzL3ZhbGlkYXRpb24td29ya2Vycy1jb21wb3NpdG9yL3ZhbGlkYXRpb25zLXdvcmtlcnMtY29tcG9zaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxNQUFNLE9BQU8sMEJBQTBCO0lBQXZDO1FBRVksaUJBQVksR0FBYSxFQUFFLENBQUM7SUFxQnhDLENBQUM7SUFuQmdCLFFBQVEsQ0FBQyxJQUFZLEVBQUUsZUFBeUI7O1lBQ3pELE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3pCLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO2dCQUV4QixLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3BDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBc0IsRUFBRSxFQUFFO3dCQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNyQixlQUFlLEVBQUUsQ0FBQzt3QkFFbEIsSUFBSSxlQUFlLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7NEJBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDcEI7b0JBQ0wsQ0FBQyxDQUFDO29CQUVGLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztpQkFDakQ7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFya2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbldvcmtlcnNDb21wb3NpdGUgaW1wbGVtZW50cyBWYWxpZGF0aW9uIHtcblxuICAgIHByaXZhdGUgX3ZhbGlkYXRpb25zOiBXb3JrZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGFzeW5jIHZhbGlkYXRlKGNvZGU6IHN0cmluZywgY29tcGxldGlvbkl0ZW1zOiBzdHJpbmdbXSk6IFByb21pc2U8TWFya2VyW10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyczogTWFya2VyW10gPSBbXTtcbiAgICAgICAgICAgIGxldCBmaW5pc2hlZFdvcmtlcnMgPSAwO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHdvcmtlciBvZiB0aGlzLl92YWxpZGF0aW9ucykge1xuICAgICAgICAgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSAoeyBkYXRhIH06IHsgZGF0YTogTWFya2VyW10gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBtYXJrZXJzLmNvbmNhdChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrZXJzKys7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29ya2VycyA9PT0gdGhpcy5fdmFsaWRhdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG1hcmtlcnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IGNvZGUsIGNvbXBsZXRpb25JdGVtcyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,12 +0,0 @@
1
- /**
2
- * Function to get the position of the first occurrence of a regex in a string
3
- * @param string The string to search into
4
- * @param regex The regex to search into the string
5
- * @param position The index at which to begin searching the string. If omitted, search starts at the index 0.
6
- * @returns the position of the first occurrence of the informed regex.
7
- */
8
- export function regexIndexOf(string, regex, position) {
9
- const indexOf = string.substring(position || 0).search(regex);
10
- return (indexOf >= 0) ? (indexOf + (position || 0)) : indexOf;
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtaW5kZXgtb2YuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS91dGlscy9yZWdleC1pbmRleC1vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7SUFDeEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGdW5jdGlvbiB0byBnZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEgcmVnZXggaW4gYSBzdHJpbmdcbiAqIEBwYXJhbSBzdHJpbmcgVGhlIHN0cmluZyB0byBzZWFyY2ggaW50b1xuICogQHBhcmFtIHJlZ2V4IFRoZSByZWdleCB0byBzZWFyY2ggaW50byB0aGUgc3RyaW5nXG4gKiBAcGFyYW0gcG9zaXRpb24gVGhlIGluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyB0aGUgc3RyaW5nLiBJZiBvbWl0dGVkLCBzZWFyY2ggc3RhcnRzIGF0IHRoZSBpbmRleCAwLlxuICogQHJldHVybnMgIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgaW5mb3JtZWQgcmVnZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdleEluZGV4T2Yoc3RyaW5nOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHAsIHBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGluZGV4T2YgPSBzdHJpbmcuc3Vic3RyaW5nKHBvc2l0aW9uIHx8IDApLnNlYXJjaChyZWdleCk7XG4gICAgcmV0dXJuIChpbmRleE9mID49IDApID8gKGluZGV4T2YgKyAocG9zaXRpb24gfHwgMCkpIDogaW5kZXhPZjtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvbGFuZ3VhZ2VzL3RheC1jYWxjdWxhdGlvbi9leHRlbnNpb25zL29uLXBhc3RlLWNvbXBsZXRpb24taXRlbXMtdXBkYXRlci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIEludGVyZmFjZXMgKi9cbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXMvcmVxdWVzdC1leHRyYS1pbmZvXCI7XG4iXX0=
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1leHRyYS1pbmZvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vZXh0ZW5zaW9ucy9vbi1wYXN0ZS1jb21wbGV0aW9uLWl0ZW1zLXVwZGF0ZXIvbW9kZWxzL2ludGVyZmFjZXMvcmVxdWVzdC1leHRyYS1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RFeHRyYUluZm8ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBmaWx0ZXI6IHN0cmluZztcbn1cbiJdfQ==