@nu-art/build-and-install 0.300.8 → 0.400.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 (195) hide show
  1. package/build-and-install-v3.d.ts +29 -0
  2. package/build-and-install-v3.js +132 -0
  3. package/build-and-install-v3.js.map +1 -0
  4. package/build-and-install.js +18 -24
  5. package/build-and-install.js.map +1 -0
  6. package/core/consts.d.ts +7 -2
  7. package/core/consts.js +12 -9
  8. package/core/consts.js.map +1 -0
  9. package/core/exceptions/PhaseAggregatedException.d.ts +5 -0
  10. package/core/exceptions/PhaseAggregatedException.js +9 -0
  11. package/core/exceptions/PhaseAggregatedException.js.map +1 -0
  12. package/core/package/consts.d.ts +1 -1
  13. package/core/package/consts.js +7 -9
  14. package/core/package/consts.js.map +1 -0
  15. package/core/params/params.d.ts +18 -19
  16. package/core/params/params.js +142 -178
  17. package/core/params/params.js.map +1 -0
  18. package/core/types/configs/firebasejson.js +2 -2
  19. package/core/types/configs/firebasejson.js.map +1 -0
  20. package/core/types/configs/firebaserc.js +2 -2
  21. package/core/types/configs/firebaserc.js.map +1 -0
  22. package/core/types/configs/index.d.ts +3 -3
  23. package/core/types/configs/index.js +4 -19
  24. package/core/types/configs/index.js.map +1 -0
  25. package/core/types/configs/package-json.d.ts +2 -1
  26. package/core/types/configs/package-json.js +2 -2
  27. package/core/types/configs/package-json.js.map +1 -0
  28. package/core/types/core.js +2 -2
  29. package/core/types/core.js.map +1 -0
  30. package/core/types/index.d.ts +4 -4
  31. package/core/types/index.js +5 -20
  32. package/core/types/index.js.map +1 -0
  33. package/core/types/package/index.d.ts +2 -2
  34. package/core/types/package/index.js +3 -18
  35. package/core/types/package/index.js.map +1 -0
  36. package/core/types/package/package.d.ts +10 -14
  37. package/core/types/package/package.js +15 -12
  38. package/core/types/package/package.js.map +1 -0
  39. package/core/types/package/runtime-package.d.ts +2 -2
  40. package/core/types/package/runtime-package.js +2 -2
  41. package/core/types/package/runtime-package.js.map +1 -0
  42. package/core/types/project-config.d.ts +31 -2
  43. package/core/types/project-config.js +2 -2
  44. package/core/types/project-config.js.map +1 -0
  45. package/defaults/backend-proxy/proxy._ts +3 -1
  46. package/defaults/consts.d.ts +0 -7
  47. package/defaults/consts.js +10 -10
  48. package/defaults/consts.js.map +1 -0
  49. package/{v2/phase-runner → old}/PhaseRunnerDispatcher.d.ts +4 -4
  50. package/old/PhaseRunnerDispatcher.js +33 -0
  51. package/old/PhaseRunnerDispatcher.js.map +1 -0
  52. package/{v2/unit → old}/runner-dispatchers.d.ts +3 -3
  53. package/old/runner-dispatchers.js +4 -0
  54. package/old/runner-dispatchers.js.map +1 -0
  55. package/package.json +20 -15
  56. package/v3/PhaseManager.d.ts +26 -0
  57. package/v3/PhaseManager.js +144 -0
  58. package/v3/PhaseManager.js.map +1 -0
  59. package/v3/RunningStatusHandler.d.ts +16 -0
  60. package/v3/RunningStatusHandler.js +57 -0
  61. package/v3/RunningStatusHandler.js.map +1 -0
  62. package/v3/UnitsDependencyMapper/UnitsDependencyMapper.d.ts +52 -0
  63. package/v3/UnitsDependencyMapper/UnitsDependencyMapper.js +287 -0
  64. package/v3/UnitsDependencyMapper/UnitsDependencyMapper.js.map +1 -0
  65. package/v3/UnitsMapper/UnitsMapper.d.ts +21 -0
  66. package/v3/UnitsMapper/UnitsMapper.js +60 -0
  67. package/v3/UnitsMapper/UnitsMapper.js.map +1 -0
  68. package/v3/UnitsMapper/resolvers/UnitMapper_Base.d.ts +23 -0
  69. package/v3/UnitsMapper/resolvers/UnitMapper_Base.js +17 -0
  70. package/v3/UnitsMapper/resolvers/UnitMapper_Base.js.map +1 -0
  71. package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseFunction.d.ts +62 -0
  72. package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseFunction.js +56 -0
  73. package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseFunction.js.map +1 -0
  74. package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseHosting.d.ts +38 -0
  75. package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseHosting.js +49 -0
  76. package/v3/UnitsMapper/resolvers/UnitMapper_FirebaseHosting.js.map +1 -0
  77. package/v3/UnitsMapper/resolvers/UnitMapper_Node.d.ts +30 -0
  78. package/v3/UnitsMapper/resolvers/UnitMapper_Node.js +59 -0
  79. package/v3/UnitsMapper/resolvers/UnitMapper_Node.js.map +1 -0
  80. package/v3/UnitsMapper/resolvers/UnitMapper_NodeLib.d.ts +25 -0
  81. package/v3/UnitsMapper/resolvers/UnitMapper_NodeLib.js +29 -0
  82. package/v3/UnitsMapper/resolvers/UnitMapper_NodeLib.js.map +1 -0
  83. package/v3/UnitsMapper/resolvers/UnitMapper_NodeProject.d.ts +24 -0
  84. package/v3/UnitsMapper/resolvers/UnitMapper_NodeProject.js +23 -0
  85. package/v3/UnitsMapper/resolvers/UnitMapper_NodeProject.js.map +1 -0
  86. package/v3/UnitsMapper/resolvers/index.d.ts +4 -0
  87. package/v3/UnitsMapper/resolvers/index.js +5 -0
  88. package/v3/UnitsMapper/resolvers/index.js.map +1 -0
  89. package/v3/UnitsMapper/types.d.ts +25 -0
  90. package/v3/UnitsMapper/types.js +2 -0
  91. package/v3/UnitsMapper/types.js.map +1 -0
  92. package/v3/core/FileSystemUtils.d.ts +34 -0
  93. package/v3/core/FileSystemUtils.js +152 -0
  94. package/v3/core/FileSystemUtils.js.map +1 -0
  95. package/v3/core/FilesCache.d.ts +7 -0
  96. package/v3/core/FilesCache.js +34 -0
  97. package/v3/core/FilesCache.js.map +1 -0
  98. package/v3/core/Unit_HelpPrinter.d.ts +16 -0
  99. package/v3/core/Unit_HelpPrinter.js +48 -0
  100. package/v3/core/Unit_HelpPrinter.js.map +1 -0
  101. package/v3/core/types.d.ts +17 -0
  102. package/v3/core/types.js +6 -0
  103. package/v3/core/types.js.map +1 -0
  104. package/v3/phase/consts.d.ts +52 -0
  105. package/v3/phase/consts.js +127 -0
  106. package/v3/phase/consts.js.map +1 -0
  107. package/v3/phase/index.d.ts +2 -0
  108. package/v3/phase/index.js +3 -0
  109. package/v3/phase/index.js.map +1 -0
  110. package/v3/phase/types.d.ts +9 -0
  111. package/v3/phase/types.js +2 -0
  112. package/v3/phase/types.js.map +1 -0
  113. package/v3/units/BaseUnit.d.ts +46 -0
  114. package/v3/units/BaseUnit.js +120 -0
  115. package/v3/units/BaseUnit.js.map +1 -0
  116. package/v3/units/ProjectUnit.d.ts +18 -0
  117. package/v3/units/ProjectUnit.js +12 -0
  118. package/v3/units/ProjectUnit.js.map +1 -0
  119. package/v3/units/Unit_NodeProject.d.ts +30 -0
  120. package/v3/units/Unit_NodeProject.js +244 -0
  121. package/v3/units/Unit_NodeProject.js.map +1 -0
  122. package/v3/units/Unit_PackageJson.d.ts +18 -0
  123. package/v3/units/Unit_PackageJson.js +51 -0
  124. package/v3/units/Unit_PackageJson.js.map +1 -0
  125. package/v3/units/Unit_TypescriptLib.d.ts +45 -0
  126. package/v3/units/Unit_TypescriptLib.js +377 -0
  127. package/v3/units/Unit_TypescriptLib.js.map +1 -0
  128. package/v3/units/firebase/Unit_FirebaseFunctionsApp.d.ts +60 -0
  129. package/v3/units/firebase/Unit_FirebaseFunctionsApp.js +281 -0
  130. package/v3/units/firebase/Unit_FirebaseFunctionsApp.js.map +1 -0
  131. package/v3/units/firebase/Unit_FirebaseHostingApp.d.ts +49 -0
  132. package/v3/units/firebase/Unit_FirebaseHostingApp.js +100 -0
  133. package/v3/units/firebase/Unit_FirebaseHostingApp.js.map +1 -0
  134. package/v3/units/index.d.ts +5 -0
  135. package/v3/units/index.js +6 -0
  136. package/v3/units/index.js.map +1 -0
  137. package/core/params/types.d.ts +0 -51
  138. package/core/params/types.js +0 -2
  139. package/tsconfig.json +0 -23
  140. package/v2/phase/consts.d.ts +0 -53
  141. package/v2/phase/consts.js +0 -151
  142. package/v2/phase/index.d.ts +0 -2
  143. package/v2/phase/index.js +0 -18
  144. package/v2/phase/types.d.ts +0 -12
  145. package/v2/phase/types.js +0 -2
  146. package/v2/phase-runner/PhaseRunner.d.ts +0 -69
  147. package/v2/phase-runner/PhaseRunner.js +0 -472
  148. package/v2/phase-runner/PhaseRunnerDispatcher.js +0 -37
  149. package/v2/phase-runner/RunnerParams.d.ts +0 -12
  150. package/v2/phase-runner/RunnerParams.js +0 -9
  151. package/v2/phase-runner/consts.d.ts +0 -7
  152. package/v2/phase-runner/consts.js +0 -9
  153. package/v2/phase-runner/kaki.d.ts +0 -0
  154. package/v2/phase-runner/kaki.js +0 -1
  155. package/v2/phase-runner/types.d.ts +0 -13
  156. package/v2/phase-runner/types.js +0 -6
  157. package/v2/project/types.d.ts +0 -8
  158. package/v2/project/types.js +0 -2
  159. package/v2/screens/BAIScreen.d.ts +0 -22
  160. package/v2/screens/BAIScreen.js +0 -82
  161. package/v2/screens/BAIScreenManager.d.ts +0 -28
  162. package/v2/screens/BAIScreenManager.js +0 -77
  163. package/v2/screens/BAIScreen_Launch.d.ts +0 -28
  164. package/v2/screens/BAIScreen_Launch.js +0 -173
  165. package/v2/screens/BAIScreen_UnitList.d.ts +0 -36
  166. package/v2/screens/BAIScreen_UnitList.js +0 -203
  167. package/v2/unit/consts.d.ts +0 -6
  168. package/v2/unit/consts.js +0 -8
  169. package/v2/unit/core/BaseUnit.d.ts +0 -39
  170. package/v2/unit/core/BaseUnit.js +0 -138
  171. package/v2/unit/core/Unit_Python.d.ts +0 -16
  172. package/v2/unit/core/Unit_Python.js +0 -26
  173. package/v2/unit/core/Unit_Typescript.d.ts +0 -49
  174. package/v2/unit/core/Unit_Typescript.js +0 -143
  175. package/v2/unit/core/Unit_TypescriptLib.d.ts +0 -48
  176. package/v2/unit/core/Unit_TypescriptLib.js +0 -226
  177. package/v2/unit/core/Unit_TypescriptProject.d.ts +0 -31
  178. package/v2/unit/core/Unit_TypescriptProject.js +0 -194
  179. package/v2/unit/core/index.d.ts +0 -5
  180. package/v2/unit/core/index.js +0 -21
  181. package/v2/unit/firebase-units/Unit_FirebaseFunctionsApp.d.ts +0 -35
  182. package/v2/unit/firebase-units/Unit_FirebaseFunctionsApp.js +0 -309
  183. package/v2/unit/firebase-units/Unit_FirebaseHostingApp.d.ts +0 -24
  184. package/v2/unit/firebase-units/Unit_FirebaseHostingApp.js +0 -138
  185. package/v2/unit/firebase-units/consts.d.ts +0 -2
  186. package/v2/unit/firebase-units/consts.js +0 -9
  187. package/v2/unit/firebase-units/index.d.ts +0 -2
  188. package/v2/unit/firebase-units/index.js +0 -18
  189. package/v2/unit/runner-dispatchers.js +0 -6
  190. package/v2/unit/thunderstorm.d.ts +0 -171
  191. package/v2/unit/thunderstorm.js +0 -199
  192. package/v2/unit/tools/tools.d.ts +0 -2
  193. package/v2/unit/tools/tools.js +0 -15
  194. package/v2/unit/types.d.ts +0 -8
  195. package/v2/unit/types.js +0 -2
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BAIScreen = void 0;
4
- const ts_common_1 = require("@nu-art/ts-common");
5
- const PhaseRunnerDispatcher_1 = require("../phase-runner/PhaseRunnerDispatcher");
6
- const ConsoleScreen_1 = require("@nu-art/commando/console/ConsoleScreen");
7
- class BAIScreen extends ConsoleScreen_1.ConsoleScreen {
8
- //######################### Initialization #########################
9
- /**
10
- * Creates an instance of ConsoleScreen.
11
- *
12
- * @param {Widgets.IScreenOptions} [props] - The properties to apply to the screen widget.
13
- * @param {ScreenKeyBinding[]} [keyBinding] - An array of key bindings for the screen widget.
14
- */
15
- constructor(logClientKey) {
16
- super({ smartCSR: true, title: 'Build and Install' }, [
17
- {
18
- keys: ['escape', 'q', 'C-c'],
19
- callback: async () => await this.onKill(),
20
- },
21
- {
22
- keys: ['up'], // Scroll up on Control-U
23
- callback: () => {
24
- this.scrollLog(-1);
25
- },
26
- },
27
- {
28
- keys: ['down'], // Scroll down on Control-D
29
- callback: () => {
30
- this.scrollLog(1);
31
- },
32
- },
33
- ]);
34
- this.getLogs = () => this.logClient.buffers[0];
35
- this.startScreen = () => {
36
- //Start listening on dispatchers
37
- PhaseRunnerDispatcher_1.dispatcher_UnitStatusChange.addListener(this);
38
- PhaseRunnerDispatcher_1.dispatcher_PhaseChange.addListener(this);
39
- PhaseRunnerDispatcher_1.dispatcher_UnitChange.addListener(this);
40
- //Add this log client to BeLogged
41
- ts_common_1.BeLogged.addClient(this.logClient);
42
- this.create();
43
- };
44
- this.stopScreen = () => {
45
- //Stop listening on dispatchers
46
- PhaseRunnerDispatcher_1.dispatcher_UnitStatusChange.removeListener(this);
47
- PhaseRunnerDispatcher_1.dispatcher_PhaseChange.removeListener(this);
48
- PhaseRunnerDispatcher_1.dispatcher_UnitChange.removeListener(this);
49
- //Remove this log client to BeLogged
50
- ts_common_1.BeLogged.removeClient(this.logClient);
51
- this.destroyContent();
52
- this.container.destroy();
53
- };
54
- this.setOnKillCallback = (cb) => this.onKillCallback = cb;
55
- this.scrollLog.bind(this);
56
- this.createLogClient(logClientKey);
57
- }
58
- createLogClient(logClientKey) {
59
- //Create the log client
60
- this.logClient = new ts_common_1.LogClient_MemBuffer(`${logClientKey}.txt`);
61
- //Set for terminal flag
62
- this.logClient.keepLogsNaturalColors();
63
- //Set log composer to print logs with timestamps
64
- this.logClient.setComposer((tag, level) => {
65
- ts_common_1._logger_finalDate.setTime(Date.now() - ts_common_1._logger_timezoneOffset);
66
- const date = ts_common_1._logger_finalDate.toISOString().replace(/T/, '_').replace(/Z/, '').substring(0, 23).split('_')[1];
67
- return ` ${date} ${(0, ts_common_1._logger_getPrefix)(level)} ${tag}: `;
68
- });
69
- //Connect callback to listen when log is appended
70
- this.logClient.setLogAppendedListener(() => {
71
- this.onLogUpdated();
72
- });
73
- }
74
- //######################### Kill Functionality #########################
75
- async onKill() {
76
- var _a;
77
- this.logInfo('Kill command received');
78
- await ((_a = this.onKillCallback) === null || _a === void 0 ? void 0 : _a.call(this));
79
- this.logInfo('Killed!');
80
- }
81
- }
82
- exports.BAIScreen = BAIScreen;
@@ -1,28 +0,0 @@
1
- import { MemKey } from '@nu-art/ts-common/mem-storage/MemStorage';
2
- import { BAIScreen } from './BAIScreen';
3
- import { Phase } from '../phase';
4
- import { PhaseRunner_OnPhaseChange } from '../phase-runner/PhaseRunnerDispatcher';
5
- export declare const MemKey_BAIScreenManager: MemKey<BAIScreenManager>;
6
- type BAIScreenConditions = {
7
- startOnPhase?: Phase<string>;
8
- stopOnPhase?: Phase<string>;
9
- condition?: () => boolean;
10
- };
11
- type BAIScreenOption = {
12
- screen: BAIScreen;
13
- conditions: BAIScreenConditions;
14
- };
15
- export declare class BAIScreenManager implements PhaseRunner_OnPhaseChange {
16
- readonly screens: BAIScreenOption[];
17
- private currentPhase?;
18
- private currentScreen?;
19
- constructor();
20
- __onPhaseChange: (phase: Phase<string>) => void;
21
- addScreen: (screen: BAIScreen, conditions: BAIScreenConditions) => void;
22
- removeScreen: (screen: BAIScreen) => void;
23
- private getScreenOption;
24
- private reAssignScreen;
25
- private assignTerminal;
26
- private assignScreenOption;
27
- }
28
- export {};
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BAIScreenManager = exports.MemKey_BAIScreenManager = void 0;
4
- const MemStorage_1 = require("@nu-art/ts-common/mem-storage/MemStorage");
5
- const ts_common_1 = require("@nu-art/ts-common");
6
- const PhaseRunnerDispatcher_1 = require("../phase-runner/PhaseRunnerDispatcher");
7
- const consts_1 = require("../phase-runner/consts");
8
- exports.MemKey_BAIScreenManager = new MemStorage_1.MemKey('bai-screen-manager');
9
- class BAIScreenManager {
10
- constructor() {
11
- this.screens = [];
12
- this.__onPhaseChange = (phase) => {
13
- this.currentPhase = phase;
14
- this.reAssignScreen();
15
- };
16
- // ######################### Screens #########################
17
- this.addScreen = (screen, conditions) => {
18
- if (this.screens.find(op => op.screen === screen))
19
- return;
20
- this.screens.push({ screen, conditions });
21
- };
22
- this.removeScreen = (screen) => {
23
- const index = this.screens.findIndex(op => op.screen === screen);
24
- if (index === -1)
25
- return;
26
- (0, ts_common_1.removeFromArrayByIndex)(this.screens, index);
27
- };
28
- PhaseRunnerDispatcher_1.dispatcher_PhaseChange.addListener(this);
29
- this.assignTerminal();
30
- }
31
- // ######################### Screen Transition Logic #########################
32
- getScreenOption() {
33
- const phases = consts_1.MemKey_PhaseRunner.get().getPhases();
34
- const currentPhaseIndex = this.currentPhase ? phases.indexOf(this.currentPhase) : -1;
35
- return this.screens.find(screenOption => {
36
- if (screenOption.conditions.condition && !screenOption.conditions.condition())
37
- return false;
38
- const startPhaseIndex = screenOption.conditions.startOnPhase ? phases.indexOf(screenOption.conditions.startOnPhase) : phases.length;
39
- const stopPhaseIndex = screenOption.conditions.stopOnPhase ? phases.indexOf(screenOption.conditions.stopOnPhase) : phases.length;
40
- //Fail fast if current phase is before the startOnPhase
41
- if (currentPhaseIndex >= startPhaseIndex && currentPhaseIndex < stopPhaseIndex)
42
- return true;
43
- return false;
44
- });
45
- }
46
- reAssignScreen() {
47
- const screenToAssign = this.getScreenOption();
48
- //No screen conditions pass
49
- if (!screenToAssign)
50
- return this.assignTerminal();
51
- this.assignScreenOption(screenToAssign);
52
- }
53
- assignTerminal() {
54
- //Un assign current screen
55
- if (this.currentScreen) {
56
- this.currentScreen.screen.stopScreen();
57
- }
58
- ts_common_1.BeLogged.addClient(ts_common_1.LogClient_Terminal);
59
- }
60
- assignScreenOption(screen) {
61
- //No need to do anything if same screen
62
- if (this.currentScreen === screen)
63
- return;
64
- //Un assign current screen
65
- if (this.currentScreen) {
66
- this.currentScreen.screen.stopScreen();
67
- }
68
- else {
69
- //Remove terminal from the BeLogged
70
- ts_common_1.BeLogged.removeClient(ts_common_1.LogClient_Terminal);
71
- }
72
- //Assign given screen
73
- this.currentScreen = screen;
74
- this.currentScreen.screen.startScreen();
75
- }
76
- }
77
- exports.BAIScreenManager = BAIScreenManager;
@@ -1,28 +0,0 @@
1
- import { BAIScreen } from './BAIScreen';
2
- import { BaseUnit } from '../unit/core';
3
- import { PhaseRunner_OnUnitsChange } from '../phase-runner/PhaseRunnerDispatcher';
4
- export declare class BAIScreen_Launch extends BAIScreen implements PhaseRunner_OnUnitsChange {
5
- private allUnits;
6
- private focusUnits;
7
- private gridDimensions;
8
- private withRunningLogs;
9
- private renderDebounceAction;
10
- private gridCellWidgets;
11
- constructor();
12
- __onUnitsChange: (data: BaseUnit[]) => void;
13
- private rebuildScreens;
14
- protected onLogUpdated: () => void;
15
- private updateUnits;
16
- protected createContent(): void;
17
- protected scrollLog(direction: number): void;
18
- private createGridWidgets;
19
- private toggleFullScreenMode;
20
- private calculateGridDimensions;
21
- private getGridWidgetLabel;
22
- protected destroyContent(): void;
23
- private destroyGridWidgets;
24
- protected render(): void;
25
- private getContentForWidget;
26
- private renderGridWidgets;
27
- setWithRunningLogs: (val: boolean) => boolean;
28
- }
@@ -1,173 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BAIScreen_Launch = void 0;
4
- const BAIScreen_1 = require("./BAIScreen");
5
- const consts_1 = require("../phase-runner/consts");
6
- const firebase_units_1 = require("../unit/firebase-units");
7
- const ts_common_1 = require("@nu-art/ts-common");
8
- const phase_1 = require("../phase");
9
- class BAIScreen_Launch extends BAIScreen_1.BAIScreen {
10
- //######################### Lifecycle #########################
11
- constructor() {
12
- super('bai-launch');
13
- //######################### Properties #########################
14
- this.allUnits = [];
15
- this.focusUnits = [];
16
- this.gridDimensions = [[{ width: 1, height: 1 }]];
17
- this.withRunningLogs = false;
18
- this.renderDebounceAction = (0, ts_common_1.debounce)(() => this.renderGridWidgets(), ts_common_1.Second, 2 * ts_common_1.Second);
19
- //Widgets
20
- this.gridCellWidgets = [];
21
- this.__onUnitsChange = (data) => {
22
- this.updateUnits();
23
- this.rebuildScreens();
24
- };
25
- this.onLogUpdated = () => {
26
- this.renderDebounceAction();
27
- };
28
- this.updateUnits = () => {
29
- const runner = consts_1.MemKey_PhaseRunner.get();
30
- this.allUnits = runner.getUnits().filter(unit => {
31
- const isRelevantUnitType = unit.isInstanceOf(firebase_units_1.Unit_FirebaseHostingApp) || unit.isInstanceOf(firebase_units_1.Unit_FirebaseFunctionsApp);
32
- return !!(isRelevantUnitType && (!(0, ts_common_1.exists)(phase_1.phase_Launch.unitFilter) || phase_1.phase_Launch.unitFilter(unit)));
33
- });
34
- if (!this.focusUnits.length)
35
- this.focusUnits = this.allUnits;
36
- };
37
- this.createGridWidgets = () => {
38
- this.destroyGridWidgets();
39
- this.calculateGridDimensions();
40
- let xPos = 0;
41
- let widgetIndex = 0;
42
- this.gridDimensions.forEach((col) => {
43
- let yPos = 0;
44
- col.forEach((cell) => {
45
- const height = cell.height * 100;
46
- const width = cell.width * 100;
47
- const props = {
48
- top: `${yPos}%`,
49
- left: `${xPos}%`,
50
- width: `${width}%`,
51
- height: `${height}%`,
52
- label: this.getGridWidgetLabel(widgetIndex),
53
- border: { type: 'line' },
54
- style: {
55
- hover: { border: { fg: 'blue' } },
56
- border: { fg: 'gray' },
57
- focus: { border: { fg: 'green' } }
58
- },
59
- valign: 'top',
60
- align: 'left',
61
- interactive: true,
62
- focusable: true,
63
- };
64
- const logWidget = this.createWidget('log', props);
65
- let doubleClickTimestamp = 0;
66
- const unitIndex = widgetIndex;
67
- logWidget.on('mouse', (event) => {
68
- if (!(event.button === 'middle' && event.action === 'mouseup'))
69
- return;
70
- if ((0, ts_common_1.currentTimeMillis)() - doubleClickTimestamp < 500) {
71
- return this.toggleFullScreenMode(unitIndex);
72
- }
73
- doubleClickTimestamp = (0, ts_common_1.currentTimeMillis)();
74
- });
75
- this.gridCellWidgets.push(logWidget);
76
- yPos += height; //Assuming all cells in a column have the same height
77
- widgetIndex++;
78
- });
79
- xPos += col[0].width * 100; //Assuming all Cells have the same width
80
- });
81
- };
82
- this.calculateGridDimensions = (count = this.focusUnits.length) => {
83
- //Add 1 more window for running logs
84
- if (this.withRunningLogs)
85
- count++;
86
- const grid = [];
87
- const columns = Math.ceil(Math.sqrt(count)); // Calculate number of columns
88
- let remainingItems = count;
89
- for (let col = 0; col < columns; col++) {
90
- const column = [];
91
- const itemsInThisColumn = Math.ceil(remainingItems / (columns - col));
92
- const height = 1 / itemsInThisColumn;
93
- for (let row = 0; row < itemsInThisColumn; row++) {
94
- column.push({ width: 1 / columns, height });
95
- }
96
- grid.push(column);
97
- remainingItems -= itemsInThisColumn;
98
- }
99
- this.gridDimensions = grid;
100
- };
101
- this.getGridWidgetLabel = (index) => {
102
- const widgetLogs = this.getContentForWidget(index);
103
- if (!this.withRunningLogs)
104
- return `${this.focusUnits[index].config.label} - Log Size: ${(0, ts_common_1.getStringSize)(widgetLogs, 'KB').toFixed(3)} KB`;
105
- return index === this.focusUnits.length ? 'Running Logs' : `${this.focusUnits[index].config.label} - Log Size: ${(0, ts_common_1.getStringSize)(widgetLogs, 'KB').toFixed(3)} KB`;
106
- };
107
- this.destroyGridWidgets = () => {
108
- this.gridCellWidgets.forEach(widget => widget.destroy());
109
- this.gridCellWidgets.length = 0;
110
- };
111
- this.getContentForWidget = (widgetIndex) => {
112
- var _a, _b, _c;
113
- if (!this.withRunningLogs) {
114
- const unit = this.focusUnits[widgetIndex];
115
- if (!unit)
116
- throw new ts_common_1.WhoCallThisException(`focusedUnits: ${this.focusUnits.length}[${widgetIndex}]`);
117
- const isFullScreen = ((_a = this.focusUnits) === null || _a === void 0 ? void 0 : _a.length) === 1;
118
- return (0, ts_common_1.maxSubstring)((_b = unit.getLogs()) !== null && _b !== void 0 ? _b : `No logs for unit ${unit.config.label}`, isFullScreen ? ts_common_1.MB : 100 * ts_common_1.KB, 'end');
119
- }
120
- //With running logs, last index should return the running logs
121
- if (widgetIndex === this.focusUnits.length)
122
- return (0, ts_common_1.maxSubstring)(this.getLogs(), 100 * ts_common_1.KB, 'end');
123
- const unit = this.focusUnits[widgetIndex];
124
- return (0, ts_common_1.maxSubstring)((_c = unit.getLogs()) !== null && _c !== void 0 ? _c : `No logs for unit ${unit.config.label}`, 100 * ts_common_1.KB, 'end');
125
- };
126
- this.renderGridWidgets = () => {
127
- this.gridCellWidgets.forEach((widget, index) => {
128
- const scrollPosition = widget.getScroll();
129
- const content = this.getContentForWidget(index);
130
- widget.setContent(content);
131
- widget.setScroll(scrollPosition);
132
- widget.setLabel(this.getGridWidgetLabel(index));
133
- });
134
- };
135
- //######################### Options #########################
136
- this.setWithRunningLogs = (val) => this.withRunningLogs = val;
137
- }
138
- rebuildScreens() {
139
- this.createGridWidgets();
140
- this.renderGridWidgets();
141
- this.container.screen.render();
142
- }
143
- //######################### Content Creation #########################
144
- createContent() {
145
- this.updateUnits();
146
- this.createGridWidgets();
147
- }
148
- scrollLog(direction) {
149
- var _a;
150
- const focusedWidget = this.getFocusedWidget();
151
- // @ts-ignore
152
- (_a = this.gridCellWidgets.find(log => log._label.content === focusedWidget._label.content)) === null || _a === void 0 ? void 0 : _a.scroll(direction);
153
- }
154
- toggleFullScreenMode(unitIndex) {
155
- if (this.focusUnits.length !== this.allUnits.length)
156
- this.focusUnits = this.allUnits;
157
- else
158
- this.focusUnits = [this.allUnits[unitIndex]];
159
- this.rebuildScreens();
160
- }
161
- //######################### Content Destruction #########################
162
- destroyContent() {
163
- this.destroyGridWidgets();
164
- }
165
- //######################### Render #########################
166
- render() {
167
- this.renderGridWidgets();
168
- this.logInfo('GRID DIMENSIONS', this.gridDimensions);
169
- this.logInfo('UNITS', this.focusUnits.map(unit => unit.config.label));
170
- this.logInfo('RUNNER UNITS', consts_1.MemKey_PhaseRunner.get().getUnits().map(unit => unit.config.label));
171
- }
172
- }
173
- exports.BAIScreen_Launch = BAIScreen_Launch;
@@ -1,36 +0,0 @@
1
- import { PhaseRunner_OnPhaseChange, PhaseRunner_OnUnitsChange, PhaseRunner_OnUnitStatusChange } from '../phase-runner/PhaseRunnerDispatcher';
2
- import { Phase } from '../phase';
3
- import { BaseUnit } from '../unit/core';
4
- import { BAIScreen } from './BAIScreen';
5
- type State = {
6
- currentPhaseName?: string;
7
- selectedUnit?: BaseUnit;
8
- };
9
- export declare class BAIScreen_UnitList extends BAIScreen<State> implements PhaseRunner_OnPhaseChange, PhaseRunner_OnUnitStatusChange, PhaseRunner_OnUnitsChange {
10
- private units;
11
- private logWidget;
12
- private phaseWidget;
13
- private unitWrapperWidget;
14
- private unitWidgets;
15
- constructor();
16
- __onPhaseChange(phase: Phase<string>): void;
17
- __onUnitStatusChange(unit: BaseUnit): void;
18
- __onUnitsChange(data: BaseUnit[]): void;
19
- protected onLogUpdated: () => void;
20
- protected scrollLog(direction: number): void;
21
- protected destroyContent(): void;
22
- private destroyPhaseWidget;
23
- private destroyUnitListWidget;
24
- private destroyLogWidget;
25
- protected createContent(): void;
26
- private createPhaseWidget;
27
- private createUnitListWidget;
28
- private createUnitItemWidget;
29
- private createLogWidget;
30
- protected render(): void;
31
- private renderPhase;
32
- private renderUnitList;
33
- private renderLogs;
34
- private onUnitSelect;
35
- }
36
- export {};
@@ -1,203 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BAIScreen_UnitList = void 0;
4
- const BAIScreen_1 = require("./BAIScreen");
5
- const consts_1 = require("../phase-runner/consts");
6
- const PhaseRunner_1 = require("../phase-runner/PhaseRunner");
7
- const params_1 = require("../../core/params/params");
8
- class BAIScreen_UnitList extends BAIScreen_1.BAIScreen {
9
- //######################### Lifecycle #########################
10
- constructor() {
11
- super('bai-unit-list');
12
- //######################### Properties #########################
13
- this.units = [];
14
- this.unitWidgets = [];
15
- this.onLogUpdated = () => {
16
- this.renderLogs();
17
- };
18
- }
19
- __onPhaseChange(phase) {
20
- this.setState({ currentPhaseName: phase.name });
21
- }
22
- __onUnitStatusChange(unit) {
23
- this.renderUnitList();
24
- this.container.screen.render();
25
- }
26
- __onUnitsChange(data) {
27
- this.destroyUnitListWidget();
28
- this.createUnitListWidget();
29
- this.renderUnitList();
30
- }
31
- scrollLog(direction) {
32
- // const focusedWidget = this.getFocusedWidget();
33
- // @ts-ignore
34
- // console.log(`ZEVEL ${focusedWidget.type}`);
35
- // if (focusedWidget !== this.logWidget)
36
- // return;
37
- this.logWidget.scroll(direction);
38
- }
39
- //######################### Content Destruction #########################
40
- destroyContent() {
41
- this.destroyPhaseWidget();
42
- this.destroyUnitListWidget();
43
- this.destroyLogWidget();
44
- }
45
- destroyPhaseWidget() {
46
- var _a;
47
- (_a = this.phaseWidget) === null || _a === void 0 ? void 0 : _a.destroy();
48
- }
49
- destroyUnitListWidget() {
50
- var _a, _b;
51
- (_a = this.unitWrapperWidget) === null || _a === void 0 ? void 0 : _a.destroy();
52
- (_b = this.unitWidgets) === null || _b === void 0 ? void 0 : _b.forEach(group => group.forEach(widget => widget.destroy()));
53
- }
54
- destroyLogWidget() {
55
- var _a;
56
- (_a = this.logWidget) === null || _a === void 0 ? void 0 : _a.destroy();
57
- }
58
- //######################### Content Creation #########################
59
- createContent() {
60
- //Create widgets
61
- this.createPhaseWidget();
62
- this.createUnitListWidget();
63
- this.createLogWidget();
64
- }
65
- createPhaseWidget() {
66
- const props = {
67
- top: 0,
68
- left: 0,
69
- height: 3,
70
- width: '30%',
71
- content: 'phases',
72
- border: { type: 'line' },
73
- tags: true,
74
- style: {
75
- border: { fg: 'blue' },
76
- fg: 'blue',
77
- },
78
- align: 'center',
79
- label: 'phase',
80
- };
81
- this.phaseWidget = this.createWidget('text', props);
82
- this.phaseWidget.on('mouse', (event) => {
83
- if (event.button === 'left' && event.action === 'mousedown') {
84
- params_1.RuntimeParams.continue = true;
85
- PhaseRunner_1.PhaseRunner.instance.execute().then(() => this.logInfo('Completed')).catch((e) => {
86
- this.logError('Error: ', e);
87
- });
88
- }
89
- });
90
- }
91
- createUnitListWidget() {
92
- this.units = consts_1.MemKey_PhaseRunner.get().getUnits();
93
- this.destroyUnitListWidget();
94
- const props = {
95
- top: 3,
96
- left: 0,
97
- bottom: 0,
98
- width: '30%',
99
- border: { type: 'line' },
100
- align: 'left',
101
- style: {
102
- border: { fg: 'blue' },
103
- },
104
- };
105
- this.unitWrapperWidget = this.createWidget('list', props);
106
- this.units.forEach((unit, i) => this.createUnitItemWidget(unit, i));
107
- }
108
- createUnitItemWidget(unit, index) {
109
- const containerProps = {
110
- top: (this.unitWrapperWidget.top + 1) + index,
111
- width: '30%-3',
112
- left: 2,
113
- height: 1,
114
- };
115
- const labelProps = {
116
- width: '50%',
117
- height: '100%',
118
- left: 0,
119
- align: 'left',
120
- style: {
121
- fg: 'blue',
122
- },
123
- };
124
- const statusProps = {
125
- width: '50%',
126
- height: '100%',
127
- right: 0,
128
- align: 'right',
129
- style: {
130
- fg: 'blue',
131
- },
132
- };
133
- const containerWidget = this.createWidget('box', containerProps);
134
- const labelWidget = this.createWidget('text', labelProps);
135
- const statusWidget = this.createWidget('text', statusProps);
136
- containerWidget.on('mousedown', () => this.onUnitSelect(unit, index));
137
- containerWidget.append(labelWidget);
138
- containerWidget.append(statusWidget);
139
- this.unitWrapperWidget.pushItem(containerWidget);
140
- this.unitWidgets.push([containerWidget, labelWidget, statusWidget]);
141
- }
142
- createLogWidget() {
143
- const props = {
144
- top: 0,
145
- right: 0,
146
- bottom: 0,
147
- width: '70%',
148
- border: { type: 'line' },
149
- style: {
150
- border: { fg: 'blue' }
151
- },
152
- scrollbar: {
153
- ch: ' ',
154
- track: {
155
- bg: 'grey',
156
- },
157
- style: {
158
- inverse: true,
159
- },
160
- },
161
- interactive: true // This is typically required for focus management
162
- };
163
- this.logWidget = this.createWidget('log', props);
164
- }
165
- //######################### Render #########################
166
- render() {
167
- this.renderPhase();
168
- this.renderUnitList();
169
- this.renderLogs();
170
- }
171
- renderPhase() {
172
- var _a;
173
- this.phaseWidget.setContent((_a = this.state.currentPhaseName) !== null && _a !== void 0 ? _a : 'Initializing');
174
- }
175
- renderUnitList() {
176
- this.units.forEach((unit, index) => {
177
- var _a;
178
- const selected = unit === this.state.selectedUnit;
179
- const widgets = this.unitWidgets[index];
180
- widgets[1].setText(unit.config.label);
181
- widgets[2].setText((_a = unit.getStatus()) !== null && _a !== void 0 ? _a : 'N/A');
182
- widgets[1].style.bg = selected ? 'blue' : undefined;
183
- widgets[1].style.fg = selected ? 'white' : 'blue';
184
- widgets[2].style.bg = selected ? 'blue' : undefined;
185
- widgets[2].style.fg = selected ? 'white' : 'blue';
186
- });
187
- }
188
- renderLogs() {
189
- var _a, _b;
190
- const content = this.state.selectedUnit ? this.state.selectedUnit.getLogs() : this.getLogs();
191
- this.logWidget.setLabel(` ${(_b = (_a = this.state.selectedUnit) === null || _a === void 0 ? void 0 : _a.config.label) !== null && _b !== void 0 ? _b : 'All Logs'} `);
192
- this.logWidget.setContent(content);
193
- }
194
- //######################### Events #########################
195
- onUnitSelect(unit, index) {
196
- this.state.selectedUnit = unit === this.state.selectedUnit ? undefined : unit;
197
- this.renderUnitList();
198
- this.renderLogs();
199
- this.container.screen.render();
200
- }
201
- }
202
- exports.BAIScreen_UnitList = BAIScreen_UnitList;
203
- // /Users/tacb0ss/.nvm/versions/node/v18.15.0/bin/ts-node -P /Users/tacb0ss/dev/quai/test/quai-web/_thunderstorm/commando/src/test/tsconfig.json /Users/tacb0ss/dev/quai/test/quai-web/_thunderstorm/commando/src/test/console/controlled-scroll/run.ts
@@ -1,6 +0,0 @@
1
- import { WatchEventType } from './types';
2
- export declare const WatchEvent_Add: WatchEventType;
3
- export declare const WatchEvent_Update: WatchEventType;
4
- export declare const WatchEvent_RemoveDir: WatchEventType;
5
- export declare const WatchEvent_RemoveFile: WatchEventType;
6
- export declare const WatchEvent_Ready: WatchEventType;
package/v2/unit/consts.js DELETED
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WatchEvent_Ready = exports.WatchEvent_RemoveFile = exports.WatchEvent_RemoveDir = exports.WatchEvent_Update = exports.WatchEvent_Add = void 0;
4
- exports.WatchEvent_Add = 'add';
5
- exports.WatchEvent_Update = 'update';
6
- exports.WatchEvent_RemoveDir = 'remove_dir';
7
- exports.WatchEvent_RemoveFile = 'remove_file';
8
- exports.WatchEvent_Ready = 'ready';