Commit Graph

187 Commits

Author SHA1 Message Date
Sacha Al Himdani
472ad0677c Release @probo/n8n-nodes-probo/v0.200.0
Signed-off-by: Sacha Al Himdani <sacha@probo.com>
2026-07-02 17:59:04 +02:00
Bryan Frimin
125bac4a32 Release @probo/n8n-nodes-probo/v0.199.0
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-06-30 19:41:10 +02:00
Ludovic Vielle
81bc8f7115 Release @probo/n8n-nodes-probo/v0.198.0
Signed-off-by: Ludovic Vielle <ludovic@probo.com>
2026-06-30 13:06:51 +02:00
Sacha Al Himdani
4982c67891 Fix npm deprecation warnings and minimize dependency overrides
Bump @n8n/node-cli to 0.37.1 (the `^0.24.1` range was trapping it at
0.24.x), which pulls an updated toolchain and clears the eslint@8,
glob@7, inflight, rimraf@3, @humanwhocodes/*, node-domexception and
uuid@10 deprecation warnings at the source.

Add a glob override (^13.0.6) so rimraf@6 no longer pulls the
deprecated glob@11, and trim the overrides list down to the three that
actually do work (uuid, js-yaml, glob); the rest were redundant or dead.
npm audit reports 0 vulnerabilities.

The upgraded @n8n/eslint-plugin-community-nodes rules flagged two
pre-existing issues in the Probo node, now fixed: handle
continueOnFail() in execute() and throw NodeOperationError instead of
raw Error.

The only remaining warning is @langchain/community, whose entire
package is deprecated upstream and is a hard dependency of
@n8n/ai-utilities.

Signed-off-by: Sacha Al Himdani <sacha@probo.com>
2026-06-29 15:20:07 +02:00
Émile Ré
68eaabe0ea Add Trust Center top bar to compliance portal
Build the Trust Center top navigation in a Relay-wired layout route. The
portal now mounts a Relay environment and provider, and the root layout
loads a query whose fragment feeds the TopBar: brand, ghost-pill nav with
an active state from the router, and a guest "Get Access" button versus an
authenticated user menu. Placeholder section routes keep the nav links and
active state functional until real pages land.

Wire the Relay tagged-template transform via @rolldown/plugin-babel and
set the router basename to the /trust/{slug} path prefix so the app
resolves under its served path.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 21:55:09 +02:00
Émile Ré
2063cfc2ff Add v2 Avatar component
Implement the Avatar component from the Probo Radix UI Figma on top
of Base UI's avatar primitive (image load + fallback). It supports
size 1-9, solid/soft variants across the sand/gold/red/green/amber/
sky scales with highContrast, a radius scale, and a fallback node
for initials or an icon, plus a paired AvatarSkeleton. Styling uses
tailwind-variants/lite slots (root/image/fallback).

Add @base-ui/react to @probo/ui — the first v2 component built on a
Base UI primitive.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 18:52:06 +02:00
Émile Ré
b374bc5211 Style v2 with tailwind-variants/lite
The numbered v2 token scales (text-1…9, rounded-1…6, shadow-1…6)
share a prefix with the color/utility namespaces, and tailwind-merge
(which tailwind-variants runs by default) cannot tell a numeric
text-3 from a color step, so it silently dropped the size whenever a
text-<color> was present. Switch the v2 kit to the merge-free
tailwind-variants/lite entrypoint (added in v3): upgrade
tailwind-variants to ^3.2.2, import tv/VariantProps from
tailwind-variants/lite in the typography primitives, and drop the
per-call twMerge:false.

The legacy v1 kit stays on tailwind-variants (merge intact). Document
the rationale in ui.md and add a packages/ui/src/v2 ESLint guard that
forbids tailwind-variants, tailwind-merge, and clsx.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 18:52:06 +02:00
Émile Ré
4656469c47 Drop unused eslint-plugin-relay-types from apps
The @probo/eslint-plugin-relay-types shim only types an
`eslint-plugin-relay` import, which no app makes anymore now that
linting runs through the single root eslint.config.mjs. The apps'
tsconfig.node.json even pulled it in for a per-app eslint.config.mjs
that no longer exists.

Remove the devDependency and the `types` entry from each app's
node tsconfig, and drop the stale eslint.config.mjs include. The
shim stays for packages/eslint-config, its real consumer.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 18:52:06 +02:00
Émile Ré
ff966b462e Promote useMutation to the @probo/relay package
Extract the awaitable useMutation into @probo/relay as a
createUseMutation factory that delegates feedback to an injected
MutationNotifier, keeping the package free of UI and i18n
dependencies. compliance-portal binds it to its Base UI toast +
i18next + formatError stack and imports it by explicit path
(#/lib/relay/useMutation), dropping the lone intra-app barrel; a
compliance-portal-scoped no-restricted-imports rule forbids
react-relay's useMutation.

Bring packages/relay and packages/routes into the shared ESLint
scope and fix the violations that surfaced, and deprecate the
legacy withQueryRef / loaderFromQueryLoader helpers. Document the
shared-hook pattern and the "index.ts for package entrypoints only"
rule in the relay, hooks, and app-arborescence guides.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 18:52:05 +02:00
Émile Ré
023fb70a58 Add routing foundation to compliance-portal
Wire up react-router with a root layout route and an index home page,
following the single-arborescence conventions: pages live under pages/,
routes are built from AppRoute via routeFromAppRoute, and route bundles
load lazily behind a Suspense fallback.

Add the @probo/routes and @probo/react-lazy workspace dependencies that
the route setup relies on.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 18:52:05 +02:00
Émile Ré
c9cc46d359 Migrate compliance-portal to the global ESLint config
The compliance-portal app still carried the per-workspace ESLint
scaffold that the rest of the monorepo dropped when linting was
centralized into the root eslint.config.mjs. It defined its own
local config, lint script, and lint-only devDeps, and was not
covered by the root lint script, so it was never linted.

Remove the local eslint.config.mjs, the lint script, and the
eslint/@probo/eslint-config devDeps, then add the app to the root
appDirs so the shared ts, react, and relay rule sets apply to it.

Replace the explicit per-directory list in the root lint script
with a bare `eslint .`, which the root config was already designed
for via its globalIgnores. Ignore pkg/** so the vendored minified
JS under the Go tree is not linted.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-26 18:52:04 +02:00
Sacha Al Himdani
9093be79f4 Regenerate lockfile with npm 11.8.0 to restore cross-platform native bindings
The lockfile was regenerated with npm 11.6.2, which omits optional
platform-specific dependencies for non-host platforms (npm/cli#4828).
This dropped the @rolldown/binding-linux-x64-gnu entry (vite 8 / rolldown
native binding) and broke Linux CI with "Cannot find native binding".
Regenerated with npm ^11.8.0 so all 15 @rolldown/binding-* platforms are
recorded in the lockfile.

Signed-off-by: Sacha Al Himdani <sacha@probo.com>
2026-06-23 12:52:03 +02:00
Sacha Al Himdani
6e86c4ba89 Fix npm security alerts and drop useless overrides
Regenerate the stale package-lock and pin patched versions for the
Dependabot-flagged packages (@vitest/browser, form-data, undici,
brace-expansion, js-yaml, esbuild, dompurify, @babel/core, vite,
@opentelemetry/core via posthog-js). Remove the harmful langsmith
override (it forced the vulnerable 0.5.x line) and the zero-effect
lodash-es override.

Signed-off-by: Sacha Al Himdani <sacha@probo.com>
2026-06-23 12:15:34 +02:00
Bryan Frimin
b2e9b8b4f1 Release @probo/n8n-nodes-probo/v0.197.0
Signed-off-by: Bryan Frimin <bryan@probo.com>
2026-06-22 17:44:40 +02:00
Émile Ré
9e6f1b9e8f Release @probo/n8n-nodes-probo/v0.196.0 2026-06-19 17:12:45 +02:00
Émile Ré
4d28dab2f4 Centralize ESLint into a single root config
Replace the duplicated per-workspace eslint.config.mjs files in
apps/console, apps/trust, packages/ui, and packages/eslint-config with
one root eslint.config.mjs that reuses the shared @probo/eslint-config
rule sets and scopes them per directory. Linting now runs from the repo
root, so pin the type-checked project service root and broaden the
import-x resolver to every workspace tsconfig (the #/* aliases live in
each app's tsconfig.app.json).

Drop the now-redundant per-package lint scripts and lint-only devDeps,
and add a root lint script that runs eslint over the four dirs with
multithreading restored via --concurrency auto, then lints n8n-node
through a direct workspace call. packages/n8n-node keeps its own
external preset.

Collapse the redundant lint-js -> npm-lint Makefile chain into a single
lint-js target and update the make docs accordingly.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-19 16:47:43 +02:00
Émile Ré
01bdccaf2a Release @probo/cookie-banner/v0.10.0
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-06-19 15:25:48 +02:00
Émile Ré
f98b73f073 Upgrade frontend toolchain to latest majors
Bump React 19.2, Relay 21, React Router 8, Vite 8 with
@vitejs/plugin-react 6, ESLint 10, GraphQL 17, TypeScript 6,
@types/node 24, and Tailwind 4.3 across the workspaces.

vite-plugin-react 6 (Vite 8) no longer runs Babel, so the Relay
tagged-template transform now runs through @rolldown/plugin-babel
in the console and trust Vite configs.

Relay 21 ships first-party types and enables the ambiguous-alias
check by default; disable that flag to preserve existing queries
and add explicit usePreloadedQuery type arguments where the new
types no longer infer the operation. TypeScript 6 deprecations and
stricter inference are addressed in tsconfigs and call sites.

Keep n8n-node on ESLint 9 and eslint-plugin-react on 7.37.5, the
newest releases compatible with their toolchains.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-19 13:51:17 +02:00
Ludovic Vielle
eb9cfc103a Release @probo/n8n-nodes-probo/v0.195.0
Signed-off-by: Ludovic Vielle <ludovic@probo.com>
2026-06-19 10:27:52 +02:00
Émile Ré
d7d6ddda2b Load Inter via Fontsource and set mono stack
Self-host the Inter variable font through @fontsource-variable/inter
rather than a CDN, so the v2 type scale renders in Inter with no
third-party request. Import it from the theme and point --font-sans
at the "Inter Variable" family the package registers.

Add --font-mono as a Radix-style system stack: the design specifies
Menlo, an Apple system font that cannot be self-hosted, so it falls
back per OS (Consolas, Liberation Mono, Monaco, monospace).

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-18 11:44:13 +02:00
Émile Ré
5a5c853346 Add v2 color theme with Radix 12-step scales
Introduce a new v2 theme system in packages/ui/src/v2/ using
@radix-ui/colors for sand, gold, red, green, amber, and sky scales.
Colors are imported from the library (with P3 wide-gamut support),
mapped to Tailwind via @theme inline, and scoped under
[data-theme="v2"] for isolation from the existing v1 theme. Dark mode
activates via the .dark class on <html>.

Includes contributor docs (contrib/claude/v2-colors.md) and a Cursor
rule (.cursor/rules/v2-color-scale.mdc) for the color system.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-18 11:44:13 +02:00
Sacha Al Himdani
127b78cace Migrate emails to the unified react-email package
Replace the deprecated @react-email/components dependency (and its
deprecated sub-packages) with the unified react-email package per the
React Email 6 migration, updating all component and render imports across
the email templates from "@react-email/components" to "react-email".

This removes the npm deprecation warnings emitted by the old
@react-email/* packages while keeping the template build output
unchanged.

Signed-off-by: Sacha Al Himdani <sacha@probo.com>
2026-06-17 17:41:46 +02:00
dependabot[bot]
3b7d076e9d Bump dompurify from 3.4.0 to 3.4.10
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.0 to 3.4.10.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.0...3.4.10)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.10
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 15:47:52 +02:00
dependabot[bot]
bbce8cd4f4 Bump markdown-it from 14.1.1 to 14.2.0
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 14.1.1 to 14.2.0.
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/14.1.1...14.2.0)

---
updated-dependencies:
- dependency-name: markdown-it
  dependency-version: 14.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 15:37:17 +02:00
dependabot[bot]
695e2d1118 Bump protobufjs from 7.6.1 to 7.6.4
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.6.1 to 7.6.4.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.6.4/CHANGELOG.md)
- [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.6.1...protobufjs-v7.6.4)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.6.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 15:24:27 +02:00
dependabot[bot]
853f2404a6 Bump esbuild from 0.27.7 to 0.28.1
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.27.7 to 0.28.1.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.7...v0.28.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 13:37:43 +02:00
Émile Ré
c79191f972 Update @vitest/* direct dependencies to exact 4.1.8 versions in sync with locked vitest version
Signed-off-by: Émile Ré <emile@probo.com>
2026-06-15 15:13:05 +02:00
Émile Ré
2fd3a4acfb Release @probo/cookie-banner/v0.9.3
Signed-off-by: Émile Ré <emile@probo.com>
2026-06-12 19:04:35 +02:00
Ludovic Vielle
f713a8b1cb Release @probo/cookie-banner/v0.9.2
Signed-off-by: Ludovic Vielle <ludovic@probo.com>
2026-06-11 16:27:38 +02:00
Ludovic Vielle
452a7625a7 Release @probo/n8n-nodes-probo/v0.194.0
Signed-off-by: Ludovic Vielle <ludovic@probo.com>
2026-06-11 16:25:03 +02:00
Émile Ré
c3936a7173 Release @probo/cookie-banner/v0.9.1
Signed-off-by: Émile Ré <emile@probo.com>
2026-06-10 18:52:38 +02:00
Émile Ré
32408fe535 Release @probo/n8n-nodes-probo/v0.193.0
Signed-off-by: Émile Ré <emile@probo.com>
2026-06-10 18:51:52 +02:00
Émile Ré
0e4e63702c Release @probo/n8n-nodes-probo/v0.192.0
Signed-off-by: Émile Ré <emile@probo.com>
2026-06-09 18:05:55 +02:00
dependabot[bot]
3d1f089685 Bump react-router from 7.14.1 to 7.17.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.14.1 to 7.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.17.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.17.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-08 12:03:34 +02:00
Bryan Frimin
45e1797893 Release @probo/cookie-banner/v0.9.0
Signed-off-by: Bryan Frimin <bryan@probo.com>
2026-06-05 16:38:32 +02:00
Sacha Al Himdani
21abcc619e Override uuid to ^14.0.0 to resolve @n8n/node-cli conflicts
@n8n/node-cli pulls LangChain and n8n-workflow packages that require
incompatible uuid versions (^10, ^11, ^13). Force uuid 14.0.0 via npm
overrides and refresh the lockfile so audit can apply the security fix.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-06-05 15:06:05 +02:00
Ludovic Vielle
ab05e501ac Release @probo/cookie-banner/v0.8.0 2026-06-03 14:48:48 +02:00
Émile Ré
8fee43d4dd Release @probo/n8n-nodes-probo/v0.191.0
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-06-02 12:47:41 +02:00
dependabot[bot]
1a71d15bc5 Bump vitest from 3.2.4 to 4.1.8
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.2.4 to 4.1.8.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.1.8
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-06-02 09:17:46 +02:00
dependabot[bot]
a7932d9662 Bump @vitest/browser from 4.0.18 to 4.1.6
Bumps [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser) from 4.0.18 to 4.1.6.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.6/packages/browser)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 4.1.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-01 17:03:44 +02:00
Bryan Frimin
0e1102e4c4 Release @probo/n8n-nodes-probo/v0.190.0
Signed-off-by: Bryan Frimin <bryan@probo.com>
2026-05-28 14:10:08 -07:00
dependabot[bot]
361fc0f7bc Bump tmp from 0.2.5 to 0.2.7
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.5 to 0.2.7.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.5...v0.2.7)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-28 14:02:15 +02:00
Bryan Frimin
1a397b13bc Release @probo/cookie-banner/v0.7.0
Signed-off-by: Bryan Frimin <bryan@probo.com>
2026-05-27 18:20:56 -07:00
Bryan Frimin
f40fae63b3 Release @probo/n8n-nodes-probo/v0.189.0
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-05-27 13:48:17 -07:00
Émile Ré
a447c62e19 Wire PostHog into the cookie-banner React example
Add a deferred PostHog wiring under examples/cookie-banner-react that
boots posthog.init() inside the probo-ready handler and derives
cookieless_mode and opt_out_capturing_by_default from the consent
snapshot for the category flagged with posthog_consent.

Driving the init args off the snapshot rather than consent_mode plugs
two cases the simpler "consent_mode alone" rule got wrong:

  * OPT_OUT regulation, returning rejector: init would have booted in
    on_reject + capture-on, fired a $pageview synchronously, and only
    then called opt_out_capturing(). That single captured pageview
    (and the posthog cookie) leaked on every page load.
  * OPT_IN regulation, returning acceptor: init would have forced
    "always" + opt-out, costing the visitor cookies and a one-tick
    capture delay even though they had already consented.

The snapshot already encodes the regulation default
(buildDefaultConsentData on the cookie-banner client returns true for
non-necessary categories under OPT_OUT and false under OPT_IN) and any
persisted answer from a prior visit, so a single boolean drives both
init args.

Re-export the public domain types (BannerConfig, Category, Regulation,
ConsentAction, ConsentRecord, CookieItem, VisitorConsent) from
@probo/cookie-banner so the example can type the probo-ready event
detail without duck-typing it.

Adopt the PUBLIC_ env prefix in Vite so the example reads the same env
var names (PUBLIC_COOKIE_BANNER_ID, PUBLIC_COOKIE_BANNER_API_BASE_URL,
PUBLIC_POSTHOG_API_KEY) already used on getprobo.com, and add a
matching .env.example.

Ignore *.tsbuildinfo at the repo root; TypeScript's incremental cache
is machine-local and does not belong in the tree.

Signed-off-by: Émile Ré <emile@probo.com>
2026-05-27 13:06:02 +02:00
Sacha Al Himdani
82b531718e Release @probo/cookie-banner/v0.6.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-05-26 18:38:07 +02:00
Sacha Al Himdani
d8f0cf558b Release @probo/n8n-nodes-probo/v0.188.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-05-26 18:34:07 +02:00
Bryan Frimin
46cc1e11ea Release @probo/n8n-nodes-probo/v0.187.1
Signed-off-by: Bryan Frimin <bryan@probo.com>
2026-05-25 17:07:13 -07:00
Émile Ré
63e8c85f66 Release @probo/n8n-nodes-probo/v0.187.0
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-05-22 13:58:43 +02:00
dependabot[bot]
bfe2463bdd Bump turbo from 2.9.6 to 2.9.14
Bumps [turbo](https://github.com/vercel/turborepo) from 2.9.6 to 2.9.14.
- [Release notes](https://github.com/vercel/turborepo/releases)
- [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md)
- [Commits](https://github.com/vercel/turborepo/compare/v2.9.6...v2.9.14)

---
updated-dependencies:
- dependency-name: turbo
  dependency-version: 2.9.14
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 12:57:30 +00:00