@termix-ssh/plugin-sdk 1.0.10 → 1.0.12

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 (123) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/PLUGIN-GUIDE.md +151 -36
  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 +37 -3
  9. package/dist/capabilities.js +2 -0
  10. package/dist/frontend.d.ts +152 -0
  11. package/dist/frontend.js +7 -0
  12. package/dist/host/PluginsTab-EV4MSGY6.js +2933 -0
  13. package/dist/host/{chunk-G346FUE4.js → chunk-AWR6FYDO.js} +8877 -11159
  14. package/dist/host/{chunk-NZG6HNQH.js → chunk-RUPLD6RF.js} +1504 -15
  15. package/dist/host/{chunk-DIOJ3KW2.js → chunk-VEWOYAMZ.js} +6 -1
  16. package/dist/host/chunk-X4QZKO5G.js +3120 -0
  17. package/dist/host/chunk-XKA3DBB2.js +10375 -0
  18. package/dist/host/chunk-YGYBM7SQ.js +58 -0
  19. package/dist/host/core-classes.json +1 -1
  20. package/dist/host/{linked-server-QAKKDBFM.js → linked-server-B4NEG4MA.js} +2 -2
  21. package/dist/host/{rbac-api-5267EMX7.js → rbac-api-OUO3LUOC.js} +2 -2
  22. package/dist/host/testing-host.js +123 -57
  23. package/dist/host/types/src/types/ui-types.d.ts +2 -1
  24. package/dist/host/types/src/ui/api/audit-log-api.d.ts +46 -0
  25. package/dist/host/types/src/ui/api/host-defaults-api.d.ts +42 -0
  26. package/dist/host/types/src/ui/api/host-tags-api.d.ts +2 -0
  27. package/dist/host/types/src/ui/api/look-api.d.ts +40 -0
  28. package/dist/host/types/src/ui/api/open-tabs-api.d.ts +4 -0
  29. package/dist/host/types/src/ui/api/plugins-api.d.ts +26 -0
  30. package/dist/host/types/src/ui/api/private-endpoints-api.d.ts +6 -0
  31. package/dist/host/types/src/ui/api/tls-api.d.ts +25 -0
  32. package/dist/host/types/src/ui/auth/ElectronLoginForm.d.ts +9 -0
  33. package/dist/host/types/src/ui/components/command.d.ts +78 -0
  34. package/dist/host/types/src/ui/components/folder-style.d.ts +16 -0
  35. package/dist/host/types/src/ui/components/theme-provider.d.ts +2 -1
  36. package/dist/host/types/src/ui/components/version-badge.d.ts +7 -0
  37. package/dist/host/types/src/ui/hooks/use-page-visible-interval.d.ts +10 -0
  38. package/dist/host/types/src/ui/lib/activity-types.d.ts +15 -0
  39. package/dist/host/types/src/ui/lib/app-version.d.ts +2 -0
  40. package/dist/host/types/src/ui/lib/apply-ui-preset.d.ts +19 -0
  41. package/dist/host/types/src/ui/lib/connection-origin.d.ts +4 -5
  42. package/dist/host/types/src/ui/lib/create-id.d.ts +2 -0
  43. package/dist/host/types/src/ui/lib/database-transfer-url.d.ts +8 -0
  44. package/dist/host/types/src/ui/lib/desktop-updates.d.ts +29 -0
  45. package/dist/host/types/src/ui/lib/electron.d.ts +5 -0
  46. package/dist/host/types/src/ui/lib/host-connection-tabs.d.ts +14 -0
  47. package/dist/host/types/src/ui/lib/host-to-ssh-host.d.ts +4 -0
  48. package/dist/host/types/src/ui/lib/issue-url.d.ts +21 -0
  49. package/dist/host/types/src/ui/lib/local-adaptive-preferences.d.ts +9 -0
  50. package/dist/host/types/src/ui/lib/pane-nav-hotkey.d.ts +7 -0
  51. package/dist/host/types/src/ui/lib/plugin-i18n.d.ts +16 -0
  52. package/dist/host/types/src/ui/lib/role-label.d.ts +3 -0
  53. package/dist/host/types/src/ui/look/LookSettings.d.ts +8 -0
  54. package/dist/host/types/src/ui/look/layout-registry.d.ts +34 -0
  55. package/dist/host/types/src/ui/look/look-store.d.ts +29 -0
  56. package/dist/host/types/src/ui/look/resolve-look.d.ts +18 -0
  57. package/dist/host/types/src/ui/look/theme-css.d.ts +7 -0
  58. package/dist/host/types/src/ui/look/theme-registry.d.ts +41 -0
  59. package/dist/host/types/src/ui/look/use-look-theme.d.ts +12 -0
  60. package/dist/host/types/src/ui/manage/manage-requests.d.ts +34 -0
  61. package/dist/host/types/src/ui/plugin-host/loader.d.ts +2 -0
  62. package/dist/host/types/src/ui/plugin-host/scope.d.ts +6 -0
  63. package/dist/host/types/src/ui/plugin-host/sdk-ui.d.ts +102 -0
  64. package/dist/host/types/src/ui/plugin-host/view-ownership.d.ts +1 -1
  65. package/dist/host/types/src/ui/plugins/PluginConsentPrompt.d.ts +20 -0
  66. package/dist/host/types/src/ui/plugins/PluginDetail.d.ts +7 -0
  67. package/dist/host/types/src/ui/plugins/PluginReleaseNotes.d.ts +14 -0
  68. package/dist/host/types/src/ui/plugins/PluginsTab.d.ts +1 -0
  69. package/dist/host/types/src/ui/plugins/RegistriesSection.d.ts +4 -0
  70. package/dist/host/types/src/ui/plugins/plugin-bits.d.ts +23 -0
  71. package/dist/host/types/src/ui/plugins/plugin-model.d.ts +116 -0
  72. package/dist/host/types/src/ui/plugins/use-plugins-manager.d.ts +75 -0
  73. package/dist/host/types/src/ui/settings/appearance/appearance-controls.d.ts +53 -0
  74. package/dist/host/types/src/ui/settings/sync/LinkServerDialog.d.ts +12 -0
  75. package/dist/host/types/src/ui/settings/sync/ProxySettingsFields.d.ts +15 -0
  76. package/dist/host/types/src/ui/settings/sync/saved-servers.d.ts +3 -0
  77. package/dist/host/types/src/ui/shell/controller/ShellControllerProvider.d.ts +20 -0
  78. package/dist/host/types/src/ui/shell/controller/plugin-shell.d.ts +7 -0
  79. package/dist/host/types/src/ui/shell/controller/shell-store.d.ts +4 -0
  80. package/dist/host/types/src/ui/shell/controller/types.d.ts +156 -0
  81. package/dist/host/types/src/ui/shell/controller/use-hosts.d.ts +10 -0
  82. package/dist/host/types/src/ui/shell/controller/use-regions.d.ts +5 -0
  83. package/dist/host/types/src/ui/shell/controller/use-shell-keybindings.d.ts +12 -0
  84. package/dist/host/types/src/ui/shell/controller/use-shell-lifecycle.d.ts +17 -0
  85. package/dist/host/types/src/ui/shell/controller/use-split.d.ts +21 -0
  86. package/dist/host/types/src/ui/shell/controller/use-tabs.d.ts +70 -0
  87. package/dist/host/types/src/ui/shell/controller/use-workspace-layout.d.ts +4 -0
  88. package/dist/host/types/src/ui/shell/reconnect-tabs.d.ts +6 -0
  89. package/dist/host/types/src/ui/shell/shell-layout.d.ts +46 -0
  90. package/dist/host/types/src/ui/shell/split/EmptyPanePicker.d.ts +32 -0
  91. package/dist/host/types/src/ui/shell/split/SplitDropOverlay.d.ts +9 -0
  92. package/dist/host/types/src/ui/shell/split/SplitLayoutMenu.d.ts +16 -0
  93. package/dist/host/types/src/ui/shell/split/SplitView.d.ts +31 -0
  94. package/dist/host/types/src/ui/shell/split/split-drag.d.ts +58 -0
  95. package/dist/host/types/src/ui/shell/split/split-presets.d.ts +28 -0
  96. package/dist/host/types/src/ui/shell/split/split-tabs.d.ts +95 -0
  97. package/dist/host/types/src/ui/shell/split/split-targets.d.ts +30 -0
  98. package/dist/host/types/src/ui/shell/split/split-tree.d.ts +89 -0
  99. package/dist/host/types/src/ui/shell/stage/TabStage.d.ts +9 -0
  100. package/dist/host/types/src/ui/shell/stage/tab-stage-store.d.ts +24 -0
  101. package/dist/host/types/src/ui/shell/tab-close-guards.d.ts +9 -0
  102. package/dist/host/types/src/ui/shell/tab-handles.d.ts +8 -0
  103. package/dist/host/types/src/ui/shell/tabUtils.d.ts +15 -0
  104. package/dist/host/types/src/ui/sidebar/AuthEnrollmentSections.d.ts +5 -0
  105. package/dist/host/types/src/ui/sidebar/HostManagerData.d.ts +4 -0
  106. package/dist/host/types/src/ui/sidebar/HostManagerTabs.d.ts +10 -4
  107. package/dist/host/types/src/ui/sidebar/build-host-tree.d.ts +25 -0
  108. package/dist/host/types/src/ui/sidebar/host-export-payload.d.ts +30 -0
  109. package/dist/host/ui.js +6238 -4054
  110. package/dist/host/{use-permissions-2P2TP6GY.js → use-permissions-6VSHHUMB.js} +2 -2
  111. package/dist/manifest.d.ts +41 -1
  112. package/dist/manifest.js +89 -1
  113. package/dist/testing/setup.js +1 -0
  114. package/dist/testing.d.ts +12 -1
  115. package/dist/testing.js +25 -1
  116. package/dist/theme-css.d.ts +11 -0
  117. package/dist/theme-css.js +142 -0
  118. package/dist/vitest-preset.d.ts +18 -0
  119. package/dist/vitest-preset.js +14 -3
  120. package/package.json +1 -1
  121. package/schema/manifest.schema.json +111 -8
  122. package/tsconfig.plugin.json +1 -0
  123. 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
  },
@@ -155,7 +172,11 @@
155
172
  "files:own",
156
173
  "secrets:own",
157
174
  "settings:read-core",
158
- "ui:surface"
175
+ "ui:surface",
176
+ "notify:hub",
177
+ "plugins:read",
178
+ "ui:layout",
179
+ "ui:theme"
159
180
  ]
160
181
  }
161
182
  },
@@ -944,7 +965,9 @@
944
965
  "defaultLevels": {
945
966
  "type": "array",
946
967
  "minItems": 1,
947
- "items": { "enum": ["admin", "user", "folder"] },
968
+ "items": {
969
+ "enum": ["admin", "user", "folder"]
970
+ },
948
971
  "description": "Levels that may set a default for the field. All three by default."
949
972
  },
950
973
  "personal": {
@@ -1127,6 +1150,86 @@
1127
1150
  "type": "string",
1128
1151
  "pattern": "^[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"
1129
1152
  }
1153
+ },
1154
+ "layouts": {
1155
+ "type": "array",
1156
+ "description": "Whole-app layouts the frontend registers with app.registerLayout. Needs the ui:layout capability.",
1157
+ "items": {
1158
+ "type": "object",
1159
+ "additionalProperties": false,
1160
+ "required": ["id", "label"],
1161
+ "properties": {
1162
+ "id": {
1163
+ "type": "string",
1164
+ "pattern": "^[a-z][a-z0-9-]{1,39}$"
1165
+ },
1166
+ "label": {
1167
+ "type": "string",
1168
+ "minLength": 1,
1169
+ "description": "i18n key in the plugin namespace, or plain text."
1170
+ },
1171
+ "description": {
1172
+ "type": "string",
1173
+ "minLength": 1
1174
+ },
1175
+ "defaultTheme": {
1176
+ "type": "string",
1177
+ "pattern": "^[a-z][a-z0-9-]{1,39}$",
1178
+ "description": "Theme picked with this layout when nobody chose one."
1179
+ },
1180
+ "default": {
1181
+ "type": "boolean",
1182
+ "description": "The layout a default-look plugin starts with. At most one."
1183
+ }
1184
+ }
1185
+ }
1186
+ },
1187
+ "themes": {
1188
+ "type": "array",
1189
+ "description": "Themes: one CSS file each with token rules scoped under .<id>. Needs the ui:theme capability.",
1190
+ "items": {
1191
+ "type": "object",
1192
+ "additionalProperties": false,
1193
+ "required": ["id", "label", "mode", "css"],
1194
+ "properties": {
1195
+ "id": {
1196
+ "type": "string",
1197
+ "pattern": "^[a-z][a-z0-9-]{1,39}$"
1198
+ },
1199
+ "label": {
1200
+ "type": "string",
1201
+ "minLength": 1
1202
+ },
1203
+ "mode": {
1204
+ "type": "string",
1205
+ "enum": ["light", "dark"]
1206
+ },
1207
+ "css": {
1208
+ "type": "string",
1209
+ "pattern": ".css$",
1210
+ "description": "Path of the CSS file inside the plugin."
1211
+ },
1212
+ "swatch": {
1213
+ "type": "object",
1214
+ "additionalProperties": false,
1215
+ "required": ["background", "panel", "text"],
1216
+ "properties": {
1217
+ "background": {
1218
+ "type": "string",
1219
+ "pattern": "^#[0-9a-fA-F]{3,8}$"
1220
+ },
1221
+ "panel": {
1222
+ "type": "string",
1223
+ "pattern": "^#[0-9a-fA-F]{3,8}$"
1224
+ },
1225
+ "text": {
1226
+ "type": "string",
1227
+ "pattern": "^#[0-9a-fA-F]{3,8}$"
1228
+ }
1229
+ }
1230
+ }
1231
+ }
1232
+ }
1130
1233
  }
1131
1234
  }
1132
1235
  },
@@ -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
- };