@design.estate/dees-catalog 3.81.0 → 3.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.smartconfig.json +11 -6
- package/dist_bundle/bundle.js +33 -5
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-runtime/environments/WebContainerEnvironment.d.ts +2 -1
- package/dist_ts_web/elements/00group-runtime/environments/WebContainerEnvironment.js +8 -1
- package/dist_ts_web/elements/00group-runtime/interfaces/IExecutionEnvironment.d.ts +16 -1
- package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.d.ts +1 -0
- package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js +18 -4
- package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal/interfaces.d.ts +1 -1
- package/package.json +15 -15
- package/scripts/update-monaco-version.cjs +44 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-runtime/environments/WebContainerEnvironment.ts +15 -1
- package/ts_web/elements/00group-runtime/interfaces/IExecutionEnvironment.ts +18 -1
- package/ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.ts +21 -4
- package/ts_web/elements/00group-workspace/dees-workspace-terminal/interfaces.ts +2 -2
package/.smartconfig.json
CHANGED
|
@@ -37,12 +37,17 @@
|
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
39
|
"release": {
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
"targets": {
|
|
41
|
+
"npm": {
|
|
42
|
+
"registries": [
|
|
43
|
+
"https://verdaccio.lossless.digital",
|
|
44
|
+
"https://registry.npmjs.org"
|
|
45
|
+
],
|
|
46
|
+
"accessLevel": "public"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"schemaVersion": 2
|
|
46
51
|
},
|
|
47
52
|
"@git.zone/tsdoc": {
|
|
48
53
|
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
|
package/dist_bundle/bundle.js
CHANGED
|
@@ -132879,6 +132879,13 @@ var init_WebContainerEnvironment = __esm({
|
|
|
132879
132879
|
kill: /* @__PURE__ */ __name(() => process4.kill(), "kill")
|
|
132880
132880
|
};
|
|
132881
132881
|
}
|
|
132882
|
+
getShellCommand() {
|
|
132883
|
+
return {
|
|
132884
|
+
command: "jsh",
|
|
132885
|
+
label: "jsh",
|
|
132886
|
+
prompt: "~/"
|
|
132887
|
+
};
|
|
132888
|
+
}
|
|
132882
132889
|
// ============ WebContainer-specific methods ============
|
|
132883
132890
|
/**
|
|
132884
132891
|
* Mount files into the virtual filesystem.
|
|
@@ -133379,6 +133386,19 @@ var init_dees_workspace_terminal = __esm({
|
|
|
133379
133386
|
console.error("Failed to spawn process:", error);
|
|
133380
133387
|
}
|
|
133381
133388
|
}
|
|
133389
|
+
async getShellCommand() {
|
|
133390
|
+
if (this.executionEnvironment && !this.executionEnvironment.ready) {
|
|
133391
|
+
await this.executionEnvironment.init();
|
|
133392
|
+
}
|
|
133393
|
+
if (this.executionEnvironment?.getShellCommand) {
|
|
133394
|
+
return await this.executionEnvironment.getShellCommand();
|
|
133395
|
+
}
|
|
133396
|
+
return {
|
|
133397
|
+
command: "jsh",
|
|
133398
|
+
label: "jsh",
|
|
133399
|
+
prompt: "~/"
|
|
133400
|
+
};
|
|
133401
|
+
}
|
|
133382
133402
|
handleProcessExit(tabId, exitCode3) {
|
|
133383
133403
|
const tab2 = this.tabManager.getTab(tabId);
|
|
133384
133404
|
if (!tab2) return;
|
|
@@ -133424,10 +133444,11 @@ var init_dees_workspace_terminal = __esm({
|
|
|
133424
133444
|
* Create a new shell tab
|
|
133425
133445
|
*/
|
|
133426
133446
|
async createShellTab(label) {
|
|
133447
|
+
const shellCommand = await this.getShellCommand();
|
|
133427
133448
|
const tab2 = this.tabManager.createTab(
|
|
133428
133449
|
{
|
|
133429
133450
|
type: "shell",
|
|
133430
|
-
label: label ||
|
|
133451
|
+
label: label || `${shellCommand.label || shellCommand.command} ${this.tabManager.getTabCount() + 1}`,
|
|
133431
133452
|
closeable: this.tabManager.getTabCount() > 0
|
|
133432
133453
|
// First tab not closeable
|
|
133433
133454
|
},
|
|
@@ -133436,9 +133457,9 @@ var init_dees_workspace_terminal = __esm({
|
|
|
133436
133457
|
this.tabs = this.tabManager.getAllTabs();
|
|
133437
133458
|
this.switchToTab(tab2.id);
|
|
133438
133459
|
await this.updateComplete;
|
|
133439
|
-
await this.spawnProcessForTab(tab2,
|
|
133460
|
+
await this.spawnProcessForTab(tab2, shellCommand.command, shellCommand.args || []);
|
|
133440
133461
|
if (this.tabManager.getTabCount() === 1 && this.setupCommand) {
|
|
133441
|
-
await this.waitForPrompt(tab2.terminal, "~/");
|
|
133462
|
+
await this.waitForPrompt(tab2.terminal, shellCommand.prompt || "~/");
|
|
133442
133463
|
if (tab2.inputWriter) {
|
|
133443
133464
|
tab2.inputWriter.write(this.setupCommand);
|
|
133444
133465
|
}
|
|
@@ -154395,6 +154416,9 @@ __publicField(_DeesFormattingMenu, "styles", [
|
|
|
154395
154416
|
__runInitializers(_init35, 1, _DeesFormattingMenu);
|
|
154396
154417
|
var DeesFormattingMenu = _DeesFormattingMenu;
|
|
154397
154418
|
|
|
154419
|
+
// ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.interfaces.ts
|
|
154420
|
+
init_dist_ts30();
|
|
154421
|
+
|
|
154398
154422
|
// ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.constants.ts
|
|
154399
154423
|
var PROGRAMMING_LANGUAGES = [
|
|
154400
154424
|
"JavaScript",
|
|
@@ -165021,6 +165045,7 @@ __name(compileLucenePredicate, "compileLucenePredicate");
|
|
|
165021
165045
|
// ts_web/elements/00group-dataview/dees-table/dees-table.ts
|
|
165022
165046
|
init_dist_ts30();
|
|
165023
165047
|
init_dist_ts29();
|
|
165048
|
+
init_dees_icon();
|
|
165024
165049
|
init_theme();
|
|
165025
165050
|
var ___virtualRange_dec, ___flashingCells_dec, ___floatingActive_dec, ___editingCell_dec, ___focusedCell_dec, _selectedIds_dec, _selectionMode_dec, _searchMode_dec, _fixedHeight_dec, _highlightDuration_dec, _highlightUpdates_dec, _virtualOverscan_dec, _virtualized_dec, _showSelectionCheckbox_dec, _showColumnFilters_dec, _columnFilters_dec, _filterText_dec, _sortBy_dec, _showGrid_dec, _showHorizontalLines_dec, _showVerticalLines_dec, _selectedDataRow_dec, _reverseDisplayFunction_dec, _displayFunction_dec, _augmentFromDisplayFunction_dec, _rowKey_dec, _columns_dec, _dataActions_dec, _searchable_dec, _dataName_dec, _required_dec3, _disabled_dec3, _label_dec3, _key_dec2, _data_dec, _heading2_dec, _heading1_dec, _a42, _DeesTable_decorators, _init39, _heading1, _heading22, _data, _key2, _label3, _disabled3, _required3, _dataName, _searchable, _dataActions, _columns, _rowKey, _augmentFromDisplayFunction, _displayFunction, _reverseDisplayFunction, _selectedDataRow, _showVerticalLines, _showHorizontalLines, _showGrid, _sortBy, _filterText, _columnFilters, _showColumnFilters, _showSelectionCheckbox, _virtualized, _virtualOverscan, _highlightUpdates, _highlightDuration, _fixedHeight, _searchMode, _selectionMode, _selectedIds, ___focusedCell, ___editingCell, ___floatingActive, ___flashingCells, ___virtualRange;
|
|
165026
165051
|
function ordinalLabel(n12) {
|
|
@@ -202660,6 +202685,9 @@ _init112 = __decoratorStart(_a109);
|
|
|
202660
202685
|
DeesWorkspaceMarkdownoutlet = __decorateElement(_init112, 0, "DeesWorkspaceMarkdownoutlet", _DeesWorkspaceMarkdownoutlet_decorators, DeesWorkspaceMarkdownoutlet);
|
|
202661
202686
|
__runInitializers(_init112, 1, DeesWorkspaceMarkdownoutlet);
|
|
202662
202687
|
|
|
202688
|
+
// ts_web/elements/dees-tooltip/dees-tooltip.ts
|
|
202689
|
+
init_dist_ts30();
|
|
202690
|
+
|
|
202663
202691
|
// ts_web/elements/index.ts
|
|
202664
202692
|
init_theme();
|
|
202665
202693
|
init_group_runtime();
|
|
@@ -202667,7 +202695,7 @@ init_group_runtime();
|
|
|
202667
202695
|
// ts_web/00_commitinfo_data.ts
|
|
202668
202696
|
var commitinfo = {
|
|
202669
202697
|
name: "@design.estate/dees-catalog",
|
|
202670
|
-
version: "3.
|
|
202698
|
+
version: "3.82.0",
|
|
202671
202699
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
202672
202700
|
};
|
|
202673
202701
|
export {
|
|
@@ -204633,4 +204661,4 @@ ibantools/jsnext/ibantools.js:
|
|
|
204633
204661
|
* @preferred
|
|
204634
204662
|
*)
|
|
204635
204663
|
*/
|
|
204636
|
-
//# sourceMappingURL=bundle
|
|
204664
|
+
//# sourceMappingURL=bundle.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '3.
|
|
6
|
+
version: '3.82.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as webcontainer from '@tempfix/webcontainer__api';
|
|
2
|
-
import type { IExecutionEnvironment, IFileEntry, IFileWatcher, IProcessHandle } from '../interfaces/IExecutionEnvironment.js';
|
|
2
|
+
import type { IExecutionEnvironment, IFileEntry, IFileWatcher, IProcessHandle, IShellCommand } from '../interfaces/IExecutionEnvironment.js';
|
|
3
3
|
/**
|
|
4
4
|
* WebContainer-based execution environment.
|
|
5
5
|
* Runs Node.js and shell commands in the browser using WebContainer API.
|
|
@@ -25,6 +25,7 @@ export declare class WebContainerEnvironment implements IExecutionEnvironment {
|
|
|
25
25
|
recursive?: boolean;
|
|
26
26
|
}): IFileWatcher;
|
|
27
27
|
spawn(command: string, args?: string[]): Promise<IProcessHandle>;
|
|
28
|
+
getShellCommand(): IShellCommand;
|
|
28
29
|
/**
|
|
29
30
|
* Mount files into the virtual filesystem.
|
|
30
31
|
* This is a WebContainer-specific operation.
|
|
@@ -119,6 +119,13 @@ export class WebContainerEnvironment {
|
|
|
119
119
|
kill: () => process.kill(),
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
|
+
getShellCommand() {
|
|
123
|
+
return {
|
|
124
|
+
command: 'jsh',
|
|
125
|
+
label: 'jsh',
|
|
126
|
+
prompt: '~/',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
122
129
|
// ============ WebContainer-specific methods ============
|
|
123
130
|
/**
|
|
124
131
|
* Mount files into the virtual filesystem.
|
|
@@ -144,4 +151,4 @@ export class WebContainerEnvironment {
|
|
|
144
151
|
}
|
|
145
152
|
}
|
|
146
153
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1ydW50aW1lL2Vudmlyb25tZW50cy9XZWJDb250YWluZXJFbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssWUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBUzNEOzs7R0FHRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsbUVBQW1FO0lBQzNELE1BQU0sQ0FBQyxlQUFlLEdBQXFDLElBQUksQ0FBQztJQUNoRSxNQUFNLENBQUMsV0FBVyxHQUE4QyxJQUFJLENBQUM7SUFFckUsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUVoQixJQUFJLEdBQUcsY0FBdUIsQ0FBQztJQUUvQyxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLHVCQUF1QixDQUFDLGVBQWUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsc0NBQXNDO0lBRS9CLEtBQUssQ0FBQyxJQUFJO1FBQ2Ysc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzRCxPQUFPO1FBQ1QsQ0FBQztRQUVELHdEQUF3RDtRQUN4RCxJQUFJLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sdUJBQXVCLENBQUMsV0FBVyxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQseURBQXlEO1FBQ3pELElBQUksdUJBQXVCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxzRUFBc0U7UUFD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
|
|
@@ -28,6 +28,16 @@ export interface IProcessHandle {
|
|
|
28
28
|
/** Kill the process */
|
|
29
29
|
kill(): void;
|
|
30
30
|
}
|
|
31
|
+
export interface IShellCommand {
|
|
32
|
+
/** Executable to start for an interactive shell session. */
|
|
33
|
+
command: string;
|
|
34
|
+
/** Optional command arguments. */
|
|
35
|
+
args?: string[];
|
|
36
|
+
/** Optional display label for terminal tabs. */
|
|
37
|
+
label?: string;
|
|
38
|
+
/** Optional prompt marker used for setup commands. */
|
|
39
|
+
prompt?: string;
|
|
40
|
+
}
|
|
31
41
|
/**
|
|
32
42
|
* Abstract execution environment interface.
|
|
33
43
|
* Implementations can target WebContainer (browser), Backend API (server), or Mock (testing).
|
|
@@ -81,11 +91,16 @@ export interface IExecutionEnvironment {
|
|
|
81
91
|
}): IFileWatcher;
|
|
82
92
|
/**
|
|
83
93
|
* Spawn a new process
|
|
84
|
-
* @param command - Command to run (e.g., '
|
|
94
|
+
* @param command - Command to run (e.g., 'node', 'npm')
|
|
85
95
|
* @param args - Optional arguments
|
|
86
96
|
* @returns Process handle with I/O streams
|
|
87
97
|
*/
|
|
88
98
|
spawn(command: string, args?: string[]): Promise<IProcessHandle>;
|
|
99
|
+
/**
|
|
100
|
+
* Return the environment-native interactive shell command.
|
|
101
|
+
* Implementations should provide this when terminal shells need a specific executable.
|
|
102
|
+
*/
|
|
103
|
+
getShellCommand?(): IShellCommand | Promise<IShellCommand>;
|
|
89
104
|
/**
|
|
90
105
|
* Initialize the environment (e.g., boot WebContainer)
|
|
91
106
|
* Must be called before any other operations
|
package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ export declare class DeesWorkspaceTerminal extends DeesElement {
|
|
|
59
59
|
private attachTerminalToContainer;
|
|
60
60
|
handleResize(): void;
|
|
61
61
|
private spawnProcessForTab;
|
|
62
|
+
private getShellCommand;
|
|
62
63
|
private handleProcessExit;
|
|
63
64
|
/**
|
|
64
65
|
* Show actionbar offering to close an exited tab
|
package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js
CHANGED
|
@@ -669,6 +669,19 @@ let DeesWorkspaceTerminal = (() => {
|
|
|
669
669
|
console.error('Failed to spawn process:', error);
|
|
670
670
|
}
|
|
671
671
|
}
|
|
672
|
+
async getShellCommand() {
|
|
673
|
+
if (this.executionEnvironment && !this.executionEnvironment.ready) {
|
|
674
|
+
await this.executionEnvironment.init();
|
|
675
|
+
}
|
|
676
|
+
if (this.executionEnvironment?.getShellCommand) {
|
|
677
|
+
return await this.executionEnvironment.getShellCommand();
|
|
678
|
+
}
|
|
679
|
+
return {
|
|
680
|
+
command: 'jsh',
|
|
681
|
+
label: 'jsh',
|
|
682
|
+
prompt: '~/',
|
|
683
|
+
};
|
|
684
|
+
}
|
|
672
685
|
handleProcessExit(tabId, exitCode) {
|
|
673
686
|
const tab = this.tabManager.getTab(tabId);
|
|
674
687
|
if (!tab)
|
|
@@ -721,9 +734,10 @@ let DeesWorkspaceTerminal = (() => {
|
|
|
721
734
|
* Create a new shell tab
|
|
722
735
|
*/
|
|
723
736
|
async createShellTab(label) {
|
|
737
|
+
const shellCommand = await this.getShellCommand();
|
|
724
738
|
const tab = this.tabManager.createTab({
|
|
725
739
|
type: 'shell',
|
|
726
|
-
label: label ||
|
|
740
|
+
label: label || `${shellCommand.label || shellCommand.command} ${this.tabManager.getTabCount() + 1}`,
|
|
727
741
|
closeable: this.tabManager.getTabCount() > 0, // First tab not closeable
|
|
728
742
|
}, this.isBright);
|
|
729
743
|
this.tabs = this.tabManager.getAllTabs();
|
|
@@ -731,10 +745,10 @@ let DeesWorkspaceTerminal = (() => {
|
|
|
731
745
|
this.switchToTab(tab.id);
|
|
732
746
|
// Wait for DOM update then spawn shell
|
|
733
747
|
await this.updateComplete;
|
|
734
|
-
await this.spawnProcessForTab(tab,
|
|
748
|
+
await this.spawnProcessForTab(tab, shellCommand.command, shellCommand.args || []);
|
|
735
749
|
// Run setup command if this is the first tab
|
|
736
750
|
if (this.tabManager.getTabCount() === 1 && this.setupCommand) {
|
|
737
|
-
await this.waitForPrompt(tab.terminal, '~/');
|
|
751
|
+
await this.waitForPrompt(tab.terminal, shellCommand.prompt || '~/');
|
|
738
752
|
if (tab.inputWriter) {
|
|
739
753
|
tab.inputWriter.write(this.setupCommand);
|
|
740
754
|
}
|
|
@@ -897,4 +911,4 @@ let DeesWorkspaceTerminal = (() => {
|
|
|
897
911
|
return DeesWorkspaceTerminal = _classThis;
|
|
898
912
|
})();
|
|
899
913
|
export { DeesWorkspaceTerminal };
|
|
900
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILFVBQVUsRUFDVixLQUFLLEdBQ04sTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyx5REFBeUQsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU0vRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztJQVNyRCxxQkFBcUI7NEJBRGpDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FDQUFuQixTQUFRLFdBQVc7Ozs7Z0RBZW5ELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzt3Q0FHMUIsUUFBUSxFQUFFO2dEQU1WLFFBQVEsRUFBRTt1Q0FNVixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7c0NBTTFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQ0FJM0IsS0FBSyxFQUFFO3VDQUdQLEtBQUssRUFB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
|
|
914
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxFQUNILFVBQVUsRUFDVixLQUFLLEdBQ04sTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyx5REFBeUQsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU0vRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztJQVNyRCxxQkFBcUI7NEJBRGpDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FDQUFuQixTQUFRLFdBQVc7Ozs7Z0RBZW5ELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzt3Q0FHMUIsUUFBUSxFQUFFO2dEQU1WLFFBQVEsRUFBRTt1Q0FNVixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7c0NBTTFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQ0FJM0IsS0FBSyxFQUFFO3VDQUdQLEtBQUssRUFB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
|
|
@@ -52,7 +52,7 @@ export interface ICreateTerminalTabOptions {
|
|
|
52
52
|
iconName?: string;
|
|
53
53
|
/** Whether the tab can be closed (default: true for non-shell) */
|
|
54
54
|
closeable?: boolean;
|
|
55
|
-
/** Command to spawn (
|
|
55
|
+
/** Command to spawn (shell type uses the execution environment shell by default) */
|
|
56
56
|
command?: string;
|
|
57
57
|
/** Command arguments */
|
|
58
58
|
args?: string[];
|
package/package.json
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-catalog",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.82.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
|
|
6
6
|
"main": "dist_ts_web/index.js",
|
|
7
7
|
"typings": "dist_ts_web/index.d.ts",
|
|
8
8
|
"type": "module",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "tstest test/ --web --verbose --timeout 30 --logfile",
|
|
11
|
-
"build": "tsbuild tsfolders --allowimplicitany && tsbundle",
|
|
12
|
-
"watch": "tswatch",
|
|
13
|
-
"buildDocs": "tsdoc",
|
|
14
|
-
"postinstall": "node scripts/update-monaco-version.cjs"
|
|
15
|
-
},
|
|
16
9
|
"author": "Lossless GmbH",
|
|
17
10
|
"license": "MIT",
|
|
18
11
|
"dependencies": {
|
|
@@ -45,12 +38,12 @@
|
|
|
45
38
|
"xterm-addon-fit": "^0.8.0"
|
|
46
39
|
},
|
|
47
40
|
"devDependencies": {
|
|
48
|
-
"@git.zone/tsbuild": "^4.4.
|
|
49
|
-
"@git.zone/tsbundle": "^2.10.
|
|
50
|
-
"@git.zone/tstest": "^3.6.
|
|
51
|
-
"@git.zone/tswatch": "^3.3.
|
|
41
|
+
"@git.zone/tsbuild": "^4.4.2",
|
|
42
|
+
"@git.zone/tsbundle": "^2.10.4",
|
|
43
|
+
"@git.zone/tstest": "^3.6.6",
|
|
44
|
+
"@git.zone/tswatch": "^3.3.5",
|
|
52
45
|
"@push.rocks/projectinfo": "^5.1.0",
|
|
53
|
-
"@types/node": "^25.
|
|
46
|
+
"@types/node": "^25.9.1"
|
|
54
47
|
},
|
|
55
48
|
"files": [
|
|
56
49
|
"ts/**/*",
|
|
@@ -60,6 +53,7 @@
|
|
|
60
53
|
"dist_ts/**/*",
|
|
61
54
|
"dist_ts_web/**/*",
|
|
62
55
|
"assets/**/*",
|
|
56
|
+
"scripts/**/*",
|
|
63
57
|
"cli.js",
|
|
64
58
|
".smartconfig.json",
|
|
65
59
|
"readme.md"
|
|
@@ -93,5 +87,11 @@
|
|
|
93
87
|
"Modern Web",
|
|
94
88
|
"Frontend Development"
|
|
95
89
|
],
|
|
96
|
-
"
|
|
97
|
-
|
|
90
|
+
"scripts": {
|
|
91
|
+
"test": "tstest test/ --web --verbose --timeout 30 --logfile",
|
|
92
|
+
"build": "tsbuild tsfolders --allowimplicitany && tsbundle",
|
|
93
|
+
"watch": "tswatch",
|
|
94
|
+
"buildDocs": "tsdoc",
|
|
95
|
+
"postinstall": "node scripts/update-monaco-version.cjs"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const projectRoot = path.resolve(__dirname, '..');
|
|
6
|
+
|
|
7
|
+
function resolveMonacoPackageJson() {
|
|
8
|
+
try {
|
|
9
|
+
const resolvedPath = require.resolve('monaco-editor/package.json', {
|
|
10
|
+
paths: [projectRoot],
|
|
11
|
+
});
|
|
12
|
+
return resolvedPath;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
console.error('[dees-workspace] Unable to resolve monaco-editor/package.json');
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function getMonacoVersion() {
|
|
20
|
+
const monacoPackagePath = resolveMonacoPackageJson();
|
|
21
|
+
const monacoPackage = require(monacoPackagePath);
|
|
22
|
+
if (!monacoPackage.version) {
|
|
23
|
+
throw new Error('[dees-workspace] monaco-editor/package.json does not expose a version field');
|
|
24
|
+
}
|
|
25
|
+
return monacoPackage.version;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function writeVersionModule(version) {
|
|
29
|
+
const targetDir = path.join(projectRoot, 'ts_web', 'elements', '00group-workspace', 'dees-workspace-monaco');
|
|
30
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
31
|
+
const targetFile = path.join(targetDir, 'version.ts');
|
|
32
|
+
const fileContent = `// Auto-generated by scripts/update-monaco-version.cjs\nexport const MONACO_VERSION = '${version}';\n`;
|
|
33
|
+
fs.writeFileSync(targetFile, fileContent, 'utf8');
|
|
34
|
+
console.log(`[dees-workspace] Wrote ${path.relative(projectRoot, targetFile)} with monaco-editor@${version}`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
try {
|
|
38
|
+
const version = getMonacoVersion();
|
|
39
|
+
writeVersionModule(version);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error('[dees-workspace] Failed to update Monaco version module.');
|
|
42
|
+
console.error(error instanceof Error ? error.message : error);
|
|
43
|
+
process.exitCode = 1;
|
|
44
|
+
}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '3.
|
|
6
|
+
version: '3.82.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import * as webcontainer from '@tempfix/webcontainer__api';
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
IExecutionEnvironment,
|
|
4
|
+
IFileEntry,
|
|
5
|
+
IFileWatcher,
|
|
6
|
+
IProcessHandle,
|
|
7
|
+
IShellCommand,
|
|
8
|
+
} from '../interfaces/IExecutionEnvironment.js';
|
|
3
9
|
|
|
4
10
|
/**
|
|
5
11
|
* WebContainer-based execution environment.
|
|
@@ -154,6 +160,14 @@ export class WebContainerEnvironment implements IExecutionEnvironment {
|
|
|
154
160
|
};
|
|
155
161
|
}
|
|
156
162
|
|
|
163
|
+
public getShellCommand(): IShellCommand {
|
|
164
|
+
return {
|
|
165
|
+
command: 'jsh',
|
|
166
|
+
label: 'jsh',
|
|
167
|
+
prompt: '~/',
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
|
|
157
171
|
// ============ WebContainer-specific methods ============
|
|
158
172
|
|
|
159
173
|
/**
|
|
@@ -29,6 +29,17 @@ export interface IProcessHandle {
|
|
|
29
29
|
kill(): void;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
export interface IShellCommand {
|
|
33
|
+
/** Executable to start for an interactive shell session. */
|
|
34
|
+
command: string;
|
|
35
|
+
/** Optional command arguments. */
|
|
36
|
+
args?: string[];
|
|
37
|
+
/** Optional display label for terminal tabs. */
|
|
38
|
+
label?: string;
|
|
39
|
+
/** Optional prompt marker used for setup commands. */
|
|
40
|
+
prompt?: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
32
43
|
/**
|
|
33
44
|
* Abstract execution environment interface.
|
|
34
45
|
* Implementations can target WebContainer (browser), Backend API (server), or Mock (testing).
|
|
@@ -93,12 +104,18 @@ export interface IExecutionEnvironment {
|
|
|
93
104
|
|
|
94
105
|
/**
|
|
95
106
|
* Spawn a new process
|
|
96
|
-
* @param command - Command to run (e.g., '
|
|
107
|
+
* @param command - Command to run (e.g., 'node', 'npm')
|
|
97
108
|
* @param args - Optional arguments
|
|
98
109
|
* @returns Process handle with I/O streams
|
|
99
110
|
*/
|
|
100
111
|
spawn(command: string, args?: string[]): Promise<IProcessHandle>;
|
|
101
112
|
|
|
113
|
+
/**
|
|
114
|
+
* Return the environment-native interactive shell command.
|
|
115
|
+
* Implementations should provide this when terminal shells need a specific executable.
|
|
116
|
+
*/
|
|
117
|
+
getShellCommand?(): IShellCommand | Promise<IShellCommand>;
|
|
118
|
+
|
|
102
119
|
// ============ Lifecycle ============
|
|
103
120
|
|
|
104
121
|
/**
|
package/ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.ts
CHANGED
|
@@ -12,7 +12,7 @@ import * as domtools from '@design.estate/dees-domtools';
|
|
|
12
12
|
|
|
13
13
|
import type { Terminal } from 'xterm';
|
|
14
14
|
import { themeDefaultStyles } from '../../00theme.js';
|
|
15
|
-
import type { IExecutionEnvironment } from '../../00group-runtime/index.js';
|
|
15
|
+
import type { IExecutionEnvironment, IShellCommand } from '../../00group-runtime/index.js';
|
|
16
16
|
import { WebContainerEnvironment } from '../../00group-runtime/index.js';
|
|
17
17
|
import '../../00group-utility/dees-icon/dees-icon.js';
|
|
18
18
|
import '../../00group-feedback/dees-actionbar/dees-actionbar.js';
|
|
@@ -660,6 +660,22 @@ export class DeesWorkspaceTerminal extends DeesElement {
|
|
|
660
660
|
}
|
|
661
661
|
}
|
|
662
662
|
|
|
663
|
+
private async getShellCommand(): Promise<IShellCommand> {
|
|
664
|
+
if (this.executionEnvironment && !this.executionEnvironment.ready) {
|
|
665
|
+
await this.executionEnvironment.init();
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
if (this.executionEnvironment?.getShellCommand) {
|
|
669
|
+
return await this.executionEnvironment.getShellCommand();
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
return {
|
|
673
|
+
command: 'jsh',
|
|
674
|
+
label: 'jsh',
|
|
675
|
+
prompt: '~/',
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
|
|
663
679
|
private handleProcessExit(tabId: string, exitCode: number): void {
|
|
664
680
|
const tab = this.tabManager.getTab(tabId);
|
|
665
681
|
if (!tab) return;
|
|
@@ -723,10 +739,11 @@ export class DeesWorkspaceTerminal extends DeesElement {
|
|
|
723
739
|
* Create a new shell tab
|
|
724
740
|
*/
|
|
725
741
|
public async createShellTab(label?: string): Promise<string> {
|
|
742
|
+
const shellCommand = await this.getShellCommand();
|
|
726
743
|
const tab = this.tabManager.createTab(
|
|
727
744
|
{
|
|
728
745
|
type: 'shell',
|
|
729
|
-
label: label ||
|
|
746
|
+
label: label || `${shellCommand.label || shellCommand.command} ${this.tabManager.getTabCount() + 1}`,
|
|
730
747
|
closeable: this.tabManager.getTabCount() > 0, // First tab not closeable
|
|
731
748
|
},
|
|
732
749
|
this.isBright
|
|
@@ -739,11 +756,11 @@ export class DeesWorkspaceTerminal extends DeesElement {
|
|
|
739
756
|
|
|
740
757
|
// Wait for DOM update then spawn shell
|
|
741
758
|
await this.updateComplete;
|
|
742
|
-
await this.spawnProcessForTab(tab,
|
|
759
|
+
await this.spawnProcessForTab(tab, shellCommand.command, shellCommand.args || []);
|
|
743
760
|
|
|
744
761
|
// Run setup command if this is the first tab
|
|
745
762
|
if (this.tabManager.getTabCount() === 1 && this.setupCommand) {
|
|
746
|
-
await this.waitForPrompt(tab.terminal, '~/');
|
|
763
|
+
await this.waitForPrompt(tab.terminal, shellCommand.prompt || '~/');
|
|
747
764
|
if (tab.inputWriter) {
|
|
748
765
|
tab.inputWriter.write(this.setupCommand);
|
|
749
766
|
}
|
|
@@ -6,7 +6,7 @@ import type { IProcessHandle } from '../../00group-runtime/index.js';
|
|
|
6
6
|
* Type of terminal tab based on its source/purpose
|
|
7
7
|
*/
|
|
8
8
|
export type TTerminalTabType =
|
|
9
|
-
| 'shell' //
|
|
9
|
+
| 'shell' // Environment-native interactive shell
|
|
10
10
|
| 'script' // Script from package.json
|
|
11
11
|
| 'package-update' // Package update process
|
|
12
12
|
| 'custom'; // External process from API
|
|
@@ -75,7 +75,7 @@ export interface ICreateTerminalTabOptions {
|
|
|
75
75
|
/** Whether the tab can be closed (default: true for non-shell) */
|
|
76
76
|
closeable?: boolean;
|
|
77
77
|
|
|
78
|
-
/** Command to spawn (
|
|
78
|
+
/** Command to spawn (shell type uses the execution environment shell by default) */
|
|
79
79
|
command?: string;
|
|
80
80
|
|
|
81
81
|
/** Command arguments */
|