IntecionSoftware

@intecion/ipal-kit (1.5.5)

Published 2026-09-28 14:47:16 +00:00 by radoslaw.smolinski

Installation

@intecion:registry=https://git.intecion.net/api/packages/IntecionSoftware/npm/
npm install @intecion/[email protected]
"@intecion/ipal-kit": "1.5.5"

About this package

Intecion Payload Advanced Library — a Payload CMS 3 plugin: i18n, SEO, forms, consent, analytics, blog/archives.

@intecion/ipal-kit

Intecion Payload Advanced Library — a plugin for Payload CMS 3.

Provides internationalization (per-locale routing, hreflang, language switcher), SEO (metadata, canonical, sitemap, robots), forms (Turnstile, rate limiting, validation), consent management (consent mode), analytics (GA4/GTM), and a blog/archive system (collections under an archive page, listing, pagination).

Repository: https://git.intecion.net/IntecionSoftware/ipal-kit


Installation

The plugin is published to a public package registry on the company Gitea. Installing it needs no token — just point the @intecion scope at the registry.

1. Point the scope at the registry. Add this line to an .npmrc file in your project (or to ~/.npmrc to apply it everywhere):

@intecion:registry=https://git.intecion.net/api/packages/IntecionSoftware/npm/

Only packages starting with @intecion/ go to Gitea. Everything else (react, next, @payloadcms/*, …) still comes from the public npm registry — this line is a scoped override, not a change of your default registry. The file holds no secret, so you can commit it (and you should — your deployment needs it too).

2. Install:

pnpm add @intecion/ipal-kit

That's it. No token, no login — the registry is public for reads.

Why the registry, not a git install

You can install straight from the repo (pnpm add git+https://git.intecion.net/IntecionSoftware/ipal-kit.git), and for a quick throwaway test it works. But prefer the registry for real projects:

  • Client components resolve correctly. A git install unpacks into a commit-hashed path (.pnpm/@intecion+ipal-kit@git+https…#hash/…) that breaks Next.js's React Client Manifest — the consent banner, analytics, and Turnstile components fail at runtime with "Could not find the module … in the React Client Manifest". The registry unpacks to a clean node_modules/@intecion/… path, so this doesn't happen.
  • Versioning. pnpm sees a real version number, so a version bump cleanly replaces the old one — no cache-clearing dance.

Keep the git install only for pulling a specific unreleased commit during plugin development.


Finish setting up your project

The plugin doesn't pull in the dependencies it shares with Payload — add them yourself, in a version matching your Payload:

pnpm add @payloadcms/[email protected] @payloadcms/[email protected] \
         nodemailer lucide-react slugify server-only

Match lucide-react to the plugin. The plugin uses lucide-react@^0.400.0. If your project pulls a different major (e.g. 1.x), you end up with two copies and confusing type errors. Pin your project to the same range.

From here, the guide takes over: docs/getting-started.md — from an empty project to a working site.


Publishing a new version

This section applies only if you develop the plugin itself. Publishing (unlike installing) does need a token, with the write:package scope.

In ~/.npmrc (path differs per OS — see the table below):

//git.intecion.net/api/packages/IntecionSoftware/npm/:_authToken=${GITEA_TOKEN}

Generate the token in Gitea → Settings → Applications → Generate New Token, scope write:package. Put it in the GITEA_TOKEN env var.

System Global .npmrc path
macOS ~/.npmrc
Linux / Ubuntu ~/.npmrc
Windows %USERPROFILE%\.npmrc

Then build and publish:

pnpm clean && pnpm build
npm version patch          # 1.0.0 → 1.0.1
npm publish

Full checklist and troubleshooting: docs/publishing.md.


Documentation

Everything lives in the docs/ directory. To get started:


Something not working?

What you see What's wrong
404 on pnpm add @intecion/... the @intecion:registry line is missing from .npmrc — the install went to public npm instead of Gitea
Could not find the module … in the React Client Manifest installed from git, not the registry — reinstall from the registry (clean path)
two versions of lucide-react your project pins a different major than the plugin's ^0.400.0 — align them
missing secret key … to secure Payload PAYLOAD_SECRET isn't set in the runtime environment (not a plugin issue)

If you get stuck, see docs/publishing.md or message the team that maintains the plugin.

Dependencies

Dependencies

ID Version
@payloadcms/storage-s3 ^3.88.0
lucide-react ^0.400.0
nodemailer ^8.0.1
server-only ^0.0.1
slugify ^1.6.6

Development Dependencies

ID Version
@eslint/eslintrc ^3.2.0
@payloadcms/db-postgres 3.88.0
@payloadcms/db-sqlite 3.88.0
@payloadcms/eslint-config 3.28.0
@payloadcms/next 3.88.0
@payloadcms/plugin-form-builder 3.88.0
@payloadcms/plugin-seo 3.88.0
@payloadcms/richtext-lexical 3.88.0
@payloadcms/ui 3.88.0
@playwright/test 1.58.2
@swc-node/register 1.10.9
@swc/cli 0.6.0
@types/node 22.19.9
@types/nodemailer ^8.0.1
@types/react 19.2.14
@types/react-dom 19.2.3
copyfiles 2.4.1
cross-env ^7.0.3
eslint ^9.23.0
eslint-config-next 16.2.6
graphql ^16.8.1
mongodb-memory-server 10.1.4
next 16.2.6
open ^10.1.0
payload 3.88.0
prettier ^3.4.2
qs-esm 8.0.1
react 19.2.6
react-dom 19.2.6
rimraf 3.0.2
sharp 0.34.2
sort-package-json ^2.10.0
typescript 5.7.3
vite-tsconfig-paths 6.0.5
vitest 4.0.18

Peer Dependencies

ID Version
@clocklimited/payload-2fa ^3.0.0
@payloadcms/next ^3.88.0
@payloadcms/plugin-form-builder ^3.88.0
@payloadcms/plugin-seo ^3.88.0
@payloadcms/ui ^3.88.0
next >=15
payload ^3.88.0
react ^19.0.0
react-dom ^19.0.0
Details
npm
2026-09-28 14:47:16 +00:00
11
MIT
339 KiB
Assets (1)
Versions (55) View all
1.5.6 2026-09-28
1.5.5 2026-09-28
1.5.4 2026-09-28
1.5.3 2026-09-28
1.5.2 2026-09-28