@owdproject/core 3.3.1 → 4.0.0-alpha.3

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 (93) hide show
  1. package/README.md +91 -59
  2. package/dist/dom/index.d.mts +65 -0
  3. package/dist/dom/index.d.ts +65 -0
  4. package/dist/dom/index.mjs +224 -0
  5. package/dist/events/index.d.mts +70 -0
  6. package/dist/events/index.d.ts +70 -0
  7. package/dist/events/index.mjs +3 -0
  8. package/dist/index.d.mts +73 -0
  9. package/dist/index.d.ts +73 -0
  10. package/dist/index.mjs +115 -0
  11. package/dist/layout/index.d.mts +41 -0
  12. package/dist/layout/index.d.ts +41 -0
  13. package/dist/layout/index.mjs +64 -0
  14. package/dist/machines/index.d.mts +31 -0
  15. package/dist/machines/index.d.ts +31 -0
  16. package/dist/machines/index.mjs +2 -0
  17. package/dist/managers/index.d.mts +117 -0
  18. package/dist/managers/index.d.ts +117 -0
  19. package/dist/managers/index.mjs +6 -0
  20. package/dist/session/index.d.mts +57 -0
  21. package/dist/session/index.d.ts +57 -0
  22. package/dist/session/index.mjs +65 -0
  23. package/dist/shared/core.B0B0KfVK.mjs +865 -0
  24. package/dist/shared/core.B1XxB289.mjs +239 -0
  25. package/dist/shared/core.B3mp7ztE.mjs +237 -0
  26. package/dist/shared/core.BOvFdEVQ.d.ts +114 -0
  27. package/dist/shared/core.CsDFgGnX.mjs +40 -0
  28. package/dist/shared/core.Di1eFcr_.d.mts +114 -0
  29. package/dist/shared/core.Pd_Ogt4g.mjs +101 -0
  30. package/dist/shared/core.b3Xldzyu.mjs +29 -0
  31. package/dist/types/index.d.mts +266 -0
  32. package/dist/types/index.d.ts +266 -0
  33. package/dist/types/index.mjs +1 -0
  34. package/package.json +60 -87
  35. package/bin/cli.js +0 -395
  36. package/bin/desktop.js +0 -5
  37. package/bin/lib/catalog.js +0 -293
  38. package/bin/lib/config.js +0 -109
  39. package/bin/lib/desktopConfig.js +0 -56
  40. package/bin/lib/generateTemplate.js +0 -389
  41. package/bin/lib/install.js +0 -408
  42. package/bin/lib/migrateModulePlayground.config.mjs +0 -164
  43. package/bin/lib/migrateModulePlayground.mjs +0 -313
  44. package/bin/lib/npmVersions.js +0 -124
  45. package/bin/lib/playgroundContext.js +0 -188
  46. package/bin/lib/scaffold.js +0 -197
  47. package/bin/lib/status.js +0 -289
  48. package/bin/lib/validateModule.js +0 -697
  49. package/bin/lib/workspace.js +0 -182
  50. package/bin/owd.js +0 -5
  51. package/bin/tui.js +0 -1379
  52. package/dist/module.d.mts +0 -13
  53. package/dist/module.json +0 -9
  54. package/dist/module.mjs +0 -268
  55. package/dist/types.d.mts +0 -7
  56. package/index.ts +0 -5
  57. package/module.ts +0 -223
  58. package/runtime/components/Desktop/Application/DesktopApplicationRender.vue +0 -20
  59. package/runtime/components/Desktop/Application/DesktopApplicationWindowsRender.vue +0 -38
  60. package/runtime/components/Desktop/Background/DesktopBackground.vue +0 -16
  61. package/runtime/components/Desktop/Core/DesktopCore.vue +0 -90
  62. package/runtime/components/Desktop/Time/DesktopTime.vue +0 -56
  63. package/runtime/components/Desktop/Window/DesktopWindow.vue +0 -204
  64. package/runtime/components/Desktop/Window/DesktopWindowContent.vue +0 -28
  65. package/runtime/components/Desktop/Window/DesktopWindowNav.vue +0 -66
  66. package/runtime/composables/useApplicationEntries.ts +0 -51
  67. package/runtime/composables/useApplicationManager.ts +0 -285
  68. package/runtime/composables/useDesktopManager.ts +0 -49
  69. package/runtime/composables/useTerminalManager.ts +0 -66
  70. package/runtime/composables/useWorkspaceManager.ts +0 -41
  71. package/runtime/internal/controllers/ApplicationController.ts +0 -345
  72. package/runtime/internal/controllers/WindowController.ts +0 -462
  73. package/runtime/plugins/02.desktop-register-desktop-apps.client.ts +0 -17
  74. package/runtime/plugins/resize.client.ts +0 -6
  75. package/runtime/stores/storeApplicationMeta.ts +0 -59
  76. package/runtime/stores/storeApplicationWindows.ts +0 -20
  77. package/runtime/stores/storeDesktop.ts +0 -111
  78. package/runtime/stores/storeDesktopDefaultApps.ts +0 -53
  79. package/runtime/stores/storeDesktopVolume.ts +0 -18
  80. package/runtime/stores/storeDesktopWindow.ts +0 -20
  81. package/runtime/stores/storeDesktopWorkspace.ts +0 -75
  82. package/runtime/utils/captureElementToCanvas.ts +0 -21
  83. package/runtime/utils/explorerEntryPath.ts +0 -10
  84. package/runtime/utils/resolveDesktopConfigPath.ts +0 -52
  85. package/runtime/utils/splitDesktopUserConfig.ts +0 -85
  86. package/runtime/utils/utilApp.ts +0 -37
  87. package/runtime/utils/utilCommon.ts +0 -26
  88. package/runtime/utils/utilDebug.ts +0 -30
  89. package/runtime/utils/utilDesktop.ts +0 -35
  90. package/runtime/utils/utilTerminal.ts +0 -6
  91. package/runtime/utils/utilWindow.ts +0 -15
  92. package/runtime/utils/validateDesktopUserConfig.ts +0 -44
  93. package/types/index.d.ts +0 -420
@@ -0,0 +1,266 @@
1
+ /**
2
+ * @owdproject/core - Framework-Agnostic Types
3
+ */
4
+ type WindowLayout = 'normal' | 'maximize' | 'bottom-half' | 'left-half' | 'right-half' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
5
+ type SnapZoneHint = Exclude<WindowLayout, 'normal'>;
6
+ interface WindowBounds {
7
+ x: number;
8
+ y: number;
9
+ width: number;
10
+ height: number;
11
+ }
12
+ interface DesktopWorkareaRect {
13
+ x: number;
14
+ y: number;
15
+ width: number;
16
+ height: number;
17
+ }
18
+ type WindowSizeValue = number | string | undefined;
19
+ interface WindowSize {
20
+ width?: WindowSizeValue;
21
+ height?: WindowSizeValue;
22
+ minWidth?: WindowSizeValue;
23
+ minHeight?: WindowSizeValue;
24
+ maxWidth?: WindowSizeValue;
25
+ maxHeight?: WindowSizeValue;
26
+ }
27
+ interface WindowPosition {
28
+ x?: number;
29
+ y?: number;
30
+ z?: number;
31
+ }
32
+ interface SpatialPoint3D {
33
+ x: number;
34
+ y: number;
35
+ z: number;
36
+ }
37
+ interface SpatialEuler {
38
+ pitch: number;
39
+ yaw: number;
40
+ roll: number;
41
+ }
42
+ interface SpatialTransform {
43
+ position: SpatialPoint3D;
44
+ rotation?: SpatialEuler;
45
+ scale?: SpatialPoint3D;
46
+ distance?: number;
47
+ curveRadius?: number;
48
+ }
49
+ type SpatialLayoutMode = 'cylinder' | 'sphere' | 'carousel' | 'depth-stack';
50
+ interface WindowConfig {
51
+ title?: string;
52
+ category?: string;
53
+ icon?: string;
54
+ component?: any;
55
+ position?: WindowPosition;
56
+ size: WindowSize;
57
+ minimizable?: boolean;
58
+ maximized?: boolean;
59
+ maximizable?: boolean;
60
+ destroyable?: boolean;
61
+ draggable?: boolean;
62
+ resizable?: boolean;
63
+ spatial?: SpatialTransform;
64
+ overridable?: Partial<Record<'position' | 'size' | 'maximized' | 'draggable' | 'resizable' | 'destroyable' | 'minimizable', boolean>>;
65
+ }
66
+ interface WindowOverride {
67
+ title?: string;
68
+ windowTitle?: string;
69
+ icon?: string;
70
+ }
71
+ interface WindowState {
72
+ id: string;
73
+ createdAt: number;
74
+ category?: string;
75
+ workspace: string;
76
+ position?: WindowPosition;
77
+ size?: WindowSize;
78
+ spatial?: SpatialTransform;
79
+ focused: boolean;
80
+ dragging?: boolean;
81
+ resizing?: boolean;
82
+ active?: boolean;
83
+ minimizable?: boolean;
84
+ maximized?: boolean;
85
+ maximizable?: boolean;
86
+ destroyable?: boolean;
87
+ draggable?: boolean;
88
+ resizable?: boolean;
89
+ layout?: WindowLayout;
90
+ boundsBeforeLayout?: WindowBounds;
91
+ }
92
+ interface WindowStoredState {
93
+ model: string;
94
+ state: WindowState;
95
+ meta: any;
96
+ }
97
+ type ApplicationEntryVisibility = 'primary' | 'secondary' | 'hidden';
98
+ interface ApplicationEntry {
99
+ title?: string;
100
+ icon?: string;
101
+ category?: string;
102
+ visibility?: ApplicationEntryVisibility;
103
+ command: string | any;
104
+ }
105
+ type ApplicationPermission = string;
106
+ interface ApplicationConfigProvide {
107
+ name: string;
108
+ entry: string;
109
+ command?: string;
110
+ }
111
+ interface ApplicationConfig {
112
+ id: string;
113
+ title: string;
114
+ icon?: string;
115
+ category?: string;
116
+ version?: string;
117
+ description?: string;
118
+ provides?: ApplicationConfigProvide;
119
+ singleton?: boolean;
120
+ meta?: Record<string, any>;
121
+ permissions?: ApplicationPermission[];
122
+ windows?: {
123
+ [key: string]: WindowConfig;
124
+ };
125
+ entries: {
126
+ [key: string]: ApplicationEntry;
127
+ };
128
+ commands?: {
129
+ [key: string]: (app: any, args: any) => void;
130
+ };
131
+ terminal?: {
132
+ [commandName: string]: Omit<DesktopCommand, 'name' | 'applicationId'>;
133
+ };
134
+ onReady?(app: any): void | Promise<void>;
135
+ onLaunch?(app: any): void | Promise<void>;
136
+ onRestore?(app: any): void | Promise<void>;
137
+ onClose?(app: any): void | Promise<void>;
138
+ }
139
+ interface DesktopCommandArg {
140
+ name: string;
141
+ description?: string;
142
+ required?: boolean;
143
+ }
144
+ interface DesktopCommandOption {
145
+ flag: string;
146
+ description?: string;
147
+ }
148
+ interface DesktopCommand {
149
+ name: string;
150
+ applicationId: string;
151
+ description?: string;
152
+ usage?: string;
153
+ args?: DesktopCommandArg[];
154
+ options?: DesktopCommandOption[];
155
+ }
156
+ interface CommandOutput {
157
+ message: string;
158
+ isError?: boolean;
159
+ }
160
+ interface DesktopKernelEvent {
161
+ id: string;
162
+ timestamp: number;
163
+ channel: string;
164
+ source: string;
165
+ severity: 'info' | 'warn' | 'error';
166
+ payload?: any;
167
+ }
168
+ interface DesktopAppDefineContext {
169
+ id: string;
170
+ config: ApplicationConfig;
171
+ cancel?: boolean;
172
+ }
173
+ interface DesktopAppLaunchContext {
174
+ app: any;
175
+ entryKey?: string;
176
+ argument?: string;
177
+ cancel?: boolean;
178
+ }
179
+ interface DesktopAppSignalContext {
180
+ app: any;
181
+ signal?: 'SIGTERM' | 'SIGKILL' | 'SIGSTOP' | 'SIGCONT';
182
+ cancel?: boolean;
183
+ }
184
+ interface DesktopWindowOpenContext {
185
+ app: any;
186
+ model: string;
187
+ config: WindowConfig;
188
+ meta?: Record<string, any>;
189
+ cancel?: boolean;
190
+ }
191
+ interface DesktopWindowCloseContext {
192
+ window: any;
193
+ app: any;
194
+ cancel?: boolean;
195
+ }
196
+ interface DesktopCommandExecContext {
197
+ input: string;
198
+ commandName: string;
199
+ args: string[];
200
+ cancel?: boolean;
201
+ overrideOutput?: CommandOutput;
202
+ }
203
+ interface DesktopWorkspaceSwitchContext {
204
+ from: string;
205
+ to: string;
206
+ cancel?: boolean;
207
+ }
208
+ interface DesktopRuntimeHooks {
209
+ 'app:before-define': (ctx: DesktopAppDefineContext) => Promise<void> | void;
210
+ 'app:defined': (payload: {
211
+ app: any;
212
+ }) => Promise<void> | void;
213
+ 'app:before-launch': (ctx: DesktopAppLaunchContext) => Promise<void> | void;
214
+ 'app:launched': (payload: {
215
+ app: any;
216
+ pid: number | null;
217
+ }) => Promise<void> | void;
218
+ 'app:before-suspend': (ctx: DesktopAppSignalContext) => Promise<void> | void;
219
+ 'app:suspended': (payload: {
220
+ app: any;
221
+ }) => Promise<void> | void;
222
+ 'app:before-resume': (ctx: DesktopAppSignalContext) => Promise<void> | void;
223
+ 'app:resumed': (payload: {
224
+ app: any;
225
+ }) => Promise<void> | void;
226
+ 'app:before-terminate': (ctx: DesktopAppSignalContext) => Promise<void> | void;
227
+ 'app:terminated': (payload: {
228
+ id: string;
229
+ title: string;
230
+ pid: number | null;
231
+ }) => Promise<void> | void;
232
+ 'window:before-open': (ctx: DesktopWindowOpenContext) => Promise<void> | void;
233
+ 'window:opened': (payload: {
234
+ window: any;
235
+ app: any;
236
+ }) => Promise<void> | void;
237
+ 'window:focused': (payload: {
238
+ window: any;
239
+ previousWindow?: any;
240
+ }) => Promise<void> | void;
241
+ 'window:blurred': (payload: {
242
+ window: any;
243
+ }) => Promise<void> | void;
244
+ 'window:layout-change': (payload: {
245
+ window: any;
246
+ layout: WindowLayout;
247
+ }) => Promise<void> | void;
248
+ 'window:before-close': (ctx: DesktopWindowCloseContext) => Promise<void> | void;
249
+ 'window:closed': (payload: {
250
+ windowId: string;
251
+ app: any;
252
+ }) => Promise<void> | void;
253
+ 'command:before-exec': (ctx: DesktopCommandExecContext) => Promise<void> | void;
254
+ 'command:after-exec': (payload: {
255
+ input: string;
256
+ commandName: string;
257
+ output: CommandOutput | void;
258
+ }) => Promise<void> | void;
259
+ 'workspace:before-switch': (ctx: DesktopWorkspaceSwitchContext) => Promise<void> | void;
260
+ 'workspace:switched': (payload: {
261
+ from: string;
262
+ to: string;
263
+ }) => Promise<void> | void;
264
+ }
265
+
266
+ export type { ApplicationConfig, ApplicationConfigProvide, ApplicationEntry, ApplicationEntryVisibility, ApplicationPermission, CommandOutput, DesktopAppDefineContext, DesktopAppLaunchContext, DesktopAppSignalContext, DesktopCommand, DesktopCommandArg, DesktopCommandExecContext, DesktopCommandOption, DesktopKernelEvent, DesktopRuntimeHooks, DesktopWindowCloseContext, DesktopWindowOpenContext, DesktopWorkareaRect, DesktopWorkspaceSwitchContext, SnapZoneHint, SpatialEuler, SpatialLayoutMode, SpatialPoint3D, SpatialTransform, WindowBounds, WindowConfig, WindowLayout, WindowOverride, WindowPosition, WindowSize, WindowSizeValue, WindowState, WindowStoredState };
@@ -0,0 +1 @@
1
+
package/package.json CHANGED
@@ -1,113 +1,86 @@
1
1
  {
2
2
  "name": "@owdproject/core",
3
- "version": "3.3.1",
4
- "description": "Nuxt Desktop module for browser desktop experiences (windows, shell, apps)",
5
- "keywords": [
6
- "nuxt",
7
- "nuxt-module",
8
- "nuxt-desktop",
9
- "desktop",
10
- "web-desktop",
11
- "vue",
12
- "owd",
13
- "open-web-desktop"
14
- ],
15
- "homepage": "https://github.com/owdproject/client#readme",
16
- "bugs": {
17
- "url": "https://github.com/owdproject/client/issues"
18
- },
3
+ "version": "4.0.0-alpha.3",
4
+ "description": "Headless desktop engine for the web: windows, applications, workspaces, commands, hooks, IPC, and pointer math",
5
+ "homepage": "https://github.com/owdproject/core#readme",
19
6
  "repository": {
20
7
  "type": "git",
21
- "url": "git+https://github.com/owdproject/client.git"
8
+ "url": "git+https://github.com/owdproject/core.git"
22
9
  },
23
- "license": "MIT",
24
10
  "author": {
25
- "name": "Open Web Desktop Team",
26
- "url": "https://github.com/owdproject"
11
+ "name": "Diego Villa (@dxlliv)",
12
+ "url": "https://github.com/dxlliv"
27
13
  },
14
+ "license": "MIT",
28
15
  "type": "module",
29
- "types": "types/index.d.ts",
16
+ "main": "./dist/index.mjs",
17
+ "module": "./dist/index.mjs",
18
+ "types": "./dist/index.d.ts",
30
19
  "files": [
31
- "bin",
32
20
  "dist",
33
- "runtime",
34
- "types",
35
- "index.ts",
36
- "module.ts",
37
- "package.json",
38
21
  "README.md"
39
22
  ],
40
- "scripts": {
41
- "dev": "pnpm run dev:prepare",
42
- "dev:prepare": "nuxt-module-build build --stub",
43
- "build:module": "nuxt-module-build build",
44
- "prepack": "nuxt-module-build build",
45
- "test": "vitest run",
46
- "test:watch": "vitest"
23
+ "publishConfig": {
24
+ "access": "public",
25
+ "tag": "alpha",
26
+ "registry": "https://registry.npmjs.org/"
47
27
  },
48
28
  "exports": {
49
29
  ".": {
50
- "types": "./types/index.d.ts",
51
- "default": "./index.ts"
30
+ "types": "./dist/index.d.ts",
31
+ "import": "./dist/index.mjs",
32
+ "default": "./dist/index.mjs"
33
+ },
34
+ "./machines": {
35
+ "types": "./dist/machines/index.d.ts",
36
+ "import": "./dist/machines/index.mjs",
37
+ "default": "./dist/machines/index.mjs"
38
+ },
39
+ "./layout": {
40
+ "types": "./dist/layout/index.d.ts",
41
+ "import": "./dist/layout/index.mjs",
42
+ "default": "./dist/layout/index.mjs"
43
+ },
44
+ "./managers": {
45
+ "types": "./dist/managers/index.d.ts",
46
+ "import": "./dist/managers/index.mjs",
47
+ "default": "./dist/managers/index.mjs"
52
48
  },
53
- "./module": {
54
- "types": "./dist/types.d.mts",
55
- "development": "./module.ts",
56
- "import": "./module.ts",
57
- "default": "./module.ts"
49
+ "./events": {
50
+ "types": "./dist/events/index.d.ts",
51
+ "import": "./dist/events/index.mjs",
52
+ "default": "./dist/events/index.mjs"
58
53
  },
59
- "./nuxt": {
60
- "types": "./dist/types.d.mts",
61
- "development": "./module.ts",
62
- "import": "./module.ts",
63
- "default": "./module.ts"
54
+ "./session": {
55
+ "types": "./dist/session/index.d.ts",
56
+ "import": "./dist/session/index.mjs",
57
+ "default": "./dist/session/index.mjs"
64
58
  },
65
- "./package.json": "./package.json",
66
- "./runtime/*": {
67
- "types": "./runtime/*",
68
- "development": "./runtime/*",
69
- "import": "./runtime/*",
70
- "default": "./runtime/*"
59
+ "./dom": {
60
+ "types": "./dist/dom/index.d.ts",
61
+ "import": "./dist/dom/index.mjs",
62
+ "default": "./dist/dom/index.mjs"
63
+ },
64
+ "./types": {
65
+ "types": "./dist/types/index.d.ts",
66
+ "import": "./dist/types/index.mjs",
67
+ "default": "./dist/types/index.mjs"
71
68
  }
72
69
  },
73
- "bin": {
74
- "desktop": "bin/desktop.js",
75
- "owd": "bin/owd.js"
76
- },
77
70
  "dependencies": {
78
- "@nuxt/fonts": "^0.14.0",
79
- "@nuxt/icon": "^2.2.1",
80
- "@nuxt/kit": "^4.4.4",
81
- "@nuxtjs/i18n": "^10.3.0",
82
- "@nuxtjs/tailwindcss": "^6.14.0",
83
- "@pinia/nuxt": "^0.11.3",
84
- "@primeuix/themes": "^2.0.3",
85
- "@primevue/forms": "^4.5.5",
86
- "@primevue/nuxt-module": "^4.5.5",
87
- "primevue": "^4.5.5",
88
- "@vueuse/components": "^14.3.0",
89
- "@vueuse/core": "^14.3.0",
90
- "@vueuse/nuxt": "^14.3.0",
91
- "mitt": "^3.0.1",
92
- "nanoid": "^5.1.11",
93
- "nuxt": "^4.4.4",
94
- "pinia": "^3.0.4",
95
- "sanitize.css": "^13.0.0",
96
- "sass": "^1.99.0",
97
- "shellwords": "^1.1.1",
98
- "vue-resizable": "^2.1.7",
99
71
  "getopts": "^2.3.0",
100
- "defu": "^6.1.4",
101
- "neo-blessed": "^0.2.0"
102
- },
103
- "optionalDependencies": {
104
- "html2canvas": "^1.4.1"
72
+ "hookable": "^6.1.2",
73
+ "nanoid": "^6.0.2",
74
+ "shellwords": "^1.1.1",
75
+ "xstate": "^5.33.3"
105
76
  },
106
77
  "devDependencies": {
107
- "@nuxt/devtools": "^3.2.4",
108
- "@nuxt/module-builder": "^1.0.2",
109
- "@nuxt/schema": "^4.4.4",
110
- "typescript": "~5.8.3",
111
- "vue-tsc": "^2.2.10"
78
+ "unbuild": "^3.6.1",
79
+ "typescript": "~6.0.3",
80
+ "@types/getopts": "^2.1.0"
81
+ },
82
+ "scripts": {
83
+ "build": "unbuild",
84
+ "prepack": "unbuild"
112
85
  }
113
86
  }