main
11 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5c9c9e3888 |
Fix npm audit findings in postcss and react-router
Bump postcss to 8.5.23 and react-router to 8.3.0 to clear their high-severity advisories. Leave nested brace-expansion issues for a follow-up that won't break older minimatch consumers. Signed-off-by: Sacha Al Himdani <sacha@probo.com> |
||
|
|
a7ff5f07bc |
Add react i18next to console
Signed-off-by: Jonathan <contact@grafikart.fr> |
||
|
|
26595b724f |
Serve compliance-portal instead of trust
Embed and build @probo/compliance-portal for the /trust path and custom-domain SPA so production ships the v2 portal. Keep apps/trust in the repo for local use on port 5175; portal takes 5174. Signed-off-by: Émile Ré <emile@probo.com> |
||
|
|
6054c92899 |
Add document viewer to the compliance portal
Add a full-page viewer at /documents/:alias that resolves the aliased node, exports its watermarked bytes, and renders them: PDFs via react-pdf with page navigation and zoom, images inline, and a download fallback for other file types. Unauthorized visitors see a locked state. Wire the documents list "View" action to link into the viewer (fragments now select alias) and drop the previous open-in-new-tab helpers, since the viewer owns the export. Bound MainLayout to the viewport so the top bar and footer stay fixed and the page area scrolls on its own; the viewer then keeps its toolbar fixed while the PDF body scrolls, matching the design. Add the react-pdf dependency with the pdf.js worker bundled via Vite (for CSP safety) and a headless v2 Separator kit component for the toolbar. Signed-off-by: Émile Ré <emile@probo.com> |
||
|
|
dcf3221bb9 |
Bump the npm-dependencies group with 28 updates
Bumps the npm-dependencies group with 28 updates: | Package | From | To | | --- | --- | --- | | [eslint](https://github.com/eslint/eslint) | `9.39.4` | `10.6.0` | | [turbo](https://github.com/vercel/turborepo) | `2.10.0` | `2.10.2` | | [i18next](https://github.com/i18next/i18next) | `26.3.3` | `26.3.4` | | [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `8.0.1` | `8.1.0` | | [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.29.7` | `8.0.1` | | [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.3.1` | `4.3.2` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.13.2` | `26.1.0` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.3.1` | `4.3.2` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.0` | `8.1.2` | | [react-dropzone](https://github.com/react-dropzone/react-dropzone) | `14.4.1` | `15.0.0` | | [zod](https://github.com/colinhacks/zod) | `3.25.76` | `4.4.3` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.62.0` | `8.62.1` | | [@n8n/node-cli](https://github.com/n8n-io/n8n) | `0.37.1` | `0.37.2` | | [marked](https://github.com/markedjs/marked) | `15.0.12` | `18.0.5` | | [@ariakit/react](https://github.com/ariakit/ariakit/tree/HEAD/packages/ariakit-react) | `0.4.30` | `0.4.31` | | [@radix-ui/react-alert-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/alert-dialog) | `1.1.17` | `1.1.18` | | [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.18` | `2.1.19` | | [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.10` | `2.1.11` | | [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.17` | `1.1.18` | | [@radix-ui/react-portal](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/portal) | `1.1.12` | `1.1.13` | | [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.12` | `1.2.13` | | [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.3.1` | `2.3.2` | | [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.15` | `1.1.16` | | [react-intersection-observer](https://github.com/thebuilder/react-intersection-observer) | `9.16.0` | `10.0.3` | | [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser) | `4.1.8` | `4.1.9` | | [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.8` | `4.1.9` | | [react-docgen](https://github.com/reactjs/react-docgen/tree/HEAD/packages/react-docgen) | `7.1.1` | `8.0.3` | | [posthog-js](https://github.com/PostHog/posthog-js) | `1.396.1` | `1.396.4` | Updates `eslint` from 9.39.4 to 10.6.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v9.39.4...v10.6.0) Updates `turbo` from 2.10.0 to 2.10.2 - [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.10.0...v2.10.2) Updates `i18next` from 26.3.3 to 26.3.4 - [Release notes](https://github.com/i18next/i18next/releases) - [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next/compare/v26.3.3...v26.3.4) Updates `react-router` from 8.0.1 to 8.1.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@8.1.0/packages/react-router) Updates `@babel/core` from 7.29.7 to 8.0.1 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v8.0.1/packages/babel-core) Updates `@tailwindcss/vite` from 4.3.1 to 4.3.2 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/@tailwindcss-vite) Updates `@types/node` from 24.13.2 to 26.1.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `tailwindcss` from 4.3.1 to 4.3.2 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.2/packages/tailwindcss) Updates `vite` from 8.1.0 to 8.1.2 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.1.2/packages/vite) Updates `react-dropzone` from 14.4.1 to 15.0.0 - [Release notes](https://github.com/react-dropzone/react-dropzone/releases) - [Commits](https://github.com/react-dropzone/react-dropzone/compare/v14.4.1...v15.0.0) Updates `zod` from 3.25.76 to 4.4.3 - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](https://github.com/colinhacks/zod/compare/v3.25.76...v4.4.3) Updates `typescript-eslint` from 8.62.0 to 8.62.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/typescript-eslint) Updates `@n8n/node-cli` from 0.37.1 to 0.37.2 - [Release notes](https://github.com/n8n-io/n8n/releases) - [Commits](https://github.com/n8n-io/n8n/commits) Updates `marked` from 15.0.12 to 18.0.5 - [Release notes](https://github.com/markedjs/marked/releases) - [Commits](https://github.com/markedjs/marked/compare/v15.0.12...v18.0.5) Updates `@ariakit/react` from 0.4.30 to 0.4.31 - [Release notes](https://github.com/ariakit/ariakit/releases) - [Changelog](https://github.com/ariakit/ariakit/blob/main/packages/ariakit-react/CHANGELOG.md) - [Commits](https://github.com/ariakit/ariakit/commits/@ariakit/react@0.4.31/packages/ariakit-react) Updates `@radix-ui/react-alert-dialog` from 1.1.17 to 1.1.18 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/alert-dialog/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/alert-dialog) Updates `@radix-ui/react-dropdown-menu` from 2.1.18 to 2.1.19 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu) Updates `@radix-ui/react-label` from 2.1.10 to 2.1.11 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label) Updates `@radix-ui/react-popover` from 1.1.17 to 1.1.18 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover) Updates `@radix-ui/react-portal` from 1.1.12 to 1.1.13 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/portal/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/portal) Updates `@radix-ui/react-scroll-area` from 1.2.12 to 1.2.13 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area) Updates `@radix-ui/react-select` from 2.3.1 to 2.3.2 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select) Updates `@radix-ui/react-tabs` from 1.1.15 to 1.1.16 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tabs) Updates `react-intersection-observer` from 9.16.0 to 10.0.3 - [Release notes](https://github.com/thebuilder/react-intersection-observer/releases) - [Commits](https://github.com/thebuilder/react-intersection-observer/compare/v9.16.0...v10.0.3) Updates `@vitest/browser` from 4.1.8 to 4.1.9 - [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.9/packages/browser) Updates `@vitest/coverage-v8` from 4.1.8 to 4.1.9 - [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.9/packages/coverage-v8) Updates `react-docgen` from 7.1.1 to 8.0.3 - [Release notes](https://github.com/reactjs/react-docgen/releases) - [Changelog](https://github.com/reactjs/react-docgen/blob/main/packages/react-docgen/CHANGELOG.md) - [Commits](https://github.com/reactjs/react-docgen/commits/react-docgen@8.0.3/packages/react-docgen) Updates `posthog-js` from 1.396.1 to 1.396.4 - [Release notes](https://github.com/PostHog/posthog-js/releases) - [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.396.1...posthog-js@1.396.4) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.6.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: turbo dependency-version: 2.10.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: i18next dependency-version: 26.3.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: react-router dependency-version: 8.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-dependencies - dependency-name: "@babel/core" dependency-version: 8.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: "@tailwindcss/vite" dependency-version: 4.3.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@types/node" dependency-version: 26.1.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: tailwindcss dependency-version: 4.3.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: vite dependency-version: 8.1.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: react-dropzone dependency-version: 15.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: zod dependency-version: 4.4.3 dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: typescript-eslint dependency-version: 8.62.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@n8n/node-cli" dependency-version: 0.37.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: marked dependency-version: 18.0.5 dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: "@ariakit/react" dependency-version: 0.4.31 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-alert-dialog" dependency-version: 1.1.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-dropdown-menu" dependency-version: 2.1.19 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-label" dependency-version: 2.1.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-popover" dependency-version: 1.1.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-portal" dependency-version: 1.1.13 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-scroll-area" dependency-version: 1.2.13 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-select" dependency-version: 2.3.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@radix-ui/react-tabs" dependency-version: 1.1.16 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: react-intersection-observer dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: "@vitest/browser" dependency-version: 4.1.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: "@vitest/coverage-v8" dependency-version: 4.1.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: react-docgen dependency-version: 8.0.3 dependency-type: direct:development update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: posthog-js dependency-version: 1.396.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Sacha Al Himdani <sacha@probo.com> |
||
|
|
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>
|
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
5bc6452eb6 |
Scaffold compliance-portal frontend app
Add the root configuration files for apps/compliance-portal, the refactor of the legacy trust center SPA. The scaffold mirrors the existing trust app (Vite, Tailwind, Relay, TypeScript project references, ESLint) and targets the trust v1 GraphQL schema, which the compliancepage backend already serves under /api/trust/v1. Wire the app into the root relay.config.json with a dedicated complianceportal project so the Relay compiler emits artifacts for its sources. External dependencies are pinned to current latest versions rather than matching the older majors used by the other apps. Signed-off-by: Émile Ré <emile@probo.com> |