n8n-nodes-oxsr-technical-utils 4.2.25 → 4.2.27

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.
@@ -21,6 +21,7 @@ const metrics_1 = require("./actions/metrics");
21
21
  const seo_1 = require("./actions/seo");
22
22
  const media_1 = require("./actions/media");
23
23
  const server_1 = require("./actions/server");
24
+ const plugins_1 = require("./actions/plugins");
24
25
  function normalizeSiteUrl(siteUrl) {
25
26
  const raw = (siteUrl || '').trim();
26
27
  if (!raw)
@@ -90,9 +91,11 @@ const AUTO_RESOURCE_VALUES = [
90
91
  'multisite',
91
92
  'iaDev',
92
93
  'seo',
94
+ 'plugins',
93
95
  ];
94
96
  const AUTO_OPERATIONS_BY_RESOURCE = {
95
97
  siteHealth: ['healthCheck', 'getPlugins', 'checkUptime'],
98
+ plugins: ['getPlugins', 'activatePlugin', 'deactivatePlugin', 'deletePlugin', 'configurePlugin'],
96
99
  users: ['getUsers', 'getAdmins', 'createUser', 'updateUser', 'deleteUser', 'resetPassword', 'revokeSessions', 'getInactiveUsers'],
97
100
  database: ['getDbSize', 'getAutoload'],
98
101
  logs: ['getErrorLog'],
@@ -119,8 +122,8 @@ const AUTO_OPERATIONS_BY_RESOURCE = {
119
122
  'addMenuCategories',
120
123
  'deleteMenuItemsByText',
121
124
  ],
122
- server: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'patchFileByAnchor', 'getFileHistory', 'rollbackFileVersion', 'deleteFile', 'getServerDiagnostics', 'runServerConsole'],
123
- media: ['getMediaDetailed', 'updateMediaMeta', 'deleteMedia'],
125
+ server: ['listFiles', 'getFile', 'updateFile', 'patchFileLines', 'patchFileByAnchor', 'getFileHistory', 'rollbackFileVersion', 'deleteFile', 'getServerDiagnostics', 'runServerConsole', 'runWpCli'],
126
+ media: ['getMediaDetailed', 'updateMediaMeta', 'deleteMedia', 'uploadMedia'],
124
127
  security: [
125
128
  'getFileChecksums',
126
129
  'checkOpenRegistration',
@@ -192,6 +195,7 @@ const OPERATION_DESCRIPTIONS = {
192
195
  getMediaDetailed: 'Acción de listar imágenes con ALT, título, URL, nombre de archivo y uso en posts.',
193
196
  updateMediaMeta: 'Acción de actualizar ALT y título de una imagen por ID o URL.',
194
197
  deleteMedia: 'Acción de eliminar imágenes por IDs o URLs indicadas.',
198
+ uploadMedia: 'Acción de subir imagen externa o base64 a la librería de medios.',
195
199
  listFiles: 'Acción de listar archivos y carpetas del servidor.',
196
200
  getFile: 'Acción de ver contenido de archivo del servidor.',
197
201
  updateFile: 'Acción de editar/guardar archivo del servidor.',
@@ -202,8 +206,13 @@ const OPERATION_DESCRIPTIONS = {
202
206
  deleteFile: 'Acción de eliminar archivo o directorio del servidor.',
203
207
  getServerDiagnostics: 'Acción de leer diagnóstico general de servidor y rendimiento.',
204
208
  runServerConsole: 'Acción de ejecutar comando de consola permitido para diagnóstico.',
209
+ runWpCli: 'Acción para ejecutar comandos WP-CLI (requiere acceso shell en servidor).',
205
210
  getContentSource: 'Acción de leer código fuente raw y metadatos SEO de un contenido.',
206
211
  updateContentSource: 'Acción de actualizar source raw, SEO y portada de un contenido.',
212
+ activatePlugin: 'Acción de activar un plugin de WordPress por su slug.',
213
+ deactivatePlugin: 'Acción de desactivar un plugin de WordPress por su slug.',
214
+ deletePlugin: 'Acción de desinstalar/eliminar un plugin de WordPress.',
215
+ configurePlugin: 'Acción de configurar opciones y campos de plugins mediante actualización masiva de la tabla wp_options.',
207
216
  getMenus: 'Acción de listar menús y, si se indica menu_id, su detalle de items.',
208
217
  getMenuItems: 'Acción de listar todos los items de un menú por menu_id.',
209
218
  createMenu: 'Acción de crear menú WordPress y asignarlo opcionalmente a una ubicación.',
@@ -456,7 +465,7 @@ class OXSRTechnicalUtils {
456
465
  { name: 'Metrics', value: 'metrics', description: 'Visitas, interacciones y rendimiento de contenido' },
457
466
  { name: 'Content', value: 'content', description: 'Posts, borradores y ALT faltante' },
458
467
  { name: 'Media', value: 'media', description: 'Biblioteca de medios (imágenes): ALT, título, uso y eliminación' },
459
- { name: 'Servidor', value: 'server', description: 'Consola de diagnóstico y gestión de archivos del servidor' },
468
+ { name: 'Servidor', value: 'server', description: 'Consola de diagnóstico y gestión de archivos del servidor, y WP-CLI' },
460
469
  { name: 'Security', value: 'security', description: 'Checksums y configuración de registro' },
461
470
  { name: 'Performance', value: 'performance', description: 'Cron y revisiones' },
462
471
  { name: 'Actions', value: 'actions', description: 'Acciones remotas administrativas' },
@@ -467,6 +476,7 @@ class OXSRTechnicalUtils {
467
476
  { name: 'WooCommerce', value: 'woo', description: 'Operaciones de pedidos, productos y clientes de WooCommerce' },
468
477
  { name: 'Email', value: 'email', description: 'Envío y revisión de correos del sitio' },
469
478
  { name: 'Multisite', value: 'multisite', description: 'Operaciones de red multisite' },
479
+ { name: 'Plugins', value: 'plugins', description: 'Gestión de plugins' },
470
480
  { name: 'SEO', value: 'seo', description: 'Site Kit, keywords y análisis SEO avanzado' },
471
481
  ],
472
482
  },
@@ -507,6 +517,7 @@ class OXSRTechnicalUtils {
507
517
  { name: 'WooCommerce', value: 'woo' },
508
518
  { name: 'Email', value: 'email' },
509
519
  { name: 'Multisite', value: 'multisite' },
520
+ { name: 'Plugins', value: 'plugins' },
510
521
  { name: 'IA Dev', value: 'iaDev' },
511
522
  { name: 'SEO', value: 'seo' },
512
523
  ],
@@ -629,6 +640,7 @@ class OXSRTechnicalUtils {
629
640
  options: [
630
641
  { name: 'Get Server Diagnostics', value: 'getServerDiagnostics' },
631
642
  { name: 'Run Server Console', value: 'runServerConsole' },
643
+ { name: 'Run WP-CLI', value: 'runWpCli' },
632
644
  { name: 'List Files', value: 'listFiles' },
633
645
  { name: 'Get File', value: 'getFile' },
634
646
  { name: 'Update File', value: 'updateFile' },
@@ -639,6 +651,23 @@ class OXSRTechnicalUtils {
639
651
  { name: 'Delete File', value: 'deleteFile' },
640
652
  ],
641
653
  },
654
+ {
655
+ displayName: 'AI Operation',
656
+ name: 'autoOperation',
657
+ type: 'options',
658
+ noDataExpression: false,
659
+ displayOptions: { show: { resource: ['auto'], operation: ['autoDecide'], autoResource: ['plugins'] } },
660
+ default: 'getPlugins',
661
+ required: true,
662
+ description: 'Operación automática para Plugins',
663
+ options: [
664
+ { name: 'Get Plugins', value: 'getPlugins' },
665
+ { name: 'Activate Plugin', value: 'activatePlugin' },
666
+ { name: 'Deactivate Plugin', value: 'deactivatePlugin' },
667
+ { name: 'Delete Plugin', value: 'deletePlugin' },
668
+ { name: 'Configure Plugin', value: 'configurePlugin' },
669
+ ],
670
+ },
642
671
  {
643
672
  displayName: 'AI Operation',
644
673
  name: 'autoOperation',
@@ -876,6 +905,8 @@ class OXSRTechnicalUtils {
876
905
  'email',
877
906
  'multisite',
878
907
  'seo',
908
+ 'plugins',
909
+ 'iaDev',
879
910
  ],
880
911
  },
881
912
  },
@@ -1555,11 +1586,20 @@ class OXSRTechnicalUtils {
1555
1586
  displayName: 'Plugin Slug',
1556
1587
  name: 'pluginSlug',
1557
1588
  type: 'string',
1558
- displayOptions: { show: { resource: ['actions', 'updates', 'multisite'], operation: ['togglePlugin', 'runPluginUpdate', 'activatePluginNetwork'] } },
1589
+ displayOptions: { show: { resource: ['actions', 'updates', 'multisite', 'plugins'], operation: ['togglePlugin', 'runPluginUpdate', 'activatePluginNetwork', 'activatePlugin', 'deactivatePlugin', 'deletePlugin'] } },
1559
1590
  default: '',
1560
1591
  required: true,
1561
1592
  description: 'Slug o plugin file path. Ej: autoptimize o woocommerce/woocommerce.php',
1562
1593
  },
1594
+ {
1595
+ displayName: 'Plugin Config JSON',
1596
+ name: 'pluginConfigPayload',
1597
+ type: 'string',
1598
+ typeOptions: { alwaysOpenEditWindow: true },
1599
+ displayOptions: { show: { resource: ['plugins'], operation: ['configurePlugin'] } },
1600
+ default: '{}',
1601
+ description: 'JSON (diccionario) mapeando los Option_Names del plugin a sus respectivos Option_Values. Las opciones serán insertadas o sobreescritas limpiamente en wp_options.',
1602
+ },
1563
1603
  {
1564
1604
  displayName: 'Activate',
1565
1605
  name: 'activate',
@@ -2240,7 +2280,7 @@ class OXSRTechnicalUtils {
2240
2280
  displayName: 'Media ID',
2241
2281
  name: 'mediaId',
2242
2282
  type: 'number',
2243
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia'] } },
2283
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia', 'uploadMedia'] } },
2244
2284
  default: 0,
2245
2285
  required: false,
2246
2286
  description: 'ID del attachment imagen; opcional si se indica URL',
@@ -2249,7 +2289,7 @@ class OXSRTechnicalUtils {
2249
2289
  displayName: 'Media ID (Alias MCP)',
2250
2290
  name: 'Media_ID',
2251
2291
  type: 'number',
2252
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia'] } },
2292
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia', 'uploadMedia'] } },
2253
2293
  default: 0,
2254
2294
  required: false,
2255
2295
  description: 'Alias para tool-calls MCP',
@@ -2258,7 +2298,7 @@ class OXSRTechnicalUtils {
2258
2298
  displayName: 'Media URL',
2259
2299
  name: 'mediaUrl',
2260
2300
  type: 'string',
2261
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia'] } },
2301
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia', 'uploadMedia'] } },
2262
2302
  default: '',
2263
2303
  required: false,
2264
2304
  description: 'URL absoluta de la imagen; opcional si se indica ID',
@@ -2267,7 +2307,7 @@ class OXSRTechnicalUtils {
2267
2307
  displayName: 'Media URL (Alias MCP)',
2268
2308
  name: 'Media_URL',
2269
2309
  type: 'string',
2270
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia'] } },
2310
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia', 'uploadMedia'] } },
2271
2311
  default: '',
2272
2312
  required: false,
2273
2313
  description: 'Alias para tool-calls MCP',
@@ -2276,7 +2316,7 @@ class OXSRTechnicalUtils {
2276
2316
  displayName: 'Media Title',
2277
2317
  name: 'mediaTitle',
2278
2318
  type: 'string',
2279
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta'] } },
2319
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'uploadMedia'] } },
2280
2320
  default: '',
2281
2321
  required: false,
2282
2322
  description: 'Nuevo título para la imagen',
@@ -2285,7 +2325,7 @@ class OXSRTechnicalUtils {
2285
2325
  displayName: 'Media Title (Alias MCP)',
2286
2326
  name: 'Media_Title',
2287
2327
  type: 'string',
2288
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta'] } },
2328
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'uploadMedia'] } },
2289
2329
  default: '',
2290
2330
  required: false,
2291
2331
  description: 'Alias para tool-calls MCP',
@@ -2294,7 +2334,7 @@ class OXSRTechnicalUtils {
2294
2334
  displayName: 'Media ALT',
2295
2335
  name: 'mediaAlt',
2296
2336
  type: 'string',
2297
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta'] } },
2337
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'uploadMedia'] } },
2298
2338
  default: '',
2299
2339
  required: false,
2300
2340
  description: 'Nuevo texto ALT para la imagen',
@@ -2303,7 +2343,7 @@ class OXSRTechnicalUtils {
2303
2343
  displayName: 'Media ALT (Alias MCP)',
2304
2344
  name: 'Media_ALT',
2305
2345
  type: 'string',
2306
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta'] } },
2346
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'uploadMedia'] } },
2307
2347
  default: '',
2308
2348
  required: false,
2309
2349
  description: 'Alias para tool-calls MCP',
@@ -2317,6 +2357,15 @@ class OXSRTechnicalUtils {
2317
2357
  required: false,
2318
2358
  description: 'IDs de imágenes separados por coma para eliminar',
2319
2359
  },
2360
+ {
2361
+ displayName: 'Media Base64',
2362
+ name: 'mediaBase64',
2363
+ type: 'string',
2364
+ displayOptions: { show: { resource: ['media'], operation: ['uploadMedia'] } },
2365
+ default: '',
2366
+ required: false,
2367
+ description: 'Contenido raw base64 para subir como imagen (ej. data:image/png;base64,ivB...)',
2368
+ },
2320
2369
  {
2321
2370
  displayName: 'Media URLs CSV',
2322
2371
  name: 'mediaUrlsCsv',
@@ -2330,7 +2379,7 @@ class OXSRTechnicalUtils {
2330
2379
  displayName: 'Simulate Media',
2331
2380
  name: 'mediaSimulate',
2332
2381
  type: 'boolean',
2333
- displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia'] } },
2382
+ displayOptions: { show: { resource: ['media'], operation: ['updateMediaMeta', 'deleteMedia', 'uploadMedia'] } },
2334
2383
  default: false,
2335
2384
  required: false,
2336
2385
  description: 'Simula cambios en media sin aplicar escritura/borrado',
@@ -2594,6 +2643,15 @@ class OXSRTechnicalUtils {
2594
2643
  ],
2595
2644
  description: 'Comando de consola permitido por el plugin',
2596
2645
  },
2646
+ {
2647
+ displayName: 'WP-CLI Command',
2648
+ name: 'wpCliCommand',
2649
+ type: 'string',
2650
+ displayOptions: { show: { resource: ['server'], operation: ['runWpCli'] } },
2651
+ default: '',
2652
+ required: true,
2653
+ description: 'Comando WP-CLI a ejecutar. No necesitas escribir wp al inicio, por ejemplo: option update plugin_setting 1',
2654
+ },
2597
2655
  {
2598
2656
  displayName: 'Tail Lines',
2599
2657
  name: 'serverTailLines',
@@ -2759,6 +2817,9 @@ class OXSRTechnicalUtils {
2759
2817
  else if (resource === 'iaDev') {
2760
2818
  json = (await (0, iaDev_1.execute)(context, { siteUrl, apiKey }));
2761
2819
  }
2820
+ else if (resource === 'plugins') {
2821
+ json = (await (0, plugins_1.execute)(context, { siteUrl, apiKey }));
2822
+ }
2762
2823
  else if (resource === 'seo') {
2763
2824
  json = (await (0, seo_1.execute)(context, { siteUrl, apiKey }));
2764
2825
  }