tnp-helpers 18.0.14 → 18.0.15

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 (115) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-cli-worker-config.mjs +33 -0
  3. package/browser/esm2022/lib/base/base-cli-worker-controller.mjs +87 -0
  4. package/browser/esm2022/lib/base/base-cli-worker.mjs +303 -0
  5. package/browser/esm2022/lib/base/base-db.mjs +2 -1
  6. package/browser/esm2022/lib/base/base-project-resolver.mjs +9 -6
  7. package/browser/esm2022/lib/base/base-project.mjs +2 -2
  8. package/browser/esm2022/lib/base/base-quick-fixes.mjs +1 -1
  9. package/browser/esm2022/lib/base/base-release-process.mjs +1 -1
  10. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  11. package/browser/esm2022/lib/base/ports-worker.mjs +107 -0
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/fesm2022/tnp-helpers.mjs +523 -7
  14. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/browser/lib/base/base-cli-worker-config.d.ts +24 -0
  16. package/browser/lib/base/base-cli-worker-controller.d.ts +14 -0
  17. package/browser/lib/base/base-cli-worker.d.ts +47 -0
  18. package/browser/lib/base/base-project-resolver.d.ts +5 -6
  19. package/browser/lib/base/base-project.d.ts +7 -7
  20. package/browser/lib/base/base-quick-fixes.d.ts +1 -1
  21. package/browser/lib/base/base-release-process.d.ts +1 -1
  22. package/browser/lib/base/core-project.d.ts +2 -2
  23. package/browser/lib/base/ports-worker.d.ts +11 -0
  24. package/client/esm2022/lib/base/base-cli-worker-config.mjs +33 -0
  25. package/client/esm2022/lib/base/base-cli-worker-controller.mjs +87 -0
  26. package/client/esm2022/lib/base/base-cli-worker.mjs +303 -0
  27. package/client/esm2022/lib/base/base-db.mjs +2 -1
  28. package/client/esm2022/lib/base/base-project-resolver.mjs +9 -6
  29. package/client/esm2022/lib/base/base-project.mjs +2 -2
  30. package/client/esm2022/lib/base/base-quick-fixes.mjs +1 -1
  31. package/client/esm2022/lib/base/base-release-process.mjs +1 -1
  32. package/client/esm2022/lib/base/core-project.mjs +1 -1
  33. package/client/esm2022/lib/base/ports-worker.mjs +107 -0
  34. package/client/esm2022/lib/models.mjs +1 -1
  35. package/client/fesm2022/tnp-helpers.mjs +523 -7
  36. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  37. package/client/lib/base/base-cli-worker-config.d.ts +24 -0
  38. package/client/lib/base/base-cli-worker-controller.d.ts +14 -0
  39. package/client/lib/base/base-cli-worker.d.ts +47 -0
  40. package/client/lib/base/base-project-resolver.d.ts +5 -6
  41. package/client/lib/base/base-project.d.ts +7 -7
  42. package/client/lib/base/base-quick-fixes.d.ts +1 -1
  43. package/client/lib/base/base-release-process.d.ts +1 -1
  44. package/client/lib/base/core-project.d.ts +2 -2
  45. package/client/lib/base/ports-worker.d.ts +11 -0
  46. package/lib/base/base-cli-worker-config.d.ts +23 -0
  47. package/lib/base/base-cli-worker-config.js +45 -0
  48. package/lib/base/base-cli-worker-config.js.map +1 -0
  49. package/lib/base/base-cli-worker-controller.d.ts +13 -0
  50. package/lib/base/base-cli-worker-controller.js +114 -0
  51. package/lib/base/base-cli-worker-controller.js.map +1 -0
  52. package/lib/base/base-cli-worker.d.ts +46 -0
  53. package/lib/base/base-cli-worker.js +437 -0
  54. package/lib/base/base-cli-worker.js.map +1 -0
  55. package/lib/base/base-command-line.backend.d.ts +2 -0
  56. package/lib/base/base-command-line.backend.js +39 -0
  57. package/lib/base/base-command-line.backend.js.map +1 -1
  58. package/lib/base/base-db.d.ts +1 -1
  59. package/lib/base/base-db.js +2 -2
  60. package/lib/base/base-db.js.map +1 -1
  61. package/lib/base/base-git.js +2 -2
  62. package/lib/base/base-git.js.map +1 -1
  63. package/lib/base/base-linked-projects.js +1 -1
  64. package/lib/base/base-linked-projects.js.map +1 -1
  65. package/lib/base/base-project-resolver.d.ts +5 -6
  66. package/lib/base/base-project-resolver.js +14 -5
  67. package/lib/base/base-project-resolver.js.map +1 -1
  68. package/lib/base/base-project.d.ts +7 -7
  69. package/lib/base/base-project.js +1 -1
  70. package/lib/base/base-project.js.map +1 -1
  71. package/lib/base/base-quick-fixes.d.ts +1 -1
  72. package/lib/base/base-release-process.d.ts +1 -1
  73. package/lib/base/config-database.js +2 -2
  74. package/lib/base/config-database.js.map +1 -1
  75. package/lib/base/core-project.d.ts +2 -2
  76. package/lib/base/ports-worker.d.ts +10 -0
  77. package/lib/base/ports-worker.js +185 -0
  78. package/lib/base/ports-worker.js.map +1 -0
  79. package/lib/base/project-database.js +1 -1
  80. package/lib/base/project-database.js.map +1 -1
  81. package/lib/helpers/for-backend/helpers-cli-tool.backend.js +0 -1
  82. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  83. package/lib/helpers/for-backend/helpers-file-folders.backend.js +1 -1
  84. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  85. package/lib/helpers/for-backend/helpers-process.backend.d.ts +3 -2
  86. package/lib/helpers/for-backend/helpers-process.backend.js +19 -10
  87. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  88. package/lib/helpers/for-browser/angular.helper.js +2 -2
  89. package/lib/old/base-component.js +2 -2
  90. package/lib/old/base-formly-component.js +2 -2
  91. package/lib/old/dual-component-ctrl.js +2 -2
  92. package/package.json +5 -5
  93. package/tmp-environment.json +36 -31
  94. package/websql/esm2022/lib/base/base-cli-worker-config.mjs +33 -0
  95. package/websql/esm2022/lib/base/base-cli-worker-controller.mjs +87 -0
  96. package/websql/esm2022/lib/base/base-cli-worker.mjs +303 -0
  97. package/websql/esm2022/lib/base/base-db.mjs +2 -1
  98. package/websql/esm2022/lib/base/base-project-resolver.mjs +9 -6
  99. package/websql/esm2022/lib/base/base-project.mjs +2 -2
  100. package/websql/esm2022/lib/base/base-quick-fixes.mjs +1 -1
  101. package/websql/esm2022/lib/base/base-release-process.mjs +1 -1
  102. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  103. package/websql/esm2022/lib/base/ports-worker.mjs +114 -0
  104. package/websql/esm2022/lib/models.mjs +1 -1
  105. package/websql/fesm2022/tnp-helpers.mjs +530 -7
  106. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  107. package/websql/lib/base/base-cli-worker-config.d.ts +24 -0
  108. package/websql/lib/base/base-cli-worker-controller.d.ts +14 -0
  109. package/websql/lib/base/base-cli-worker.d.ts +47 -0
  110. package/websql/lib/base/base-project-resolver.d.ts +5 -6
  111. package/websql/lib/base/base-project.d.ts +7 -7
  112. package/websql/lib/base/base-quick-fixes.d.ts +1 -1
  113. package/websql/lib/base/base-release-process.d.ts +1 -1
  114. package/websql/lib/base/core-project.d.ts +2 -2
  115. package/websql/lib/base/ports-worker.d.ts +11 -0
@@ -0,0 +1,24 @@
1
+ // @ts-nocheck
2
+ export declare class BaseCliWorkerConfig {
3
+ static from(opt: Partial<BaseCliWorkerConfig>): BaseCliWorkerConfig & Partial<BaseCliWorkerConfig>;
4
+ /**
5
+ * port taken by service
6
+ */
7
+ port: number;
8
+ /**
9
+ * unique in whole system id of service
10
+ */
11
+ serviceID: string;
12
+ /**
13
+ * pid of service process
14
+ */
15
+ pid: number;
16
+ /**
17
+ * timestamp when service was started
18
+ * (in other cases = null)
19
+ */
20
+ startTimestamp: number;
21
+ isEquals(other: BaseCliWorkerConfig): boolean;
22
+ get isEmpty(): boolean;
23
+ toString(): any;
24
+ }
@@ -0,0 +1,14 @@
1
+ // @ts-nocheck
2
+ import { Taon } from 'taon/browser';
3
+ import { BaseCliWorkerConfig } from './base-cli-worker-config';
4
+ export declare abstract class BaseCliWorkerController<ENTITY> extends Taon.Base
5
+ .CrudController<ENTITY> {
6
+ /**
7
+ * service id
8
+ */
9
+ private cliWorkerServiceId;
10
+ baseCLiWorkerCommand_initializeMetadata(serviceId: string): Taon.Response<void>;
11
+ baseCLiWorkerCommand_kill(): Taon.Response<void>;
12
+ info(): Taon.Response<string>;
13
+ baseCLiWorkerCommand_isHealthy(configWorker: BaseCliWorkerConfig): Taon.Response<boolean>;
14
+ }
@@ -0,0 +1,47 @@
1
+ // @ts-nocheck
2
+ import type { BaseCliWorkerController } from './base-cli-worker-controller';
3
+ import { BaseCliWorkerConfig } from './base-cli-worker-config';
4
+ export declare abstract class BaseCliWorker {
5
+ /**
6
+ * unique id for service
7
+ */
8
+ protected readonly serviceID: string;
9
+ /**
10
+ * external command that will start service
11
+ */
12
+ protected readonly startCommand: string;
13
+ constructor(
14
+ /**
15
+ * unique id for service
16
+ */
17
+ serviceID: string,
18
+ /**
19
+ * external command that will start service
20
+ */
21
+ startCommand: string);
22
+ protected abstract startNormallyInCurrentProcess(): any;
23
+ protected abstract getControllerForRemoteConnection(): Promise<BaseCliWorkerController<any>>;
24
+ private get pathToProcessLocalInfoJson();
25
+ protected get processLocalInfoObj(): BaseCliWorkerConfig;
26
+ startDetachedIfNeedsToBeStarted(): Promise<any>;
27
+ /**
28
+ * stop if started
29
+ */
30
+ kill(): Promise<void>;
31
+ /**
32
+ * kill detached process and start again
33
+ */
34
+ restart(): Promise<void>;
35
+ protected isServiceHealthy(options?: {
36
+ healthCheckRequestTrys?: number;
37
+ }): Promise<boolean>;
38
+ /**
39
+ * start if not started detached process
40
+ */
41
+ protected startDetached(): Promise<any>;
42
+ protected _infoScreen(): Promise<void>;
43
+ private saveProcessInfo;
44
+ protected initializeWorkerMetadata(): Promise<any>;
45
+ protected waitForProcessPortSavedToDisk(): Promise<void>;
46
+ getServicePort(): Promise<number>;
47
+ }
@@ -1,15 +1,14 @@
1
1
  // @ts-nocheck
2
- import type { BaseProject } from './base-project';
3
2
  import { ConfigDatabase } from './config-database';
4
3
  import { ProjectDatabase } from './project-database';
4
+ import { BaseProject } from './base-project';
5
+ import { PortsWorker } from './ports-worker';
5
6
  export declare class BaseProjectResolver<PROJECT extends Partial<BaseProject> = any> {
6
7
  protected classFn: any;
7
- /**
8
- * general name for project company
9
- */
10
- orgName: string;
8
+ cliToolName: string;
11
9
  configDb: ConfigDatabase;
12
10
  projectsDb: ProjectDatabase;
11
+ readonly portsWorker: PortsWorker;
13
12
  protected readonly NPM_PROJECT_KEY = "npm";
14
13
  protected projects: PROJECT[];
15
14
  /**
@@ -17,7 +16,7 @@ export declare class BaseProjectResolver<PROJECT extends Partial<BaseProject> =
17
16
  * This may break things that are creating new projects
18
17
  */
19
18
  protected emptyLocations: string[];
20
- constructor(classFn: any);
19
+ constructor(classFn: any, cliToolName: string);
21
20
  get allowedTypes(): string[];
22
21
  /**
23
22
  * project from process.cwd()
@@ -25,13 +25,13 @@ export declare abstract class BaseProject<PROJECT extends BaseProject = BaseProj
25
25
  * only available after executing *this.assignFreePort()*
26
26
  */
27
27
  readonly port: string;
28
- libraryBuild: BaseLibraryBuild<BaseProject>;
29
- npmHelpers: BaseNpmHelpers;
30
- linkedProjects: BaseLinkedProjects;
31
- vsCodeHelpers: BaseVscodeHelpers;
32
- releaseProcess: BaseReleaseProcess;
33
- git: BaseGit;
34
- quickFixes: BaseQuickFixes;
28
+ libraryBuild?: BaseLibraryBuild<BaseProject>;
29
+ npmHelpers?: BaseNpmHelpers;
30
+ linkedProjects?: BaseLinkedProjects;
31
+ vsCodeHelpers?: BaseVscodeHelpers;
32
+ releaseProcess?: BaseReleaseProcess;
33
+ git?: BaseGit;
34
+ quickFixes?: BaseQuickFixes;
35
35
  private __location;
36
36
  get location(): string;
37
37
  set location(v: string);
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import { BaseFeatureForProject } from './base-feature-for-project';
3
3
  import type { BaseProject } from './base-project';
4
- export declare class BaseQuickFixes<PROJECT extends BaseProject = any> extends BaseFeatureForProject {
4
+ export declare class BaseQuickFixes<PROJECT extends BaseProject<any, any> = BaseProject<any, any>> extends BaseFeatureForProject {
5
5
  constructor(project: PROJECT);
6
6
  fixSQLLiteModuleInNodeModules(): any;
7
7
  }
@@ -3,7 +3,7 @@ import { BaseFeatureForProject } from './base-feature-for-project';
3
3
  import type { BaseProject } from './base-project';
4
4
  import { CoreModels } from 'tnp-core/browser';
5
5
  import type { ChangelogData } from '.././models';
6
- export declare class BaseReleaseProcess<PROJECT extends BaseProject = any> extends BaseFeatureForProject {
6
+ export declare class BaseReleaseProcess<PROJECT extends BaseProject<any, any> = any> extends BaseFeatureForProject {
7
7
  project: PROJECT;
8
8
  /**
9
9
  * Automatic release process of patch plus one version
@@ -7,7 +7,7 @@ export type CoreProjectEnvironment = {
7
7
  description?: string;
8
8
  onlineLink?: string;
9
9
  };
10
- export type CoreCommandArgOptions<PROJECT extends BaseProject> = {
10
+ export type CoreCommandArgOptions<PROJECT extends BaseProject<any, any>> = {
11
11
  project?: PROJECT;
12
12
  /**
13
13
  * watch mode
@@ -42,7 +42,7 @@ export type CoreCommandArgOptions<PROJECT extends BaseProject> = {
42
42
  };
43
43
  export declare class CoreProject<PROJECT extends BaseProject = BaseProject> {
44
44
  static coreProjects: CoreProject<any>[];
45
- static from<Proj extends BaseProject = BaseProject>(options: Omit<CoreProject<Proj>, 'name' | 'url' | 'branch'>): CoreProject<Proj>;
45
+ static from<Proj extends BaseProject = BaseProject<any, any>>(options: Omit<CoreProject<Proj>, 'name' | 'url' | 'branch'>): CoreProject<Proj>;
46
46
  private constructor();
47
47
  extends?: CoreProject<any>;
48
48
  color?: string;
@@ -0,0 +1,11 @@
1
+ // @ts-nocheck
2
+ import { BaseCliWorker } from './base-cli-worker';
3
+ import { BaseCliWorkerController } from './base-cli-worker-controller';
4
+ export declare class PortsWorker extends BaseCliWorker {
5
+ protected getControllerForRemoteConnection(): Promise<BaseCliWorkerController<any>>;
6
+ /**
7
+ * start normally process
8
+ * this will crash if process already started
9
+ */
10
+ startNormallyInCurrentProcess(): Promise<any>;
11
+ }
@@ -0,0 +1,33 @@
1
+ import { _ } from 'tnp-core/browser';
2
+ /* */
3
+ /* */
4
+ export class BaseCliWorkerConfig {
5
+ static from(opt) {
6
+ return _.merge(new BaseCliWorkerConfig(), opt);
7
+ }
8
+ isEquals(other) {
9
+ other = BaseCliWorkerConfig.from(other);
10
+ return (!!this.serviceID &&
11
+ !!this.port &&
12
+ !!this.pid &&
13
+ this.serviceID === other.serviceID &&
14
+ this.port === other.port &&
15
+ this.pid === other.pid);
16
+ }
17
+ get isEmpty() {
18
+ return !this.serviceID && !this.port && !this.pid;
19
+ }
20
+ toString() {
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ return (void 0);
29
+ }
30
+ }
31
+ ;
32
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-cli-worker-config.ts
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGktd29ya2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLWNsaS13b3JrZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxLQUFLO0FBQ0wsS0FBSztBQUlMLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFpQztRQUMzQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFtQkQsUUFBUSxDQUFDLEtBQTBCO1FBQ2pDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDVixJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxTQUFTO1lBQ2xDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUk7WUFDeEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDcEQsQ0FBQztJQUVELFFBQVE7UUFDVixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBR0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyRUFBMkUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBjbGFzcyBCYXNlQ2xpV29ya2VyQ29uZmlnIHtcbiAgc3RhdGljIGZyb20ob3B0OiBQYXJ0aWFsPEJhc2VDbGlXb3JrZXJDb25maWc+KSB7XG4gICAgcmV0dXJuIF8ubWVyZ2UobmV3IEJhc2VDbGlXb3JrZXJDb25maWcoKSwgb3B0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwb3J0IHRha2VuIGJ5IHNlcnZpY2VcbiAgICovXG4gIHBvcnQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIHVuaXF1ZSBpbiB3aG9sZSBzeXN0ZW0gaWQgb2Ygc2VydmljZVxuICAgKi9cbiAgc2VydmljZUlEOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwaWQgb2Ygc2VydmljZSBwcm9jZXNzXG4gICAqL1xuICBwaWQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIHRpbWVzdGFtcCB3aGVuIHNlcnZpY2Ugd2FzIHN0YXJ0ZWRcbiAgICogKGluIG90aGVyIGNhc2VzID0gbnVsbClcbiAgICovXG4gIHN0YXJ0VGltZXN0YW1wOiBudW1iZXI7XG4gIGlzRXF1YWxzKG90aGVyOiBCYXNlQ2xpV29ya2VyQ29uZmlnKSB7XG4gICAgb3RoZXIgPSBCYXNlQ2xpV29ya2VyQ29uZmlnLmZyb20ob3RoZXIpO1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuc2VydmljZUlEICYmXG4gICAgICAhIXRoaXMucG9ydCAmJlxuICAgICAgISF0aGlzLnBpZCAmJlxuICAgICAgdGhpcy5zZXJ2aWNlSUQgPT09IG90aGVyLnNlcnZpY2VJRCAmJlxuICAgICAgdGhpcy5wb3J0ID09PSBvdGhlci5wb3J0ICYmXG4gICAgICB0aGlzLnBpZCA9PT0gb3RoZXIucGlkXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc0VtcHR5KCkge1xuICAgIHJldHVybiAhdGhpcy5zZXJ2aWNlSUQgJiYgIXRoaXMucG9ydCAmJiAhdGhpcy5waWQ7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtY2xpLXdvcmtlci1jb25maWcudHMiXX0=
@@ -0,0 +1,87 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { Taon } from 'taon/browser';
3
+ import { BaseCliWorkerConfig } from './base-cli-worker-config';
4
+ let BaseCliWorkerController = class BaseCliWorkerController extends Taon.Base
5
+ .CrudController {
6
+ constructor() {
7
+ super(...arguments);
8
+ /**
9
+ * service id
10
+ */
11
+ this.cliWorkerServiceId = null;
12
+ }
13
+ baseCLiWorkerCommand_initializeMetadata(serviceId) {
14
+ /* */
15
+ /* */
16
+ /* */
17
+ /* */
18
+ return (void 0);
19
+ }
20
+ baseCLiWorkerCommand_kill() {
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ return (void 0);
29
+ }
30
+ info() {
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ return (void 0);
36
+ }
37
+ baseCLiWorkerCommand_isHealthy(configWorker) {
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ /* */
45
+ /* */
46
+ /* */
47
+ /* */
48
+ return (void 0);
49
+ }
50
+ };
51
+ __decorate([
52
+ Taon.Http.PUT(),
53
+ __param(0, Taon.Http.Param.Body('serviceId')),
54
+ __metadata("design:type", Function),
55
+ __metadata("design:paramtypes", [String]),
56
+ __metadata("design:returntype", Object)
57
+ ], BaseCliWorkerController.prototype, "baseCLiWorkerCommand_initializeMetadata", null);
58
+ __decorate([
59
+ Taon.Http.GET(),
60
+ __metadata("design:type", Function),
61
+ __metadata("design:paramtypes", []),
62
+ __metadata("design:returntype", Object)
63
+ ], BaseCliWorkerController.prototype, "baseCLiWorkerCommand_kill", null);
64
+ __decorate([
65
+ Taon.Http.GET({
66
+ pathIsGlobal: true,
67
+ }),
68
+ __metadata("design:type", Function),
69
+ __metadata("design:paramtypes", []),
70
+ __metadata("design:returntype", Object)
71
+ ], BaseCliWorkerController.prototype, "info", null);
72
+ __decorate([
73
+ Taon.Http.POST(),
74
+ __param(0, Taon.Http.Param.Body()),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [BaseCliWorkerConfig]),
77
+ __metadata("design:returntype", Object)
78
+ ], BaseCliWorkerController.prototype, "baseCLiWorkerCommand_isHealthy", null);
79
+ BaseCliWorkerController = __decorate([
80
+ Taon.Controller({
81
+ className: 'BaseCliWorkerController',
82
+ })
83
+ ], BaseCliWorkerController);
84
+ export { BaseCliWorkerController };
85
+ ;
86
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-cli-worker-controller.ts
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGktd29ya2VyLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvYmFzZS1jbGktd29ya2VyLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLeEQsSUFBZSx1QkFBdUIsR0FBdEMsTUFBZSx1QkFBZ0MsU0FBUSxJQUFJLENBQUMsSUFBSTtLQUNwRSxjQUFzQjtJQURsQjs7UUFFTDs7V0FFRztRQUNLLHVCQUFrQixHQUFXLElBQUksQ0FBQztJQTRENUMsQ0FBQztJQXhEQyx1Q0FBdUMsQ0FDRixTQUFpQjtRQUV4RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUtELHlCQUF5QjtRQUMzQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQU9ELElBQUk7UUFDTixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUtELDhCQUE4QixDQUNKLFlBQWlDO1FBRTdELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBRUYsQ0FBQTtBQXhEQztJQURDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBRWIsV0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7Ozs7c0ZBT25DO0FBS0Q7SUFEQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTs7Ozt3RUFVZjtBQU9EO0lBSEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDYixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDOzs7O21EQU9EO0FBS0Q7SUFEQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtJQUVkLFdBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7O3FDQUFlLG1CQUFtQjs7NkVBYTFEO0FBL0RtQix1QkFBdUI7SUFINUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNmLFNBQVMsRUFBRSx5QkFBeUI7S0FDckMsQ0FBQztHQUNvQix1QkFBdUIsQ0FpRTVDOztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0VBQStFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFRhb24gfSBmcm9tICd0YW9uL2Jyb3dzZXInO1xuaW1wb3J0IHsgQmFzZUNsaVdvcmtlckNvbmZpZyB9IGZyb20gJy4vYmFzZS1jbGktd29ya2VyLWNvbmZpZyc7XG5cbkBUYW9uLkNvbnRyb2xsZXIoe1xuICBjbGFzc05hbWU6ICdCYXNlQ2xpV29ya2VyQ29udHJvbGxlcicsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDbGlXb3JrZXJDb250cm9sbGVyPEVOVElUWT4gZXh0ZW5kcyBUYW9uLkJhc2VcbiAgLkNydWRDb250cm9sbGVyPEVOVElUWT4ge1xuICAvKipcbiAgICogc2VydmljZSBpZFxuICAgKi9cbiAgcHJpdmF0ZSBjbGlXb3JrZXJTZXJ2aWNlSWQ6IHN0cmluZyA9IG51bGw7XG5cblxuICBAVGFvbi5IdHRwLlBVVCgpXG4gIGJhc2VDTGlXb3JrZXJDb21tYW5kX2luaXRpYWxpemVNZXRhZGF0YShcbiAgICBAVGFvbi5IdHRwLlBhcmFtLkJvZHkoJ3NlcnZpY2VJZCcpIHNlcnZpY2VJZDogc3RyaW5nLFxuICApOiBUYW9uLlJlc3BvbnNlPHZvaWQ+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIEBUYW9uLkh0dHAuR0VUKClcbiAgYmFzZUNMaVdvcmtlckNvbW1hbmRfa2lsbCgpOiBUYW9uLlJlc3BvbnNlPHZvaWQ+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIEBUYW9uLkh0dHAuR0VUKHtcbiAgICBwYXRoSXNHbG9iYWw6IHRydWUsXG4gIH0pXG4gIGluZm8oKTogVGFvbi5SZXNwb25zZTxzdHJpbmc+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIEBUYW9uLkh0dHAuUE9TVCgpXG4gIGJhc2VDTGlXb3JrZXJDb21tYW5kX2lzSGVhbHRoeShcbiAgICBAVGFvbi5IdHRwLlBhcmFtLkJvZHkoKSBjb25maWdXb3JrZXI6IEJhc2VDbGlXb3JrZXJDb25maWcsXG4gICk6IFRhb24uUmVzcG9uc2U8Ym9vbGVhbj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS1jbGktd29ya2VyLWNvbnRyb2xsZXIudHMiXX0=
@@ -0,0 +1,303 @@
1
+ import { chalk, } from 'tnp-core/browser'; /* */
2
+ import { Helpers, UtilsTerminal } from '../index';
3
+ const WORKER_INIT_START_TIME_LIMIT = 15; // 15 seconds max to start worker
4
+ const START_PORT_FOR_SERVICES = 3600;
5
+ export class BaseCliWorker {
6
+ constructor(
7
+ /**
8
+ * unique id for service
9
+ */
10
+ serviceID,
11
+ /**
12
+ * external command that will start service
13
+ */
14
+ startCommand) {
15
+ this.serviceID = serviceID;
16
+ this.startCommand = startCommand;
17
+ }
18
+ get pathToProcessLocalInfoJson() {
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ return (void 0);
28
+ }
29
+ get processLocalInfoObj() {
30
+ /* */
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ return (void 0);
37
+ }
38
+ async startDetachedIfNeedsToBeStarted() {
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ /* */
45
+ /* */
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ return (void 0);
54
+ }
55
+ /**
56
+ * stop if started
57
+ */
58
+ async kill() {
59
+ Helpers.log(`Killing service "${this.serviceID}"...`);
60
+ if (this.processLocalInfoObj.isEmpty) {
61
+ Helpers.log(`Service "${this.serviceID}" not started - nothing to kill...`);
62
+ return;
63
+ }
64
+ const ctrl = await this.getControllerForRemoteConnection();
65
+ try {
66
+ Helpers.removeFileIfExists(this.pathToProcessLocalInfoJson);
67
+ await ctrl.baseCLiWorkerCommand_kill().received;
68
+ Helpers.log(`Service "${this.serviceID}" killed...`);
69
+ }
70
+ catch (error) {
71
+ Helpers.log(error);
72
+ Helpers.log(`Service "${this.serviceID}" not killed... `);
73
+ }
74
+ }
75
+ /**
76
+ * kill detached process and start again
77
+ */
78
+ async restart() {
79
+ await this.kill();
80
+ await this.startDetached();
81
+ }
82
+ async isServiceHealthy(options) {
83
+ /* */
84
+ /* */
85
+ /* */
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
+ /* */
116
+ /* */
117
+ /* */
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
+ return (void 0);
146
+ }
147
+ /**
148
+ * start if not started detached process
149
+ */
150
+ async startDetached() {
151
+ /* */
152
+ /* */
153
+ /* */
154
+ /* */
155
+ /* */
156
+ /* */
157
+ /* */
158
+ /* */
159
+ /* */
160
+ /* */
161
+ /* */
162
+ /* */
163
+ /* */
164
+ /* */
165
+ /* */
166
+ /* */
167
+ /* */
168
+ /* */
169
+ return (void 0);
170
+ }
171
+ async _infoScreen() {
172
+ while (true) {
173
+ Helpers.clearConsole();
174
+ const cfonts = require('cfonts');
175
+ const output = cfonts.render(`TAON.DEV`, {
176
+ font: 'block',
177
+ align: 'left',
178
+ colors: ['system'],
179
+ background: 'transparent',
180
+ letterSpacing: 1,
181
+ lineHeight: 1,
182
+ space: true,
183
+ maxLength: '0',
184
+ gradient: false,
185
+ independentGradient: false,
186
+ transitionGradient: false,
187
+ env: 'node',
188
+ });
189
+ console.log(output.string);
190
+ Helpers.info(`
191
+
192
+ Service ${chalk.bold.red(this.serviceID)} started..
193
+ Check info here http://localhost:${chalk.bold(this.processLocalInfoObj?.port?.toString())}/${'info'}
194
+
195
+ `);
196
+ const choices = {
197
+ openBrowser: {
198
+ name: 'Open browser with service info',
199
+ },
200
+ exit: {
201
+ name: `Shut down service`,
202
+ },
203
+ };
204
+ const choice = await UtilsTerminal.select({
205
+ choices,
206
+ question: 'Choose action',
207
+ });
208
+ if (choice === 'openBrowser') {
209
+ const openInBrowser = require('open');
210
+ openInBrowser(`http://localhost:${this.processLocalInfoObj.port}/info`);
211
+ }
212
+ if (choice === 'exit') {
213
+ process.exit(0);
214
+ }
215
+ switch (choice) {
216
+ }
217
+ }
218
+ }
219
+ saveProcessInfo(processConfig) {
220
+ /* */
221
+ /* */
222
+ /* */
223
+ /* */
224
+ /* */
225
+ /* */
226
+ /* */
227
+ /* */
228
+ /* */
229
+ /* */
230
+ /* */
231
+ /* */
232
+ /* */
233
+ /* */
234
+ /* */
235
+ return (void 0);
236
+ }
237
+ async initializeWorkerMetadata() {
238
+ /* */
239
+ /* */
240
+ /* */
241
+ /* */
242
+ /* */
243
+ /* */
244
+ /* */
245
+ /* */
246
+ /* */
247
+ /* */
248
+ /* */
249
+ /* */
250
+ /* */
251
+ /* */
252
+ /* */
253
+ /* */
254
+ /* */
255
+ /* */
256
+ /* */
257
+ /* */
258
+ return (void 0);
259
+ }
260
+ async waitForProcessPortSavedToDisk() {
261
+ /* */
262
+ /* */
263
+ /* */
264
+ /* */
265
+ /* */
266
+ /* */
267
+ /* */
268
+ /* */
269
+ /* */
270
+ /* */
271
+ /* */
272
+ /* */
273
+ /* */
274
+ /* */
275
+ /* */
276
+ /* */
277
+ /* */
278
+ /* */
279
+ /* */
280
+ /* */
281
+ /* */
282
+ /* */
283
+ return (void 0);
284
+ }
285
+ async getServicePort() {
286
+ /* */
287
+ /* */
288
+ /* */
289
+ /* */
290
+ /* */
291
+ /* */
292
+ /* */
293
+ /* */
294
+ /* */
295
+ /* */
296
+ /* */
297
+ /* */
298
+ return (void 0);
299
+ }
300
+ }
301
+ ;
302
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-cli-worker.ts
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGktd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtY2xpLXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUksS0FBSyxHQUF3RCxNQUFNLGtCQUFrQixDQUFDLENBQUEsS0FBSztBQVd0RyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1sRCxNQUFNLDRCQUE0QixHQUFHLEVBQUUsQ0FBQyxDQUFDLGlDQUFpQztBQUMxRSxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQztBQUdyQyxNQUFNLE9BQWdCLGFBQWE7SUFFakM7SUFDRTs7T0FFRztJQUNnQixTQUFpQjtJQUNwQzs7T0FFRztJQUNnQixZQUFvQjtRQUpwQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBSWpCLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBQ3RDLENBQUM7SUFhSixJQUFZLDBCQUEwQjtRQUN4QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFjLG1CQUFtQjtRQUNuQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBUU0sS0FBSyxDQUFDLCtCQUErQjtRQUM5QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxZQUFZLElBQUksQ0FBQyxTQUFTLG9DQUFvQyxDQUMvRCxDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUM1RCxNQUFNLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsYUFBYSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBSUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFRUyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FFaEM7UUFDSCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNPLEtBQUssQ0FBQyxhQUFhO1FBQy9CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJUyxLQUFLLENBQUMsV0FBVztRQUN6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SztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxLQUFLLENBQUMsY0FBYztRQUN0QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBSUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9FQUFvRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7ICAgY2hhbGssICAgY3Jvc3NQbGF0Zm9ybVBhdGgsICAgXywgLyogKi8gLyogKi8gLyogKi8gLyogKi8gICAgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzLCBVdGlsc1Rlcm1pbmFsIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHR5cGUgeyBCYXNlQ2xpV29ya2VyQ29udHJvbGxlciB9IGZyb20gJy4vYmFzZS1jbGktd29ya2VyLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQmFzZUNsaVdvcmtlckNvbmZpZyB9IGZyb20gJy4vYmFzZS1jbGktd29ya2VyLWNvbmZpZyc7XG5cblxuXG5jb25zdCBXT1JLRVJfSU5JVF9TVEFSVF9USU1FX0xJTUlUID0gMTU7IC8vIDE1IHNlY29uZHMgbWF4IHRvIHN0YXJ0IHdvcmtlclxuY29uc3QgU1RBUlRfUE9SVF9GT1JfU0VSVklDRVMgPSAzNjAwO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ2xpV29ya2VyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiB1bmlxdWUgaWQgZm9yIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZUlEOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogZXh0ZXJuYWwgY29tbWFuZCB0aGF0IHdpbGwgc3RhcnQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzdGFydENvbW1hbmQ6IHN0cmluZyxcbiAgKSB7fVxuXG5cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc3RhcnROb3JtYWxseUluQ3VycmVudFByb2Nlc3MoKTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldENvbnRyb2xsZXJGb3JSZW1vdGVDb25uZWN0aW9uKCk6IFByb21pc2U8XG4gICAgQmFzZUNsaVdvcmtlckNvbnRyb2xsZXI8YW55PlxuICA+O1xuXG5cblxuXG5cbiAgcHJpdmF0ZSBnZXQgcGF0aFRvUHJvY2Vzc0xvY2FsSW5mb0pzb24oKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgZ2V0IHByb2Nlc3NMb2NhbEluZm9PYmooKTogQmFzZUNsaVdvcmtlckNvbmZpZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG5cblxuXG5cbiAgcHVibGljIGFzeW5jIHN0YXJ0RGV0YWNoZWRJZk5lZWRzVG9CZVN0YXJ0ZWQoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHN0b3AgaWYgc3RhcnRlZFxuICAgKi9cbiAgYXN5bmMga2lsbCgpIHtcbiAgICBIZWxwZXJzLmxvZyhgS2lsbGluZyBzZXJ2aWNlIFwiJHt0aGlzLnNlcnZpY2VJRH1cIi4uLmApO1xuICAgIGlmICh0aGlzLnByb2Nlc3NMb2NhbEluZm9PYmouaXNFbXB0eSkge1xuICAgICAgSGVscGVycy5sb2coXG4gICAgICAgIGBTZXJ2aWNlIFwiJHt0aGlzLnNlcnZpY2VJRH1cIiBub3Qgc3RhcnRlZCAtIG5vdGhpbmcgdG8ga2lsbC4uLmAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdHJsID0gYXdhaXQgdGhpcy5nZXRDb250cm9sbGVyRm9yUmVtb3RlQ29ubmVjdGlvbigpO1xuICAgIHRyeSB7XG4gICAgICBIZWxwZXJzLnJlbW92ZUZpbGVJZkV4aXN0cyh0aGlzLnBhdGhUb1Byb2Nlc3NMb2NhbEluZm9Kc29uKTtcbiAgICAgIGF3YWl0IGN0cmwuYmFzZUNMaVdvcmtlckNvbW1hbmRfa2lsbCgpLnJlY2VpdmVkO1xuICAgICAgSGVscGVycy5sb2coYFNlcnZpY2UgXCIke3RoaXMuc2VydmljZUlEfVwiIGtpbGxlZC4uLmApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBIZWxwZXJzLmxvZyhlcnJvcik7XG4gICAgICBIZWxwZXJzLmxvZyhgU2VydmljZSBcIiR7dGhpcy5zZXJ2aWNlSUR9XCIgbm90IGtpbGxlZC4uLiAgIGApO1xuICAgIH1cbiAgfVxuXG5cblxuICAvKipcbiAgICoga2lsbCBkZXRhY2hlZCBwcm9jZXNzIGFuZCBzdGFydCBhZ2FpblxuICAgKi9cbiAgYXN5bmMgcmVzdGFydCgpIHtcbiAgICBhd2FpdCB0aGlzLmtpbGwoKTtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0RGV0YWNoZWQoKTtcbiAgfVxuXG5cblxuXG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBpc1NlcnZpY2VIZWFsdGh5KG9wdGlvbnM/OiB7XG4gICAgaGVhbHRoQ2hlY2tSZXF1ZXN0VHJ5cz86IG51bWJlcjtcbiAgfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzdGFydCBpZiBub3Qgc3RhcnRlZCBkZXRhY2hlZCBwcm9jZXNzXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgc3RhcnREZXRhY2hlZCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIF9pbmZvU2NyZWVuKCkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBIZWxwZXJzLmNsZWFyQ29uc29sZSgpO1xuICAgICAgY29uc3QgY2ZvbnRzID0gcmVxdWlyZSgnY2ZvbnRzJyk7XG4gICAgICBjb25zdCBvdXRwdXQgPSBjZm9udHMucmVuZGVyKGBUQU9OLkRFVmAsIHtcbiAgICAgICAgZm9udDogJ2Jsb2NrJyxcbiAgICAgICAgYWxpZ246ICdsZWZ0JyxcbiAgICAgICAgY29sb3JzOiBbJ3N5c3RlbSddLFxuICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBsZXR0ZXJTcGFjaW5nOiAxLFxuICAgICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgICBzcGFjZTogdHJ1ZSxcbiAgICAgICAgbWF4TGVuZ3RoOiAnMCcsXG4gICAgICAgIGdyYWRpZW50OiBmYWxzZSxcbiAgICAgICAgaW5kZXBlbmRlbnRHcmFkaWVudDogZmFsc2UsXG4gICAgICAgIHRyYW5zaXRpb25HcmFkaWVudDogZmFsc2UsXG4gICAgICAgIGVudjogJ25vZGUnLFxuICAgICAgfSk7XG4gICAgICBjb25zb2xlLmxvZyhvdXRwdXQuc3RyaW5nKTtcblxuICAgICAgSGVscGVycy5pbmZvKGBcblxuICAgICAgICBTZXJ2aWNlICR7Y2hhbGsuYm9sZC5yZWQodGhpcy5zZXJ2aWNlSUQpfSBzdGFydGVkLi5cbiAgICAgICAgQ2hlY2sgaW5mbyBoZXJlIGh0dHA6Ly9sb2NhbGhvc3Q6JHtjaGFsay5ib2xkKFxuICAgICAgICAgIHRoaXMucHJvY2Vzc0xvY2FsSW5mb09iaj8ucG9ydD8udG9TdHJpbmcoKSxcbiAgICAgICAgKX0vJHsnaW5mbycgYXMga2V5b2YgQmFzZUNsaVdvcmtlckNvbnRyb2xsZXI8YW55Pn1cblxuICAgICAgICAgIGApO1xuICAgICAgY29uc3QgY2hvaWNlcyA9IHtcbiAgICAgICAgb3BlbkJyb3dzZXI6IHtcbiAgICAgICAgICBuYW1lOiAnT3BlbiBicm93c2VyIHdpdGggc2VydmljZSBpbmZvJyxcbiAgICAgICAgfSxcblxuXG5cblxuXG5cbiAgICAgICAgZXhpdDoge1xuICAgICAgICAgIG5hbWU6IGBTaHV0IGRvd24gc2VydmljZWAsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgY2hvaWNlID0gYXdhaXQgVXRpbHNUZXJtaW5hbC5zZWxlY3Q8a2V5b2YgdHlwZW9mIGNob2ljZXM+KHtcbiAgICAgICAgY2hvaWNlcyxcbiAgICAgICAgcXVlc3Rpb246ICdDaG9vc2UgYWN0aW9uJyxcbiAgICAgIH0pO1xuICAgICAgaWYgKGNob2ljZSA9PT0gJ29wZW5Ccm93c2VyJykge1xuICAgICAgICBjb25zdCBvcGVuSW5Ccm93c2VyID0gcmVxdWlyZSgnb3BlbicpO1xuICAgICAgICBvcGVuSW5Ccm93c2VyKGBodHRwOi8vbG9jYWxob3N0OiR7dGhpcy5wcm9jZXNzTG9jYWxJbmZvT2JqLnBvcnR9L2luZm9gKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaG9pY2UgPT09ICdleGl0Jykge1xuICAgICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGNob2ljZSkge1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cblxuICBwcml2YXRlIHNhdmVQcm9jZXNzSW5mbyhwcm9jZXNzQ29uZmlnOiBQYXJ0aWFsPEJhc2VDbGlXb3JrZXJDb25maWc+KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBpbml0aWFsaXplV29ya2VyTWV0YWRhdGEoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIHdhaXRGb3JQcm9jZXNzUG9ydFNhdmVkVG9EaXNrKCk6IFByb21pc2U8dm9pZD4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYXN5bmMgZ2V0U2VydmljZVBvcnQoKTogUHJvbWlzZTxudW1iZXI+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtY2xpLXdvcmtlci50cyJdfQ==
@@ -2,6 +2,7 @@
2
2
  /* */
3
3
  /* */
4
4
  /* */
5
+ /* */
5
6
  export class BaseDb {
6
7
  constructor(ins, dbName, defaultDb) {
7
8
  this.ins = ins;
@@ -27,4 +28,4 @@ export class BaseDb {
27
28
  }
28
29
  ;
29
30
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-db.ts
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxNQUFNLE9BQU8sTUFBTTtJQUVqQixZQUNVLEdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxTQUFhO1FBRmIsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQUk7SUFHdkIsQ0FBQztJQUNILEtBQUs7SUFDTCxLQUFLO0lBR0gsSUFBVyxTQUFTO1FBQ3RCLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3hCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0F1QkY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDREQUE0RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEhlbHBlcnMsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSBcInRucC1jb3JlL2Jyb3dzZXJcIjtcblxuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSBcIi4vYmFzZS1wcm9qZWN0LXJlc29sdmVyXCI7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmV4cG9ydCBjbGFzcyBCYXNlRGI8REIgZXh0ZW5kcyBvYmplY3Q+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluczogQmFzZVByb2plY3RSZXNvbHZlcixcbiAgICBwcml2YXRlIGRiTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZGVmYXVsdERiOiBEQixcbiAgKSB7XG5cbiAgfVxuLyogKi9cbi8qICovXG4gIFxuXG4gIHB1YmxpYyBnZXQgaXNVc2luZ0RCKCk6IGJvb2xlYW4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgZ2V0IHByb2plY3RzRGJMb2NhdGlvbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtZGIudHMiXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLWRiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxPQUFPLE1BQU07SUFFakIsWUFDVSxHQUF3QixFQUN4QixNQUFjLEVBQ2QsU0FBYTtRQUZiLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFJO0lBR3ZCLENBQUM7SUFDSCxLQUFLO0lBQ0wsS0FBSztJQUdILElBQVcsU0FBUztRQUN0QixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUN4QixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBdUJGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0REFBNEQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gXCJ0bnAtY29yZS9icm93c2VyXCI7XG5cbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3RSZXNvbHZlciB9IGZyb20gXCIuL2Jhc2UtcHJvamVjdC1yZXNvbHZlclwiO1xuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuZXhwb3J0IGNsYXNzIEJhc2VEYjxEQiBleHRlbmRzIG9iamVjdD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyLFxuICAgIHByaXZhdGUgZGJOYW1lOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBkZWZhdWx0RGI6IERCLFxuICApIHtcblxuICB9XG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgcHVibGljIGdldCBpc1VzaW5nREIoKTogYm9vbGVhbiB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBnZXQgcHJvamVjdHNEYkxvY2F0aW9uKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS1kYi50cyJdfQ==