feat(auth): @exortek/auth — umbrella package (#20) - #58
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
@exortek/auth, the umbrella package — package 20 of 20. One installre-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
src/index.jsexposes each of the 19 leaf packagesas a namespace:
import { jwt, password, oauth2 } from '@exortek/auth'.package publishes, under a matching path
(
@exortek/auth/jwt/token-pair,@exortek/auth/oauth2/providers/google,@exortek/auth/security/fastify, …). Theexportsmap has 112 entries.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.
reusing the shared
createConfig, which only externalizes bare package namesand would try to inline deep subpaths such as
@exortek/password/argon2(whose lazy native binding is a dynamic import).
express/fastifyare optional peers, needed only for framework adaptersubpaths.
Tests
tests/umbrella.test.js(4 tests) asserts every namespace exposes the samebindings 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.mdstatus,SECURITY.mdsupported-versions matrix,
scripts/setup-labels.sh, the issue/PR templates,and the docs site (nav meta, home shipping table,
authoverview page).Ships at
1.0.0via amajorchangeset from the0.0.0scaffold.Verification
yarn workspace @exortek/auth run build— cleantypecheck·eslint·format:check— cleannode --test packages/auth/tests— 4/4 passresolve to the same values