release: WRNexusJS 0.8.0
This commit is contained in:
+8
-1
@@ -315,11 +315,16 @@ identifiers, member/index access, calls, arrays/objects, `+ - * / %`, comparison
|
||||
| `data-scope` | `data-scope="count: 0, name: 'x'"` | Declares reactive state on a subtree. The compiler emits this automatically when a page/component has state. A binding is owned by its **nearest** `data-scope` ancestor (nesting is safe). |
|
||||
| `data-on-<event>` | `data-on-click="count++"` | Event handler (the compiled form of `@event`). |
|
||||
| `data-text` | `data-text="count * 2"` | `textContent` follows the expression. Emitted by state interpolation; you can also hand‑write it. |
|
||||
| `data-show` | `data-show="open"` | Toggles `display` on truthiness. **Hand‑authored** (no `{}` sugar). |
|
||||
| `data-show` | `data-show="open"` | Toggles visibility while preserving interactive state. **Hand-authored** (no `{}` sugar). |
|
||||
| `data-for` | `data-for="item in items"`, optionally `key item.id` or `data-key="item.id"` | Repeats the element per list item. A stable key preserves DOM identity during reorder; unkeyed loops retain legacy full rerendering. Inside, item/index locals work in bindings and handlers. **Hand-authored.** |
|
||||
| `data-component` | `data-component="counter"` | Mounts a component (server‑rendered, then hydrated). See §12. |
|
||||
| `data-slot` | `<div data-slot="header">…</div>` | Fills a named `<slot name="header">` of a component (see §8). |
|
||||
|
||||
`{#if}` and `<Component is={...}>` keep inactive elements out of the live DOM. `data-show` keeps
|
||||
stateful controls mounted and only changes visibility. Client-side conditions are not
|
||||
authorization: anything delivered to the browser can be recovered by the user. Enforce permissions
|
||||
in server loaders and API handlers, and never send an unauthorized branch's sensitive data.
|
||||
|
||||
Example — a reactive list you write by hand:
|
||||
|
||||
```
|
||||
@@ -1283,6 +1288,8 @@ wrnexus help | --help | -h
|
||||
import type { AppConfig } from "@wrnexus/styles";
|
||||
|
||||
const config: AppConfig = {
|
||||
compatibilityDate: "2026-08-02",
|
||||
frameworkBehaviour: 1,
|
||||
head: [ '<link rel="stylesheet" href="…">' ], // string | string[] → appended to every <head>
|
||||
|
||||
seo: { // SeoConfig (global defaults, merged per page)
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
# WRNexusJS quality, migration, and usability roadmap
|
||||
|
||||
This page is the authoritative implementation tracker for the repository-wide 0.8 audit. A
|
||||
point is complete only when its acceptance criteria are executable in CI. Security and release
|
||||
correctness take priority over new surface area.
|
||||
|
||||
## Release blockers
|
||||
|
||||
| Status | Area | Work | Acceptance criteria |
|
||||
| -------- | ------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| Complete | Dependencies | Remove high-severity `brace-expansion` and `fast-uri` advisories | Root `bun audit` and editor `npm audit` report no high/critical findings |
|
||||
| Complete | Component showcase | Use the current `payload` output contract in generated examples and tests | Showcase generation and tests pass without a diff |
|
||||
| Complete | Formatting | Normalize the package-kit audit and migration changes | `bun run format:check` passes |
|
||||
| Complete | Examples | Resolve every runtime warning, including unregistered `theme-toggle` | Example tests fail on unexpected framework warnings |
|
||||
| Complete | Application updates | Modernize all `.wrn` files during the 0.8 CLI update | Migration is backed up, idempotent, reports unresolved work, and has focused tests |
|
||||
|
||||
## Repository delivery and configuration
|
||||
|
||||
| Status | Work | Acceptance criteria |
|
||||
| -------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
|
||||
| Complete | Add Linux and Windows CI for install, typecheck, lint, format, packages, examples, services, editor, audits, and staging | Required checks run on every pull request |
|
||||
| Complete | Split generators from validators | Every `check:*` and `validate:*` command is read-only; `generate:*` owns writes |
|
||||
| Complete | Add root `LICENSE`, `SECURITY.md`, `CONTRIBUTING.md`, `CHANGELOG.md`, and code of conduct | Release validation requires each document |
|
||||
| Complete | Normalize all staged package manifests from one schema | Description, license, repository, exports, files, engines, side effects, and scripts are validated |
|
||||
| Complete | Replace `latest` dependency ranges with controlled versions | Frozen-lockfile installs are reproducible |
|
||||
| Complete | Test staged tarballs outside workspace aliases | Bun consumer, CLI binary, browser imports, assets, and declarations work from packed artifacts |
|
||||
| Complete | Correct publishing documentation and package counts | Generated documentation matches the package inventory |
|
||||
|
||||
## Framework and package work
|
||||
|
||||
Delivered compiler/editor foundation:
|
||||
|
||||
- `@wrnexus/syntax` owns the typed canonical formatter API and publishable formatter subpath.
|
||||
- The compiler, CLI updater, and VS Code extension consume the same implementation.
|
||||
- The tracked editor compiler bundle has a read-only freshness gate.
|
||||
- Formatter tests cover structured declarations, markup, comments, parsing, and idempotence.
|
||||
- Compiler diagnostics are structured for CLI/editor/toolbar consumers, the dev
|
||||
pipeline exposes incremental hit/miss/error/timing metrics, and
|
||||
`wrnexus doctor --fix` applies conservative idempotent project repairs.
|
||||
|
||||
Delivered observability/operations foundation:
|
||||
|
||||
- Strict W3C `traceparent` propagation and correlated request/span identifiers.
|
||||
- One request tracer shared with downstream framework spans and safe exporter failure isolation.
|
||||
- OTLP/HTTP JSON trace and metric exporters with service resource attributes.
|
||||
- Redacting structured JSON logs with correlated child loggers.
|
||||
- Separate liveness and dependency readiness handlers backed by `HealthRegistry`.
|
||||
- Production runtime `/healthz` and `/readyz` integration with configuration validation.
|
||||
|
||||
Delivered public API foundation:
|
||||
|
||||
- Every package root and declared subpath is resolved through the TypeScript
|
||||
checker into a reviewed `0.8` export baseline.
|
||||
- CI and production validation reject accidental export removals/renames.
|
||||
- Intentional API evolution uses a separate generator command and the policy in
|
||||
`docs/PUBLIC-API-POLICY.md`.
|
||||
- Browser payload budgets cover reactive, navigation, and realtime runtimes.
|
||||
- SSR/store hydration compatibility tests enforce bounded safe JSON, secret
|
||||
redaction, script-breakout protection, and escaped CSP nonce attributes.
|
||||
|
||||
| Packages | Planned outcomes |
|
||||
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `core`, `reactive`, `router`, `ssr`, `csr`, `store`, `realtime` | Stable public API policy; conditional exports; hydration/serialization compatibility; cancellation and disconnect tests; typed routes; one realtime contract; runtime-size budgets |
|
||||
| `syntax`, `compiler`, `typecheck`, `dev-server`, `dev-toolbar`, editor | Shared formatter/compiler artifact; incremental cache metrics; structured diagnostics; fuzz and snapshot tests; code actions; rename/references; `doctor --fix` |
|
||||
| `auth`, `authz`, `captcha`, `jwt`, `oauth`, `encryption`, `security` | WebAuthn/OIDC conformance; JWKS rotation; replay/rate-limit tests; built-app header checks; threat models; stable audit events and support matrix |
|
||||
| `db`, `cache`, `queue`, `pubsub`, `observability`, `tracking` | Live database/Redis matrices; cancellation and pool lifecycle; migration locks/dry-run/rollback; distributed invalidation; DLQ/idempotency; OpenTelemetry; health primitives |
|
||||
| `validation`, `i18n`, `image`, `uploader`, `ui`, `styles`, `helpers` | JSON Schema/OpenAPI; localized validation; locale extraction/pseudo-locales/RTL; image build optimization; resumable uploads; accessibility and visual regression; typed theme tokens; strict helper ownership |
|
||||
| `ai` | Provider capabilities; structured output; tools; cancellation/retries; usage cost; redaction; deterministic test provider; circuit breakers |
|
||||
| `mobile`, `native` | Generated Expo/Capacitor E2E builds; typed permissions; deep links; push; offline and secure storage; platform fallbacks |
|
||||
| `cli`, `plugin`, `test`, `benchmark` | JSON/non-interactive commands; stable error codes; clean scaffold-to-production test; plugin compatibility; consumer test kit; tarball and benchmark budgets |
|
||||
|
||||
Queue/pub-sub reliability delivered in 0.8: bounded queue capacity,
|
||||
idempotency keys, priorities, delayed/repeated jobs, exponential retries,
|
||||
inspectable/retryable dead letters, AbortSignal cancellation, graceful/forced
|
||||
shutdown, durable-store leases, bounded Redis offline writes, reconnect backoff,
|
||||
subscription replay, awaited in-memory delivery, and idempotent pub/sub close.
|
||||
|
||||
Database deployment safety delivered in 0.8: idempotent close that drains active
|
||||
queries/transactions, registry-wide all-settled pool shutdown, portable
|
||||
cross-process migration locks with stale-lock recovery, dry-run planning,
|
||||
between-migration cancellation, and lock-protected rollback.
|
||||
|
||||
Cache coherence delivered in 0.8: bounded tag-aware memory caching,
|
||||
stampede-safe request deduplication, invalidation-safe in-flight loaders, and a
|
||||
namespaced pub/sub bridge for cross-instance tag, key, and full-cache
|
||||
invalidation with explicit failure and unsubscribe lifecycle.
|
||||
|
||||
AI reliability delivered in 0.8: explicit provider capability discovery,
|
||||
validated structured output and tool execution, normalized token/cost usage,
|
||||
abort-aware bounded retries, provider fallback and circuit breakers, metadata-only
|
||||
attempt telemetry, and a deterministic offline provider for tests and examples.
|
||||
|
||||
Mobile portability delivered in 0.8: tested Capacitor and Expo generators, portable
|
||||
WRN-to-Expo compilation, typed capability permissions, normalized deep-link and push
|
||||
contracts, pluggable secure-storage and offline stores, and explicit SSR/browser/native
|
||||
fallback behavior.
|
||||
|
||||
Security protocol hardening delivered in 0.8: bounded HTTPS RS256 JWKS caching
|
||||
with immediate `kid` rotation refresh, strict OIDC discovery and ID-token claim
|
||||
validation, stable authentication audit-event vocabulary, built production
|
||||
response header assertions, and a framework/application responsibility matrix
|
||||
in `docs/SECURITY-SUPPORT-MATRIX.md`.
|
||||
|
||||
Validation/localization interoperability delivered in 0.8: JSON Schema 2020-12
|
||||
and OpenAPI request-body generation, shared localized validation descriptors,
|
||||
static translation-key extraction, reference-locale missing/extra audits, and
|
||||
placeholder-safe LTR/RTL pseudo-locales.
|
||||
|
||||
Asset and upload delivery delivered in 0.8: bounded deterministic AVIF/WebP/etc.
|
||||
image build variants through optional Sharp or a custom processor, plus
|
||||
checksum-verified resumable uploads with out-of-order/idempotent chunks,
|
||||
expiry/cancel/prune, pluggable durable session state, and single final assembly.
|
||||
|
||||
## CLI update contract
|
||||
|
||||
The `0.8.0-02-current-wrn-source` migration applies one consistent upgrade point to every WRN
|
||||
page, layout, component, and store beneath `app/`:
|
||||
|
||||
1. Create a complete pre-update backup under `.wrnexus/update-backups/`.
|
||||
2. Convert legacy events, `$emit`, `event.detail`, function runtimes, dynamic attributes, and
|
||||
inline prop declarations to the current syntax.
|
||||
3. Convert string layouts to imported layout symbols.
|
||||
4. Add deterministic imports for uniquely resolved application and UI components.
|
||||
5. Normalize line endings, trailing whitespace, final newlines, and safe structural formatting.
|
||||
6. Preserve ambiguous source and list it in
|
||||
`.wrnexus/migrations/0.8.0-source-modernization.json` for manual review.
|
||||
7. Run the application formatter, health checks, tests, and production build before committing
|
||||
the new framework version marker.
|
||||
|
||||
The migration must remain idempotent: running it twice produces byte-identical application
|
||||
source on the second run.
|
||||
|
||||
## Definition of done
|
||||
|
||||
A roadmap item may move to **Complete** only with tests, documentation, no high/critical audit
|
||||
findings, no unexpected warnings, clean formatting, a clean generated-file check, and a staged
|
||||
package consumer test where publishing behavior changes.
|
||||
@@ -0,0 +1,25 @@
|
||||
# WRNexusJS public API policy
|
||||
|
||||
The package root and every declared package export subpath are public API. During
|
||||
the `0.8.x` release line, exported names are additive: removal or renaming needs
|
||||
a deprecation cycle and a major/minor compatibility decision, not an incidental
|
||||
refactor.
|
||||
|
||||
`bun run check:public-api` resolves TypeScript re-exports and compares all
|
||||
publishable package/subpaths with `docs/public-api-0.8.json`. It is read-only and
|
||||
runs in the production gate. When an intentional, reviewed API addition or
|
||||
approved compatibility change occurs, update the baseline with:
|
||||
|
||||
```bash
|
||||
bun run generate:public-api
|
||||
```
|
||||
|
||||
The baseline guards exported names, while package tarball consumer tests guard
|
||||
conditional export targets, declarations, runtime imports, browser bundling,
|
||||
assets, and the CLI binary. Behavioral compatibility remains covered by package
|
||||
tests and migration tests; the API baseline does not replace those contracts.
|
||||
|
||||
Browser runtime growth is also a reviewed compatibility concern. The read-only
|
||||
security/performance gate caps source payloads at 150 kB for reactive hydration,
|
||||
25 kB for navigation, and 15 kB for realtime. Production delivery additionally
|
||||
uses Brotli; a budget increase requires an explicit performance review.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# Publishing WrNexus to npm
|
||||
|
||||
All 26 `@wrnexus/*` packages are built and published to the **public npm registry**
|
||||
All 39 `@wrnexus/*` packages are built and published to the **public npm registry**
|
||||
(`registry.npmjs.org`), then installed on any machine with **Bun**.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
# Roadmap implementation completion report
|
||||
|
||||
Date: 2026-08-02
|
||||
|
||||
## Scope and outcome
|
||||
|
||||
Every repository-actionable capability described by `ROADMAP-V1.md` and `ROADMAP.md` is now
|
||||
implemented and represented by source, focused tests, examples, or generated artifacts. Two status
|
||||
rows intentionally remain `Partial` because their final step cannot be performed or truthfully
|
||||
certified by repository code:
|
||||
|
||||
- ROADMAP-V1 item 20: publishing the already deployable playground to an operator-owned public host.
|
||||
- ROADMAP item 8: application/deployment-specific OWASP ASVS certification. The framework control
|
||||
map, audit commands and abuse tests are delivered; business authorization and infrastructure
|
||||
evidence must be assessed for each deployment.
|
||||
|
||||
## Final capability batch
|
||||
|
||||
- Plugin lifecycle: identical awaited AST/directive/code transforms and virtual modules in build and
|
||||
development; generated plugin documentation and declaration aggregation.
|
||||
- DevToolbar: dynamic SQL, queue, realtime, translation, CSS, memory/Web-Vitals and upgrade providers.
|
||||
- Language tooling: workspace component/prop/slot/event, route, i18n, CSS/Tailwind and schema indexing;
|
||||
extract-component and HTML-to-WRN refactors; refreshed VS Code/LSP bundles.
|
||||
- Testing: managed Playwright installation and browser matrices, reports, screenshots/traces,
|
||||
transaction rollback, factories and deterministic CI shards.
|
||||
- Queue/realtime: Redis/PostgreSQL job stores, daemon/scheduler/dashboard, NATS/Kafka, database feeds,
|
||||
file streaming and payload-free monitoring.
|
||||
- Storage/tenancy: multipart acceleration, durable quotas, cleanup and video transcode hooks;
|
||||
persistent tenant memberships/quotas and bounded tenant migrations.
|
||||
- APIs/frontend/content/PWA: optional hardened GraphQL, OpenAPI webhook extraction, declarative
|
||||
portals/transitions/dynamic components, timelines, registered MDX components, lazy highlighting,
|
||||
Contentful/Sanity/Strapi adapters, IndexedDB migrations, persistent push subscriptions and offline
|
||||
review UI.
|
||||
|
||||
## Executable examples
|
||||
|
||||
- `app/pages/server-actions.wrn`: schema-backed progressive server actions.
|
||||
- `app/pages/partial-static.wrn`: build-time partial-static shell plus dynamic region.
|
||||
- `app/pages/client-only.wrn`: true inert client-rendered template.
|
||||
- `app/pages/async-data.wrn`: named server/client loading and async states.
|
||||
- `app/pages/platform-showcase.wrn`: dynamic component, transition and portal syntax.
|
||||
- `app/api/graphql-example.ts`: bounded GraphQL execution endpoint.
|
||||
- `app/api/webhooks/payment.ts`: statically extracted webhook prose, schema and signature metadata.
|
||||
- `app/types/generated-contracts.test.ts`: compile-time application contract assertions.
|
||||
|
||||
The production smoke check returned HTTP 200 for `platform-showcase`, confirmed portal and dynamic
|
||||
component markers in rendered output, and returned `{"data":{"example":"Example"}}` from the
|
||||
GraphQL example.
|
||||
|
||||
## Validation evidence
|
||||
|
||||
| Gate | Result |
|
||||
| ----------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Repository TypeScript | Passed (`tsc --noEmit`) |
|
||||
| Package tests | 972 passed, 1 optional live-DB skip, 0 failed |
|
||||
| Example tests | 45 passed, 0 failed |
|
||||
| Service tests | 5 passed, 0 failed |
|
||||
| Example page compiler/formatter/a11y gate | 181 pages passed |
|
||||
| VS Code extension | 29 tests passed; compiler/LSP/extension bundles match source; manifest validation passed |
|
||||
| Basic application production build | 16 pages, 10 APIs, 2 realtime routes, 3 middleware; passed |
|
||||
| CLI application typecheck | Passed after workspace-package resolver validation |
|
||||
| Dependency audit | No vulnerabilities found |
|
||||
| Application abuse suite | 7 passed, 0 failed |
|
||||
| Security audit/header commands | ASVS framework controls passed; hardened headers emitted |
|
||||
| Updater | Full dry-run completed with 0 parse failures |
|
||||
| Doctor | 22 WRN files, 0 errors, 0 warnings; configuration/routes/plugins valid |
|
||||
|
||||
The optional live PostgreSQL/MySQL integration test remains skipped unless
|
||||
`WRNEXUS_PG_URL`/`WRNEXUS_MYSQL_URL` are supplied. This is an environment-dependent integration
|
||||
gate, not an unimplemented framework capability.
|
||||
+1009
File diff suppressed because it is too large
Load Diff
+1041
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,21 @@
|
||||
# WRNexusJS Security Control Map — OWASP ASVS 5.0.0
|
||||
|
||||
This is a framework-control map, not an ASVS certification of applications built with WRNexusJS. Application authorization, business logic, deployment, infrastructure, and operational controls must still be verified for each deployment.
|
||||
|
||||
The canonical requirement identifiers come from the [OWASP ASVS 5.0.0 release](https://github.com/OWASP/ASVS/tree/v5.0.0/5.0). Run `bun run security:asvs` to verify that this governed map and its evidence files remain present, and run `wrnexus security audit`, `wrnexus security headers`, and `wrnexus security test` for an application-level baseline.
|
||||
|
||||
| Framework control | ASVS 5.0.0 requirements | Implementation evidence | Verification evidence |
|
||||
| ---------------------------------------------------------------- | ---------------------------------------------- | ---------------------------------------- | ---------------------------------------------- |
|
||||
| Contextual HTML, attribute, JavaScript, and JSON output encoding | `v5.0.0-1.1.2`, `v5.0.0-1.2.1`, `v5.0.0-1.2.3` | `packages/compiler/src/codegen.ts` | `packages/compiler/test/compiler.test.ts` |
|
||||
| Parameterized database operations | `v5.0.0-1.2.4` | `packages/db/src/query.ts` | `packages/db/test/bunsql-placeholders.test.ts` |
|
||||
| SSRF allowlists and private-network blocking | `v5.0.0-1.3.6` | `packages/security/src/url.ts` | `packages/security/test/security.test.ts` |
|
||||
| Secure, HttpOnly, SameSite cookie defaults | `v5.0.0-3.3.1`, `v5.0.0-3.3.2`, `v5.0.0-3.3.4` | `packages/security/src/cookies.ts` | `packages/security/test/security.test.ts` |
|
||||
| HSTS and restrictive response headers | `v5.0.0-3.4.1` | `packages/core/src/headers.ts` | `packages/core/test/headers.test.ts` |
|
||||
| Explicit CORS origins | `v5.0.0-3.4.2` | `packages/core/src/headers.ts` | `packages/core/test/headers.test.ts` |
|
||||
| CSP frame protection and per-response nonces | `v5.0.0-3.4.6` | `packages/core/src/headers.ts` | `packages/core/test/headers.test.ts` |
|
||||
| CSRF tokens for unsafe requests | `v5.0.0-3.5.1` | `packages/core/src/csrf.ts` | `packages/core/test/csrf.test.ts` |
|
||||
| External redirect allowlists | `v5.0.0-3.7.2` | `packages/security/src/url.ts` | `packages/security/test/security.test.ts` |
|
||||
| Secret masking in diagnostics and logs | `v5.0.0-16.2.5` | `packages/security/src/serialization.ts` | `packages/security/test/security.test.ts` |
|
||||
| Authentication and authorization security events | `v5.0.0-16.3.1`, `v5.0.0-16.3.2` | `packages/auth/src/engine.ts` | `packages/auth/test/engine.test.ts` |
|
||||
|
||||
Controls including tenant policy, API-key lifecycle, malware-engine integration, and application-specific authorization remain application/deployment responsibilities. The CLI reports framework defaults and detectable unsafe configuration; it does not claim full ASVS conformance.
|
||||
@@ -0,0 +1,28 @@
|
||||
# Security support and threat model matrix
|
||||
|
||||
WRNexus security controls are defense layers, not substitutes for TLS, secret
|
||||
management, database isolation, or operational monitoring. This matrix defines
|
||||
the supported 0.8 contracts and the boundary application owners retain.
|
||||
|
||||
| Area | Framework guarantee | Application/operator responsibility |
|
||||
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| Sessions and passwords | Rotating sessions, idle/absolute expiry, revocation, password hashing policy, trusted-device controls | TLS, durable session storage, breach response, account recovery policy |
|
||||
| MFA and passkeys | One-use OTP/recovery state, TOTP counter replay defense, WebAuthn challenge consumption, RP/origin provider inputs, signature-counter regression checks | Use a conformant WebAuthn provider, configure the exact public origin/RP ID, transactional credential storage |
|
||||
| OAuth/OIDC | State consumption, PKCE, safe return URLs, strict issuer discovery, HTTPS endpoints, RS256 JWKS rotation, nonce/audience/`azp`/`at_hash` validation | Register exact redirect URIs, protect client secrets, select trusted issuers and scopes |
|
||||
| JWT | HS256 local keyrings and bounded HTTPS RS256 JWKS caches with `kid` rollover | Rotate/retire keys deliberately, set issuer/audience/expiry/max-age, revoke refresh families |
|
||||
| CAPTCHA and rate limits | Expiring one-use challenges, action/session binding, bounded create/verify endpoints | Treat CAPTCHA as one signal and keep route/account/network rate limits |
|
||||
| Encrypted HTTP | AEAD, request context binding, age checks, optional one-use replay stores | Keep HTTPS, use a shared replay store across instances, rotate server-managed keys |
|
||||
| Authorization | Explicit policies/roles and deny responses | Model tenant/object ownership and test privilege boundaries |
|
||||
| Browser/runtime | Production CSP, HSTS, MIME-sniffing, referrer/permissions policies and safe hydration serialization | Configure allowed origins/sources, terminate TLS correctly, review third-party scripts |
|
||||
|
||||
`AUTH_SECURITY_EVENT_TYPES` is the stable machine-readable authentication audit
|
||||
event vocabulary. Events include an ID, timestamp, severity and available actor,
|
||||
user, session, IP, user-agent and structured data. Consumers should alert on
|
||||
critical events and retain warning/critical records according to their policy;
|
||||
never place credentials or raw tokens in event data.
|
||||
|
||||
Protocol and adversarial tests cover replay, expired state, counter regression,
|
||||
key rotation, algorithm/key-type confusion, issuer/audience/nonce mismatch,
|
||||
unsafe return URLs, request binding, rate limiting, and built production response
|
||||
headers. Live provider certification remains an integration responsibility
|
||||
because provider metadata and credential policies are deployment-specific.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"releaseLine": "0.8",
|
||||
"artifacts": {
|
||||
"packages/ui/components/Accordion.wrn": "e74433d405767edd50e58237ac3986e08e14a893450d712f69679c8361485734",
|
||||
"packages/ui/components/AdvancedDatePicker.wrn": "b9b5b08e9464544837a5400bbf9a2cb25724fac037fe196a219b42e5841ad672",
|
||||
"packages/ui/components/AdvancedRangeSlider.wrn": "e78b5cf825503d0cd306c6e490d71317ee3db1844882d13b500df1f7f1c408e1",
|
||||
"packages/ui/components/AdvancedSelect.wrn": "29d43f8019a3e0e98af7cf12440f41523665535a39a973441b4faea78e67114a",
|
||||
"packages/ui/components/AnnouncementBar.wrn": "5946ef5eb646f7414056f59d9cfe14680aa3c935acc9a1ca6528dc53b23caa48",
|
||||
"packages/ui/components/AuthForm.wrn": "5441adc5c4fd94621633f3a178442fd7970de3afb0dd3827b7aae6cd43545e40",
|
||||
"packages/ui/components/AuthSplitLayout.wrn": "72b82495dd14d40a2d594ccdcf3adc925d1567c155750fb1072347b8845aab7b",
|
||||
"packages/ui/components/AvatarGroup.wrn": "9c583f567213f8e1ad4506a7d2abc3fb462d11679fd2196d3828030f28a28964",
|
||||
"packages/ui/components/BackToTop.wrn": "b12c56ec8b7aabad68cbdc47f4b3237e2c21a61398f0aa51f9add6229b7357cd",
|
||||
"packages/ui/components/Badge.wrn": "6b55b4d85100d605cf168857aec1dc57da62c1f6a0a5cd6dd877023f24b189cc",
|
||||
"packages/ui/components/Blockquote.wrn": "6016dd4450de7cbf5c3cb413599baa2e502321e8eedef54439a0df6d0aae8bcb",
|
||||
"packages/ui/components/Breadcrumb.wrn": "8bf6239b95b382ce68f8411aac0d364f67a1c278dfbbf08f1501cd0482751e30",
|
||||
"packages/ui/components/ButtonGroup.wrn": "0d97fbeed531d1d8ef4b59531923b47b34100d0de71d7bf524b02c668920b3d8",
|
||||
"packages/ui/components/CTASection.wrn": "2d2241d4f1018cfd2f8ea1ddd5fa8c8fcb8d1bbb2d4e4498cb9f39ff47a3801c",
|
||||
"packages/ui/components/Card.wrn": "4370df341235819b8a968a3f812209c2e6c29e4471d06578aaa5b577fb6e2dc8",
|
||||
"packages/ui/components/Chart.wrn": "841def6b024720bd24898975a1434a1cb39c89e1272d42db431d35d27c98c553",
|
||||
"packages/ui/components/ChatBubble.wrn": "0da2bc86830ac712481559bd2fe7214d26f25101f2e8c2e4629e25c004388b52",
|
||||
"packages/ui/components/Checkbox.wrn": "45e6046e3ad4acb1c1805b51fd5bf0b95b346d3d53973ededc5e43ea2fd91f70",
|
||||
"packages/ui/components/Clipboard.wrn": "bb8651c7e44517db827603d0c0e546b6891093d7e6589c0b6e45d91b6187591b",
|
||||
"packages/ui/components/Collapse.wrn": "c537239831c6938f3c39be0ca3ae8ba928c2490e21cfe5853c10f7221a4678ca",
|
||||
"packages/ui/components/ColorPicker.wrn": "6940b7ae48f1358008b8c3ae6dc7da31f96a1aefadeef18252568b2cda0b5cbf",
|
||||
"packages/ui/components/Columns.wrn": "449a427c2f4dd846b5239b73efe5b8d15ad4f20fa28598802a5eb57c33332391",
|
||||
"packages/ui/components/Combobox.wrn": "62a7d861b0e536ceb088cea3552c59acbafaea5184101e3651dc8f4976b99dbc",
|
||||
"packages/ui/components/Confetti.wrn": "22d687beefd5047055f65e806b4e39f81e18887532ec18d439ac364a044b230a",
|
||||
"packages/ui/components/Container.wrn": "be8fce140043eced8b78c8dd14ff85ace4ed2d91671251641ef83e0fe4da8f2a",
|
||||
"packages/ui/components/ContextMenu.wrn": "2b5153f3acec3b11e5f20d7ea219f4e7b92569340fac09279e6a51bff0e7b235",
|
||||
"packages/ui/components/CopyMarkup.wrn": "8d57a7d72e02c126f855a181fc36e1b969edb90f683dce6b6ffe546d49d2b29b",
|
||||
"packages/ui/components/CustomScrollbar.wrn": "4c1f7758b9cd47e20ecf922403e12b5b15b8127a2744383c6bd280ee20e5fdd1",
|
||||
"packages/ui/components/DataMap.wrn": "65552d73ecd1a148427dbb10d611f9352ca36bd490f595ab1e1a47e173445ba1",
|
||||
"packages/ui/components/DataTable.wrn": "a147aef9840ac1ed9e97921b8ff81b4f8a5afe66dd6ccb6d26947b8f7ffc760f",
|
||||
"packages/ui/components/DatePicker.wrn": "18b07e59c27c2720bf960e9c04ad70d9e422ddcf0817fede74e71899811bb387",
|
||||
"packages/ui/components/DeviceFrame.wrn": "a881cf2cc1f859b43cc3c7a1e1ca0fb40cea7a9e530ab5bdcb985aa9592d11c0",
|
||||
"packages/ui/components/Divider.wrn": "e377f8005249cf4f6c51dd4d04ff9c6a70a3f4e3a79d2c02a8ab601754c8553a",
|
||||
"packages/ui/components/DragAndDrop.wrn": "9a403ce9ed20d36211d8916911871875c9c7d0952a7de1a21a433eaa0b3c3324",
|
||||
"packages/ui/components/Drawer.wrn": "7ecfc54494402e8758eb3f648418df70b6cde598f38836a620a1fa179d1bb1bd",
|
||||
"packages/ui/components/Dropdown.wrn": "703c354dfb304ad640a600398317b0a5eefeea326df8a1fc51c87e0ed3c26ebc",
|
||||
"packages/ui/components/FeatureCard.wrn": "cf122df37d5de72a9556fea501b13b8bfad49ee4a5e88daec2a32d204ee9e784",
|
||||
"packages/ui/components/FeatureGrid.wrn": "b9c793e47f6a86fddc0f42c010544002509a11256c92c030ae29743ab0083a55",
|
||||
"packages/ui/components/FeatureIconCard.wrn": "7d053cf642ab572a254383a72fb60323118a6b41b433696cf6ac62857dea7d5e",
|
||||
"packages/ui/components/FileInput.wrn": "8b63811deb90a03763620bedf0d5d3c7d05a20b8ae34292eaface9b756b32ecd",
|
||||
"packages/ui/components/FileUpload.wrn": "3346d8978e134c3a1e6bc742201a3fbb0cffb89da40da6fcd856a2adbb971393",
|
||||
"packages/ui/components/FileUploadProgress.wrn": "83bcc8558c70fbe0e0670642f65998abd222c235f1031be46bd7c65e6b5c5154",
|
||||
"packages/ui/components/Footer.wrn": "a5dfaa5f9548b7fdd4b556c63428e0ea8d22e5e776a5714d76619999438cf618",
|
||||
"packages/ui/components/Grid.wrn": "b5546b899c509c1f3e8f5edad801bc59acf9fe3008a627f0e4476cd61b5b672e",
|
||||
"packages/ui/components/Hero.wrn": "c7608d8a81df53ffcde5d857abc06c2eff813d4a10223a47a70602a68e7b025c",
|
||||
"packages/ui/components/HeroActions.wrn": "8f5d2d86c928c7499610f58a8b5c078e368d67f8924311472357a70c5d1dae1a",
|
||||
"packages/ui/components/Image.wrn": "4294358e2eddf06ae4384217dbff7693b609c16bf6549f54d6ad27df74d7ae27",
|
||||
"packages/ui/components/Input.wrn": "9ad394eed60f1b05bbd2ccd50dc2de7b78245c52c87afd46055d772c38b7b0c9",
|
||||
"packages/ui/components/InputGroup.wrn": "0e23ea541a60e893c9d9e6f95113911ee459468d8d6105bf03aeb55395359123",
|
||||
"packages/ui/components/InputNumber.wrn": "a0aa4f4566bf54ffbef54c99648eab05b5f9870be6ea07639a4ecf3930afb631",
|
||||
"packages/ui/components/Kbd.wrn": "d51fa614b36f971f885410785b481c2e6900b2416e6e7c8868dfda1ebd5f3b4c",
|
||||
"packages/ui/components/LayoutSplitter.wrn": "dac5a80acb76bf58dfd25233c68190c67d1aa1b3b0d4250a0957ea40912cf722",
|
||||
"packages/ui/components/LegendIndicator.wrn": "6a7607b27a17196f899132eb952203a1073e4077365a94935f485e700cbac665",
|
||||
"packages/ui/components/Link.wrn": "935ac24e8ebd067860dc9709ea9121710315ad6e02ce95cd5e982ae4d5978a02",
|
||||
"packages/ui/components/List.wrn": "02f960a8e82fa049aac477bac9c1d9371394c86d9c47513138f61bffc79dc7d8",
|
||||
"packages/ui/components/ListGroup.wrn": "37e2ec61ceab20ed020a834da03208c493702b41abcf586816e29f2e50d8ee11",
|
||||
"packages/ui/components/Map.wrn": "7b8a0d5412a464fd7cab8977d816542c506d8c5dab8230a3c984c2caee407c91",
|
||||
"packages/ui/components/MarketingSectionHeader.wrn": "5147f3d86f18404c66111a52cccb44be56ca4cbfd7a7f4e885e41f82c1212c1e",
|
||||
"packages/ui/components/Marquee.wrn": "b2b35eedf3297ba12ab3776385a9f3eab001027648d87a2a1968f576eee6c025",
|
||||
"packages/ui/components/MegaMenu.wrn": "4a084eaf6aae77bb9023d2f3589bc6b80119b9be63982a90a80f9d280cc9c0a5",
|
||||
"packages/ui/components/MetricCard.wrn": "6451182739298691908f68258c0250cce2a78b0dc27c97115579ece30d7d9f92",
|
||||
"packages/ui/components/MetricGrid.wrn": "49742c27d988755316be54eae3722bb88600dd1add8c851fc95d4b4498db80a8",
|
||||
"packages/ui/components/Modal.wrn": "1821428492e510403dd029c4766e71272899299f65141ae4fdaf09c4a26719e5",
|
||||
"packages/ui/components/Nav.wrn": "78f215c94caf68e0968449a23e23bd3409a689e0c52a6c1770aa8373c767d080",
|
||||
"packages/ui/components/Navbar.wrn": "e68f9d3643e500e43124e9c7a6d4c7f6722657377ea7313f3e3cf5093a81b360",
|
||||
"packages/ui/components/PageHeader.wrn": "e9f6c4c2b8723f3f035aa840ba8232f393a4038fae20c55dcd2a78276ac6738c",
|
||||
"packages/ui/components/Pagination.wrn": "9169e724f89992dacd10e9492a95438c8016affb39c0fd17a4f6fe26bd21d8b4",
|
||||
"packages/ui/components/PinInput.wrn": "5196f584de8d548a5dfa03688c3c95da3c948cead2662b05e927386ccea74299",
|
||||
"packages/ui/components/Popover.wrn": "fd9982f60e37e500586f788470f41a8510d6b96d3a85c80d2859fa01cac6731e",
|
||||
"packages/ui/components/PortalDashboard.wrn": "037d4300b59c7d60543abc7d4aba5c738efc143e9b61abc48aad0ddfcfe6845b",
|
||||
"packages/ui/components/PreferenceSwitcher.wrn": "2cc186d4dcb6580b4b152e3a265d9ed5ad210d3fdc76330b9092db21894465f0",
|
||||
"packages/ui/components/PublicPageShell.wrn": "507baad0e83dc05c24db42b8af8bd45b18f4e32e418843d77ec906428c687199",
|
||||
"packages/ui/components/Radio.wrn": "0b2d38a5aee3e859280e4590fa1d509d789cc2239082054872fa342817735f1b",
|
||||
"packages/ui/components/RangeSlider.wrn": "21eb7a5df0ee2cb5e78f628eb920265998eb9f1a4933d4e5c57db0323fd66b41",
|
||||
"packages/ui/components/Rating.wrn": "a2d74dc748fc7d98892684c760518b87fa65411b1102e3611252b87245b3ffcb",
|
||||
"packages/ui/components/Scrollspy.wrn": "bbe0788f63c2bc8850649c1dee78391d485a1c93876015bc536d838273d5fae4",
|
||||
"packages/ui/components/SearchBox.wrn": "315f54f1feaaa47a815d1e2d7a35b492f09fbfadfc6d37228e1009e19e0652ad",
|
||||
"packages/ui/components/Section.wrn": "dc18952a6342f3af04fdab6a44a5755b6767e65bf37a11528fd9e67dde39802e",
|
||||
"packages/ui/components/SectionHeader.wrn": "512cb96636ee1f0540a0f4b4c75603fc0fe7536e7ed7ed7dc82173a16f48a4d3",
|
||||
"packages/ui/components/Select.wrn": "7f046bb11b7c2470dae26d91a4b2261c66a40ae054d0e04c69b6748912d1e204",
|
||||
"packages/ui/components/Sidebar.wrn": "05f4bd216ae8bfcee2460fe638e431174d5f3c8e10003f346644e5a2939e7ce5",
|
||||
"packages/ui/components/SplitHero.wrn": "70e843565ff869bcf413b11b6d9830b2e2bd229863a00904596f71e2dff0e76d",
|
||||
"packages/ui/components/StatsBar.wrn": "c7d1df3895f25b6d3a2e1012a18b97592c7f33e65418b880d486f20c2d490686",
|
||||
"packages/ui/components/Stepper.wrn": "4fec0c91a9006319ec27f3198d1176acdfd93abf62d76159aa55c0879bb081d9",
|
||||
"packages/ui/components/StrongPassword.wrn": "c7c5ef26ece6170dd7db9882f0dc98cb2e4607f1e5d43eb3fd39e5d15bbd3a2e",
|
||||
"packages/ui/components/StyledIcon.wrn": "4a4504e357dee9dd0418edbe85fc90b824ccdb3752123a2125da95b77bf0b336",
|
||||
"packages/ui/components/Switch.wrn": "ccb74599fab72b0d68b09a7f1f90b7732cb2f9cbed67a84219e897575ce30c28",
|
||||
"packages/ui/components/Tabs.wrn": "8a1b98c7395b27b09f16f0ebdc14d3d84473b06023ec2b3ed0af495cc2f076bb",
|
||||
"packages/ui/components/TextLink.wrn": "30782039293eb36d63b7b3a4f32a71a47177a3a68c7e90184be7cf7b4385eb19",
|
||||
"packages/ui/components/Textarea.wrn": "ddf0b4f124b2cf0c0ab3d820d3ac0085f7c20466e977231949be264cd0cee8cf",
|
||||
"packages/ui/components/TimePicker.wrn": "2e8e7a90f6b6069a07e7ffd2725ba1e1031e84d55a4f1254025befbb314fa695",
|
||||
"packages/ui/components/Timeline.wrn": "5708c656eefd12f31c93490075ee482bf527059028844bd58cdcddc88461e2b5",
|
||||
"packages/ui/components/Toast.wrn": "f37c584d1c1a66401deb53d915c8ee0c70aaf7baa1d3c297fa74c5bdb914dd1d",
|
||||
"packages/ui/components/ToastNotifications.wrn": "33ff76b2a0a129ff896baea8979b4be97f7ec4471a92a2da970403a5c46e8b03",
|
||||
"packages/ui/components/ToggleCount.wrn": "70a75b2bdcc89103f8ca300ee6d21cd61baf8c6a4aeade9b68d1dc529f77064b",
|
||||
"packages/ui/components/TogglePassword.wrn": "405a85cbfa3d0ff0185b52d2805fba88497a5f25501f01b2438ed3a28591a38d",
|
||||
"packages/ui/components/Tooltip.wrn": "fe663c153e5239f37a298273662b16a8a77928be9376a823cd6f4e62fbaf2ee5",
|
||||
"packages/ui/components/TreeView.wrn": "1791a10135595b17b5c746af9e0476e8520d516ba46d64c79dc4efe0af2b500d",
|
||||
"packages/ui/components/Typography.wrn": "a667e800e11d23da74b00047bd9c560a65a5920e5394f58f66a6e0b32572ce8e",
|
||||
"packages/ui/components/WysiwygEditor.wrn": "636e60b9f9be7a5807cca7ad20e0b0f370ee1ec6c1ecba5d0a577726cc86bc98",
|
||||
"packages/ui/components/alert.wrn": "a6020b3fbf02481f76cea4cfa563a7165c7ccc2920492f6f6b79e98cbf2cf0fa",
|
||||
"packages/ui/components/avatar.wrn": "571b70790aff28a5b7d6adbf0196e77ece1ce153a95b384148cb2bb5f74ab2e9",
|
||||
"packages/ui/components/button.wrn": "647af3918142fd9151e46555345532980633cc3677ec26d0940c253ea789bc31",
|
||||
"packages/ui/components/carousel.wrn": "37bdde82de59e90cf02c9fed0ee11f5ddd2979246932701dad9412c4fd358a6a",
|
||||
"packages/ui/components/progress.wrn": "ba6f4dfcc00f04f34e9533be675bb4a6200c3cdcd7d03fc597377e48520fdec7",
|
||||
"packages/ui/components/skeleton.wrn": "ceec8af147b8be08155500e378393ac7c72d819da61b62191c076c80e943d5a9",
|
||||
"packages/ui/components/spinner.wrn": "abc4ee3ede2e019289257e9009eee012c880a85839cc220fac6dbe1b780caf52",
|
||||
"packages/ui/components/table.wrn": "96126772e82fbd401787600aba7a095ef097282d9bdb4df22f3e06016c677210",
|
||||
"packages/ui/ui.css": "a72e839e6cccbe01483507f9d9ba913962aca2b9f866bb6e136f023d6ea2013d"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user