@kya-os/consent 0.1.21 → 0.1.23

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 (161) hide show
  1. package/dist/bundle/inline.d.ts.map +1 -1
  2. package/dist/bundle/inline.js +2 -2
  3. package/dist/bundle/inline.js.map +1 -1
  4. package/dist/cjs/bundle/inline.js +2 -2
  5. package/dist/cjs/bundle/inline.js.map +1 -1
  6. package/dist/cjs/components/mcp-consent.js +0 -14
  7. package/dist/cjs/components/mcp-consent.js.map +1 -1
  8. package/dist/cjs/templates/modes/oauth.template.js +0 -28
  9. package/dist/cjs/templates/modes/oauth.template.js.map +1 -1
  10. package/dist/components/mcp-consent.d.ts.map +1 -1
  11. package/dist/components/mcp-consent.js +0 -14
  12. package/dist/components/mcp-consent.js.map +1 -1
  13. package/dist/consent.js +0 -14
  14. package/dist/consent.min.js +11 -25
  15. package/dist/templates/modes/oauth.template.d.ts.map +1 -1
  16. package/package.json +1 -1
  17. package/dist/bundle/index.d.ts +0 -44
  18. package/dist/bundle/shell.d.ts +0 -126
  19. package/dist/bundle/shell.js +0 -295
  20. package/dist/bundle/shell.js.map +0 -1
  21. package/dist/components/consent-button.d.ts +0 -61
  22. package/dist/components/consent-button.js +0 -177
  23. package/dist/components/consent-button.js.map +0 -1
  24. package/dist/components/consent-checkbox.d.ts +0 -61
  25. package/dist/components/consent-checkbox.js +0 -220
  26. package/dist/components/consent-checkbox.js.map +0 -1
  27. package/dist/components/consent-input.d.ts +0 -91
  28. package/dist/components/consent-input.js +0 -332
  29. package/dist/components/consent-input.js.map +0 -1
  30. package/dist/components/consent-oauth-button.d.ts +0 -87
  31. package/dist/components/consent-oauth-button.js +0 -389
  32. package/dist/components/consent-oauth-button.js.map +0 -1
  33. package/dist/components/consent-otp-input.d.ts +0 -92
  34. package/dist/components/consent-otp-input.js +0 -385
  35. package/dist/components/consent-otp-input.js.map +0 -1
  36. package/dist/components/consent-permissions.d.ts +0 -104
  37. package/dist/components/consent-permissions.js +0 -430
  38. package/dist/components/consent-permissions.js.map +0 -1
  39. package/dist/components/consent-shell.d.ts +0 -72
  40. package/dist/components/consent-shell.js +0 -231
  41. package/dist/components/consent-shell.js.map +0 -1
  42. package/dist/components/consent-terms.d.ts +0 -89
  43. package/dist/components/consent-terms.js +0 -284
  44. package/dist/components/consent-terms.js.map +0 -1
  45. package/dist/components/index.d.ts +0 -19
  46. package/dist/constants/auth-modes.d.ts +0 -59
  47. package/dist/constants/auth-modes.js +0 -120
  48. package/dist/constants/auth-modes.js.map +0 -1
  49. package/dist/constants/colors.d.ts +0 -38
  50. package/dist/constants/colors.js +0 -37
  51. package/dist/constants/colors.js.map +0 -1
  52. package/dist/constants/defaults.d.ts +0 -112
  53. package/dist/constants/defaults.js +0 -143
  54. package/dist/constants/defaults.js.map +0 -1
  55. package/dist/constants/index.d.ts +0 -12
  56. package/dist/constants/index.js +0 -16
  57. package/dist/constants/index.js.map +0 -1
  58. package/dist/index.d.ts +0 -19
  59. package/dist/index.js +0 -28
  60. package/dist/index.js.map +0 -1
  61. package/dist/react/index.d.ts +0 -123
  62. package/dist/resolution/index.d.ts +0 -12
  63. package/dist/resolution/index.js +0 -12
  64. package/dist/resolution/index.js.map +0 -1
  65. package/dist/resolution/resolve-branding.d.ts +0 -70
  66. package/dist/resolution/resolve-branding.js +0 -149
  67. package/dist/resolution/resolve-branding.js.map +0 -1
  68. package/dist/resolution/resolve-config.d.ts +0 -81
  69. package/dist/resolution/resolve-config.js +0 -258
  70. package/dist/resolution/resolve-config.js.map +0 -1
  71. package/dist/resolution/resolve-copy.d.ts +0 -53
  72. package/dist/resolution/resolve-copy.js +0 -128
  73. package/dist/resolution/resolve-copy.js.map +0 -1
  74. package/dist/schemas/api.schemas.js +0 -162
  75. package/dist/schemas/api.schemas.js.map +0 -1
  76. package/dist/schemas/branding.schemas.d.ts +0 -100
  77. package/dist/schemas/branding.schemas.js +0 -54
  78. package/dist/schemas/branding.schemas.js.map +0 -1
  79. package/dist/schemas/config.schemas.js +0 -141
  80. package/dist/schemas/config.schemas.js.map +0 -1
  81. package/dist/schemas/index.d.ts +0 -13
  82. package/dist/schemas/index.js +0 -13
  83. package/dist/schemas/index.js.map +0 -1
  84. package/dist/schemas/modes.schemas.js +0 -104
  85. package/dist/schemas/modes.schemas.js.map +0 -1
  86. package/dist/security/escape.d.ts +0 -114
  87. package/dist/security/escape.js +0 -197
  88. package/dist/security/escape.js.map +0 -1
  89. package/dist/security/index.d.ts +0 -10
  90. package/dist/security/index.js +0 -10
  91. package/dist/security/index.js.map +0 -1
  92. package/dist/security/validators.d.ts +0 -98
  93. package/dist/security/validators.js +0 -199
  94. package/dist/security/validators.js.map +0 -1
  95. package/dist/styles/css-variables.d.ts +0 -78
  96. package/dist/styles/css-variables.js +0 -120
  97. package/dist/styles/css-variables.js.map +0 -1
  98. package/dist/styles/index.d.ts +0 -12
  99. package/dist/styles/index.js +0 -12
  100. package/dist/styles/index.js.map +0 -1
  101. package/dist/styles/stylesheet.d.ts +0 -57
  102. package/dist/styles/stylesheet.js +0 -197
  103. package/dist/styles/stylesheet.js.map +0 -1
  104. package/dist/styles/tokens.d.ts +0 -141
  105. package/dist/styles/tokens.js +0 -180
  106. package/dist/styles/tokens.js.map +0 -1
  107. package/dist/templates/base/base-template.d.ts +0 -81
  108. package/dist/templates/base/base-template.js +0 -278
  109. package/dist/templates/base/base-template.js.map +0 -1
  110. package/dist/templates/base/components.d.ts +0 -120
  111. package/dist/templates/base/components.js +0 -279
  112. package/dist/templates/base/components.js.map +0 -1
  113. package/dist/templates/base/index.d.ts +0 -8
  114. package/dist/templates/base/index.js +0 -8
  115. package/dist/templates/base/index.js.map +0 -1
  116. package/dist/templates/index.d.ts +0 -18
  117. package/dist/templates/index.js +0 -18
  118. package/dist/templates/index.js.map +0 -1
  119. package/dist/templates/modes/consent-only.template.d.ts +0 -36
  120. package/dist/templates/modes/consent-only.template.js +0 -70
  121. package/dist/templates/modes/consent-only.template.js.map +0 -1
  122. package/dist/templates/modes/credentials.template.d.ts +0 -65
  123. package/dist/templates/modes/credentials.template.js +0 -410
  124. package/dist/templates/modes/credentials.template.js.map +0 -1
  125. package/dist/templates/modes/index.d.ts +0 -14
  126. package/dist/templates/modes/index.js +0 -14
  127. package/dist/templates/modes/index.js.map +0 -1
  128. package/dist/templates/modes/magic-link.template.d.ts +0 -33
  129. package/dist/templates/modes/magic-link.template.js +0 -192
  130. package/dist/templates/modes/magic-link.template.js.map +0 -1
  131. package/dist/templates/modes/oauth.template.d.ts +0 -40
  132. package/dist/templates/modes/oauth.template.js +0 -149
  133. package/dist/templates/modes/oauth.template.js.map +0 -1
  134. package/dist/templates/modes/otp.template.d.ts +0 -35
  135. package/dist/templates/modes/otp.template.js +0 -312
  136. package/dist/templates/modes/otp.template.js.map +0 -1
  137. package/dist/templates/modes/success.template.d.ts +0 -41
  138. package/dist/templates/registry.d.ts +0 -68
  139. package/dist/templates/registry.js +0 -125
  140. package/dist/templates/registry.js.map +0 -1
  141. package/dist/types/api.types.d.ts +0 -147
  142. package/dist/types/api.types.js +0 -9
  143. package/dist/types/api.types.js.map +0 -1
  144. package/dist/types/branding.types.d.ts +0 -53
  145. package/dist/types/branding.types.js +0 -9
  146. package/dist/types/branding.types.js.map +0 -1
  147. package/dist/types/config.types.d.ts +0 -201
  148. package/dist/types/config.types.js +0 -9
  149. package/dist/types/config.types.js.map +0 -1
  150. package/dist/types/copy.types.d.ts +0 -109
  151. package/dist/types/copy.types.js +0 -9
  152. package/dist/types/copy.types.js.map +0 -1
  153. package/dist/types/index.d.ts +0 -15
  154. package/dist/types/index.js +0 -15
  155. package/dist/types/index.js.map +0 -1
  156. package/dist/types/modes.types.d.ts +0 -287
  157. package/dist/types/modes.types.js +0 -136
  158. package/dist/types/modes.types.js.map +0 -1
  159. package/dist/types/page.types.d.ts +0 -120
  160. package/dist/types/page.types.js +0 -9
  161. package/dist/types/page.types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials.template.js","sourceRoot":"","sources":["../../../src/templates/modes/credentials.template.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Mode Templates Index
3
- *
4
- * Re-exports all authentication mode templates.
5
- *
6
- * @module @kya-os/consent/templates/modes
7
- */
8
- export { ConsentOnlyTemplate } from "./consent-only.template.js";
9
- export { CredentialsTemplate } from "./credentials.template.js";
10
- export { OAuthTemplate } from "./oauth.template.js";
11
- export { MagicLinkTemplate } from "./magic-link.template.js";
12
- export { OTPTemplate } from "./otp.template.js";
13
- export { SuccessTemplate, renderSuccessPage } from "./success.template.js";
14
- //# sourceMappingURL=index.d.ts.map
@@ -1,14 +0,0 @@
1
- /**
2
- * Mode Templates Index
3
- *
4
- * Re-exports all authentication mode templates.
5
- *
6
- * @module @kya-os/consent/templates/modes
7
- */
8
- export { ConsentOnlyTemplate } from "./consent-only.template.js";
9
- export { CredentialsTemplate } from "./credentials.template.js";
10
- export { OAuthTemplate } from "./oauth.template.js";
11
- export { MagicLinkTemplate } from "./magic-link.template.js";
12
- export { OTPTemplate } from "./otp.template.js";
13
- export { SuccessTemplate, renderSuccessPage } from "./success.template.js";
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/modes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Magic Link Template
3
- *
4
- * Passwordless authentication via email link.
5
- *
6
- * @module @kya-os/consent/templates/modes/magic-link
7
- */
8
- import { BaseConsentTemplate } from "../base/base-template.js";
9
- import type { AuthMode } from "../../types/modes.types.js";
10
- /**
11
- * Magic Link Template
12
- *
13
- * Renders an email-based passwordless login:
14
- * - Email input field
15
- * - Submit button
16
- * - Success/waiting state
17
- * - Resend link functionality
18
- */
19
- export declare class MagicLinkTemplate extends BaseConsentTemplate {
20
- get authMode(): AuthMode;
21
- private get magicLinkConfig();
22
- renderAuthContent(): string;
23
- /**
24
- * Render email input field.
25
- */
26
- private renderEmailField;
27
- /**
28
- * Override action buttons - form has its own submit.
29
- */
30
- protected renderActionButtons(): string;
31
- protected renderModeScript(): string;
32
- }
33
- //# sourceMappingURL=magic-link.template.d.ts.map
@@ -1,192 +0,0 @@
1
- /**
2
- * Magic Link Template
3
- *
4
- * Passwordless authentication via email link.
5
- *
6
- * @module @kya-os/consent/templates/modes/magic-link
7
- */
8
- import { BaseConsentTemplate } from "../base/base-template.js";
9
- import { renderInput, renderFullWidthButton, renderErrorContainer, } from "../base/components.js";
10
- import { escapeJs } from "../../security/escape.js";
11
- import { AUTH_MODES } from "../../types/modes.types.js";
12
- /**
13
- * Magic Link Template
14
- *
15
- * Renders an email-based passwordless login:
16
- * - Email input field
17
- * - Submit button
18
- * - Success/waiting state
19
- * - Resend link functionality
20
- */
21
- export class MagicLinkTemplate extends BaseConsentTemplate {
22
- get authMode() {
23
- return AUTH_MODES.MAGIC_LINK;
24
- }
25
- get magicLinkConfig() {
26
- return this.config.modeConfig?.magicLink;
27
- }
28
- renderAuthContent() {
29
- const config = this.magicLinkConfig;
30
- return `
31
- <div id="magic-link-form-container">
32
- <form id="magic-link-form" class="space-y-4">
33
- ${this.renderEmailField(config)}
34
- ${renderErrorContainer()}
35
- ${renderFullWidthButton(config?.buttonText || "Send Magic Link", "submit")}
36
- </form>
37
- </div>
38
- <div id="magic-link-sent" class="hidden text-center py-4 space-y-4">
39
- <div class="w-16 h-16 mx-auto rounded-full bg-green-100 flex items-center justify-center">
40
- <svg class="w-8 h-8 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
41
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
42
- </svg>
43
- </div>
44
- <h3 class="text-lg font-semibold text-gray-900">Check your email</h3>
45
- <p class="text-sm text-gray-600">
46
- We've sent a magic link to <span id="sent-email" class="font-medium"></span>.<br/>
47
- Click the link to continue.
48
- </p>
49
- <button type="button" id="resend-btn" class="text-sm link-primary mt-4 disabled:opacity-50">
50
- Resend link
51
- </button>
52
- </div>
53
- `;
54
- }
55
- /**
56
- * Render email input field.
57
- */
58
- renderEmailField(config) {
59
- return renderInput("email", "email", config?.emailLabel || "Email address", config?.emailPlaceholder || "Enter your email", true, "email");
60
- }
61
- /**
62
- * Override action buttons - form has its own submit.
63
- */
64
- renderActionButtons() {
65
- return "";
66
- }
67
- renderModeScript() {
68
- const serverUrl = escapeJs(this.config.serverUrl);
69
- const projectId = escapeJs(this.config.projectId);
70
- const sessionId = escapeJs(this.config.sessionId);
71
- const agentDid = escapeJs(this.config.agentDid);
72
- const tool = escapeJs(this.config.tool);
73
- const scopes = JSON.stringify(this.config.scopes);
74
- const resendCooldown = this.magicLinkConfig?.resendCooldown || 60;
75
- return `
76
- <script>
77
- (function() {
78
- const form = document.getElementById('magic-link-form');
79
- const formContainer = document.getElementById('magic-link-form-container');
80
- const sentContainer = document.getElementById('magic-link-sent');
81
- const sentEmail = document.getElementById('sent-email');
82
- const resendBtn = document.getElementById('resend-btn');
83
- const errorContainer = document.getElementById('error-container');
84
- const errorDiv = errorContainer?.querySelector('div');
85
-
86
- if (!form) return;
87
-
88
- const serverUrl = ${serverUrl};
89
- const cooldown = ${resendCooldown};
90
- let lastEmail = '';
91
- let resendTimer = null;
92
-
93
- async function sendMagicLink(email) {
94
- const data = {
95
- provider_type: 'magic_link',
96
- email: email,
97
- tool: ${tool},
98
- scopes: ${scopes},
99
- agent_did: ${agentDid},
100
- session_id: ${sessionId},
101
- project_id: ${projectId},
102
- };
103
-
104
- const response = await fetch(serverUrl + '/consent/magic-link', {
105
- method: 'POST',
106
- headers: { 'Content-Type': 'application/json' },
107
- body: JSON.stringify(data)
108
- });
109
-
110
- return response.json();
111
- }
112
-
113
- function showSent(email) {
114
- formContainer.classList.add('hidden');
115
- sentContainer.classList.remove('hidden');
116
- sentEmail.textContent = email;
117
-
118
- // Start cooldown
119
- resendBtn.disabled = true;
120
- let remaining = cooldown;
121
- resendBtn.textContent = 'Resend link (' + remaining + 's)';
122
-
123
- resendTimer = setInterval(() => {
124
- remaining--;
125
- if (remaining <= 0) {
126
- clearInterval(resendTimer);
127
- resendBtn.disabled = false;
128
- resendBtn.textContent = 'Resend link';
129
- } else {
130
- resendBtn.textContent = 'Resend link (' + remaining + 's)';
131
- }
132
- }, 1000);
133
- }
134
-
135
- function showError(message) {
136
- if (errorDiv) {
137
- errorDiv.textContent = message;
138
- errorContainer.classList.remove('hidden');
139
- }
140
- }
141
-
142
- form.addEventListener('submit', async function(e) {
143
- e.preventDefault();
144
-
145
- const button = form.querySelector('button[type="submit"]');
146
- const originalText = button.textContent;
147
- const emailInput = form.querySelector('input[name="email"]');
148
- lastEmail = emailInput.value;
149
-
150
- if (errorContainer) errorContainer.classList.add('hidden');
151
- button.disabled = true;
152
- button.textContent = 'Sending...';
153
-
154
- try {
155
- const result = await sendMagicLink(lastEmail);
156
-
157
- if (result.success) {
158
- showSent(lastEmail);
159
- } else {
160
- showError(result.error || 'Failed to send magic link');
161
- button.disabled = false;
162
- button.textContent = originalText;
163
- }
164
- } catch (err) {
165
- showError('Network error. Please try again.');
166
- button.disabled = false;
167
- button.textContent = originalText;
168
- }
169
- });
170
-
171
- resendBtn?.addEventListener('click', async function() {
172
- if (!lastEmail || resendBtn.disabled) return;
173
-
174
- resendBtn.disabled = true;
175
- try {
176
- const result = await sendMagicLink(lastEmail);
177
- if (result.success) {
178
- showSent(lastEmail);
179
- } else {
180
- alert(result.error || 'Failed to resend');
181
- resendBtn.disabled = false;
182
- }
183
- } catch (err) {
184
- alert('Network error');
185
- resendBtn.disabled = false;
186
- }
187
- });
188
- })();
189
- </script>`;
190
- }
191
- }
192
- //# sourceMappingURL=magic-link.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"magic-link.template.js","sourceRoot":"","sources":["../../../src/templates/modes/magic-link.template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,IAAI,QAAQ;QACV,OAAO,UAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;IAC3C,CAAC;IAEQ,iBAAiB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QAEpC,OAAO;;;YAGC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC7B,oBAAoB,EAAE;YACtB,qBAAqB,CAAC,MAAM,EAAE,UAAU,IAAI,iBAAiB,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;;;;KAkB/E,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAwB;QAC/C,OAAO,WAAW,CAChB,OAAO,EACP,OAAO,EACP,MAAM,EAAE,UAAU,IAAI,eAAe,EACrC,MAAM,EAAE,gBAAgB,IAAI,kBAAkB,EAC9C,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACgB,mBAAmB;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAEkB,gBAAgB;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,IAAI,EAAE,CAAC;QAElE,OAAO;;;;;;;;;;;;;sBAaW,SAAS;qBACV,cAAc;;;;;;;;cAQrB,IAAI;gBACF,MAAM;mBACH,QAAQ;oBACP,SAAS;oBACT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwFnB,CAAC;IACT,CAAC;CACF"}
@@ -1,40 +0,0 @@
1
- /**
2
- * OAuth Template
3
- *
4
- * OAuth redirect flow with provider branding.
5
- *
6
- * @module @kya-os/consent/templates/modes/oauth
7
- */
8
- import { BaseConsentTemplate } from "../base/base-template.js";
9
- import type { AuthMode } from "../../types/modes.types.js";
10
- /**
11
- * OAuth Template
12
- *
13
- * Renders an OAuth consent page with:
14
- * - Permission list
15
- * - Expiration notice
16
- * - Provider-branded continue button
17
- */
18
- export declare class OAuthTemplate extends BaseConsentTemplate {
19
- private oauthUrl?;
20
- get authMode(): AuthMode;
21
- /**
22
- * Set the OAuth authorization URL.
23
- */
24
- setOAuthUrl(url: string): void;
25
- private get oauthConfig();
26
- renderAuthContent(): string;
27
- /**
28
- * Render permissions as a simple list.
29
- */
30
- private renderPermissionsList;
31
- /**
32
- * Render expiration notice.
33
- */
34
- private renderExpirationNotice;
35
- /**
36
- * Override action buttons to show OAuth provider button.
37
- */
38
- protected renderActionButtons(): string;
39
- }
40
- //# sourceMappingURL=oauth.template.d.ts.map
@@ -1,149 +0,0 @@
1
- /**
2
- * OAuth Template
3
- *
4
- * OAuth redirect flow with provider branding.
5
- *
6
- * @module @kya-os/consent/templates/modes/oauth
7
- */
8
- import { BaseConsentTemplate } from "../base/base-template.js";
9
- import { renderExpirationNotice } from "../base/components.js";
10
- import { CONSENT_CLASSES } from "../../styles/tokens.js";
11
- import { escapeHtml, escapeAttr } from "../../security/escape.js";
12
- import { AUTH_MODES } from "../../types/modes.types.js";
13
- /**
14
- * OAuth provider branding information.
15
- */
16
- const PROVIDER_BRANDING = {
17
- github: {
18
- color: "#24292e",
19
- name: "GitHub",
20
- icon: `<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>`,
21
- },
22
- google: {
23
- color: "#4285f4",
24
- name: "Google",
25
- icon: `<svg class="w-5 h-5" viewBox="0 0 24 24"><path fill="currentColor" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/><path fill="currentColor" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="currentColor" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="currentColor" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg>`,
26
- },
27
- microsoft: {
28
- color: "#0078d4",
29
- name: "Microsoft",
30
- icon: `<svg class="w-5 h-5" viewBox="0 0 24 24"><path fill="#f35325" d="M1 1h10v10H1z"/><path fill="#81bc06" d="M13 1h10v10H13z"/><path fill="#05a6f0" d="M1 13h10v10H1z"/><path fill="#ffba08" d="M13 13h10v10H13z"/></svg>`,
31
- },
32
- slack: {
33
- color: "#4a154b",
34
- name: "Slack",
35
- icon: `<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>`,
36
- },
37
- auth0: {
38
- color: "#eb5424",
39
- name: "Auth0",
40
- icon: `<svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor"><path d="M21.98 7.448L19.62 0H4.347L2.02 7.448c-1.352 4.312.03 9.206 3.815 12.015L12.007 24l6.157-4.552c3.755-2.81 5.182-7.688 3.815-12.015l-6.16 4.58 2.343 7.45-6.157-4.597-6.158 4.58 2.358-7.433-6.188-4.55 7.63-.045L12.008 0l2.356 7.404 7.615.044z"/></svg>`,
41
- },
42
- };
43
- /**
44
- * OAuth Template
45
- *
46
- * Renders an OAuth consent page with:
47
- * - Permission list
48
- * - Expiration notice
49
- * - Provider-branded continue button
50
- */
51
- export class OAuthTemplate extends BaseConsentTemplate {
52
- get authMode() {
53
- return AUTH_MODES.OAUTH;
54
- }
55
- /**
56
- * Set the OAuth authorization URL.
57
- */
58
- setOAuthUrl(url) {
59
- this.oauthUrl = url;
60
- }
61
- get oauthConfig() {
62
- return this.config.modeConfig?.oauth;
63
- }
64
- renderAuthContent() {
65
- const config = this.oauthConfig;
66
- const providerId = config?.providerId || this.config.provider || "oauth";
67
- const branding = PROVIDER_BRANDING[providerId.toLowerCase()];
68
- return `
69
- <div class="space-y-4">
70
- ${this.renderPermissionsList()}
71
- <div class="pt-2">
72
- <p class="text-sm text-gray-600">
73
- You will be redirected to ${escapeHtml(branding?.name || config?.providerName || "the identity provider")} to authenticate.
74
- </p>
75
- </div>
76
- ${this.renderExpirationNotice()}
77
- </div>
78
- `;
79
- }
80
- /**
81
- * Render permissions as a simple list.
82
- */
83
- renderPermissionsList() {
84
- const { scopes } = this.config;
85
- if (scopes.length === 0)
86
- return "";
87
- const items = scopes.map((s) => `<li>${escapeHtml(s)}</li>`).join("");
88
- return `
89
- <div class="space-y-2">
90
- <p class="text-sm font-medium text-gray-700">Requested permissions:</p>
91
- <ul class="list-disc list-inside text-sm text-gray-600 space-y-1">
92
- ${items}
93
- </ul>
94
- </div>
95
- `;
96
- }
97
- /**
98
- * Render expiration notice.
99
- */
100
- renderExpirationNotice() {
101
- const { copy } = this.resolved;
102
- const expirationDays = this.resolved.expirationDays || 30;
103
- return renderExpirationNotice(copy.expirationText, expirationDays);
104
- }
105
- /**
106
- * Override action buttons to show OAuth provider button.
107
- */
108
- renderActionButtons() {
109
- const config = this.oauthConfig;
110
- const providerId = config?.providerId || this.config.provider || "oauth";
111
- const branding = PROVIDER_BRANDING[providerId.toLowerCase()];
112
- const buttonText = config?.buttonText ||
113
- `Continue with ${branding?.name || config?.providerName || "Provider"}`;
114
- const { copy } = this.resolved;
115
- // If OAuth URL is set, use a direct link
116
- const oauthUrl = this.oauthUrl || this.config.oauthUrl;
117
- if (oauthUrl) {
118
- const buttonStyle = branding
119
- ? `style="background-color: ${branding.color}"`
120
- : "";
121
- return `
122
- <div class="${CONSENT_CLASSES.buttonGroup}">
123
- <button type="button" onclick="window.close()" class="${CONSENT_CLASSES.buttonSecondary}">
124
- ${escapeHtml(copy.cancelButtonText)}
125
- </button>
126
- <a href="${escapeAttr(oauthUrl)}"
127
- class="${CONSENT_CLASSES.buttonPrimary} flex items-center justify-center gap-2"
128
- ${buttonStyle}>
129
- ${branding?.icon || ""}
130
- ${escapeHtml(buttonText)}
131
- </a>
132
- </div>
133
- `;
134
- }
135
- // Fallback to standard buttons
136
- return `
137
- <div class="${CONSENT_CLASSES.buttonGroup}">
138
- <button type="button" onclick="window.close()" class="${CONSENT_CLASSES.buttonSecondary}">
139
- ${escapeHtml(copy.cancelButtonText)}
140
- </button>
141
- <button type="submit" class="${CONSENT_CLASSES.buttonPrimary} btn-primary flex items-center justify-center gap-2">
142
- ${branding?.icon || ""}
143
- ${escapeHtml(buttonText)}
144
- </button>
145
- </div>
146
- `;
147
- }
148
- }
149
- //# sourceMappingURL=oauth.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth.template.js","sourceRoot":"","sources":["../../../src/templates/modes/oauth.template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD;;GAEG;AACH,MAAM,iBAAiB,GAGnB;IACF,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,0xBAA0xB;KACjyB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,6qBAA6qB;KACprB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,uNAAuN;KAC9N;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,ukCAAukC;KAC9kC;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,iUAAiU;KACxU;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IAGpD,IAAI,QAAQ;QACV,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACtB,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC;IACvC,CAAC;IAEQ,iBAAiB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC;QACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAE7D,OAAO;;UAED,IAAI,CAAC,qBAAqB,EAAE;;;wCAGE,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,YAAY,IAAI,uBAAuB,CAAC;;;UAG3G,IAAI,CAAC,sBAAsB,EAAE;;KAElC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtE,OAAO;;;;YAIC,KAAK;;;KAGZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,sBAAsB;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;QAC1D,OAAO,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACgB,mBAAmB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC;QACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,MAAM,UAAU,GACd,MAAM,EAAE,UAAU;YAClB,iBAAiB,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,YAAY,IAAI,UAAU,EAAE,CAAC;QAE1E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEvD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,QAAQ;gBAC1B,CAAC,CAAC,4BAA4B,QAAQ,CAAC,KAAK,GAAG;gBAC/C,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO;sBACS,eAAe,CAAC,WAAW;kEACiB,eAAe,CAAC,eAAe;cACnF,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC;;qBAE1B,UAAU,CAAC,QAAQ,CAAC;sBACnB,eAAe,CAAC,aAAa;eACpC,WAAW;cACZ,QAAQ,EAAE,IAAI,IAAI,EAAE;cACpB,UAAU,CAAC,UAAU,CAAC;;;OAG7B,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,OAAO;oBACS,eAAe,CAAC,WAAW;gEACiB,eAAe,CAAC,eAAe;YACnF,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC;;uCAEN,eAAe,CAAC,aAAa;YACxD,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,UAAU,CAAC,UAAU,CAAC;;;KAG7B,CAAC;IACJ,CAAC;CACF"}
@@ -1,35 +0,0 @@
1
- /**
2
- * OTP Template
3
- *
4
- * One-Time Password authentication via SMS/email.
5
- *
6
- * @module @kya-os/consent/templates/modes/otp
7
- */
8
- import { BaseConsentTemplate } from "../base/base-template.js";
9
- import type { AuthMode } from "../../types/modes.types.js";
10
- /**
11
- * OTP Template
12
- *
13
- * Renders a two-step OTP flow:
14
- * 1. Phone/email input to request code
15
- * 2. Code input to verify
16
- */
17
- export declare class OTPTemplate extends BaseConsentTemplate {
18
- get authMode(): AuthMode;
19
- private get otpConfig();
20
- renderAuthContent(): string;
21
- /**
22
- * Render phone/email input field.
23
- */
24
- private renderPhoneField;
25
- /**
26
- * Render OTP digit input boxes.
27
- */
28
- private renderOTPInputs;
29
- /**
30
- * Override action buttons - form has its own submit.
31
- */
32
- protected renderActionButtons(): string;
33
- protected renderModeScript(): string;
34
- }
35
- //# sourceMappingURL=otp.template.d.ts.map