Guía de actualización
Mira la versión instalada con composer show innoboxrr/larapack-generator y busca tu fila. Las secciones se aplican en orden, desde la siguiente a tu versión hasta la última. Las notas completas de cada versión están en el CHANGELOG.md de LaraPack.
Dónde estás
| Estás en | Esfuerzo | Qué rompe | Secciones a seguir |
|---|---|---|---|
| 5.x | Alto | PHP y Laravel, nombres de comandos, sitio del módulo de interfaz, aspecto | 5.x → 6.0, 6.x → 7.0 y todas las siguientes |
| 6.x | Medio | El aspecto del módulo, los iconos, la publicación | 6.x → 7.0 y todas las siguientes |
| 7.0 | Bajo | Nada; verify gana comprobaciones | 7.0 → 7.1 y siguientes |
| 7.1 | Bajo | audit rechaza version en composer.json | 7.1 → 7.2 y siguientes |
| 7.2 | Medio | Rutas Vue con meta.auth; archivos a regenerar | 7.2 → 7.3 y siguientes |
| 7.3 | Bajo | Nada | 7.3 → 7.4 y siguientes |
| 7.4 | Medio | Datatables 3.0; avisos y confirmación en la aplicación | 7.4 → 7.5 y siguientes |
| 7.5.0 | Bajo | Nada; tres dependencias npm | 7.5.0 → 7.5.1 y siguientes |
| 7.5.1 | Medio | La aplicación carga las traducciones del módulo; algunas claves cambian | 7.5 → 7.6 y siguientes |
| 7.6 | Medio si usas metas; bajo si no | Metas conectadas; traits y support 2.1 | 7.6 → 7.7 y siguientes |
| 7.7.0 | Bajo | La exportación trae Excel y usa el disco local | 7.7.0 → 7.7.1 y siguientes |
| 7.7.1 | Bajo | La ficha nombra al registro por su columna | 7.7 → 7.8 y siguientes |
| 7.8 | Bajo | Nada; datatables 3.1 y Vite 8 en el módulo | 7.8 → 7.9 y siguientes |
| 7.9 | Bajo | El proveedor de eventos se regenera | 7.9 → 7.10 y siguientes |
| 7.10.0 | Nada en un paquete; bajo en una aplicación | En una aplicación, factories y tests a regenerar | 7.10.0 → 7.10.1 y siguientes |
| 7.10.1 | Nada en un paquete; bajo en una aplicación | En una aplicación, la exportación y su notificación a regenerar | 7.10.1 → 7.10.2 y siguientes |
| 7.10.2 | Bajo | La salida de --format=json y el contrato del modelo sin _token por GET | 7.10.2 → 7.10.3 |
El procedimiento, sea cual sea la versión
Trabaja en una rama, con el árbol limpio y
.larapack/manifest.jsonversionado.Toma la foto de partida con la versión actual:
php vendor/bin/builder larapack:verify --format=json. Los archivoscustomisedson los que la regeneración no va a tocar.Actualiza el generador, con
--devsi lo tienes enrequire-dev:bashcomposer require --dev innoboxrr/larapack-generator:"^7.10"Actualiza las instrucciones del agente:
php vendor/bin/builder larapack:skill --force.Valida el contrato:
php vendor/bin/builder larapack:validate --vue --react. Un esquema nuevo puede señalar algo que antes pasaba.Regenera, primero en simulación:
bashphp vendor/bin/builder larapack:import --vue --react --dry-run --force php vendor/bin/builder larapack:import --vue --react --forceOmite
--vueo--reactsi el proyecto no tiene ese módulo.Lleva a mano los cambios a lo editado. Cada archivo que el paso anterior conservó no recibió los arreglos de la versión; la sección de tu versión dice qué cambió en cada uno. Recuerda que los traits y los tests nunca se reescriben.
Alinea las dependencias.
larapack:auditdice qué versiones de Composer no cumplen la línea base. Enresources/<ui>/package.json, las dependenciasinnoboxrr-*tienen que coincidir coninternalNpmdeecosystem.json; si ese archivo está editado, se cambian a mano.Comprueba:
larapack:verify,vendor/bin/phpunit,larapack:audit,php artisan route:jsonsi cambió alguna ruta, la compilación del front y una pasada por la interfaz en el navegador.
De 5.x a 6.0
La 6.0 pasa a Laravel 13 y PHP 8.3, cambia los nombres de los comandos y mueve el módulo de interfaz al paquete. Nada de esto es compatible con la 5.x.
Requisitos. PHP ^8.3, illuminate/support ^13.0 y symfony/console ^7.4 || ^8.0. Las dependencias internas, las de la línea base actual (innoboxrr/traits, innoboxrr/support e innoboxrr/search-surge, ver ecosystem.json).
Comandos. Cambia scripts, CI y documentación:
make:full-model → larapack:full-model
json:importer → larapack:import
remove:full-model → larapack:remove-full-modelEl binario builder mantiene los nombres antiguos como alias; Artisan no.
El contrato. laraimport.json se valida contra un esquema antes de generar. Ejecuta larapack:validate y corrige el JSON hasta que pase. assignments y filters quedan obsoletas.
La interfaz. El módulo vive en resources/vue o resources/react del paquete y se publica como su propio paquete npm. Actualiza los imports de la aplicación al paquete nuevo.
El manifiesto. Un proyecto de la 5.x no tiene .larapack/manifest.json, así que el generador no sobrescribe nada que ya exista, ni con --force. Para adoptarlo:
- Genera sobre una copia limpia:
larapack:import --root=../copia-limpia. - Compara con
git diff --no-indexlos archivos que no tocaste. - Borra en el proyecto los que no tengan cambios tuyos y vuelve a importar: así entran en el manifiesto.
- Los que sí tengan cambios tuyos, pórtalos a mano sobre la versión nueva, o déjalos sabiendo que no recibirán arreglos.
Arreglos que llegan al regenerar. Formularios que había que enviar dos veces, migraciones en un orden que hacía fallar migrate, reglas con cuantificadores que borraban messages() y handle() del request, y relaciones que apuntaban a App\Models dentro de un paquete.
De 6.x a 7.0
El módulo de interfaz deja de depender de UIkit, Tailwind y Font Awesome, que nadie declaraba. Un módulo de la 6.x no se actualiza cambiando el número: su aspecto venía de la aplicación.
El aspecto. Regenera el módulo. La aplicación importa una vez el tema de cada módulo (import 'acme-catalogo/src/theme.js') y deja de necesitar UIkit y Font Awesome para él. Si la aplicación tiene su propio sistema visual, se conecta con setTheme. Los mixins globales inputClass y buttonClass ya no se usan.
Los iconos. Se piden por nombre semántico. Traduce los recursos escritos a mano: 'icon' => 'fa-eye' pasa a 'icon' => 'show', fa-edit a edit, fa-trash a delete y fa-plus a plus.
Componentes globales. BreadcrumbsComponent y DropdownButtonComponent ya no hacen falta: el módulo genera su propio Breadcrumbs y su ActionMenu. Quita su registro global si sólo existía para los módulos generados.
La línea base. Ejecuta larapack:audit y corrige lo que diga: PHP, illuminate/*, testbench y dependencias internas.
La publicación. bump-patch.yml publicaba en cada push sin correr tests. Sustitúyelo por tests.yml y release.yml (ver Los workflows) y crea VERSION con la versión actual. Para ver los archivos exactos, crea un paquete con larapack:new en un directorio aparte: su --dry-run no deja archivos.
De 7.0 a 7.1
No hay que cambiar nada: un laraimport.json que no declara las claves nuevas genera exactamente lo mismo.
routes, immutable y secret son nuevas. Si en algún modelo borraste a mano acciones que sobraban, larapack:verify ahora lo señala como route-not-declared y falla la CI. Declara la forma real en el JSON y regenera con --force:
{ "name": "AuditEvent", "immutable": true, "routes": { "only": ["policies", "index", "show"] } }immutable-write y secret-exposed también son errores nuevos. Ver Rutas, inmutables, secretos y usuarios.
De 7.1 a 7.2
larapack:audit trata como error un composer.json que fija su propia version, porque Composer descarta cada tag que no coincide con ella. Borra la línea "version" del composer.json y publica desde VERSION.
De 7.2 a 7.3
La 7.3 corrige lo que impedía que un paquete generado arrancara y funcionara instalado en una aplicación.
Regenera con --force y, en lo que editaste, aplica a mano:
| Archivo | Qué cambió |
|---|---|
AppServiceProvider | Carga migraciones, vistas y configuración, que venían comentadas. |
| Políticas | Tipan Authenticatable en lugar de App\Models\User, consultan isAdmin() sólo si existe y apagan forceDelete en $exceptAbilities. |
Traits/Storage | forceDeleteModel() ya no hace abort(403). Es un trait: se cambia a mano. |
| Factories | Dan valor a todos los tipos de columna y usan la factory del modelo relacionado. |
tests/TestCase.php | Registra el paquete, migra, autentica con Sanctum y abre la autorización. En un paquete se genera además tests/User.php. |
| Tests de endpoints | Llaman a las rutas por nombre. No se reescriben: bórralos y vuelve a importar si no los tocaste. |
Rutas del módulo Vue. Declaran meta: { auth: true } y ya no importan @router/middleware. Si la aplicación protegía las rutas leyendo meta.middleware, pasa a leer meta.auth; en React, handle.auth.
En la aplicación. Asegura laravel/sanctum y JsonResource::withoutWrapping().
De 7.3 a 7.4
Nada se rompe.
- Para empezar un paquete,
larapack:newen lugar de copiar otro. - Si ejecutaste
larapack:providersmás de una vez, revisaextra.laravel.providersdelcomposer.jsony quita los proveedores duplicados. - Si el proyecto tiene
phpunit.xml.disty también unphpunit.xmlgenerado, borra el segundo: tapaba al primero.
De 7.4 a 7.5
Los módulos generados pasan a usarse como una aplicación de escritorio. Es la actualización con más cambios en el front desde la 7.0.
Dependencias npm de resources/<ui>/package.json:
| Paquete | Versión |
|---|---|
innoboxrr-form-core | ^2.6.0 |
innoboxrr-form-elements (Vue) | ^6.4.0 |
innoboxrr-react-form-elements (React) | ^3.4.0 |
innoboxrr-vue-datatable (Vue) | ^3.0.0 |
innoboxrr-react-datatable (React) | ^3.0.0 |
En la aplicación, una vez: monta ToastRegionComponent y ConfirmHostComponent (ver Montar un paquete). Sin ellos los avisos no se ven y la confirmación cae en window.confirm.
Regenera con --force y, en lo que editaste, aplica a mano:
| Archivo | Qué cambió |
|---|---|
views/AdminView | Deja la tabla montada, abre el alta en un drawer y recarga con refresh() en lugar de remontar la tabla con una key. Añade la paleta de comandos. |
views/CreateView, views/EditView | Ya no navegan ni pintan migas: avisan con updateData (Vue) u onUpdateData (React). Un formulario editado que navegue al guardar deja el drawer abierto sobre otra página. |
views/ShowView | Esqueleto mientras llega el registro y edición en drawer. |
widgets/DataTable | Expone refresh() (Vue, defineExpose) o acepta ref (React). |
widgets/ModelCard, widgets/ModelProfile | Clases del tema en lugar de Tailwind; borrar avisa y no trata una cancelación como error. |
src/components/ActionMenu | Menú desplegable sobre MenuComponent; los elementos admiten icon. |
models/<kebab>/index.js | Borrar, borrar para siempre y exportar preguntan con confirmAction en lugar de SweetAlert. Cancelar sigue rechazando con RequestCancelledError. |
Si tu código usa los datatables directamente, la 3.0 no es compatible con la 2.x:
- Ya no existen
NavDropdownComponent,IconRouteComponent,IconLinkComponent,DisabledLinkComponentniPaginationComponent(Vue), niActionListComponentyDatatableIcon(React). DataTableComponentrecibe la instancia de TanStack Table.- Los textos por defecto están en español y se cambian con el prop
labels. - Un fallo ya no se reintenta en silencio: se ve y se reintenta a mano.
- Las pruebas en jsdom que abran un menú tienen que simular
@floating-ui/dom.
Los README de los dos datatables tienen su propia sección «De 2.x a 3.0»; ver también Tablas.
Comprueba en el navegador: crear desde la tabla, editar desde el detalle, borrar con confirmación, un borrado que falla y la paleta con Ctrl+K.
De 7.5.0 a 7.5.1
No hay que regenerar. Sube tres dependencias en resources/<ui>/package.json:
| Paquete | Versión |
|---|---|
innoboxrr-form-core | ^2.7.0 |
innoboxrr-form-elements (Vue) | ^6.5.0 |
innoboxrr-react-form-elements (React) | ^3.5.0 |
Con ellas los formularios dejan de necesitar Tailwind: las etiquetas, el grupo repetible, la zona de archivos, las casillas del código y el avatar salen del tema. Si tu aplicación sobrescribía esos campos con clases de Tailwind, revisa que se vean como esperas en claro y en oscuro.
De 7.5 a 7.6
Lo generado pasa a hablar un solo idioma, el de la aplicación: todo texto visible es una clave en inglés, y LaraPack escribe su traducción al español.
Dependencias npm de resources/<ui>/package.json: innoboxrr-i18n ^1.2.0 e innoboxrr-locale-generator ^2.0.0 en devDependencies. El script locale pasa de npx locale-gen a locale-gen.
En la aplicación, una vez: carga las traducciones del módulo antes que las tuyas y elige idioma (ver Traducciones):
addTranslations(translations) // import { translations } from 'tu-modulo'
addTranslations(import.meta.glob('/resources/locales/*.json', { eager: true }))
setLocale(document.documentElement.lang)Regenera con --force. Los archivos del módulo que editaste se conservan; aplica el cambio a mano en ellos:
| Archivo | Qué cambió |
|---|---|
src/i18n.js | Nuevo. Exporta translations y tableLabels(). |
src/locales/en.json, es.json | Nuevos. LaraPack les suma las claves que falten cada vez que genera y nunca toca una traducción escrita. |
index.js del módulo | Exporta translations. |
models/<kebab>/routes/index.js | title es un getter que traduce al leerse. Antes era español fijo con el nombre de la clase («Editar Products»). |
views/AdminView, views/ShowView | Migas, paleta, drawer y título de pestaña traducidos. |
widgets/DataTable | Pasa labels a la tabla. |
src/components/Breadcrumbs, ActionMenu | Su etiqueta accesible se traduce. |
Http/Resources/Models/<Model>Resource.php | Las acciones de cada fila usan __(). |
Notifications/<Model>/ExportNotification.php | Asunto y cuerpo con __(); antes el asunto iba en inglés y el cuerpo en español. |
Http/Events/<Model>/Events/* | Toman el idioma de la petición. Antes valían 'en' y llamaban a App::setLocale, así que cada alta, edición o borrado pasaba a inglés el resto de la petición. |
Claves que cambian. Si tu aplicación ya traducía las anteriores, muévelas:
| Antes | Ahora |
|---|---|
Create Posts | Create :name, con name = t('Post') |
Post created | Record created |
Post deleted | Record deleted |
En el paquete Laravel: el proveedor generado carga lang/ con loadJsonTranslationsFrom. Si tu AppServiceProvider es anterior, añade:
$this->loadJsonTranslationsFrom(__DIR__ . '/../../lang');Traduce lo tuyo. El nombre del modelo y de sus campos quedan en src/locales/es.json con ""; mientras lo estén, la pantalla enseña la clave en inglés.
Comprueba en el navegador, en español y en inglés: el índice, la tabla con un error, la paleta, crear, editar y borrar.
De 7.6 a 7.7
Lo que se genera con metas: true pasa a funcionar: guarda las metas del formulario y mantiene payload. Un modelo sin metas sale igual que antes.
Composer, en el composer.json del paquete: innoboxrr/traits ^2.1 e innoboxrr/support ^2.1 (nuevo: aplana los grupos anidados del formulario).
npm, opcional porque llega por ^: innoboxrr-form-core ^2.8.0, innoboxrr-form-elements ^6.6.0 e innoboxrr-react-form-elements ^3.6.0, con el teléfono que sigue el tema.
En el laraimport:
- Declara
protected_metascon las metas que sólo escribe tu código. - Ya no hace falta declarar
payload: se añade solo. Si lo declarabascreatableoupdatable,larapack:validateavisa y se ignora.
Regenera y aplica a mano lo de los traits. Relations, Storage y Operations sólo se crean si no existen, así que ni --force los reescribe. En un modelo con metas:
| Archivo | Qué cambió |
|---|---|
Traits/Relations/<Model>Relations.php | La relación metas(). Sin ella meta() y setMeta() fallan. |
Traits/Storage/<Model>Storage.php | createModel() y updateModel() llaman a updateModelMetas(), que aplana con RequestFormater y rehace payload. |
Traits/Operations/<Model>Operations.php | buildPayload() y updatePayload(), que guarda sin disparar eventos. |
Models/<Model>.php | $protected_metas sale del contrato; payload fuera de $fillable, $creatable, $updatable y $export_cols. |
database/factories/<Model>Factory.php | Ya no inventa payload. |
El contenido exacto de los tres traits está en Metas y payload.
Si ya usabas metas a mano, innoboxrr/traits 2.1 cambia dos cosas:
update_metas()ignora las claves de$protected_metas, aunque estén en$editable_metas.- Un array vacío borra la meta; antes se guardaba como
"[]".
Las migraciones nuevas de metas ya no llevan softDeletes(): el trait borra de verdad. Las tablas que ya existen no cambian.
Comprueba: crea un registro mandando un grupo anidado, edítalo vaciando una meta y mira payload en la respuesta.
De 7.7.0 a 7.7.1
Lo que encontró un piloto en una aplicación Laravel 13 nueva. No cambia el contrato.
Si el administrador sale sin estilos, añade src/theme.js a sideEffects en resources/<ui>/package.json:
"sideEffects": ["*.css", "*.vue", "src/theme.js"]En React, ["*.css", "src/theme.js"]. Sin él, Vite descarta el import del tema y con él la hoja de estilos.
Si tienes migraciones duplicadas (create_<tabla>_table dos veces con horas distintas), borra la más nueva y su entrada en .larapack/manifest.json. Volver a importar ya no las duplica, y import --dry-run ya no escribe archivos.
Exportación, en el composer.json del paquete y en su configuración:
maatwebsite/excelpasa derequire-devosuggestarequire;export_diskpor defectolocal, ynotification_viapor defecto['mail'].
Regenera con --force ExportRequest y ExportNotification si no los editaste: avisan con un mensaje claro si falla y enlazan a una descarga firmada.
En la aplicación: $middleware->statefulApi() en bootstrap/app.php, y vue-router@4 con pinia@3 (ver Montar un paquete).
De 7.7 a 7.8
La ficha, las migas y el título de la pestaña nombran al registro por su columna. Antes leían siempre .name, y un modelo con title salía con el nombre del modelo.
En el laraimport, opcional: "display": "sku" si la columna que lo nombra no es name, title ni la primera columna de texto. Una columna que no existe o una secret son un error de larapack:validate.
Regenera con --force views/ShowView y widgets/ModelCard. Si los editaste, cambia a mano .name por la columna en esos dos archivos: tres sitios en total. Un modelo con name sale igual que antes.
De 7.8 a 7.9
Acciones masivas, edición en la celda, exportar desde la paleta, campos para las metas, migraciones de alteración, Pint y Larastan, y Vite 8. No cambia el contrato: sin routes, un modelo gana bulkUpdate y bulkDelete solo.
Regenera con --force, primero en simulación. Cambian el controlador, las rutas, PoliciesRequest, el test de endpoints y, en la interfaz, index.js, widgets/DataTable, views/AdminView, forms/CreateForm y forms/EditForm. Aparecen BulkUpdateRequest y BulkDeleteRequest. Un modelo con routes.only sólo las tiene si las añades a la lista.
Si editaste alguno, lo mínimo a mano:
PoliciesRequest:'bulkUpdate' => 'update'y'bulkDelete' => 'delete'en$policyMethodMapping;widgets/DataTable: pasaselectablea la tabla y un modelo condataTableComponents: () => ({ ClickToEdit: ClickToEditComponent })(en React, un envoltorio que pasesavecomoonSave);index.js:bulkActions(),bulkUpdateModels,updateFieldybulkDeleteModelssalen tal cual de un paquete recién generado.
El test de endpoints no se reescribe: si no lo tocaste, bórralo y vuelve a importar para recibir los tests de las masivas.
Dependencias en resources/<ui>/package.json: innoboxrr-vue-datatable o innoboxrr-react-datatable ^3.1.0, innoboxrr-form-elements ^6.7.0 o innoboxrr-react-form-elements ^3.7.0, vite ^8.0.0 y, en React, @vitejs/plugin-react ^6.0.0.
Migraciones. Desde ahora, cambiar columnas y reimportar escribe una alteración. Si antes regeneraste con --force la migración de creación de una tabla ya migrada, esa diferencia nunca llegó a tu base y LaraPack ya no la ve: escribe esa alteración a mano una vez. Ver Migraciones.
Formato y tipos, opcional en un paquete existente: composer require --dev laravel/pint larastan/larastan, copia pint.json, phpstan.neon.dist y el trabajo quality de tests.yml de un paquete recién creado, y formatea una vez con vendor/bin/pint en su propio commit.
El teléfono de Vue valida por país, como el de React: un número de 10 dígitos que no es válido para su país deja de pasar, y uno español de 9 empieza a pasar. Lo que emite no cambia.
De 7.9 a 7.10
No cambia el contrato: authenticatable es nuevo y opcional. La línea base pide ahora innoboxrr/larapack-generator ^7.10; larapack:audit avisa, sin fallar, a quien sigue en ^7.0.
Regenera el proveedor de eventos con larapack:event-service-provider --force, primero con --dry-run. El anterior leía la caché al arrancar: en una aplicación con CACHE_STORE=database, lo que trae Laravel 13, php artisan migrate fallaba antes de crear la tabla de la caché. Y como la clave era la misma en todos los paquetes, uno recibía los listeners de otro. Si lo editaste, quita el Cache::remember('events_and_listeners', ...) y recorre discoverEvents() directamente.
Módulos dentro de una aplicación. El módulo de interfaz ya no escribe package.json ni vite.config.js cuando el proyecto es una aplicación: pisaban los de la aplicación. Si una versión anterior los dejó en resources/<ui>/, no los usa nadie: la aplicación compila el módulo con su propio Vite, y su package.json tiene que declarar las dependencias del módulo.
De 7.10.0 a 7.10.1
No cambia el contrato. En un paquete no hay nada que hacer: lo generado es lo mismo.
En una aplicación generada con 7.10.0, las factories estaban en App\Database\Factories y los tests en App\Tests, que la aplicación no carga, y los tests llamaban a URIs que no existen y sin sesión. Regenera o corrige a mano:
- Factories y modelos.
larapack:import --dry-runy despuéslarapack:import --force. En los que editaste, cambiaApp\Database\FactoriesporDatabase\Factoriesen la factory y en elusedel modelo. - Tests. No se pisan nunca, tampoco con
--force. Si no los tocaste, borratests/Feature/Models/<Model>EndpointsTest.phpy vuelve a importar. Si los editaste, cambiaApp\TestsporTests, llama a las rutas conroute('api.app.<modelo>.<acción>')e inicia sesión antes de cada llamada, como el test nuevo. tests/TestCase.php. Si lo creó LaraPack 7.10.0 porque la aplicación no tenía uno, extiendeOrchestra\Testbench\TestCase: bórralo y vuelve a importar.- Registra el
EventServiceProviderenbootstrap/providers.phpsi no lo tenías (larapack:event-service-providerlo crea): sin él la exportación no avisa.
Los tests nuevos inician sesión con la factory del modelo de auth.providers.users.model, abren la autorización en su setUp() y, en la edición masiva, apartan las columnas únicas, como users.email.
De 7.10.1 a 7.10.2
No cambia el contrato. En un paquete no hay nada que hacer: lo generado es lo mismo.
En una aplicación generada con 7.10.0 o 7.10.1, cada exportación fallaba al renderizar («No hint path defined for [app]»), y su notificación leía app.notification_via y app.export_disk, dentro de la configuración de Laravel. Regenera o corrige a mano:
- Exportación y notificación.
larapack:import --dry-runy despuéslarapack:import --force: se regeneranapp/Exports/<Plural>Exports.phpyapp/Notifications/<Model>/ExportNotification.php. En los que editaste, cambiaconfig('app.excel_view', 'app::excel.')porconfig('larapack.excel_view', 'excel.'), yapp.notification_viayapp.export_diskporlarapack.notification_viaylarapack.export_disk. - Configuración. Si añadiste
excel_view,notification_viaoexport_diskaconfig/app.php, llévalos aconfig/larapack.php(larapack:configlo crea) y quítalos deconfig/app.php. - La migración de
users. Nada:larapack:importya no la da por editada a mano ni pide una alteración contra ella. La omite con «no la generó LaraPack».
De 7.10.2 a 7.10.3
No cambia el contrato ni lo que se genera en PHP.
- La salida de
--format=json. Es un único documento JSON, también cuando algo falla:{"ok": false, "error": "..."}con código de salida 1. Si tu CI o tu agente recortaba el progreso delarapack:importantes de decodificar, ya no hace falta: decodifica la salida entera. Los avisos del laraimport van enfindings. - El token CSRF en las peticiones GET. El contrato del modelo (
models/<entidad>/index.js) ya no manda_tokenengetPolicies,getPolicy,indexModelnishowModel. Si no lo editaste,larapack:import --vue --force(o--react) lo regenera; si lo editaste, quita_token: csrfToken(),de esas cuatro llamadas. Las escrituras lo siguen mandando. - Las tablas. Sube
innoboxrr-vue-datatableoinnoboxrr-react-datatablea^3.1.1, que hace lo mismo con las peticiones de la tabla.