@withmarsha/form-embed
v1.0.0
Published
Marsha lead intake form embed loader (inline iframe).
Readme
@withmarsha/form-embed
Loader del formulario de captación de Marsha (iframe inline), distribuido por npm para poder servirlo vía CDN (unpkg).
La Recepcionista web es un paquete aparte, con su propia versión:
@withmarsha/embed(embed.js). Se versionan y publican de forma independiente para que un cambio en uno no toque al otro.
El loader vive commiteado aquí en form.js (es un fichero suelto de navegador,
IIFE, sin build). El paquete se distribuye solo por npm/unpkg; no se sirve
self-hosted.
Una sola vez: cuenta y login
- Tener una cuenta npm con acceso al scope
@withmarsha(crear la org en npmjs.com; gratis para paquetes públicos). - Iniciar sesión en la máquina:
La sesión queda guardada; no hay que repetirlo en cada publicación.npm login # abre el navegador para autenticar npm whoami # confirma que estás logueado
Publicar una versión nueva
- Edita el loader en
packages/form-embed/form.js. - Sube la versión en
packages/form-embed/package.json(semver):- parche (
1.0.0→1.0.1) para fixes, - minor (
1.0.0→1.1.0) para cambios compatibles, - major (
1.0.0→2.0.0) para cambios que rompen el snippet del cliente.
- parche (
- Publica (o taguea
form-embed-v<version>y deja que lo haga la GitHub Action.github/workflows/publish-form-embed.yml):cd packages/form-embed npm publishpublishConfig.access: "public"ya lo deja como paquete público.
unpkg lo sirve automáticamente (no se "sube" nada a unpkg):
https://unpkg.com/@withmarsha/[email protected]/form.jsComprobar qué se va a publicar sin publicar:
npm pack --dry-runSnippet que pega el cliente
<div data-marsha-form="form_xxx"></div>
<script async src="https://unpkg.com/@withmarsha/form-embed@^1.0.0/form.js"></script>^1.0.0= el cliente recibe la última1.xautomáticamente; un cambio que rompa exige publicar2.0.0y que el cliente actualice el rango a mano.data-marsha-form=leadFormPublicIdde la organización (form_…); se copia desde el editor del formulario (pestaña «Insertar»). El iframe solo carga en los dominios deleadForm.allowedDomains.data-origin(en el<script>) = opcional, solo para apuntar a un backend que no sea prod (dev/staging/preview). Por defecto usahttps://withmarsha.com.
