@monbolc/lowcode-plugin-command 2.1.4 → 2.1.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monbolc/lowcode-plugin-command",
3
- "version": "2.1.4",
3
+ "version": "2.1.5",
4
4
  "description": "Command pattern + undo/redo history for SapuLowcodeEngine (L2)",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -23,8 +23,8 @@
23
23
  "clean": "rimraf lib es"
24
24
  },
25
25
  "dependencies": {
26
- "@monbolc/lowcode-types": "^2.1.4",
27
- "@monbolc/lowcode-utils": "^2.1.4"
26
+ "@monbolc/lowcode-types": "^2.1.5",
27
+ "@monbolc/lowcode-utils": "^2.1.5"
28
28
  },
29
29
  "devDependencies": {
30
30
  "rimraf": "^5.0.5",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "repository": {
38
38
  "type": "git",
39
- "url": "git@github.com:monbolc/sapu-lowcode-engine.git",
39
+ "url": "git@github.com:lir-navcoo/lowcode-engine.git",
40
40
  "directory": "packages/plugin-command"
41
41
  },
42
42
  "keywords": [
@@ -46,5 +46,5 @@
46
46
  "undo",
47
47
  "redo"
48
48
  ],
49
- "gitHead": "41ab716475634a8fb73786822c45f702e970e168"
49
+ "gitHead": "b23c688931a9afae9f3fc05308d587a2c053f983"
50
50
  }
package/es/index.js DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @monbolc/lowcode-plugin-command — barrel export
3
- *
4
- * Command pattern + undo/redo history + keyboard shortcuts.
5
- * SapuLowcodeEngine L2.
6
- */
7
- export { CommandManager } from './manager.js';
8
- export { parseShortcut, bindShortcuts, isMacOS, } from './shortcut.js';
9
- //# sourceMappingURL=index.js.map
package/es/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EACL,aAAa,EACb,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC"}
package/es/manager.js DELETED
@@ -1,154 +0,0 @@
1
- /**
2
- * @monbolc/lowcode-plugin-command — CommandManager
3
- *
4
- * Stores registered commands in a Map, runs them on demand, and maintains
5
- * an undo/redo history. Each history entry is `{ name, args, returnValue, command }`
6
- * so we can replay or undo without re-fetching the command.
7
- *
8
- * The manager is the only stateful piece; commands themselves are stateless.
9
- */
10
- import { Emitter } from '@monbolc/lowcode-utils';
11
- /** Maximum size of the undo stack. Older entries are dropped. */
12
- const DEFAULT_HISTORY_LIMIT = 200;
13
- export class CommandManager {
14
- constructor(options = {}) {
15
- this.events = new Emitter();
16
- this.commands = new Map();
17
- this.undoStack = [];
18
- this.redoStack = [];
19
- this.historyLimit = Math.max(0, options.historyLimit ?? DEFAULT_HISTORY_LIMIT);
20
- this.autoMerge = options.autoMerge ?? true;
21
- }
22
- register(command) {
23
- if (this.commands.has(command.name)) {
24
- throw new Error(`[CommandManager] command "${command.name}" is already registered`);
25
- }
26
- this.commands.set(command.name, command);
27
- this.events.emit('registered', { name: command.name });
28
- }
29
- unregister(name) {
30
- const existed = this.commands.delete(name);
31
- if (existed) {
32
- this.events.emit('unregistered', { name });
33
- // Also drop any in-flight history entries for that command.
34
- this.pruneHistoryFor(name);
35
- }
36
- return existed;
37
- }
38
- has(name) {
39
- return this.commands.has(name);
40
- }
41
- get(name) {
42
- return this.commands.get(name);
43
- }
44
- list() {
45
- return Array.from(this.commands.values());
46
- }
47
- async execute(name, args) {
48
- const command = this.commands.get(name);
49
- if (!command) {
50
- throw new Error(`[CommandManager] no command registered as "${name}"`);
51
- }
52
- let returnValue;
53
- try {
54
- returnValue = await command.execute(args);
55
- }
56
- catch (err) {
57
- // Do NOT push to history on failure. Re-throw so caller can react.
58
- throw err;
59
- }
60
- this.recordHistory(name, args, returnValue, command);
61
- this.events.emit('executed', { name, args, result: returnValue });
62
- return returnValue;
63
- }
64
- async undo() {
65
- const entry = this.undoStack.pop();
66
- if (!entry)
67
- return;
68
- try {
69
- if (entry.command.undo) {
70
- await entry.command.undo(entry.args, entry.returnValue);
71
- }
72
- this.redoStack.push(entry);
73
- this.events.emit('undone', { name: entry.name });
74
- }
75
- catch (err) {
76
- // Restore the entry on failure so the user doesn't lose the chance to retry.
77
- this.undoStack.push(entry);
78
- throw err;
79
- }
80
- }
81
- async redo() {
82
- const entry = this.redoStack.pop();
83
- if (!entry)
84
- return;
85
- try {
86
- const returnValue = await entry.command.execute(entry.args);
87
- // Replace the entry with a fresh one (new timestamp + return value).
88
- this.undoStack.push({ ...entry, returnValue, lastTouchedAt: Date.now() });
89
- this.events.emit('redone', { name: entry.name });
90
- }
91
- catch (err) {
92
- this.redoStack.push(entry);
93
- throw err;
94
- }
95
- }
96
- canUndo() {
97
- return this.undoStack.length > 0;
98
- }
99
- canRedo() {
100
- return this.redoStack.length > 0;
101
- }
102
- undoStackSize() {
103
- return this.undoStack.length;
104
- }
105
- redoStackSize() {
106
- return this.redoStack.length;
107
- }
108
- clearHistory() {
109
- this.undoStack.length = 0;
110
- this.redoStack.length = 0;
111
- this.events.emit('cleared', {});
112
- }
113
- // --- internals ---
114
- recordHistory(name, args, returnValue, command) {
115
- // Reset redo stack on any new execute (standard undo/redo semantics).
116
- if (this.redoStack.length > 0)
117
- this.redoStack.length = 0;
118
- if (this.autoMerge && command.mergeable) {
119
- const top = this.undoStack[this.undoStack.length - 1];
120
- const mergeWindow = command.mergeWindowMs ?? 500;
121
- const now = Date.now();
122
- if (top &&
123
- top.name === name &&
124
- now - top.lastTouchedAt <= mergeWindow) {
125
- // Update the latest args (the most recent user input) BUT
126
- // keep the original returnValue. For commands like SetProp
127
- // that store the previous state in returnValue, this ensures
128
- // undo restores the value that existed BEFORE the first edit
129
- // in the merge window — not the value that existed before
130
- // the last edit.
131
- top.args = args;
132
- top.lastTouchedAt = now;
133
- return;
134
- }
135
- }
136
- this.undoStack.push({
137
- name,
138
- args,
139
- returnValue,
140
- command,
141
- lastTouchedAt: Date.now(),
142
- });
143
- // Trim oldest if over the limit.
144
- while (this.undoStack.length > this.historyLimit) {
145
- this.undoStack.shift();
146
- }
147
- }
148
- pruneHistoryFor(name) {
149
- const filter = (entry) => entry.name !== name;
150
- this.undoStack.splice(0, this.undoStack.length, ...this.undoStack.filter(filter));
151
- this.redoStack.splice(0, this.redoStack.length, ...this.redoStack.filter(filter));
152
- }
153
- }
154
- //# sourceMappingURL=manager.js.map
package/es/manager.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
package/es/shortcut.js DELETED
@@ -1,119 +0,0 @@
1
- /**
2
- * @monbolc/lowcode-plugin-command — keyboard shortcut binding
3
- *
4
- * Parses shortcut strings like `"Mod+Z"` / `"Ctrl+Shift+P"` and binds them
5
- * to a command manager so users can undo/redo with the keyboard.
6
- *
7
- * "Mod" maps to Cmd on macOS and Ctrl elsewhere — the conventional behavior
8
- * in editor apps (VSCode, Figma, etc.).
9
- */
10
- const MODIFIER_KEYS = new Set([
11
- 'Mod',
12
- 'Ctrl',
13
- 'Meta',
14
- 'Shift',
15
- 'Alt',
16
- ]);
17
- export function isMacOS() {
18
- if (typeof navigator === 'undefined')
19
- return false;
20
- const platform = navigator.userAgentData?.platform ??
21
- navigator.platform ??
22
- '';
23
- return /mac|iphone|ipad|ipod/i.test(platform);
24
- }
25
- /**
26
- * Parse a shortcut string. Examples:
27
- * "Mod+Z" -> { modifiers: {Mod}, key: "z" }
28
- * "Ctrl+Shift+P" -> { modifiers: {Ctrl, Shift}, key: "p" }
29
- */
30
- export function parseShortcut(input) {
31
- if (!input || typeof input !== 'string') {
32
- throw new Error(`[shortcut] invalid shortcut: ${String(input)}`);
33
- }
34
- const parts = input
35
- .split('+')
36
- .map((p) => p.trim())
37
- .filter(Boolean);
38
- if (parts.length < 2) {
39
- throw new Error(`[shortcut] shortcut must include at least one modifier + a key, got: "${input}"`);
40
- }
41
- const key = parts[parts.length - 1].toLowerCase();
42
- const modifiers = new Set();
43
- for (const p of parts.slice(0, -1)) {
44
- const token = p;
45
- if (!MODIFIER_KEYS.has(token)) {
46
- throw new Error(`[shortcut] unknown modifier "${p}" in "${input}"`);
47
- }
48
- modifiers.add(token);
49
- }
50
- return { raw: input, modifiers, key };
51
- }
52
- function eventModifiersPressed(e) {
53
- const set = new Set();
54
- const mod = isMacOS() ? 'Meta' : 'Ctrl';
55
- if (e.getModifierState(mod))
56
- set.add('Mod');
57
- if (e.shiftKey)
58
- set.add('Shift');
59
- if (e.altKey)
60
- set.add('Alt');
61
- // Direct Meta key on macOS is already counted as Mod; on non-mac the Meta key
62
- // (Windows key) is intentionally ignored.
63
- return set;
64
- }
65
- function sameModifiers(a, b) {
66
- if (a.size !== b.size)
67
- return false;
68
- for (const m of a)
69
- if (!b.has(m))
70
- return false;
71
- return true;
72
- }
73
- /**
74
- * Walk all registered commands, find any with a `shortcut` field, and wire them
75
- * up to a global keydown listener on the chosen target.
76
- */
77
- export function bindShortcuts(manager, options = {}) {
78
- if (typeof window === 'undefined') {
79
- return { dispose: () => undefined, bindings: () => [] };
80
- }
81
- const target = options.target ?? window;
82
- const preventDefault = options.preventDefault ?? true;
83
- const parsed = [];
84
- for (const cmd of manager.list()) {
85
- const shortcuts = [].concat(cmd.shortcut ?? []);
86
- for (const s of shortcuts) {
87
- try {
88
- parsed.push({ command: cmd, shortcut: parseShortcut(s) });
89
- }
90
- catch {
91
- // Skip malformed shortcuts silently — they shouldn't break the binder.
92
- }
93
- }
94
- }
95
- const handler = (e) => {
96
- const ke = e;
97
- const pressed = eventModifiersPressed(ke);
98
- const key = ke.key.toLowerCase();
99
- for (const { command, shortcut } of parsed) {
100
- if (shortcut.key === key && sameModifiers(pressed, shortcut.modifiers)) {
101
- if (preventDefault)
102
- ke.preventDefault();
103
- // Fire-and-forget; errors land in console.
104
- void manager.execute(command.name).catch((err) => {
105
- if (typeof console !== 'undefined' && console.error) {
106
- console.error(`[shortcut] "${command.name}" failed:`, err);
107
- }
108
- });
109
- return;
110
- }
111
- }
112
- };
113
- target.addEventListener('keydown', handler);
114
- return {
115
- dispose: () => target.removeEventListener('keydown', handler),
116
- bindings: () => parsed.map((p) => p.command),
117
- };
118
- }
119
- //# sourceMappingURL=shortcut.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shortcut.js","sourceRoot":"","sources":["../src/shortcut.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,aAAa,GAA+B,IAAI,GAAG,CAAC;IACxD,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAWH,MAAM,UAAU,OAAO;IACrB,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,QAAQ,GACX,SAAuD,CAAC,aAAa,EAAE,QAAQ;QAChF,SAAS,CAAC,QAAQ;QAClB,EAAE,CAAC;IACL,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,yEAAyE,KAAK,GAAG,CAClF,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,CAAkB,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,8EAA8E;IAC9E,0CAA0C;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAA6B,EAAE,CAA6B;IACjF,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAmBD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAwB,EACxB,UAAiC,EAAE;IAEnC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IAEtD,MAAM,MAAM,GAA2D,EAAE,CAAC;IAC1E,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,MAAM,SAAS,GAAI,EAAe,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAQ,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,CAAkB,CAAC;QAC9B,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;YAC3C,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvE,IAAI,cAAc;oBAAE,EAAE,CAAC,cAAc,EAAE,CAAC;gBACxC,2CAA2C;gBAC3C,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC/C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBACpD,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,IAAI,WAAW,EAAE,GAAG,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAwB,CAAC,CAAC;IAC7D,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAwB,CAAC;QAC9E,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KAC7C,CAAC;AACJ,CAAC"}
package/es/types.js DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @monbolc/lowcode-plugin-command — public types
3
- *
4
- * The command pattern lets plugins expose "actions" that the user can invoke
5
- * by name (from the menu, a button, or a keyboard shortcut). Each command
6
- * knows how to do its work, and — if reversible — how to undo it.
7
- */
8
- export {};
9
- //# sourceMappingURL=types.js.map
package/es/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}