@termix-ssh/plugin-sdk 1.0.11 → 1.0.13

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 (130) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/PLUGIN-GUIDE.md +178 -54
  3. package/cli/commands/build.mjs +36 -22
  4. package/cli/commands/pack.mjs +12 -2
  5. package/cli/commands/validate.mjs +63 -3
  6. package/cli/lib/plugin-dir.mjs +11 -0
  7. package/cli/lib/tmxplug.mjs +9 -0
  8. package/dist/backend.d.ts +404 -0
  9. package/dist/capabilities.js +7 -0
  10. package/dist/db.js +1 -0
  11. package/dist/desktop.d.ts +0 -243
  12. package/dist/frontend.d.ts +175 -2
  13. package/dist/frontend.js +7 -0
  14. package/dist/host/PluginsTab-OXQQ7M4I.js +3266 -0
  15. package/dist/host/chunk-54KCK6IZ.js +3167 -0
  16. package/dist/host/chunk-CALNJCHN.js +10435 -0
  17. package/dist/host/{chunk-7RRTYD6B.js → chunk-CN5UBTBP.js} +1412 -14
  18. package/dist/host/{chunk-RLQBKJRK.js → chunk-ERGN4YW6.js} +9204 -11492
  19. package/dist/host/{chunk-LSWB3ZZV.js → chunk-T2PZWXFJ.js} +6 -1
  20. package/dist/host/chunk-YGYBM7SQ.js +58 -0
  21. package/dist/host/core-classes.json +1 -1
  22. package/dist/host/{linked-server-UCW74T2V.js → linked-server-5VFO4XQB.js} +2 -2
  23. package/dist/host/{rbac-api-6UYMFIFV.js → rbac-api-5YMBJAO5.js} +2 -2
  24. package/dist/host/testing-host.js +123 -57
  25. package/dist/host/types/src/types/onboarding.d.ts +0 -2
  26. package/dist/host/types/src/types/ui-types.d.ts +2 -1
  27. package/dist/host/types/src/ui/api/audit-log-api.d.ts +36 -0
  28. package/dist/host/types/src/ui/api/credentials-api.d.ts +0 -22
  29. package/dist/host/types/src/ui/api/host-defaults-api.d.ts +42 -0
  30. package/dist/host/types/src/ui/api/host-tags-api.d.ts +2 -0
  31. package/dist/host/types/src/ui/api/look-api.d.ts +40 -0
  32. package/dist/host/types/src/ui/api/open-tabs-api.d.ts +4 -0
  33. package/dist/host/types/src/ui/api/plugins-api.d.ts +30 -0
  34. package/dist/host/types/src/ui/api/private-endpoints-api.d.ts +6 -0
  35. package/dist/host/types/src/ui/api/settings-api.d.ts +0 -6
  36. package/dist/host/types/src/ui/api/ssh-host-management-api.d.ts +0 -28
  37. package/dist/host/types/src/ui/api/tls-api.d.ts +25 -0
  38. package/dist/host/types/src/ui/auth/ElectronLoginForm.d.ts +9 -0
  39. package/dist/host/types/src/ui/components/command.d.ts +78 -0
  40. package/dist/host/types/src/ui/components/folder-style.d.ts +16 -0
  41. package/dist/host/types/src/ui/components/theme-provider.d.ts +2 -1
  42. package/dist/host/types/src/ui/components/version-badge.d.ts +7 -0
  43. package/dist/host/types/src/ui/hooks/use-page-visible-interval.d.ts +10 -0
  44. package/dist/host/types/src/ui/lib/activity-types.d.ts +15 -0
  45. package/dist/host/types/src/ui/lib/app-version.d.ts +2 -0
  46. package/dist/host/types/src/ui/lib/apply-ui-preset.d.ts +19 -0
  47. package/dist/host/types/src/ui/lib/create-id.d.ts +2 -0
  48. package/dist/host/types/src/ui/lib/database-transfer-url.d.ts +8 -0
  49. package/dist/host/types/src/ui/lib/desktop-updates.d.ts +29 -0
  50. package/dist/host/types/src/ui/lib/host-connection-tabs.d.ts +14 -0
  51. package/dist/host/types/src/ui/lib/host-to-ssh-host.d.ts +4 -0
  52. package/dist/host/types/src/ui/lib/issue-url.d.ts +21 -0
  53. package/dist/host/types/src/ui/lib/local-adaptive-preferences.d.ts +9 -0
  54. package/dist/host/types/src/ui/lib/pane-nav-hotkey.d.ts +7 -0
  55. package/dist/host/types/src/ui/lib/plugin-i18n.d.ts +4 -3
  56. package/dist/host/types/src/ui/lib/role-label.d.ts +3 -0
  57. package/dist/host/types/src/ui/look/LookSettings.d.ts +8 -0
  58. package/dist/host/types/src/ui/look/layout-registry.d.ts +34 -0
  59. package/dist/host/types/src/ui/look/look-store.d.ts +29 -0
  60. package/dist/host/types/src/ui/look/resolve-look.d.ts +18 -0
  61. package/dist/host/types/src/ui/look/theme-css.d.ts +7 -0
  62. package/dist/host/types/src/ui/look/theme-registry.d.ts +41 -0
  63. package/dist/host/types/src/ui/look/use-look-theme.d.ts +12 -0
  64. package/dist/host/types/src/ui/main-axios.d.ts +2 -2
  65. package/dist/host/types/src/ui/manage/manage-requests.d.ts +34 -0
  66. package/dist/host/types/src/ui/onboarding/onboarding-registry.d.ts +3 -1
  67. package/dist/host/types/src/ui/plugin-host/loader.d.ts +2 -0
  68. package/dist/host/types/src/ui/plugin-host/scope.d.ts +6 -0
  69. package/dist/host/types/src/ui/plugin-host/sdk-ui.d.ts +101 -0
  70. package/dist/host/types/src/ui/plugin-host/view-ownership.d.ts +1 -1
  71. package/dist/host/types/src/ui/plugins/PluginConsentPrompt.d.ts +20 -0
  72. package/dist/host/types/src/ui/plugins/PluginDetail.d.ts +7 -0
  73. package/dist/host/types/src/ui/plugins/PluginReleaseNotes.d.ts +14 -0
  74. package/dist/host/types/src/ui/plugins/PluginsTab.d.ts +1 -0
  75. package/dist/host/types/src/ui/plugins/RegistriesSection.d.ts +4 -0
  76. package/dist/host/types/src/ui/plugins/plugin-bits.d.ts +23 -0
  77. package/dist/host/types/src/ui/plugins/plugin-model.d.ts +136 -0
  78. package/dist/host/types/src/ui/plugins/use-plugins-manager.d.ts +78 -0
  79. package/dist/host/types/src/ui/settings/appearance/appearance-controls.d.ts +53 -0
  80. package/dist/host/types/src/ui/settings/sync/LinkServerDialog.d.ts +12 -0
  81. package/dist/host/types/src/ui/settings/sync/ProxySettingsFields.d.ts +15 -0
  82. package/dist/host/types/src/ui/settings/sync/saved-servers.d.ts +3 -0
  83. package/dist/host/types/src/ui/shell/controller/ShellControllerProvider.d.ts +20 -0
  84. package/dist/host/types/src/ui/shell/controller/plugin-shell.d.ts +7 -0
  85. package/dist/host/types/src/ui/shell/controller/shell-store.d.ts +4 -0
  86. package/dist/host/types/src/ui/shell/controller/types.d.ts +156 -0
  87. package/dist/host/types/src/ui/shell/controller/use-hosts.d.ts +10 -0
  88. package/dist/host/types/src/ui/shell/controller/use-regions.d.ts +5 -0
  89. package/dist/host/types/src/ui/shell/controller/use-shell-keybindings.d.ts +12 -0
  90. package/dist/host/types/src/ui/shell/controller/use-shell-lifecycle.d.ts +17 -0
  91. package/dist/host/types/src/ui/shell/controller/use-split.d.ts +21 -0
  92. package/dist/host/types/src/ui/shell/controller/use-tabs.d.ts +70 -0
  93. package/dist/host/types/src/ui/shell/controller/use-workspace-layout.d.ts +4 -0
  94. package/dist/host/types/src/ui/shell/reconnect-tabs.d.ts +6 -0
  95. package/dist/host/types/src/ui/shell/shell-layout.d.ts +46 -0
  96. package/dist/host/types/src/ui/shell/split/EmptyPanePicker.d.ts +32 -0
  97. package/dist/host/types/src/ui/shell/split/SplitDropOverlay.d.ts +9 -0
  98. package/dist/host/types/src/ui/shell/split/SplitLayoutMenu.d.ts +16 -0
  99. package/dist/host/types/src/ui/shell/split/SplitView.d.ts +31 -0
  100. package/dist/host/types/src/ui/shell/split/split-drag.d.ts +58 -0
  101. package/dist/host/types/src/ui/shell/split/split-presets.d.ts +28 -0
  102. package/dist/host/types/src/ui/shell/split/split-tabs.d.ts +95 -0
  103. package/dist/host/types/src/ui/shell/split/split-targets.d.ts +30 -0
  104. package/dist/host/types/src/ui/shell/split/split-tree.d.ts +89 -0
  105. package/dist/host/types/src/ui/shell/stage/TabStage.d.ts +9 -0
  106. package/dist/host/types/src/ui/shell/stage/tab-stage-store.d.ts +24 -0
  107. package/dist/host/types/src/ui/shell/tab-close-guards.d.ts +9 -0
  108. package/dist/host/types/src/ui/shell/tab-handles.d.ts +8 -0
  109. package/dist/host/types/src/ui/shell/tabUtils.d.ts +15 -0
  110. package/dist/host/types/src/ui/sidebar/AuthEnrollmentSections.d.ts +5 -0
  111. package/dist/host/types/src/ui/sidebar/HostManagerData.d.ts +4 -0
  112. package/dist/host/types/src/ui/sidebar/build-host-tree.d.ts +25 -0
  113. package/dist/host/types/src/ui/sidebar/host-contributions.d.ts +10 -0
  114. package/dist/host/ui.js +6045 -4055
  115. package/dist/host/{use-permissions-GYCBY2AU.js → use-permissions-ISEDRY3J.js} +2 -2
  116. package/dist/manifest.d.ts +50 -1
  117. package/dist/manifest.js +104 -1
  118. package/dist/ssh-keys.d.ts +29 -0
  119. package/dist/ssh-keys.js +85 -0
  120. package/dist/testing/setup.js +1 -0
  121. package/dist/testing.d.ts +32 -15
  122. package/dist/testing.js +218 -1
  123. package/dist/theme-css.d.ts +11 -0
  124. package/dist/theme-css.js +142 -0
  125. package/dist/vitest-preset.d.ts +18 -0
  126. package/dist/vitest-preset.js +14 -3
  127. package/package.json +5 -1
  128. package/schema/manifest.schema.json +121 -8
  129. package/tsconfig.plugin.json +1 -0
  130. package/dist/host/chunk-YC2MAKSP.js +0 -14
@@ -82,7 +82,11 @@
82
82
  "features": {
83
83
  "type": "array",
84
84
  "maxItems": 20,
85
- "items": { "type": "string", "minLength": 1, "maxLength": 160 },
85
+ "items": {
86
+ "type": "string",
87
+ "minLength": 1,
88
+ "maxLength": 160
89
+ },
86
90
  "description": "Short lines listing what the plugin does, shown on its page."
87
91
  },
88
92
  "docs": {
@@ -98,11 +102,24 @@
98
102
  "additionalProperties": false,
99
103
  "required": ["name", "description"],
100
104
  "properties": {
101
- "name": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,63}$" },
102
- "description": { "type": "string", "minLength": 1, "maxLength": 300 },
103
- "default": { "type": "string" },
104
- "required": { "type": "boolean" },
105
- "secret": { "type": "boolean" }
105
+ "name": {
106
+ "type": "string",
107
+ "pattern": "^[A-Z][A-Z0-9_]{0,63}$"
108
+ },
109
+ "description": {
110
+ "type": "string",
111
+ "minLength": 1,
112
+ "maxLength": 300
113
+ },
114
+ "default": {
115
+ "type": "string"
116
+ },
117
+ "required": {
118
+ "type": "boolean"
119
+ },
120
+ "secret": {
121
+ "type": "boolean"
122
+ }
106
123
  }
107
124
  }
108
125
  },
@@ -137,6 +154,7 @@
137
154
  "system:tls",
138
155
  "device:serial",
139
156
  "hosts:write",
157
+ "hosts:export",
140
158
  "credentials:use",
141
159
  "credentials:write",
142
160
  "network:outbound",
@@ -146,7 +164,11 @@
146
164
  "events:core",
147
165
  "notify:send",
148
166
  "audit:read",
167
+ "network:probe",
168
+ "hosts:status-provide",
169
+ "hosts:activity-provide",
149
170
  "desktop:window",
171
+ "desktop:local",
150
172
  "users:impersonate",
151
173
  "db:core-refs",
152
174
  "hosts:read",
@@ -155,7 +177,11 @@
155
177
  "files:own",
156
178
  "secrets:own",
157
179
  "settings:read-core",
158
- "ui:surface"
180
+ "ui:surface",
181
+ "notify:hub",
182
+ "plugins:read",
183
+ "ui:layout",
184
+ "ui:theme"
159
185
  ]
160
186
  }
161
187
  },
@@ -944,7 +970,9 @@
944
970
  "defaultLevels": {
945
971
  "type": "array",
946
972
  "minItems": 1,
947
- "items": { "enum": ["admin", "user", "folder"] },
973
+ "items": {
974
+ "enum": ["admin", "user", "folder"]
975
+ },
948
976
  "description": "Levels that may set a default for the field. All three by default."
949
977
  },
950
978
  "personal": {
@@ -1127,6 +1155,86 @@
1127
1155
  "type": "string",
1128
1156
  "pattern": "^[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"
1129
1157
  }
1158
+ },
1159
+ "layouts": {
1160
+ "type": "array",
1161
+ "description": "Whole-app layouts the frontend registers with app.registerLayout. Needs the ui:layout capability.",
1162
+ "items": {
1163
+ "type": "object",
1164
+ "additionalProperties": false,
1165
+ "required": ["id", "label"],
1166
+ "properties": {
1167
+ "id": {
1168
+ "type": "string",
1169
+ "pattern": "^[a-z][a-z0-9-]{1,39}$"
1170
+ },
1171
+ "label": {
1172
+ "type": "string",
1173
+ "minLength": 1,
1174
+ "description": "i18n key in the plugin namespace, or plain text."
1175
+ },
1176
+ "description": {
1177
+ "type": "string",
1178
+ "minLength": 1
1179
+ },
1180
+ "defaultTheme": {
1181
+ "type": "string",
1182
+ "pattern": "^[a-z][a-z0-9-]{1,39}$",
1183
+ "description": "Theme picked with this layout when nobody chose one."
1184
+ },
1185
+ "default": {
1186
+ "type": "boolean",
1187
+ "description": "The layout a default-look plugin starts with. At most one."
1188
+ }
1189
+ }
1190
+ }
1191
+ },
1192
+ "themes": {
1193
+ "type": "array",
1194
+ "description": "Themes: one CSS file each with token rules scoped under .<id>. Needs the ui:theme capability.",
1195
+ "items": {
1196
+ "type": "object",
1197
+ "additionalProperties": false,
1198
+ "required": ["id", "label", "mode", "css"],
1199
+ "properties": {
1200
+ "id": {
1201
+ "type": "string",
1202
+ "pattern": "^[a-z][a-z0-9-]{1,39}$"
1203
+ },
1204
+ "label": {
1205
+ "type": "string",
1206
+ "minLength": 1
1207
+ },
1208
+ "mode": {
1209
+ "type": "string",
1210
+ "enum": ["light", "dark"]
1211
+ },
1212
+ "css": {
1213
+ "type": "string",
1214
+ "pattern": ".css$",
1215
+ "description": "Path of the CSS file inside the plugin."
1216
+ },
1217
+ "swatch": {
1218
+ "type": "object",
1219
+ "additionalProperties": false,
1220
+ "required": ["background", "panel", "text"],
1221
+ "properties": {
1222
+ "background": {
1223
+ "type": "string",
1224
+ "pattern": "^#[0-9a-fA-F]{3,8}$"
1225
+ },
1226
+ "panel": {
1227
+ "type": "string",
1228
+ "pattern": "^#[0-9a-fA-F]{3,8}$"
1229
+ },
1230
+ "text": {
1231
+ "type": "string",
1232
+ "pattern": "^#[0-9a-fA-F]{3,8}$"
1233
+ }
1234
+ }
1235
+ }
1236
+ }
1237
+ }
1130
1238
  }
1131
1239
  }
1132
1240
  },
@@ -1158,6 +1266,11 @@
1158
1266
  "enum": ["mirror", "local", "server"],
1159
1267
  "description": "How a desktop linked to a server treats this plugin: mirror follows the server, local is decided on each desktop, server never runs on a linked desktop. Defaults to mirror."
1160
1268
  },
1269
+ "runtime": {
1270
+ "type": "string",
1271
+ "enum": ["desktop"],
1272
+ "description": "desktop: the plugin only loads on a desktop app's own embedded backend, never on a server. It implies desktop local and may declare desktop:local."
1273
+ },
1161
1274
  "nativeDependencies": {
1162
1275
  "type": "array",
1163
1276
  "minItems": 1,
@@ -12,6 +12,7 @@
12
12
  "moduleDetection": "force",
13
13
  "esModuleInterop": true,
14
14
  "resolveJsonModule": true,
15
+ "preserveSymlinks": true,
15
16
  "noEmit": true,
16
17
  "strict": false,
17
18
  "noUnusedLocals": false,
@@ -1,14 +0,0 @@
1
- const __termixNoGlob = () => ({});
2
- var __defProp = Object.defineProperty;
3
- var __export = (target, all) => {
4
- for (var name in all)
5
- __defProp(target, name, { get: all[name], enumerable: true });
6
- };
7
-
8
- // <define:import.meta.env>
9
- var define_import_meta_env_default = { DEV: false, PROD: true, MODE: "production", SSR: false, BASE_URL: "/" };
10
-
11
- export {
12
- __export,
13
- define_import_meta_env_default
14
- };