Skip to content

feat(auth): @exortek/auth — umbrella package (#20) - #58

Merged
ExorTek merged 5 commits into
masterfrom
feat/auth-umbrella
Sep 10, 2026
Merged

ExorTek merged 5 commits into
masterfrom
feat/auth-umbrella

Conversation

@ExorTek

@ExorTek ExorTek commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Summary

Adds @exortek/auth, the umbrella package — package 20 of 20. One install
re-exports every @exortek/* primitive: JWT, JWE, JWS, JWK, JWKS, PASETO,
password hashing, OTP, passkeys, magic links, opaque tokens, sessions, API
keys, OAuth 2.1, OpenID Connect, the defensive HTTP layer, and UA/bot
detection.

Design

  • Namespace imports — src/index.js exposes each of the 19 leaf packages
    as a namespace: import { jwt, password, oauth2 } from '@exortek/auth'.
  • Subpath forwarding — 111 subpath shims forward every subpath a leaf
    package publishes, under a matching path
    (@exortek/auth/jwt/token-pair, @exortek/auth/oauth2/providers/google,
    @exortek/auth/security/fastify, …). The exports map has 112 entries.
  • Pure re-export — every shim is export * from '@exortek/<pkg>[/sub]',
    referencing the same module objects the leaf packages expose. No aggregating
    API, no renamed bindings, nothing inlined; bundlers tree-shake each subpath
    independently. Types are emitted for every namespace and subpath.
  • Umbrella-specific rollup config — treats every id as external instead of
    reusing the shared createConfig, which only externalizes bare package names
    and would try to inline deep subpaths such as @exortek/password/argon2
    (whose lazy native binding is a dynamic import).
  • express / fastify are optional peers, needed only for framework adapter
    subpaths.

Tests

tests/umbrella.test.js (4 tests) asserts every namespace exposes the same
bindings as its leaf package pointing at the identical values (verified across
the CJS/ESM boundary), the root exposes exactly the expected set, and a sample
of subpath shims forward the same values as their upstream subpath.

Repo-wide integration

Package 20 wired into every surface that enumerates the stack: root README
(shipping table + counter), ARCHITECTURE.md status, SECURITY.md
supported-versions matrix, scripts/setup-labels.sh, the issue/PR templates,
and the docs site (nav meta, home shipping table, auth overview page).

Ships at 1.0.0 via a major changeset from the 0.0.0 scaffold.

Verification

  • yarn workspace @exortek/auth run build — clean
  • typecheck · eslint · format:check — clean
  • node --test packages/auth/tests — 4/4 pass
  • ESM + CJS resolution smoke-checked: 19/19 namespaces and sampled subpaths
    resolve to the same values

Re-export every @exortek/* primitive from one install. src/index.js
exposes each leaf package as a namespace (export * as <ns> from
'@exortek/<pkg>'); 111 subpath shims forward every published subpath
under a matching @exortek/auth/<pkg>/<sub> path.

The umbrella is pure re-export glue, so its rollup config treats every
id as external rather than reusing the shared createConfig (which only
externalizes bare package names and would try to inline deep subpaths
such as @exortek/password/argon2, whose lazy native binding is a
dynamic import).
Verify every root namespace exposes the same bindings as its leaf
package pointing at the identical values (no drift across the CJS/ESM
boundary), the root exposes exactly the expected set, and a sample of
subpath shims forward the same values as their upstream subpath.
Mark package 20 shipped and wire @exortek/auth into the surfaces that
enumerate the stack: root README shipping table + counter, ARCHITECTURE
status table, SECURITY supported-versions matrix, the label script, the
issue/PR templates, and the docs site (nav meta, home shipping table,
auth overview page).
Major bump so the 0.0.0 scaffold versions to 1.0.0.
Copilot AI lite review requested due to automatic review settings September 10, 2026 22:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@ExorTek
ExorTek merged commit 2029de0 into master Sep 10, 2026
3 checks passed
@ExorTek
ExorTek deleted the feat/auth-umbrella branch September 10, 2026 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants