Todos los códigos
Cada hallazgo del validador lleva un código. Esta es la lista completa, por zonas del widget.
Archivos y tamaño
Sección titulada «Archivos y tamaño»file_missing: error. Falta uno de los cuatro archivos del widget.file_not_allowed: error. Hay un archivo que no forma parte del widget.size_exceeded: error. El widget pesa demasiado: 300 KB como mucho entre los cuatro archivos (y 64 KB elmanifest.json).
manifest.json
Sección titulada «manifest.json»manifest_invalid_json: error.manifest.jsonno es JSON válido.manifest_not_object: error.manifest.jsontiene que ser un objeto.manifest_missing_strings: error. Faltastringscon los textos del widget en español.manifest_invalid_strings: error.stringstiene que ser un objeto de textos por idioma, y cada idioma un objeto de textos.translation_missing_language: aviso. A un idioma destringsle faltan textos que sí están en español.manifest_invalid_events: error.eventstiene que ser una lista de nombres de evento.manifest_invalid_event: error. Un evento deeventsno tiene la formaFuente.Tipo.manifest_unknown_event: error. Un evento deeventsno existe.manifest_event_without_example: aviso. Un evento declarado no tiene ejemplo en el simulador, así que no se puede probar.manifest_invalid_actions: error.actionstiene que ser una lista de nombres de acciones de Streamer.bot.manifest_invalid_send_message: error.sendMessagetiene que sertrueofalse.manifest_invalid_designs: error.designstiene que ser una lista de diseños, cada uno con suvalue.manifest_invalid_number: error. Un número dequeueo destatusno es válido: tiene que ser 0 o más.manifest_invalid_size: error.sizeosceneno es una medida válida.
Menú y parámetros
Sección titulada «Menú y parámetros»menu_unknown_field_type: error. Un campo del menú tiene un tipo desconocido.menu_invalid_parameter: error. El nombre de un parámetro no es válido.menu_duplicate_parameter: error. Un parámetro está repetido en el menú.menu_reserved_parameter: error. Ese nombre de parámetro está reservado:widget.jslo lee como parte de la conexión o del diseño.menu_invalid_default: error. El valor por defecto de un campo del menú no encaja con su tipo.menu_font_size_range: aviso. Un tamaño de fuente va mejor como número que como deslizador.menu_platforms_field: error. El campo de plataformas tiene que ser el parámetroplatformscon el tipoplatforms.menu_asset_default: error. El valor por defecto de un campo de archivo no está enassets, o no es del tipo del campo.parameter_not_declared: error. El código lee un parámetro que no está en el menú.parameter_unused: aviso. Un parámetro del menú no se usa en el código.
Eventos, acciones y textos
Sección titulada «Eventos, acciones y textos»event_unknown: error. El evento deWidget.onno existe.event_not_declared: error. Escuchas un evento que no está eneventsdel manifest.event_invalid: error. Un evento deWidget.onno tiene la formaFuente.Tipo.event_unused: aviso. Un evento declarado en el manifest no se usa en el código.action_not_declared: error. Usas una acción de Streamer.bot que no está enactionsdel manifest.action_not_verifiable: aviso. No se puede comprobar qué acción usadoAction, porque el nombre se calcula.send_message_not_declared: error. Llamas asendMessagesin declararlo en el manifest.translation_missing: error.Widget.tusa un texto que no existe enstrings.es.
index.html
Sección titulada «index.html»html_parse: aviso. El HTML no se puede leer.html_document_structure: aviso. El HTML lleva<html>,<head>o<body>.html_forbidden_element: error. Hay una etiqueta que no está permitida en un widget.html_event_handler_attribute: error. Un atributoon…=(comoonclick) no está permitido.html_javascript_url: error. Una URLjavascript:no está permitida.html_external_url: error. Una URL apunta a un host que no está permitido.
style.css
Sección titulada «style.css»css_import: error.@importno está permitido.css_external_url: error. Unurl()apunta a un host que no está permitido.
script.js
Sección titulada «script.js»js_syntax: error. Hay un error de sintaxis enscript.js.js_widget_redeclared: error. RedeclarasWidget, que es el SDK.js_forbidden_eval: error.evalyFunctionno están permitidos: ejecutan texto como código.js_forbidden_worker: error. Los widgets no usan workers:Worker,SharedWorker,WebAssembly,importScriptsninavigator.serviceWorker.js_forbidden_network: error.fetch,XMLHttpRequest,WebSocket,EventSource,RTCPeerConnection,StreamerbotClientynavigator.sendBeaconno están permitidos: la conexión va solo porwidget.js.js_forbidden_html: error.innerHTML,outerHTML,srcdoc,insertAdjacentHTML,createContextualFragment,DOMParserydocument.writeno están permitidos: convierten texto en HTML.js_forbidden_window_access: error.parent,top,opener,framesydocument.cookieno están permitidos: el widget no toca la ventana que lo contiene ni sus cookies.js_forbidden_navigation: error.open,location.assignylocation.replaceno están permitidos: el widget no navega a otras páginas ni abre ventanas.js_storage: aviso.localStorage,sessionStorageeindexedDBno son recomendables: en la vista previa del Estudio fallan y OBS recarga el widget, así que lo guardado no siempre sigue.js_constructor_escape: error..constructorse usa para salir del sandbox del widget.js_dynamic_global_access: error. Se accede a variables globales de forma dinámica, comowindow[nombre].js_event_handler_attribute: error. Se asigna un atributoon…=a mano, comoelemento.setAttribute("onclick", …).js_javascript_url: error. Una URLjavascript:no está permitida.js_external_url: aviso. Una URL del código apunta fuera de los hosts permitidos.
Archivos propios
Sección titulada «Archivos propios»manifest_invalid_assets: error.assetstiene que ser una lista de nombres de archivo.manifest_too_many_assets: error.assetsadmite hasta 30 archivos.manifest_invalid_asset_name: error. Un nombre deassetsno es el de un archivo de tu biblioteca.asset_not_found: aviso o error. Un archivo deassetsno está en tu biblioteca.asset_not_declared: error. El código pide un archivo que no está enassets.asset_unused: aviso. Un archivo deassetsno lo usan niscript.jsni el menú.design_asset_missing: error. El diseño usa un archivo que ya no está en tu biblioteca.
Alertas y editor visual
Sección titulada «Alertas y editor visual»generated_block_changed: error. La parte generada de un archivo no es la que produce el diseño.generated_block_broken: aviso o error. Se rompió la marca⟦estudio⟧de un archivo.alerts_invalid: error. El diseño de las alertas (alerts) tiene un problema.alerts_too_large: error. El diseño de las alertas ocupa más de lo permitido.alerts_without_design: error.WidgetAlerts.start()se llama sin diseño de alertas en el manifest.alerts_not_started: aviso. El manifest traealerts, peroscript.jsno llama aWidgetAlerts.start().runtime_alert_not_shown: error. Al llegar un evento no salió la alerta que le toca.runtime_alert_wrong_variant: error. Salió una variante distinta de la que correspondía a la cantidad.
Prueba de ejecución
Sección titulada «Prueba de ejecución»runtime_load_error: error. El widget falló al cargar.runtime_error: error. El widget lanzó un error al ejecutarse.runtime_event_error: error. El widget lanzó un error al recibir un evento.runtime_not_connected: error. El widget no llegó a conectar con Streamer.bot.runtime_not_authenticated: error. Con contraseña, el widget no se autenticó en Streamer.bot.runtime_no_reconnect: error. Tras caerse Streamer.bot, el widget no volvió a conectar.runtime_no_subscription: error. El widget no se suscribe a ningún evento.runtime_event_never_subscribed: aviso. Un evento está declarado, pero el widget nunca se suscribe a él.runtime_undeclared_subscription: error. El widget se suscribe a un evento que no está eneventsdel manifest.runtime_undeclared_request: error. El widget le pidió algo a Streamer.bot sin declararlo (una acción o un mensaje).runtime_no_visible_change: aviso. Al llegar un evento no cambia nada en pantalla.runtime_injection: error. Un mensaje con HTML se convirtió en elementos de la página.runtime_lang_not_applied: error. Al elegir otro idioma, la página no cambió de idioma.runtime_design_not_applied: error. Al elegir otro diseño, la página no cambió de diseño.runtime_timeout: error. La ejecución de prueba tardó demasiado y se cortó (20 segundos).runtime_memory: error. El widget usó demasiada memoria y se cortó.runtime_crashed: error. La ejecución de prueba se cayó.