incremental-compiler 19.0.10 → 19.0.12

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 (85) hide show
  1. package/README.md +9 -9
  2. package/browser/README.md +24 -24
  3. package/browser/fesm2022/incremental-compiler.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/client/README.md +24 -24
  6. package/client/fesm2022/incremental-compiler.mjs.map +1 -1
  7. package/client/package.json +1 -1
  8. package/index.js.map +1 -1
  9. package/lib/base-client-compiler.js.map +1 -1
  10. package/lib/build-info._auto-generated_.d.ts +1 -1
  11. package/lib/build-info._auto-generated_.js +1 -1
  12. package/lib/build-info._auto-generated_.js.map +1 -1
  13. package/lib/change-of-file.js.map +1 -1
  14. package/lib/compiler-manager.js.map +1 -1
  15. package/lib/constants.js.map +1 -1
  16. package/lib/incremental-watcher/incremental-watcher-events.js.map +1 -1
  17. package/lib/incremental-watcher/incremental-watcher-instance.js.map +1 -1
  18. package/lib/incremental-watcher/incremental-watcher-options.js.map +1 -1
  19. package/lib/incremental-watcher/incremental-watcher.js.map +1 -1
  20. package/lib/incremental-watcher/index.js.map +1 -1
  21. package/lib/incremental-watcher/parcel-watcher-adapter.backend.js.map +1 -1
  22. package/lib/index._auto-generated_.js.map +1 -1
  23. package/lib/index.js.map +1 -1
  24. package/lib/models.js.map +1 -1
  25. package/migrations/index.js.map +1 -1
  26. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  27. package/package.json +1 -1
  28. package/tmp-environment.json +3 -3
  29. package/websql/README.md +24 -24
  30. package/websql/fesm2022/incremental-compiler.mjs.map +1 -1
  31. package/websql/package.json +1 -1
  32. package/browser/esm2022/incremental-compiler.mjs +0 -5
  33. package/browser/esm2022/lib/base-client-compiler.mjs +0 -300
  34. package/browser/esm2022/lib/change-of-file.mjs +0 -16
  35. package/browser/esm2022/lib/compiler-manager.mjs +0 -216
  36. package/browser/esm2022/lib/constants.mjs +0 -18
  37. package/browser/esm2022/lib/incremental-watcher/incremental-watcher-events.mjs +0 -2
  38. package/browser/esm2022/lib/incremental-watcher/incremental-watcher-instance.mjs +0 -2
  39. package/browser/esm2022/lib/incremental-watcher/incremental-watcher-options.mjs +0 -2
  40. package/browser/esm2022/lib/incremental-watcher/incremental-watcher.mjs +0 -47
  41. package/browser/esm2022/lib/incremental-watcher/index.mjs +0 -4
  42. package/browser/esm2022/lib/index.mjs +0 -24
  43. package/browser/esm2022/lib/models.mjs +0 -2
  44. package/browser/esm2022/public-api.mjs +0 -2
  45. package/client/esm2022/incremental-compiler.mjs +0 -5
  46. package/client/esm2022/lib/base-client-compiler.mjs +0 -300
  47. package/client/esm2022/lib/change-of-file.mjs +0 -16
  48. package/client/esm2022/lib/compiler-manager.mjs +0 -216
  49. package/client/esm2022/lib/constants.mjs +0 -18
  50. package/client/esm2022/lib/incremental-watcher/incremental-watcher-events.mjs +0 -2
  51. package/client/esm2022/lib/incremental-watcher/incremental-watcher-instance.mjs +0 -2
  52. package/client/esm2022/lib/incremental-watcher/incremental-watcher-options.mjs +0 -2
  53. package/client/esm2022/lib/incremental-watcher/incremental-watcher.mjs +0 -47
  54. package/client/esm2022/lib/incremental-watcher/index.mjs +0 -4
  55. package/client/esm2022/lib/index.mjs +0 -24
  56. package/client/esm2022/lib/models.mjs +0 -2
  57. package/client/esm2022/public-api.mjs +0 -2
  58. package/lib/base-client-compiler.backend.d.ts +0 -56
  59. package/lib/base-client-compiler.backend.js +0 -325
  60. package/lib/base-client-compiler.backend.js.map +0 -1
  61. package/lib/change-of-file.backend.d.ts +0 -8
  62. package/lib/change-of-file.backend.js +0 -25
  63. package/lib/change-of-file.backend.js.map +0 -1
  64. package/lib/compiler-manager.backend.d.ts +0 -16
  65. package/lib/compiler-manager.backend.js +0 -213
  66. package/lib/compiler-manager.backend.js.map +0 -1
  67. package/lib/decorators.backend.d.ts +0 -5
  68. package/lib/decorators.backend.js +0 -56
  69. package/lib/decorators.backend.js.map +0 -1
  70. package/lib/helpers.backend.d.ts +0 -3
  71. package/lib/helpers.backend.js +0 -31
  72. package/lib/helpers.backend.js.map +0 -1
  73. package/websql/esm2022/incremental-compiler.mjs +0 -5
  74. package/websql/esm2022/lib/base-client-compiler.mjs +0 -300
  75. package/websql/esm2022/lib/change-of-file.mjs +0 -16
  76. package/websql/esm2022/lib/compiler-manager.mjs +0 -216
  77. package/websql/esm2022/lib/constants.mjs +0 -18
  78. package/websql/esm2022/lib/incremental-watcher/incremental-watcher-events.mjs +0 -2
  79. package/websql/esm2022/lib/incremental-watcher/incremental-watcher-instance.mjs +0 -2
  80. package/websql/esm2022/lib/incremental-watcher/incremental-watcher-options.mjs +0 -2
  81. package/websql/esm2022/lib/incremental-watcher/incremental-watcher.mjs +0 -47
  82. package/websql/esm2022/lib/incremental-watcher/index.mjs +0 -4
  83. package/websql/esm2022/lib/index.mjs +0 -24
  84. package/websql/esm2022/lib/models.mjs +0 -2
  85. package/websql/esm2022/public-api.mjs +0 -2
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AsyncAction = AsyncAction;
4
- exports.IncCompilerClass = IncCompilerClass;
5
- //#region imports
6
- var typescript_class_helpers_1 = require("typescript-class-helpers");
7
- var tnp_core_1 = require("tnp-core");
8
- var change_of_file_backend_1 = require("./change-of-file.backend");
9
- var tnp_core_2 = require("tnp-core");
10
- //#endregion
11
- function AsyncAction() {
12
- return function (target, propertyKey, propertyDescriptor) {
13
- // get original method
14
- // unsub(void 0, void 0);
15
- var originalMethod = propertyDescriptor.value;
16
- // redefine descriptor value within own function block
17
- propertyDescriptor.value = function () {
18
- var _this = this;
19
- var args = [];
20
- for (var _i = 0; _i < arguments.length; _i++) {
21
- args[_i] = arguments[_i];
22
- }
23
- // log arguments before original function
24
- // console.log(`${propertyKey} method called with args: ${JSON.stringify(args, null, 2)}`);
25
- var first = tnp_core_1._.first(args);
26
- if (first instanceof change_of_file_backend_1.ChangeOfFile) {
27
- var ex = first.clientsForChange.find(function (f) {
28
- // console.log(`${CLASS.getNameFromObject(f)} === ${CLASS.getNameFromObject(this)}`)
29
- return typescript_class_helpers_1.CLASS.getNameFromObject(f) === typescript_class_helpers_1.CLASS.getNameFromObject(_this);
30
- });
31
- // console.log('ex', ex)
32
- if (ex) {
33
- first.executedFor.push(ex);
34
- // console.log(`HHHH!!!!! Async Method called fror ${CLASS.getNameFromObject(this)}`);
35
- }
36
- }
37
- // attach original method implementation
38
- var result = originalMethod.apply(this, args);
39
- // log result of method
40
- // console.log(`${propertyKey} method return value: ${JSON.stringify(result)}`);
41
- return result;
42
- };
43
- };
44
- }
45
- var instancesNames = [];
46
- function IncCompilerClass(options) {
47
- return function (target) {
48
- var className = options.className;
49
- if (instancesNames.includes(className)) {
50
- tnp_core_2.Helpers.warn("Compiler class \"".concat(className, "\" already has instance."), false);
51
- }
52
- instancesNames.push(className);
53
- typescript_class_helpers_1.CLASS.NAME(className)(target);
54
- };
55
- }
56
- //# sourceMappingURL=decorators.backend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.backend.js","sourceRoot":"","sources":["c:/Users/darek/projects/npm/taon-dev/incremental-compiler/src/lib/decorators.backend.ts"],"names":[],"mappings":";;AAOA,kCAgCC;AAQD,4CASC;AAxDD,iBAAiB;AACjB,qEAAiD;AACjD,qCAA6B;AAC7B,mEAAwD;AACxD,qCAAmC;AACnC,YAAY;AAEZ,SAAgB,WAAW;IACzB,OAAO,UACL,MAAc,EACd,WAAmB,EACnB,kBAAsC;QAEtC,sBAAsB;QACtB,yBAAyB;QACzB,IAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAChD,sDAAsD;QACtD,kBAAkB,CAAC,KAAK,GAAG;YAAA,iBAoB1B;YApBoC,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACjD,yCAAyC;YACzC,+FAA+F;YAC/F,IAAM,KAAK,GAAG,YAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,YAAY,qCAAY,EAAE,CAAC;gBAClC,IAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAA,CAAC;oBACtC,oFAAoF;oBACpF,OAAO,gCAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,gCAAK,CAAC,iBAAiB,CAAC,KAAI,CAAC,CAAA;gBACrE,CAAC,CAAC,CAAC;gBACH,wBAAwB;gBACxB,IAAI,EAAE,EAAE,CAAC;oBACP,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3B,sFAAsF;gBACxF,CAAC;YACH,CAAC;YACD,wCAAwC;YACxC,IAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,uBAAuB;YACvB,iFAAiF;YACjF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAOD,IAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,SAAgB,gBAAgB,CAAC,OAAgC;IAC/D,OAAO,UAAC,MAAM;QACJ,IAAA,SAAS,GAAK,OAAO,UAAZ,CAAa;QAC9B,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,kBAAO,CAAC,IAAI,CAAC,2BAAmB,SAAS,6BAAyB,EAAE,KAAK,CAAC,CAAC;QAC7E,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,gCAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import { BaseClientCompiler } from './base-client-compiler.backend';
2
- export declare function mapForWatching(c: string): string[];
3
- export declare function clientsBy<T = BaseClientCompiler>(clientNameOrClass: string | Function, condition: (c: T) => boolean, clients: BaseClientCompiler[]): T[];
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapForWatching = mapForWatching;
4
- exports.clientsBy = clientsBy;
5
- var tnp_core_1 = require("tnp-core");
6
- var typescript_class_helpers_1 = require("typescript-class-helpers");
7
- //#endregion
8
- function mapForWatching(c) {
9
- if (tnp_core_1.fse.existsSync(c) && tnp_core_1.fse.lstatSync(c).isDirectory()) {
10
- return [c, "".concat(c, "/**/*.*")];
11
- }
12
- return [c];
13
- }
14
- function clientsBy(clientNameOrClass, condition, clients) {
15
- if (tnp_core_1._.isFunction(clientNameOrClass)) {
16
- clientNameOrClass = typescript_class_helpers_1.CLASS.getName(clientNameOrClass);
17
- }
18
- return clients.filter(function (cinstance) {
19
- var classesOk = (typescript_class_helpers_1.CLASS.getNameFromObject(cinstance) === clientNameOrClass);
20
- if (classesOk) {
21
- if (tnp_core_1._.isFunction(condition)) {
22
- return !!condition(cinstance);
23
- }
24
- else {
25
- return true;
26
- }
27
- }
28
- return false;
29
- });
30
- }
31
- //# sourceMappingURL=helpers.backend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.backend.js","sourceRoot":"","sources":["c:/Users/darek/projects/npm/taon-dev/incremental-compiler/src/lib/helpers.backend.ts"],"names":[],"mappings":";;AASA,wCAKC;AAED,8BAkBC;AA9BD,qCAAkC;AAElC,qEAAiD;AACjD,YAAY;AAEZ,SAAgB,cAAc,CAAC,CAAS;IACtC,IAAI,cAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,cAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACxD,OAAO,CAAC,CAAC,EAAE,UAAG,CAAC,YAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,CAAC;AACb,CAAC;AAED,SAAgB,SAAS,CAAyB,iBAAoC,EACpF,SAA4B,EAAE,OAA6B;IAE3D,IAAI,YAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpC,iBAAiB,GAAG,gCAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,UAAA,SAAS;QAC7B,IAAM,SAAS,GAAG,CAAC,gCAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,iBAAiB,CAAC,CAAC;QAC7E,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,YAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,CAAC,SAAS,CAAC,SAAgB,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAQ,CAAC;AACZ,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jcmVtZW50YWwtY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvaW5jcmVtZW50YWwtY29tcGlsZXIvcHJvamVjdHMvaW5jcmVtZW50YWwtY29tcGlsZXIvc3JjL2luY3JlbWVudGFsLWNvbXBpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -1,300 +0,0 @@
1
- //#region imports
2
- /* */
3
- /* */
4
- import { _ } from 'tnp-core/websql';
5
- //#endregion
6
- export class BaseClientCompiler {
7
- constructor() {
8
- this.subscribeOnlyFor = [];
9
- /* */
10
- /* */
11
- this.pathResolve = false;
12
- this.initedWithOptions = false;
13
- this.__folderPath = [];
14
- this.lastAsyncFiles = [];
15
- this._folderPathContentCheck = [];
16
- this.isWatchCompilation = false;
17
- //#endregion
18
- this.onlySingleRun = true;
19
- //#endregion
20
- }
21
- //#endregion
22
- //#region getters & setteres
23
- //#region getters & setteres / is inited
24
- get isInited() {
25
- return this.initedWithOptions;
26
- }
27
- //#endregion
28
- //#region getters & setteres / folder path content check
29
- get folderPathContentCheck() {
30
- return this._folderPathContentCheck;
31
- }
32
- set folderPathContentCheck(v) {
33
- this._folderPathContentCheck = v;
34
- }
35
- //#endregion
36
- //#region getters & setteres / folder path
37
- set folderPath(v) {
38
- if (_.isString(v)) {
39
- v = [v];
40
- }
41
- this.__folderPath = v;
42
- }
43
- get folderPath() {
44
- /* */
45
- /* */
46
- /* */
47
- /* */
48
- /* */
49
- /* */
50
- /* */
51
- /* */
52
- /* */
53
- /* */
54
- /* */
55
- /* */
56
- /* */
57
- /* */
58
- /* */
59
- /* */
60
- /* */
61
- return (void 0);
62
- }
63
- //#endregion
64
- //#endregion
65
- //#region constructor
66
- /* */
67
- /* */
68
- /* */
69
- /* */
70
- /* */
71
- /* */
72
- /* */
73
- /* */
74
- /* */
75
- /* */
76
- /* */
77
- /* */
78
- //#endregion
79
- //#region / init options
80
- /**
81
- * manually init options (when no passing object to constructor super() )
82
- */
83
- initOptions(options) {
84
- /* */
85
- /* */
86
- /* */
87
- /* */
88
- /* */
89
- /* */
90
- /* */
91
- /* */
92
- /* */
93
- /* */
94
- /* */
95
- /* */
96
- /* */
97
- /* */
98
- /* */
99
- /* */
100
- /* */
101
- return (void 0);
102
- }
103
- //#region api methods / start
104
- /**
105
- * do not override this
106
- */
107
- async runTask(options) {
108
- /* */
109
- /* */
110
- /* */
111
- /* */
112
- /* */
113
- /* */
114
- /* */
115
- /* */
116
- return (void 0);
117
- }
118
- //#region api methods / start
119
- /**
120
- * @deprecated use runTask instead
121
- * Do not override this
122
- */
123
- async start(options) {
124
- /* */
125
- /* */
126
- /* */
127
- /* */
128
- /* */
129
- /* */
130
- /* */
131
- /* */
132
- /* */
133
- /* */
134
- /* */
135
- /* */
136
- /* */
137
- /* */
138
- /* */
139
- /* */
140
- /* */
141
- /* */
142
- /* */
143
- /* */
144
- /* */
145
- /* */
146
- /* */
147
- /* */
148
- /* */
149
- /* */
150
- /* */
151
- /* */
152
- /* */
153
- /* */
154
- return (void 0);
155
- }
156
- //#endregion
157
- //#region api methods / start and watch
158
- /**
159
- * @deprecated use runTask instead
160
- * Do not override this
161
- */
162
- async startAndWatch(options) {
163
- /* */
164
- /* */
165
- /* */
166
- /* */
167
- /* */
168
- /* */
169
- /* */
170
- /* */
171
- /* */
172
- /* */
173
- /* */
174
- /* */
175
- /* */
176
- /* */
177
- /* */
178
- /* */
179
- /* */
180
- /* */
181
- /* */
182
- /* */
183
- /* */
184
- /* */
185
- /* */
186
- /* */
187
- /* */
188
- /* */
189
- /* */
190
- /* */
191
- /* */
192
- /* */
193
- /* */
194
- /* */
195
- /* */
196
- /* */
197
- /* */
198
- /* */
199
- /* */
200
- /* */
201
- /* */
202
- return (void 0);
203
- }
204
- //#endregion
205
- //#region api methods / sync action
206
- /**
207
- *
208
- * @param absolteFilesPathes for each watched file
209
- * @returns
210
- */
211
- syncAction(absolteFilesPathes, initialParams) {
212
- return void 0;
213
- }
214
- //#endregion
215
- //#region api methods / pre async action
216
- async preAsyncAction(initialParams) { }
217
- //#endregion
218
- //#region api methods / async action
219
- asyncAction(asyncEvents, initialParams) {
220
- return void 0;
221
- }
222
- //#endregion
223
- //#endregion
224
- //#region private methods
225
- //#region private methods / _init
226
- _init(options) {
227
- /* */
228
- /* */
229
- /* */
230
- /* */
231
- /* */
232
- /* */
233
- /* */
234
- /* */
235
- /* */
236
- /* */
237
- /* */
238
- /* */
239
- /* */
240
- /* */
241
- /* */
242
- /* */
243
- /* */
244
- /* */
245
- /* */
246
- /* */
247
- /* */
248
- /* */
249
- /* */
250
- /* */
251
- /* */
252
- /* */
253
- /* */
254
- /* */
255
- /* */
256
- /* */
257
- /* */
258
- /* */
259
- /* */
260
- /* */
261
- /* */
262
- /* */
263
- return (void 0);
264
- }
265
- //#endregion
266
- //#region private methods / fix task name
267
- fixTaskName(taskName) {
268
- if (!_.isString(taskName)) {
269
- taskName = `task "${this.taskName}"`;
270
- }
271
- return taskName;
272
- }
273
- //#endregion
274
- filesToWatch() {
275
- /* */
276
- /* */
277
- /* */
278
- /* */
279
- /* */
280
- /* */
281
- /* */
282
- /* */
283
- /* */
284
- /* */
285
- /* */
286
- /* */
287
- /* */
288
- /* */
289
- return (void 0);
290
- }
291
- mapForWatching(c) {
292
- /* */
293
- /* */
294
- /* */
295
- /* */
296
- /* */
297
- return (void 0);
298
- }
299
- }
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGllbnQtY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvaW5jcmVtZW50YWwtY29tcGlsZXIvcHJvamVjdHMvaW5jcmVtZW50YWwtY29tcGlsZXIvc3JjL2xpYi9iYXNlLWNsaWVudC1jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakIsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQVEsQ0FBQyxFQUFxQixNQUFNLGlCQUFpQixDQUFDO0FBTzdELFlBQVk7QUFFWixNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBS2tCLHFCQUFnQixHQUErQixFQUFFLENBQUM7UUFLcEUsS0FBSztRQUNMLEtBQUs7UUFFSyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDN0IsNEJBQXVCLEdBQWEsRUFBRSxDQUFDO1FBQy9DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQTRGcEMsWUFBWTtRQUVGLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBOE4vQixZQUFZO0lBQ2QsQ0FBQztJQTNUQyxZQUFZO0lBRVosNEJBQTRCO0lBRTVCLHdDQUF3QztJQUN4QyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsWUFBWTtJQUVaLHdEQUF3RDtJQUN4RCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBWSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELFlBQVk7SUFFWiwwQ0FBMEM7SUFDMUMsSUFBVyxVQUFV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QyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDMUIsUUFBUSxHQUFHLFNBQVMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsWUFBWTtJQUVaLFlBQVk7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTyxjQUFjLENBQUMsQ0FBUztRQUNsQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBpbXBvcnRzXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBwYXRoLCBfLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDaGFuZ2VPZkZpbGUgfSBmcm9tICcuL2NoYW5nZS1vZi1maWxlJztcbmltcG9ydCB7IENvbXBpbGVyTWFuYWdlciB9IGZyb20gJy4vY29tcGlsZXItbWFuYWdlcic7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbi8vI2VuZHJlZ2lvblxuXG5leHBvcnQgY2xhc3MgQmFzZUNsaWVudENvbXBpbGVyPElOSVRJQUxfUEFSQU1TID0gYW55PlxuICBpbXBsZW1lbnRzIE1vZGVscy5CYXNlQ2xpZW50Q29tcGlsZXJPcHRpb25zXG57XG4gIC8vI3JlZ2lvbiBmaWVsZHNcbiAgcHVibGljIHJlYWRvbmx5IGZvbGxvd1N5bWxpbmtzOiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc3Vic2NyaWJlT25seUZvcjogQ29yZU1vZGVscy5GaWxlRXh0ZW5zaW9uW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IGV4ZWN1dGVPdXRzaWRlU2NlbmFyaW86IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSB0YXNrTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgaWdub3JlRm9sZGVyUGF0dGVyPzogc3RyaW5nW107XG4gIHB1YmxpYyByZWFkb25seSBub3RpZnlPbkZpbGVVbmxpbms6IGJvb2xlYW47XG4vKiAqL1xuLyogKi9cbiAgXG4gIHByaXZhdGUgcGF0aFJlc29sdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0ZWRXaXRoT3B0aW9ucyA9IGZhbHNlO1xuICBwcml2YXRlIF9fZm9sZGVyUGF0aDogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGxhc3RBc3luY0ZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9mb2xkZXJQYXRoQ29udGVudENoZWNrOiBzdHJpbmdbXSA9IFtdO1xuICBpc1dhdGNoQ29tcGlsYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gZ2V0dGVycyAmIHNldHRlcmVzXG5cbiAgLy8jcmVnaW9uIGdldHRlcnMgJiBzZXR0ZXJlcyAvIGlzIGluaXRlZFxuICBnZXQgaXNJbml0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGVkV2l0aE9wdGlvbnM7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGdldHRlcnMgJiBzZXR0ZXJlcyAvIGZvbGRlciBwYXRoIGNvbnRlbnQgY2hlY2tcbiAgZ2V0IGZvbGRlclBhdGhDb250ZW50Q2hlY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvbGRlclBhdGhDb250ZW50Q2hlY2s7XG4gIH1cbiAgcHJpdmF0ZSBzZXQgZm9sZGVyUGF0aENvbnRlbnRDaGVjayh2KSB7XG4gICAgdGhpcy5fZm9sZGVyUGF0aENvbnRlbnRDaGVjayA9IHY7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGdldHRlcnMgJiBzZXR0ZXJlcyAvIGZvbGRlciBwYXRoXG4gIHB1YmxpYyBzZXQgZm9sZGVyUGF0aCh2KSB7XG4gICAgaWYgKF8uaXNTdHJpbmcodikpIHtcbiAgICAgIHYgPSBbdl07XG4gICAgfVxuICAgIHRoaXMuX19mb2xkZXJQYXRoID0gdjtcbiAgfVxuICBwdWJsaWMgZ2V0IGZvbGRlclBhdGgoKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBjb25zdHJ1Y3RvclxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC8gaW5pdCBvcHRpb25zXG4gIC8qKlxuICAgKiBtYW51YWxseSBpbml0IG9wdGlvbnMgKHdoZW4gbm8gcGFzc2luZyBvYmplY3QgdG8gY29uc3RydWN0b3Igc3VwZXIoKSApXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdE9wdGlvbnMob3B0aW9ucz86IE1vZGVscy5CYXNlQ2xpZW50Q29tcGlsZXJPcHRpb25zKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgcHJvdGVjdGVkIG9ubHlTaW5nbGVSdW4gPSB0cnVlO1xuXG4gIC8vI3JlZ2lvbiBhcGkgbWV0aG9kcyAvIHN0YXJ0XG4gIC8qKlxuICAgKiBkbyBub3Qgb3ZlcnJpZGUgdGhpc1xuICAgKi9cbiAgYXN5bmMgcnVuVGFzayhcbiAgICBvcHRpb25zPzogeyB3YXRjaD86IGJvb2xlYW4gfSAmIE1vZGVscy5TdGFydEFuZFdhdGNoT3B0aW9uczxJTklUSUFMX1BBUkFNUz4sXG4gICk6IFByb21pc2U8QmFzZUNsaWVudENvbXBpbGVyPElOSVRJQUxfUEFSQU1TPj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgLy8jcmVnaW9uIGFwaSBtZXRob2RzIC8gc3RhcnRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBydW5UYXNrIGluc3RlYWRcbiAgICogRG8gbm90IG92ZXJyaWRlIHRoaXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdGFydChcbiAgICBvcHRpb25zPzogTW9kZWxzLlN0YXJ0T3B0aW9uczxJTklUSUFMX1BBUkFNUz4sXG4gICk6IFByb21pc2U8QmFzZUNsaWVudENvbXBpbGVyPElOSVRJQUxfUEFSQU1TPj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gYXBpIG1ldGhvZHMgLyBzdGFydCBhbmQgd2F0Y2hcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBydW5UYXNrIGluc3RlYWRcbiAgICogRG8gbm90IG92ZXJyaWRlIHRoaXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdGFydEFuZFdhdGNoKFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuU3RhcnRBbmRXYXRjaE9wdGlvbnM8SU5JVElBTF9QQVJBTVM+LFxuICApOiBQcm9taXNlPEJhc2VDbGllbnRDb21waWxlcjxJTklUSUFMX1BBUkFNUz4+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGFwaSBtZXRob2RzIC8gc3luYyBhY3Rpb25cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBhYnNvbHRlRmlsZXNQYXRoZXMgZm9yIGVhY2ggd2F0Y2hlZCBmaWxlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgc3luY0FjdGlvbihcbiAgICBhYnNvbHRlRmlsZXNQYXRoZXM/OiBzdHJpbmdbXSxcbiAgICBpbml0aWFsUGFyYW1zPzogSU5JVElBTF9QQVJBTVMsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGFwaSBtZXRob2RzIC8gcHJlIGFzeW5jIGFjdGlvblxuICBwdWJsaWMgYXN5bmMgcHJlQXN5bmNBY3Rpb24oaW5pdGlhbFBhcmFtcz86IElOSVRJQUxfUEFSQU1TKTogUHJvbWlzZTx2b2lkPiB7fVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gYXBpIG1ldGhvZHMgLyBhc3luYyBhY3Rpb25cbiAgcHVibGljIGFzeW5jQWN0aW9uKFxuICAgIGFzeW5jRXZlbnRzOiBDaGFuZ2VPZkZpbGUsXG4gICAgaW5pdGlhbFBhcmFtcz86IElOSVRJQUxfUEFSQU1TLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcblxuICAvLyNyZWdpb24gcHJpdmF0ZSBtZXRob2RzIC8gX2luaXRcbiAgcHJpdmF0ZSBfaW5pdChvcHRpb25zPzogTW9kZWxzLkJhc2VDbGllbnRDb21waWxlck9wdGlvbnMpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIHByaXZhdGUgbWV0aG9kcyAvIGZpeCB0YXNrIG5hbWVcbiAgcHJpdmF0ZSBmaXhUYXNrTmFtZSh0YXNrTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKHRhc2tOYW1lKSkge1xuICAgICAgdGFza05hbWUgPSBgdGFzayBcIiR7dGhpcy50YXNrTmFtZX1cImA7XG4gICAgfVxuICAgIHJldHVybiB0YXNrTmFtZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBmaWxlc1RvV2F0Y2goKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwcml2YXRlIG1hcEZvcldhdGNoaW5nKGM6IHN0cmluZyk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufSJdfQ==
@@ -1,16 +0,0 @@
1
- //#region imports
2
- import { path } from 'tnp-core/websql';
3
- //#endregion
4
- export class ChangeOfFile {
5
- constructor(fileAbsolutePath = void 0, eventName = void 0) {
6
- this.fileAbsolutePath = fileAbsolutePath;
7
- this.eventName = eventName;
8
- this.datetime = new Date();
9
- }
10
- get fileExt() {
11
- return path
12
- .extname(this.fileAbsolutePath)
13
- .replace('.', '');
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLW9mLWZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvaW5jcmVtZW50YWwtY29tcGlsZXIvcHJvamVjdHMvaW5jcmVtZW50YWwtY29tcGlsZXIvc3JjL2xpYi9jaGFuZ2Utb2YtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLElBQUksRUFBSyxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLFlBQVk7QUFFWixNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUNTLG1CQUEyQixLQUFLLENBQUMsRUFDeEIsWUFJRSxLQUFLLENBQUM7UUFMakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUlEO1FBRXhCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSTthQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDOUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQTZCLENBQUM7SUFDbEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIGltcG9ydHNcbmltcG9ydCB7IHBhdGgsIF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG4vLyNlbmRyZWdpb25cblxuZXhwb3J0IGNsYXNzIENoYW5nZU9mRmlsZSB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRldGltZTogRGF0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZmlsZUFic29sdXRlUGF0aDogc3RyaW5nID0gdm9pZCAwLFxuICAgIHB1YmxpYyByZWFkb25seSBldmVudE5hbWU6XG4gICAgICB8ICdhZGQnXG4gICAgICB8ICdjaGFuZ2UnXG4gICAgICB8ICd1bmxpbmsnXG4gICAgICB8ICd1bmxpbmtEaXInID0gdm9pZCAwLFxuICApIHtcbiAgICB0aGlzLmRhdGV0aW1lID0gbmV3IERhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZUV4dCgpOiBDb3JlTW9kZWxzLkZpbGVFeHRlbnNpb24ge1xuICAgIHJldHVybiBwYXRoXG4gICAgICAuZXh0bmFtZSh0aGlzLmZpbGVBYnNvbHV0ZVBhdGgpXG4gICAgICAucmVwbGFjZSgnLicsICcnKSBhcyBDb3JlTW9kZWxzLkZpbGVFeHRlbnNpb247XG4gIH1cbn0iXX0=
@@ -1,216 +0,0 @@
1
- //#region imports
2
- /* */
3
- /* */
4
- //#region for debugging purpose...
5
- // require('colors');
6
- // const Diff = require('diff');
7
- //#endregion
8
- //#endregion
9
- export class CompilerManager {
10
- static get Instance() {
11
- if (!this._instance) {
12
- this._instance = new CompilerManager();
13
- }
14
- return this._instance;
15
- }
16
- //#endregion
17
- //#region constructor
18
- constructor() {
19
- //#endregion
20
- //#endregion
21
- //#region fields & getters
22
- this.clients = [];
23
- this.inited = false;
24
- this.filesContentCache = {};
25
- }
26
- //#endregion
27
- //#region methods / sync init
28
- async syncInit(client, initialParams) {
29
- /* */
30
- /* */
31
- /* */
32
- /* */
33
- /* */
34
- /* */
35
- /* */
36
- /* */
37
- /* */
38
- /* */
39
- /* */
40
- /* */
41
- /* */
42
- /* */
43
- /* */
44
- /* */
45
- /* */
46
- /* */
47
- /* */
48
- /* */
49
- /* */
50
- /* */
51
- /* */
52
- /* */
53
- /* */
54
- /* */
55
- /* */
56
- /* */
57
- /* */
58
- /* */
59
- /* */
60
- /* */
61
- /* */
62
- /* */
63
- /* */
64
- /* */
65
- /* */
66
- /* */
67
- /* */
68
- /* */
69
- /* */
70
- /* */
71
- /* */
72
- /* */
73
- /* */
74
- /* */
75
- /* */
76
- /* */
77
- /* */
78
- /* */
79
- /* */
80
- /* */
81
- return (void 0);
82
- }
83
- //#endregion
84
- //#region methods / async init
85
- async asyncInit(client, initialParams) {
86
- /* */
87
- /* */
88
- /* */
89
- /* */
90
- /* */
91
- /* */
92
- /* */
93
- /* */
94
- /* */
95
- /* */
96
- /* */
97
- /* */
98
- /* */
99
- /* */
100
- /* */
101
- /* */
102
- /* */
103
- /* */
104
- /* */
105
- /* */
106
- /* */
107
- /* */
108
- /* */
109
- /* */
110
- /* */
111
- /* */
112
- /* */
113
- /* */
114
- /* */
115
- return (void 0);
116
- }
117
- async actionForAsyncEvent(event, absoluteFilePath, client, initialParams) {
118
- /* */
119
- /* */
120
- /* */
121
- /* */
122
- /* */
123
- /* */
124
- /* */
125
- /* */
126
- /* */
127
- /* */
128
- /* */
129
- /* */
130
- /* */
131
- /* */
132
- /* */
133
- /* */
134
- /* */
135
- /* */
136
- /* */
137
- /* */
138
- /* */
139
- /* */
140
- /* */
141
- /* */
142
- /* */
143
- /* */
144
- /* */
145
- /* */
146
- /* */
147
- /* */
148
- /* */
149
- /* */
150
- /* */
151
- /* */
152
- /* */
153
- /* */
154
- /* */
155
- /* */
156
- /* */
157
- /* */
158
- /* */
159
- /* */
160
- /* */
161
- /* */
162
- /* */
163
- /* */
164
- /* */
165
- /* */
166
- /* */
167
- /* */
168
- /* */
169
- /* */
170
- /* */
171
- return (void 0);
172
- }
173
- //#endregion
174
- //#region methods / add client
175
- addClient(client) {
176
- /* */
177
- /* */
178
- /* */
179
- /* */
180
- /* */
181
- /* */
182
- /* */
183
- return (void 0);
184
- }
185
- //#endregion
186
- //#region private methods / prevent already inited
187
- preventAlreadyInited() {
188
- /* */
189
- /* */
190
- /* */
191
- /* */
192
- /* */
193
- /* */
194
- /* */
195
- /* */
196
- /* */
197
- /* */
198
- return (void 0);
199
- }
200
- //#endregion
201
- //#region private methods / file should be checked
202
- fileShouldBeChecked(absFilePath, client) {
203
- /* */
204
- /* */
205
- /* */
206
- /* */
207
- /* */
208
- /* */
209
- /* */
210
- /* */
211
- /* */
212
- /* */
213
- return (void 0);
214
- }
215
- }
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXItbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC9pbmNyZW1lbnRhbC1jb21waWxlci9wcm9qZWN0cy9pbmNyZW1lbnRhbC1jb21waWxlci9zcmMvbGliL2NvbXBpbGVyLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLEtBQUs7QUFDTCxLQUFLO0FBYUwsa0NBQWtDO0FBQ2xDLHFCQUFxQjtBQUNyQixnQ0FBZ0M7QUFDaEMsWUFBWTtBQUNaLFlBQVk7QUFJWixNQUFNLE9BQU8sZUFBZTtJQUluQixNQUFNLEtBQUssUUFBUTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFXRCxZQUFZO0lBRVoscUJBQXFCO0lBQ3JCO1FBYkEsWUFBWTtRQUNaLFlBQVk7UUFFWiwwQkFBMEI7UUFFbEIsWUFBTyxHQUE4QixFQUFFLENBQUM7UUFFeEMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUtSLENBQUM7SUFDeEIsWUFBWTtJQUVaLDZCQUE2QjtJQUN0QixLQUFLLENBQUMsUUFBUSxDQUFDLE1BQStCLEVBQUUsYUFBa0I7UUFDM0UsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7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V0FBbUIsRUFDbkIsTUFBK0I7UUFFbkMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBpbXBvcnRzXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBwYXRoLCBfLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IENoYW5nZU9mRmlsZSB9IGZyb20gJy4vY2hhbmdlLW9mLWZpbGUnO1xuaW1wb3J0IHsgQmFzZUNsaWVudENvbXBpbGVyIH0gZnJvbSAnLi9iYXNlLWNsaWVudC1jb21waWxlcic7XG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IENPTVBJTEVSX1BPT0xJTkcsIElHTk9SRV9CWV9ERUZBVUxUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgSW5jcmVtZW50YWxXYXRjaGVySW5zdGFuY2UsXG4gIGluY3JlbWVudGFsV2F0Y2hlcixcbn0gZnJvbSAnLi9pbmNyZW1lbnRhbC13YXRjaGVyJztcbmltcG9ydCB7IEluY3JlbWVudGFsV2F0Y2hlckV2ZW50cyB9IGZyb20gJy4vaW5jcmVtZW50YWwtd2F0Y2hlci9pbmNyZW1lbnRhbC13YXRjaGVyLWV2ZW50cyc7XG4vLyNyZWdpb24gZm9yIGRlYnVnZ2luZyBwdXJwb3NlLi4uXG4vLyByZXF1aXJlKCdjb2xvcnMnKTtcbi8vIGNvbnN0IERpZmYgPSByZXF1aXJlKCdkaWZmJyk7XG4vLyNlbmRyZWdpb25cbi8vI2VuZHJlZ2lvblxuXG5cblxuZXhwb3J0IGNsYXNzIENvbXBpbGVyTWFuYWdlciB7XG4gIC8vI3JlZ2lvbiBzdGF0aWNcbiAgLy8jcmVnaW9uIHNpbmdsZXRvblxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IENvbXBpbGVyTWFuYWdlcjtcbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKSB7XG4gICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xuICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgQ29tcGlsZXJNYW5hZ2VyKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGZpZWxkcyAmIGdldHRlcnNcblxuICBwcml2YXRlIGNsaWVudHM6IEJhc2VDbGllbnRDb21waWxlcjxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBhc3luY0V2ZW50U2NlbmFyaW86IChldmVudDogQ2hhbmdlT2ZGaWxlKSA9PiBQcm9taXNlPENoYW5nZU9mRmlsZT47XG4gIHByaXZhdGUgaW5pdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgZmlsZXNDb250ZW50Q2FjaGUgPSB7fTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gY29uc3RydWN0b3JcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBtZXRob2RzIC8gc3luYyBpbml0XG4gIHB1YmxpYyBhc3luYyBzeW5jSW5pdChjbGllbnQ6IEJhc2VDbGllbnRDb21waWxlcjxhbnk+LCBpbml0aWFsUGFyYW1zOiBhbnkpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBtZXRob2RzIC8gYXN5bmMgaW5pdFxuICBwdWJsaWMgYXN5bmMgYXN5bmNJbml0KGNsaWVudDogQmFzZUNsaWVudENvbXBpbGVyPGFueT4sIGluaXRpYWxQYXJhbXM6IGFueSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhY3Rpb25Gb3JBc3luY0V2ZW50KFxuICAgIGV2ZW50OiBJbmNyZW1lbnRhbFdhdGNoZXJFdmVudHMsXG4gICAgYWJzb2x1dGVGaWxlUGF0aDogc3RyaW5nLFxuICAgIGNsaWVudDogQmFzZUNsaWVudENvbXBpbGVyPGFueT4sXG4gICAgaW5pdGlhbFBhcmFtczogYW55LFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gbWV0aG9kcyAvIGFkZCBjbGllbnRcbiAgcHVibGljIGFkZENsaWVudChjbGllbnQ6IEJhc2VDbGllbnRDb21waWxlcjxhbnk+KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gcHJpdmF0ZSBtZXRob2RzIC8gcHJldmVudCBhbHJlYWR5IGluaXRlZFxuICBwcml2YXRlIHByZXZlbnRBbHJlYWR5SW5pdGVkKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIHByaXZhdGUgbWV0aG9kcyAvIGZpbGUgc2hvdWxkIGJlIGNoZWNrZWRcbiAgcHJpdmF0ZSBmaWxlU2hvdWxkQmVDaGVja2VkKFxuICAgIGFic0ZpbGVQYXRoOiBzdHJpbmcsXG4gICAgY2xpZW50OiBCYXNlQ2xpZW50Q29tcGlsZXI8YW55PixcbiAgKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn0iXX0=