@seamless-auth/oidc-provider 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +80 -10
  3. package/dist/accessTokenClaims.d.ts +11 -0
  4. package/dist/accessTokenClaims.js +30 -0
  5. package/dist/accessTokenClaims.js.map +1 -1
  6. package/dist/accountClaims.d.ts +51 -0
  7. package/dist/accountClaims.js +102 -0
  8. package/dist/accountClaims.js.map +1 -0
  9. package/dist/adapter.js +16 -3
  10. package/dist/adapter.js.map +1 -1
  11. package/dist/apiClient.d.ts +3 -2
  12. package/dist/apiClient.js +3 -2
  13. package/dist/apiClient.js.map +1 -1
  14. package/dist/brandingContrast.d.ts +4 -0
  15. package/dist/brandingContrast.js +59 -0
  16. package/dist/brandingContrast.js.map +1 -0
  17. package/dist/claimsMismatch.d.ts +15 -0
  18. package/dist/claimsMismatch.js +90 -0
  19. package/dist/claimsMismatch.js.map +1 -0
  20. package/dist/createOidcEdge.d.ts +5 -0
  21. package/dist/createOidcEdge.js +43 -7
  22. package/dist/createOidcEdge.js.map +1 -1
  23. package/dist/deviceFlow.d.ts +2 -6
  24. package/dist/deviceFlow.js +2 -10
  25. package/dist/deviceFlow.js.map +1 -1
  26. package/dist/env.d.ts +1 -4
  27. package/dist/env.js +46 -4
  28. package/dist/env.js.map +1 -1
  29. package/dist/errorPage.d.ts +10 -0
  30. package/dist/errorPage.js +24 -0
  31. package/dist/errorPage.js.map +1 -0
  32. package/dist/hostedPages.d.ts +1 -0
  33. package/dist/hostedPages.js +24 -1
  34. package/dist/hostedPages.js.map +1 -1
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/interactions.js +83 -30
  39. package/dist/interactions.js.map +1 -1
  40. package/dist/jwtAccessTokens.d.ts +1 -1
  41. package/dist/jwtAccessTokens.js +2 -1
  42. package/dist/jwtAccessTokens.js.map +1 -1
  43. package/dist/logout.d.ts +4 -0
  44. package/dist/logout.js +8 -1
  45. package/dist/logout.js.map +1 -1
  46. package/dist/providerConfig.d.ts +3 -3
  47. package/dist/providerConfig.js +22 -8
  48. package/dist/providerConfig.js.map +1 -1
  49. package/dist/requestContext.d.ts +1 -2
  50. package/dist/requestContext.js.map +1 -1
  51. package/dist/requestObjectErrors.d.ts +12 -0
  52. package/dist/requestObjectErrors.js +47 -0
  53. package/dist/requestObjectErrors.js.map +1 -0
  54. package/dist/resumeCookie.js +3 -1
  55. package/dist/resumeCookie.js.map +1 -1
  56. package/dist/server.js +2 -2
  57. package/dist/server.js.map +1 -1
  58. package/dist/signingKey.d.ts +31 -3
  59. package/dist/signingKey.js +104 -4
  60. package/dist/signingKey.js.map +1 -1
  61. package/dist/ui/assets/index-BLikvo1E.js +18 -0
  62. package/dist/ui/assets/index-DKah8G4b.css +1 -0
  63. package/dist/ui/index.html +2 -2
  64. package/package.json +11 -8
  65. package/dist/ui/assets/index-CydLXRvo.js +0 -18
  66. package/dist/ui/assets/index-y3LME-Gv.css +0 -1
@@ -0,0 +1 @@
1
+ :root{--seamless-color-background:#f5f6f8;--seamless-color-surface:#fff;--seamless-color-text:#1a1d21;--seamless-color-muted:#4a515b;--seamless-color-primary:#1f4fd1;--seamless-color-on-primary:#fff;--seamless-color-border:#7a828e;--seamless-color-focus:#1f4fd1;--seamless-color-danger:#b42318;--seamless-color-success:#1a7f37;--seamless-color-warning:#8a4b00;--seamless-font-family:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--seamless-radius:10px;--seamless-accent:var(--seamless-color-primary);--seamless-accent-contrast:var(--seamless-color-on-primary);--seamless-text:var(--seamless-color-text);--seamless-text-muted:var(--seamless-color-muted);--seamless-surface:var(--seamless-color-surface);--seamless-surface-raised:var(--seamless-color-background);--seamless-border:var(--seamless-color-border);--seamless-accent-soft:var(--seamless-color-primary);--seamless-accent-hover:var(--seamless-color-primary);--seamless-accent-muted:color-mix(in srgb, var(--seamless-color-primary) 12%, transparent);--seamless-surface-hover:var(--seamless-color-background);--seamless-danger:var(--seamless-color-danger);--seamless-success:var(--seamless-color-success);--seamless-warning:var(--seamless-color-warning);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not(:has(#seamless-palette)){--seamless-color-background:#121417;--seamless-color-surface:#1c1f24;--seamless-color-text:#f1f3f5;--seamless-color-muted:#b7bec8;--seamless-color-primary:#8fb0ff;--seamless-color-on-primary:#0b1530;--seamless-color-border:#8a93a0;--seamless-color-focus:#8fb0ff;--seamless-color-danger:#ffb4ab;--seamless-color-success:#7ee2a8;--seamless-color-warning:#facc15;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}body{background:var(--seamless-color-background);min-height:100vh;color:var(--seamless-color-text);font-family:var(--seamless-font-family);margin:0;font-size:1rem;line-height:1.5}.page{flex-direction:column;align-items:center;gap:1.25rem;padding:2rem 1rem;display:flex}.brand{text-align:center}.brand-logo{object-fit:contain;max-width:12rem;max-height:3rem;margin:0 auto .5rem;display:block}.brand-name{margin:0;font-size:1.25rem;font-weight:700}.brand-context{color:var(--seamless-color-muted);margin:.25rem 0 0}.content{justify-content:center;width:100%;display:flex}.card{background:var(--seamless-color-surface);border:1px solid var(--seamless-color-border);border-radius:var(--seamless-radius);width:100%;max-width:28rem;padding:1.5rem}h2{margin:0 0 1rem;font-size:1.375rem;line-height:1.3}h2:focus{outline:none}.consent-subtitle{margin:1rem 0 .5rem;font-size:1rem}.consent-scopes{margin:0;padding-left:1.25rem}.confirm-account{overflow-wrap:anywhere}.consent-warning{color:var(--seamless-color-muted);margin-top:1rem}.actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}button.primary,button.secondary{border-radius:var(--seamless-radius);min-height:2.75rem;font:inherit;cursor:pointer;padding:.5rem 1.25rem;font-weight:600}button.primary{background:var(--seamless-color-primary);color:var(--seamless-color-on-primary);border:1px solid var(--seamless-color-primary)}button.secondary{color:var(--seamless-color-text);border:1px solid var(--seamless-color-border);background:0 0}button:disabled{cursor:not-allowed;opacity:.7}:focus-visible{outline:3px solid var(--seamless-color-focus);outline-offset:2px}.status{text-align:center;margin:0}.error{color:var(--seamless-color-text);border-left:4px solid var(--seamless-color-danger);padding-left:.75rem}.step-up-totp{flex-direction:column;gap:.5rem;margin-top:1.5rem;display:flex}.step-up-totp input{border:1px solid var(--seamless-color-border);border-radius:var(--seamless-radius);background:var(--seamless-color-surface);min-height:2.75rem;color:var(--seamless-color-text);font:inherit;letter-spacing:.2em;padding:.5rem .75rem}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.device-code-field{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.device-code-field input{border:1px solid var(--seamless-color-border);border-radius:var(--seamless-radius);background:var(--seamless-color-background);min-height:2.75rem;color:var(--seamless-color-text);font:inherit;letter-spacing:.15em;text-transform:uppercase;padding:.5rem .75rem;font-size:1.25rem}.user-code{letter-spacing:.1em;white-space:nowrap;font-family:ui-monospace,monospace}.error-detail{overflow-wrap:anywhere;grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:1rem 0 0;display:grid}.error-detail dt{font-weight:600}.error-detail dd{margin:0}.error-footer{color:var(--seamless-color-muted);margin-bottom:0}
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <meta name="color-scheme" content="light dark" />
7
7
  <!--seamless:head-->
8
- <script type="module" crossorigin src="/assets/index-CydLXRvo.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-y3LME-Gv.css">
8
+ <script type="module" crossorigin src="/assets/index-BLikvo1E.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-DKah8G4b.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/oidc-provider",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "OpenID Provider service for Seamless Auth, backed by the private Seamless Auth API.",
5
5
  "author": "Fells Code, LLC",
6
6
  "license": "Apache-2.0",
@@ -48,6 +48,7 @@
48
48
  "format:check": "prettier --check .",
49
49
  "test": "vitest run",
50
50
  "test:watch": "vitest",
51
+ "test:a11y": "npm run build:ui && vitest run -c vitest.a11y.config.ts",
51
52
  "coverage": "vitest run --coverage",
52
53
  "check:changeset-bump": "node scripts/check-changeset-bump.mjs",
53
54
  "changeset": "changeset",
@@ -73,29 +74,30 @@
73
74
  "provenance": true
74
75
  },
75
76
  "dependencies": {
76
- "@seamless-auth/core": "^0.23.0",
77
- "@seamless-auth/express": "^0.23.0",
78
- "@seamless-auth/types": "^0.35.0",
77
+ "@seamless-auth/core": "^0.26.0",
78
+ "@seamless-auth/express": "^0.26.0",
79
+ "@seamless-auth/types": "^0.40.0",
79
80
  "cookie-parser": "^1.4.7",
80
81
  "express": "^5.3.0",
81
82
  "oidc-provider": "~9.13.3",
82
83
  "zod": "^4.6.7"
83
84
  },
84
85
  "devDependencies": {
86
+ "@axe-core/playwright": "4.14.0",
85
87
  "@changesets/cli": "^3.0.3",
86
88
  "@commitlint/cli": "^21.2.4",
87
89
  "@commitlint/config-conventional": "^21.2.4",
88
90
  "@eslint/js": "^10.0.1",
89
- "@seamless-auth/react": "^0.19.2",
91
+ "@seamless-auth/react": "^0.20.0",
90
92
  "@types/cookie-parser": "^1.4.10",
91
93
  "@types/express": "^5.0.6",
92
- "@types/node": "^24.19.2",
94
+ "@types/node": "^26.6.6",
93
95
  "@types/oidc-provider": "~9.13.1",
94
96
  "@types/react": "^19.3.0",
95
97
  "@types/react-dom": "^19.3.0",
96
98
  "@typescript-eslint/eslint-plugin": "^8.72.1",
97
99
  "@typescript-eslint/parser": "^8.72.1",
98
- "@vitejs/plugin-react": "^5.2.0",
100
+ "@vitejs/plugin-react": "^6.1.2",
99
101
  "@vitest/coverage-v8": "^5.0.5",
100
102
  "eslint": "^10.13.0",
101
103
  "eslint-config-prettier": "^10.1.8",
@@ -104,6 +106,7 @@
104
106
  "husky": "^9.1.7",
105
107
  "lint-staged": "^17.6.0",
106
108
  "openid-client": "^6.8.8",
109
+ "playwright": "1.64.1",
107
110
  "prettier": "^3.9.10",
108
111
  "react": "^19.3.1",
109
112
  "react-dom": "^19.3.1",
@@ -111,7 +114,7 @@
111
114
  "tsx": "^4.23.15",
112
115
  "typescript": "^5.9.3",
113
116
  "typescript-eslint": "^8.72.1",
114
- "vite": "^7.3.7",
117
+ "vite": "^8.3.5",
115
118
  "vitest": "^5.0.5"
116
119
  }
117
120
  }