@seamless-auth/oidc-provider 0.0.0-stage → 0.1.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 (91) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/LICENSE +201 -0
  3. package/README.md +273 -2
  4. package/dist/adapter.d.ts +44 -0
  5. package/dist/adapter.js +249 -0
  6. package/dist/adapter.js.map +1 -0
  7. package/dist/apiClient.d.ts +35 -0
  8. package/dist/apiClient.js +217 -0
  9. package/dist/apiClient.js.map +1 -0
  10. package/dist/authRequirements.d.ts +37 -0
  11. package/dist/authRequirements.js +58 -0
  12. package/dist/authRequirements.js.map +1 -0
  13. package/dist/clientSecrets.d.ts +10 -0
  14. package/dist/clientSecrets.js +102 -0
  15. package/dist/clientSecrets.js.map +1 -0
  16. package/dist/configCache.d.ts +14 -0
  17. package/dist/configCache.js +45 -0
  18. package/dist/configCache.js.map +1 -0
  19. package/dist/createOidcEdge.d.ts +45 -0
  20. package/dist/createOidcEdge.js +132 -0
  21. package/dist/createOidcEdge.js.map +1 -0
  22. package/dist/deviceFlow.d.ts +53 -0
  23. package/dist/deviceFlow.js +168 -0
  24. package/dist/deviceFlow.js.map +1 -0
  25. package/dist/env.d.ts +16 -0
  26. package/dist/env.js +36 -0
  27. package/dist/env.js.map +1 -0
  28. package/dist/errors.d.ts +18 -0
  29. package/dist/errors.js +40 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/firstPartySession.d.ts +21 -0
  32. package/dist/firstPartySession.js +28 -0
  33. package/dist/firstPartySession.js.map +1 -0
  34. package/dist/hostedPages.d.ts +51 -0
  35. package/dist/hostedPages.js +172 -0
  36. package/dist/hostedPages.js.map +1 -0
  37. package/dist/index.d.ts +20 -0
  38. package/dist/index.js +20 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/interactions.d.ts +17 -0
  41. package/dist/interactions.js +209 -0
  42. package/dist/interactions.js.map +1 -0
  43. package/dist/jwtAccessTokens.d.ts +23 -0
  44. package/dist/jwtAccessTokens.js +125 -0
  45. package/dist/jwtAccessTokens.js.map +1 -0
  46. package/dist/logout.d.ts +22 -0
  47. package/dist/logout.js +86 -0
  48. package/dist/logout.js.map +1 -0
  49. package/dist/originGuard.d.ts +10 -0
  50. package/dist/originGuard.js +32 -0
  51. package/dist/originGuard.js.map +1 -0
  52. package/dist/pkce.d.ts +16 -0
  53. package/dist/pkce.js +32 -0
  54. package/dist/pkce.js.map +1 -0
  55. package/dist/providerConfig.d.ts +50 -0
  56. package/dist/providerConfig.js +305 -0
  57. package/dist/providerConfig.js.map +1 -0
  58. package/dist/rateLimit.d.ts +13 -0
  59. package/dist/rateLimit.js +36 -0
  60. package/dist/rateLimit.js.map +1 -0
  61. package/dist/refreshReuse.d.ts +3 -0
  62. package/dist/refreshReuse.js +56 -0
  63. package/dist/refreshReuse.js.map +1 -0
  64. package/dist/requestContext.d.ts +40 -0
  65. package/dist/requestContext.js +43 -0
  66. package/dist/requestContext.js.map +1 -0
  67. package/dist/resourceServers.d.ts +16 -0
  68. package/dist/resourceServers.js +59 -0
  69. package/dist/resourceServers.js.map +1 -0
  70. package/dist/resumeCookie.d.ts +8 -0
  71. package/dist/resumeCookie.js +46 -0
  72. package/dist/resumeCookie.js.map +1 -0
  73. package/dist/server.d.ts +2 -0
  74. package/dist/server.js +36 -0
  75. package/dist/server.js.map +1 -0
  76. package/dist/signingKey.d.ts +29 -0
  77. package/dist/signingKey.js +142 -0
  78. package/dist/signingKey.js.map +1 -0
  79. package/dist/startup.d.ts +4 -0
  80. package/dist/startup.js +19 -0
  81. package/dist/startup.js.map +1 -0
  82. package/dist/tokenAudit.d.ts +4 -0
  83. package/dist/tokenAudit.js +42 -0
  84. package/dist/tokenAudit.js.map +1 -0
  85. package/dist/tokenLifetimes.d.ts +31 -0
  86. package/dist/tokenLifetimes.js +51 -0
  87. package/dist/tokenLifetimes.js.map +1 -0
  88. package/dist/ui/assets/index-CydLXRvo.js +18 -0
  89. package/dist/ui/assets/index-y3LME-Gv.css +1 -0
  90. package/dist/ui/index.html +15 -0
  91. package/package.json +115 -4
@@ -0,0 +1 @@
1
+ :root{--seamless-color-background: #f5f6f8;--seamless-color-surface: #ffffff;--seamless-color-text: #1a1d21;--seamless-color-muted: #4a515b;--seamless-color-primary: #1f4fd1;--seamless-color-on-primary: #ffffff;--seamless-color-border: #c4c9d1;--seamless-color-focus: #1f4fd1;--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);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: #454c56;--seamless-color-focus: #8fb0ff;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--seamless-color-background);color:var(--seamless-color-text);font-family:var(--seamless-font-family);font-size:1rem;line-height:1.5}.page{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem 1rem}.brand{text-align:center}.brand-logo{display:block;max-width:12rem;max-height:3rem;margin:0 auto .5rem;object-fit:contain}.brand-name{margin:0;font-size:1.25rem;font-weight:700}.brand-context{margin:.25rem 0 0;color:var(--seamless-color-muted)}.content{display:flex;justify-content:center;width:100%}.card{width:100%;max-width:28rem;padding:1.5rem;background:var(--seamless-color-surface);border:1px solid var(--seamless-color-border);border-radius:var(--seamless-radius)}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}.consent-warning{margin-top:1rem;color:var(--seamless-color-muted)}.actions{display:flex;gap:.75rem;margin-top:1.5rem}button.primary,button.secondary{min-height:2.75rem;padding:.5rem 1.25rem;border-radius:var(--seamless-radius);font:inherit;font-weight:600;cursor:pointer}button.primary{background:var(--seamless-color-primary);color:var(--seamless-color-on-primary);border:1px solid var(--seamless-color-primary)}button.secondary{background:transparent;color:var(--seamless-color-text);border:1px solid var(--seamless-color-border)}button:disabled{cursor:not-allowed;opacity:.7}:focus-visible{outline:3px solid var(--seamless-color-focus);outline-offset:2px}.status{margin:0;text-align:center}.error{color:var(--seamless-color-text);border-left:4px solid var(--seamless-color-primary);padding-left:.75rem}.step-up-totp{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem}.step-up-totp input{min-height:2.75rem;padding:.5rem .75rem;border:1px solid var(--seamless-color-border);border-radius:var(--seamless-radius);background:var(--seamless-color-surface);color:var(--seamless-color-text);font:inherit;letter-spacing:.2em}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.device-code-field{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.device-code-field input{min-height:2.75rem;padding:.5rem .75rem;border:1px solid var(--seamless-color-border);border-radius:var(--seamless-radius);background:var(--seamless-color-background);color:var(--seamless-color-text);font:inherit;font-size:1.25rem;letter-spacing:.15em;text-transform:uppercase}.user-code{font-family:ui-monospace,monospace;letter-spacing:.1em;white-space:nowrap}
@@ -0,0 +1,15 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="color-scheme" content="light dark" />
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">
10
+ </head>
11
+ <body>
12
+ <div id="root"></div>
13
+ <noscript>Signing in needs JavaScript. Turn it on and reload this page.</noscript>
14
+ </body>
15
+ </html>
package/package.json CHANGED
@@ -1,6 +1,117 @@
1
1
  {
2
2
  "name": "@seamless-auth/oidc-provider",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "OpenID Provider service for Seamless Auth, backed by the private Seamless Auth API.",
5
+ "author": "Fells Code, LLC",
6
+ "license": "Apache-2.0",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "bin": {
17
+ "seamless-oidc-provider": "./dist/server.js"
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "README.md",
22
+ "CHANGELOG.md",
23
+ "LICENSE"
24
+ ],
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/fells-code/seamless-auth-oidc-provider.git"
28
+ },
29
+ "bugs": {
30
+ "url": "https://github.com/fells-code/seamless-auth-oidc-provider/issues"
31
+ },
32
+ "homepage": "https://github.com/fells-code/seamless-auth-oidc-provider#readme",
33
+ "keywords": [
34
+ "openid-connect",
35
+ "oidc",
36
+ "oauth2",
37
+ "passkeys",
38
+ "seamless-auth"
39
+ ],
40
+ "scripts": {
41
+ "build": "rm -rf dist && tsc -p tsconfig.build.json && npm run build:ui",
42
+ "build:ui": "vite build --config ui/vite.config.ts",
43
+ "dev": "tsx watch --env-file .env src/server.ts",
44
+ "start": "node dist/server.js",
45
+ "typecheck": "tsc --noEmit && tsc -p ui/tsconfig.json",
46
+ "lint": "eslint .",
47
+ "format": "prettier --write .",
48
+ "format:check": "prettier --check .",
49
+ "test": "vitest run",
50
+ "test:watch": "vitest",
51
+ "coverage": "vitest run --coverage",
52
+ "check:changeset-bump": "node scripts/check-changeset-bump.mjs",
53
+ "changeset": "changeset",
54
+ "version-packages": "changeset version",
55
+ "release": "npm run build && changeset publish",
56
+ "prepare": "husky"
57
+ },
58
+ "lint-staged": {
59
+ "*.ts": [
60
+ "eslint --fix",
61
+ "prettier --write"
62
+ ],
63
+ "*.{json,md,yml,yaml}": [
64
+ "prettier --write"
65
+ ]
66
+ },
67
+ "engines": {
68
+ "node": ">=22"
69
+ },
70
+ "publishConfig": {
71
+ "access": "public",
72
+ "registry": "https://registry.npmjs.org/",
73
+ "provenance": true
74
+ },
75
+ "dependencies": {
76
+ "@seamless-auth/core": "^0.22.0",
77
+ "@seamless-auth/express": "^0.22.0",
78
+ "@seamless-auth/types": "^0.34.0",
79
+ "cookie-parser": "^1.4.7",
80
+ "express": "^5.3.0",
81
+ "oidc-provider": "~9.13.3",
82
+ "zod": "^4.6.7"
83
+ },
84
+ "devDependencies": {
85
+ "@changesets/cli": "^3.0.3",
86
+ "@commitlint/cli": "^21.2.4",
87
+ "@commitlint/config-conventional": "^21.2.4",
88
+ "@eslint/js": "^10.0.1",
89
+ "@seamless-auth/react": "^0.19.1",
90
+ "@types/cookie-parser": "^1.4.10",
91
+ "@types/express": "^5.0.6",
92
+ "@types/node": "^24.19.2",
93
+ "@types/oidc-provider": "~9.13.1",
94
+ "@types/react": "^19.3.0",
95
+ "@types/react-dom": "^19.3.0",
96
+ "@typescript-eslint/eslint-plugin": "^8.72.1",
97
+ "@typescript-eslint/parser": "^8.72.1",
98
+ "@vitejs/plugin-react": "^5.2.0",
99
+ "@vitest/coverage-v8": "^5.0.5",
100
+ "eslint": "^10.13.0",
101
+ "eslint-config-prettier": "^10.1.8",
102
+ "eslint-plugin-license-header": "^0.9.0",
103
+ "eslint-plugin-simple-import-sort": "^14.0.0",
104
+ "husky": "^9.1.7",
105
+ "lint-staged": "^17.6.0",
106
+ "openid-client": "^6.8.8",
107
+ "prettier": "^3.9.10",
108
+ "react": "^19.3.1",
109
+ "react-dom": "^19.3.1",
110
+ "react-router-dom": "^7.18.5",
111
+ "tsx": "^4.23.15",
112
+ "typescript": "^5.9.3",
113
+ "typescript-eslint": "^8.72.1",
114
+ "vite": "^7.3.7",
115
+ "vitest": "^5.0.5"
116
+ }
117
+ }