Saltar al contenido
DocumentaciónInstalación

Instalación

Instalar los paquetes @devlas-cl de SII SDK desde GitHub Packages con un token clásico, un .npmrc y la etiqueta de versión del licenciatario.

Ver Markdown

Para agentes: esta página en Markdown está en /docs/instalacion.md, toda la documentación en /llms-full.txt y las reglas de integración en /agents.md.

En esta página

Los paquetes @devlas-cl/* son privados y se distribuyen por el registro npm de GitHub Packages (https://npm.pkg.github.com), no por npmjs.com. Cada licenciatario recibe su propia copia con un sufijo de versión y una etiqueta propia, y el acceso queda ligado a su nivel (también el nivel Libre, gratis con registro). Requiere Node.js 24 o superior; los paquetes son solo ESM.

Requisitos previos

  • Devlas aprueba tu registro y da acceso de lectura a los paquetes de tu nivel. Sin ese acceso la instalación responde 403 o 404.
  • Al aprobarlo, Devlas entrega la etiqueta de versión (por ejemplo c7f3a1b2c) que usarás en cada instalación.
  • Node.js 24 o superior (engines.node >=24).

Pasos

1. Token personal clásico

GitHub Packages no acepta tokens fine-grained. Crea un token clásico (GitHub: Settings, Developer settings, Personal access tokens, Tokens (classic)) con el permiso read:packages y nada más, con vencimiento (recomendado: 90 días). Si la cuenta pertenece a una organización con SSO, autoriza el token para esa organización.

2. Token fuera del repositorio

export NODE_AUTH_TOKEN='ghp_...'   # nunca en un archivo versionado

3. .npmrc en la raíz del proyecto

Se versiona, porque no contiene el token (lo lee de la variable):

@devlas-cl:registry=https://npm.pkg.github.com//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}

4. Instalar con tu etiqueta

Usa la misma etiqueta en todos los paquetes @devlas-cl. Núcleo para emitir boletas, facturas y notas:

pnpm add @devlas-cl/comun@<etiqueta> @devlas-cl/dominio@<etiqueta> @devlas-cl/xml@<etiqueta> @devlas-cl/protocolo@<etiqueta> @devlas-cl/sii@<etiqueta>

Paquetes según el nivel

Los niveles son acumulativos. Paquetes publicados y a qué nivel pertenecen:

Paquete Nivel que lo entrega Contenido
@devlas-cl/comun Todos Resultado, ErrorSii, catálogo de códigos, puertos, mensajeParaUsuario
@devlas-cl/dominio Todos Documento, RUT, fechaTributaria, cálculo de montos, vigencia del CAF
@devlas-cl/xml Todos prepararDte, prepararSobre, prevalidarEmision, leerCaf, abrirCertificado, XSD
@devlas-cl/protocolo Todos Lectores de respuestas del SII, catálogo, veredictos, políticas de consulta y envío
@devlas-cl/sii Todos Llamadas al SII: emitir, enviarBoletas, enviarDte, consultarEstadoEnvio, RCV, reclamos
@devlas-cl/soluciones Todos habilitar, diagnosticarEmisor, resumirFoliosCaf
@devlas-cl/impresion Todos Ticket térmico, PDF y timbre PDF417
@devlas-cl/folios AutoCAF y Certificador autoCaf, pedirCaf, reobtenerCaf, anularFolios, consultarTopeFolios, llamadasFoliosDeSii
@devlas-cl/certificacion Certificador avanzarCorrida, crearPasosSii, sets, libros, muestras

@devlas-cl/contabilidad (IVA, PPM, reajuste, interés penal, multas) también se publica, sin nivel declarado. @devlas-cl/pruebas (falsos y pruebas de contrato) no se publica.

Opcionales en cualquier nivel (recetas e impresión):

pnpm add @devlas-cl/soluciones@<etiqueta> @devlas-cl/impresion@<etiqueta>

AutoCAF suma folios (depende de soluciones):

pnpm add @devlas-cl/soluciones@<etiqueta> @devlas-cl/folios@<etiqueta>

Certificador suma certificacion (depende de folios, soluciones e impresion):

pnpm add @devlas-cl/soluciones@<etiqueta> @devlas-cl/impresion@<etiqueta> @devlas-cl/folios@<etiqueta> @devlas-cl/certificacion@<etiqueta>

Versiones y actualizaciones

  • Tu versión es la del lanzamiento con un sufijo tuyo (por ejemplo 0.6.0-c7f3a1b2c) y la etiqueta es ese sufijo.
  • Para actualizar, vuelve a instalar con la misma etiqueta: Devlas la mueve a cada versión nueva.
  • Un rango como ^0.6.0 no sirve: las versiones con sufijo no entran en rangos de otra versión.
  • Todos los paquetes llevan el mismo número de versión. No hay matriz de compatibilidad: instala todos con la misma etiqueta.
  • Las dependencias internas entre paquetes quedan fijadas a la versión exacta de tu copia.

Integración continua

Guarda el token clásico como secreto del pipeline (por ejemplo DEVLAS_PACKAGES_TOKEN) y pásalo como NODE_AUTH_TOKEN al paso de instalación. El GITHUB_TOKEN de otro repositorio no sirve para leer estos paquetes. Usa un token propio del pipeline.

- uses: actions/setup-node@v4  with:    registry-url: https://npm.pkg.github.com    scope: '@devlas-cl'- run: pnpm install --frozen-lockfile  env:    NODE_AUTH_TOKEN: ${{ secrets.DEVLAS_PACKAGES_TOKEN }}

Rotación y vencimiento del token

  • Antes de que venza, crea uno nuevo, actualiza la variable o el secreto y borra el anterior.
  • Token vencido o revocado: las instalaciones nuevas fallan con 401 o 403. Lo ya instalado en node_modules sigue funcionando; solo dejas de poder instalar o actualizar.
  • Token filtrado: revócalo de inmediato en GitHub y crea otro.

Solo ESM

Los paquetes no se cargan con require(). Desde CommonJS usa import() dinámico dentro de una función async. En TypeScript con CommonJS necesitas moduleResolution node16 o nodenext.

// Desde CommonJS, dentro de una función async:const { abrirCertificado } = await import('@devlas-cl/xml')

Contenido de cada paquete publicado

Cada tarball trae solo dist (JavaScript compilado con tipos), package.json, README.md, COMMERCIAL.md y THIRD-PARTY-NOTICES.md. Sin código fuente, pruebas ni mapas.