@kya-os/consent 0.1.38 → 0.1.39
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.
- package/dist/bundle/index.d.ts +12 -0
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +12 -0
- package/dist/bundle/index.js.map +1 -1
- package/dist/bundle/inline.d.ts.map +1 -1
- package/dist/bundle/inline.js +2 -2
- package/dist/bundle/inline.js.map +1 -1
- package/dist/bundle/shell.d.ts +23 -0
- package/dist/bundle/shell.d.ts.map +1 -1
- package/dist/bundle/shell.js +25 -1
- package/dist/bundle/shell.js.map +1 -1
- package/dist/capabilities/index.d.ts +7 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +7 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +29 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +178 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/cedar/compile.d.ts +30 -0
- package/dist/cedar/compile.d.ts.map +1 -0
- package/dist/cedar/compile.js +55 -0
- package/dist/cedar/compile.js.map +1 -0
- package/dist/cedar/explain.d.ts +22 -0
- package/dist/cedar/explain.d.ts.map +1 -0
- package/dist/cedar/explain.js +72 -0
- package/dist/cedar/explain.js.map +1 -0
- package/dist/cedar/index.d.ts +8 -0
- package/dist/cedar/index.d.ts.map +1 -0
- package/dist/cedar/index.js +8 -0
- package/dist/cedar/index.js.map +1 -0
- package/dist/cjs/bundle/index.js +19 -1
- package/dist/cjs/bundle/index.js.map +1 -1
- package/dist/cjs/bundle/inline.js +2 -2
- package/dist/cjs/bundle/inline.js.map +1 -1
- package/dist/cjs/bundle/shell.js +25 -1
- package/dist/cjs/bundle/shell.js.map +1 -1
- package/dist/cjs/capabilities/index.js +12 -0
- package/dist/cjs/capabilities/index.js.map +1 -0
- package/dist/cjs/capabilities/registry.js +182 -0
- package/dist/cjs/capabilities/registry.js.map +1 -0
- package/dist/cjs/cedar/compile.js +59 -0
- package/dist/cjs/cedar/compile.js.map +1 -0
- package/dist/cjs/cedar/explain.js +75 -0
- package/dist/cjs/cedar/explain.js.map +1 -0
- package/dist/cjs/cedar/index.js +14 -0
- package/dist/cjs/cedar/index.js.map +1 -0
- package/dist/cjs/components/consent-action-bar.js +138 -0
- package/dist/cjs/components/consent-action-bar.js.map +1 -0
- package/dist/cjs/components/consent-agent-header.js +205 -0
- package/dist/cjs/components/consent-agent-header.js.map +1 -0
- package/dist/cjs/components/consent-capabilities-screen.js +309 -0
- package/dist/cjs/components/consent-capabilities-screen.js.map +1 -0
- package/dist/cjs/components/consent-capability-card.js +340 -0
- package/dist/cjs/components/consent-capability-card.js.map +1 -0
- package/dist/cjs/components/consent-footer.js +99 -0
- package/dist/cjs/components/consent-footer.js.map +1 -0
- package/dist/cjs/components/consent-revocation-notice.js +101 -0
- package/dist/cjs/components/consent-revocation-notice.js.map +1 -0
- package/dist/cjs/components/index.js +14 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/mcp-consent.js +176 -7
- package/dist/cjs/components/mcp-consent.js.map +1 -1
- package/dist/cjs/copy/index.js +12 -0
- package/dist/cjs/copy/index.js.map +1 -0
- package/dist/cjs/copy/tokens.js +101 -0
- package/dist/cjs/copy/tokens.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mcp-app/inline.js +2 -2
- package/dist/cjs/mcp-app/inline.js.map +1 -1
- package/dist/cjs/popup/index.js +15 -0
- package/dist/cjs/popup/index.js.map +1 -0
- package/dist/cjs/popup/launcher.js +77 -0
- package/dist/cjs/popup/launcher.js.map +1 -0
- package/dist/cjs/schemas/capabilities.schemas.js +129 -0
- package/dist/cjs/schemas/capabilities.schemas.js.map +1 -0
- package/dist/cjs/schemas/config.schemas.js +18 -0
- package/dist/cjs/schemas/config.schemas.js.map +1 -1
- package/dist/cjs/schemas/index.js +1 -0
- package/dist/cjs/schemas/index.js.map +1 -1
- package/dist/cjs/styles/index.js +1 -0
- package/dist/cjs/styles/index.js.map +1 -1
- package/dist/cjs/styles/theme.js +86 -0
- package/dist/cjs/styles/theme.js.map +1 -0
- package/dist/cjs/types/capabilities.types.js +12 -0
- package/dist/cjs/types/capabilities.types.js.map +1 -0
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/components/consent-action-bar.d.ts +30 -0
- package/dist/components/consent-action-bar.d.ts.map +1 -0
- package/dist/components/consent-action-bar.js +135 -0
- package/dist/components/consent-action-bar.js.map +1 -0
- package/dist/components/consent-agent-header.d.ts +31 -0
- package/dist/components/consent-agent-header.d.ts.map +1 -0
- package/dist/components/consent-agent-header.js +202 -0
- package/dist/components/consent-agent-header.js.map +1 -0
- package/dist/components/consent-capabilities-screen.d.ts +62 -0
- package/dist/components/consent-capabilities-screen.d.ts.map +1 -0
- package/dist/components/consent-capabilities-screen.js +306 -0
- package/dist/components/consent-capabilities-screen.js.map +1 -0
- package/dist/components/consent-capability-card.d.ts +44 -0
- package/dist/components/consent-capability-card.d.ts.map +1 -0
- package/dist/components/consent-capability-card.js +337 -0
- package/dist/components/consent-capability-card.js.map +1 -0
- package/dist/components/consent-footer.d.ts +22 -0
- package/dist/components/consent-footer.d.ts.map +1 -0
- package/dist/components/consent-footer.js +96 -0
- package/dist/components/consent-footer.js.map +1 -0
- package/dist/components/consent-revocation-notice.d.ts +22 -0
- package/dist/components/consent-revocation-notice.d.ts.map +1 -0
- package/dist/components/consent-revocation-notice.js +98 -0
- package/dist/components/consent-revocation-notice.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/mcp-consent.d.ts +41 -0
- package/dist/components/mcp-consent.d.ts.map +1 -1
- package/dist/components/mcp-consent.js +176 -7
- package/dist/components/mcp-consent.js.map +1 -1
- package/dist/consent.js +1374 -7
- package/dist/consent.min.js +727 -96
- package/dist/copy/index.d.ts +8 -0
- package/dist/copy/index.d.ts.map +1 -0
- package/dist/copy/index.js +7 -0
- package/dist/copy/index.js.map +1 -0
- package/dist/copy/tokens.d.ts +93 -0
- package/dist/copy/tokens.d.ts.map +1 -0
- package/dist/copy/tokens.js +97 -0
- package/dist/copy/tokens.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-app/inline.d.ts.map +1 -1
- package/dist/mcp-app/inline.js +2 -2
- package/dist/mcp-app/inline.js.map +1 -1
- package/dist/popup/index.d.ts +8 -0
- package/dist/popup/index.d.ts.map +1 -0
- package/dist/popup/index.js +7 -0
- package/dist/popup/index.js.map +1 -0
- package/dist/popup/launcher.d.ts +81 -0
- package/dist/popup/launcher.d.ts.map +1 -0
- package/dist/popup/launcher.js +71 -0
- package/dist/popup/launcher.js.map +1 -0
- package/dist/schemas/api.schemas.d.ts +354 -150
- package/dist/schemas/api.schemas.d.ts.map +1 -1
- package/dist/schemas/capabilities.schemas.d.ts +186 -0
- package/dist/schemas/capabilities.schemas.d.ts.map +1 -0
- package/dist/schemas/capabilities.schemas.js +123 -0
- package/dist/schemas/capabilities.schemas.js.map +1 -0
- package/dist/schemas/config.schemas.d.ts +452 -156
- package/dist/schemas/config.schemas.d.ts.map +1 -1
- package/dist/schemas/config.schemas.js +18 -0
- package/dist/schemas/config.schemas.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/index.js +1 -0
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/theme.d.ts +72 -0
- package/dist/styles/theme.d.ts.map +1 -0
- package/dist/styles/theme.js +81 -0
- package/dist/styles/theme.js.map +1 -0
- package/dist/types/capabilities.types.d.ts +126 -0
- package/dist/types/capabilities.types.d.ts.map +1 -0
- package/dist/types/capabilities.types.js +11 -0
- package/dist/types/capabilities.types.js.map +1 -0
- package/dist/types/config.types.d.ts +33 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../src/bundle/inline.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH;;;GAGG;AACU,QAAA,cAAc,GAAW,
|
|
1
|
+
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../src/bundle/inline.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH;;;GAGG;AACU,QAAA,cAAc,GAAW,u68PAAu68P,CAAC;AAE988P;;GAEG;AACU,QAAA,mBAAmB,GAAW,MAAM,CAAC"}
|
package/dist/cjs/bundle/shell.js
CHANGED
|
@@ -45,18 +45,32 @@ const escape_js_1 = require("../security/escape.js");
|
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
function generateConsentShell(options) {
|
|
48
|
-
const { config, tool, scopes, agentDid, sessionId, projectId, serverUrl, oauthIdentity, bundlePath = '/consent.js', pageTitle = 'Permission Request', nonce, authMode, provider, csrfToken, credentialProviderType, credentialProvider, userDid, // CRITICAL: Bypasses KV consistency issues
|
|
48
|
+
const { config, tool, scopes, agentDid, sessionId, projectId, serverUrl, oauthIdentity, bundlePath = '/consent.js', pageTitle = 'Permission Request', nonce, authMode, agentName, provider, csrfToken, credentialProviderType, credentialProvider, userDid, // CRITICAL: Bypasses KV consistency issues
|
|
49
49
|
credentialUserEmail, // User email from credential provider
|
|
50
50
|
credentialProviderUserId, // Provider's user ID (e.g., customer ID)
|
|
51
51
|
oauthUrl, // Pre-built OAuth authorization URL
|
|
52
52
|
authorizationType, // Dynamic authorization type from tool protection
|
|
53
53
|
oauthProviderType, // OAuth provider type from prior OAuth auth step
|
|
54
54
|
oauthProviderName, // OAuth provider name (e.g., 'custom', 'github')
|
|
55
|
+
capabilities, // Operator-authored capability groups (humanized layout)
|
|
56
|
+
agentMetadata, // Resolved agent identity tile
|
|
57
|
+
consentTheme, // Theme override (`light`/`dark`)
|
|
58
|
+
orgName, // Org name for headline + footer
|
|
59
|
+
headlineVerb, // Operator-set headline verb
|
|
60
|
+
revocationPath, // Path the user can visit to revoke
|
|
61
|
+
inactivityDays, // Days of inactivity before auto-revocation
|
|
62
|
+
howItWorksUrl, // URL backing "How does this work?"
|
|
63
|
+
cedarContext, // Cedar template context for "View policy" disclosures
|
|
55
64
|
} = options;
|
|
56
65
|
// Safely serialize config as JSON for attribute
|
|
57
66
|
const configJson = JSON.stringify(config);
|
|
58
67
|
const scopesJson = JSON.stringify(scopes);
|
|
59
68
|
const oauthJson = oauthIdentity ? JSON.stringify(oauthIdentity) : null;
|
|
69
|
+
const capabilitiesJson = capabilities && capabilities.length > 0 ? JSON.stringify(capabilities) : null;
|
|
70
|
+
const agentMetadataJson = agentMetadata
|
|
71
|
+
? JSON.stringify(agentMetadata)
|
|
72
|
+
: null;
|
|
73
|
+
const cedarContextJson = cedarContext ? JSON.stringify(cedarContext) : null;
|
|
60
74
|
// Build nonce attribute if provided
|
|
61
75
|
const nonceAttr = nonce ? ` nonce="${(0, escape_js_1.escapeAttr)(nonce)}"` : '';
|
|
62
76
|
return `<!DOCTYPE html>
|
|
@@ -196,6 +210,7 @@ function generateConsentShell(options) {
|
|
|
196
210
|
server-url="${(0, escape_js_1.escapeAttr)(serverUrl)}"
|
|
197
211
|
${oauthJson ? `oauth-identity='${(0, escape_js_1.escapeAttr)(oauthJson)}'` : ''}
|
|
198
212
|
${authMode ? `auth-mode="${(0, escape_js_1.escapeAttr)(authMode)}"` : ''}
|
|
213
|
+
${agentName ? `agent-name="${(0, escape_js_1.escapeAttr)(agentName)}"` : ''}
|
|
199
214
|
${provider ? `provider="${(0, escape_js_1.escapeAttr)(provider)}"` : ''}
|
|
200
215
|
${csrfToken ? `csrf-token="${(0, escape_js_1.escapeAttr)(csrfToken)}"` : ''}
|
|
201
216
|
${credentialProviderType ? `credential-provider-type="${(0, escape_js_1.escapeAttr)(credentialProviderType)}"` : ''}
|
|
@@ -207,6 +222,15 @@ function generateConsentShell(options) {
|
|
|
207
222
|
${authorizationType ? `authorization-type="${(0, escape_js_1.escapeAttr)(authorizationType)}"` : ''}
|
|
208
223
|
${oauthProviderType ? `oauth-provider-type="${(0, escape_js_1.escapeAttr)(oauthProviderType)}"` : ''}
|
|
209
224
|
${oauthProviderName ? `oauth-provider="${(0, escape_js_1.escapeAttr)(oauthProviderName)}"` : ''}
|
|
225
|
+
${capabilitiesJson ? `capabilities='${(0, escape_js_1.escapeAttr)(capabilitiesJson)}'` : ''}
|
|
226
|
+
${agentMetadataJson ? `agent-metadata='${(0, escape_js_1.escapeAttr)(agentMetadataJson)}'` : ''}
|
|
227
|
+
${cedarContextJson ? `cedar-context='${(0, escape_js_1.escapeAttr)(cedarContextJson)}'` : ''}
|
|
228
|
+
${consentTheme ? `consent-theme="${(0, escape_js_1.escapeAttr)(consentTheme)}"` : ''}
|
|
229
|
+
${orgName ? `org-name="${(0, escape_js_1.escapeAttr)(orgName)}"` : ''}
|
|
230
|
+
${headlineVerb ? `headline-verb="${(0, escape_js_1.escapeAttr)(headlineVerb)}"` : ''}
|
|
231
|
+
${revocationPath ? `revocation-path="${(0, escape_js_1.escapeAttr)(revocationPath)}"` : ''}
|
|
232
|
+
${typeof inactivityDays === 'number' ? `inactivity-days="${(0, escape_js_1.escapeAttr)(String(inactivityDays))}"` : ''}
|
|
233
|
+
${howItWorksUrl ? `how-it-works-url="${(0, escape_js_1.escapeAttr)(howItWorksUrl)}"` : ''}
|
|
210
234
|
></mcp-consent>
|
|
211
235
|
|
|
212
236
|
<!-- Loading skeleton (hidden once component is defined) -->
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/bundle/shell.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/bundle/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Capability registry exports.
|
|
4
|
+
*
|
|
5
|
+
* @module @kya-os/consent/capabilities
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.resolveCapabilitiesForScopes = exports.DEFAULT_CAPABILITIES = void 0;
|
|
9
|
+
var registry_js_1 = require("./registry.js");
|
|
10
|
+
Object.defineProperty(exports, "DEFAULT_CAPABILITIES", { enumerable: true, get: function () { return registry_js_1.DEFAULT_CAPABILITIES; } });
|
|
11
|
+
Object.defineProperty(exports, "resolveCapabilitiesForScopes", { enumerable: true, get: function () { return registry_js_1.resolveCapabilitiesForScopes; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAAmF;AAA1E,mHAAA,oBAAoB,OAAA;AAAE,2HAAA,4BAA4B,OAAA"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Default Capability Registry
|
|
4
|
+
*
|
|
5
|
+
* Built-in capability definitions for common scopes. Operators override these
|
|
6
|
+
* via the WYSIWYG editor; the registry is the seed and the fallback when no
|
|
7
|
+
* override is present.
|
|
8
|
+
*
|
|
9
|
+
* Each default capability ships with an operator-authored Cedar fragment that
|
|
10
|
+
* uses templated placeholders ({{agent_did}}, {{user_did}}, {{org}},
|
|
11
|
+
* {{deployment}}). Placeholders are bound at compile time via
|
|
12
|
+
* `compileSingleCapability` / `compileCapabilitiesToCedar`.
|
|
13
|
+
*
|
|
14
|
+
* @module @kya-os/consent/capabilities/registry
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DEFAULT_CAPABILITIES = void 0;
|
|
18
|
+
exports.resolveCapabilitiesForScopes = resolveCapabilitiesForScopes;
|
|
19
|
+
/**
|
|
20
|
+
* Default capabilities keyed by capability id. Each entry is a complete
|
|
21
|
+
* `Capability` record, ready to render or to use as a template the operator
|
|
22
|
+
* customizes in the WYSIWYG.
|
|
23
|
+
*/
|
|
24
|
+
exports.DEFAULT_CAPABILITIES = {
|
|
25
|
+
"cart.browse": {
|
|
26
|
+
id: "cart.browse",
|
|
27
|
+
label: "Browse products and check prices",
|
|
28
|
+
description: "Look at what's for sale, see what's in stock, and compare options.",
|
|
29
|
+
icon: "search",
|
|
30
|
+
riskLevel: "low",
|
|
31
|
+
defaultOn: true,
|
|
32
|
+
cedar: [
|
|
33
|
+
"permit (",
|
|
34
|
+
' principal == Agent::"{{agent_did}}",',
|
|
35
|
+
" action in [",
|
|
36
|
+
' Action::"get-products:execute",',
|
|
37
|
+
' Action::"get-cart:execute",',
|
|
38
|
+
' Action::"get-brands:execute",',
|
|
39
|
+
' Action::"get-brand:execute"',
|
|
40
|
+
" ],",
|
|
41
|
+
' resource in Org::"{{org}}"::Catalog::"*"',
|
|
42
|
+
");",
|
|
43
|
+
].join("\n"),
|
|
44
|
+
scopes: [
|
|
45
|
+
"get-products:execute",
|
|
46
|
+
"get-cart:execute",
|
|
47
|
+
"get-brands:execute",
|
|
48
|
+
"get-brand:execute",
|
|
49
|
+
],
|
|
50
|
+
category: "Browse",
|
|
51
|
+
},
|
|
52
|
+
"cart.add": {
|
|
53
|
+
id: "cart.add",
|
|
54
|
+
label: "Add items to your cart",
|
|
55
|
+
description: "Put things in your shopping cart so you can review before buying.",
|
|
56
|
+
icon: "cart",
|
|
57
|
+
riskLevel: "medium",
|
|
58
|
+
defaultOn: true,
|
|
59
|
+
cedar: [
|
|
60
|
+
"permit (",
|
|
61
|
+
' principal == Agent::"{{agent_did}}",',
|
|
62
|
+
' action == Action::"add-to-cart:execute",',
|
|
63
|
+
' resource in Org::"{{org}}"::Cart::"*"',
|
|
64
|
+
");",
|
|
65
|
+
].join("\n"),
|
|
66
|
+
scopes: ["add-to-cart:execute"],
|
|
67
|
+
category: "Cart",
|
|
68
|
+
},
|
|
69
|
+
"payment.use-saved": {
|
|
70
|
+
id: "payment.use-saved",
|
|
71
|
+
label: "Use your saved payment methods",
|
|
72
|
+
description: "Pay with cards already on your account. The agent never sees the card numbers.",
|
|
73
|
+
icon: "card",
|
|
74
|
+
riskLevel: "high",
|
|
75
|
+
defaultOn: true,
|
|
76
|
+
cedar: [
|
|
77
|
+
"permit (",
|
|
78
|
+
' principal == Agent::"{{agent_did}}",',
|
|
79
|
+
' action == Action::"payment:use-saved",',
|
|
80
|
+
' resource in User::"{{user_did}}"::PaymentMethod::"saved"',
|
|
81
|
+
");",
|
|
82
|
+
].join("\n"),
|
|
83
|
+
scopes: ["payment:use-saved"],
|
|
84
|
+
category: "Checkout",
|
|
85
|
+
},
|
|
86
|
+
"shipping.use-saved": {
|
|
87
|
+
id: "shipping.use-saved",
|
|
88
|
+
label: "Ship to your saved addresses",
|
|
89
|
+
description: "Send orders only to addresses already on file — your home, your office, etc.",
|
|
90
|
+
icon: "pin",
|
|
91
|
+
riskLevel: "medium",
|
|
92
|
+
defaultOn: true,
|
|
93
|
+
cedar: [
|
|
94
|
+
"permit (",
|
|
95
|
+
' principal == Agent::"{{agent_did}}",',
|
|
96
|
+
' action == Action::"shipping:use-saved",',
|
|
97
|
+
' resource in User::"{{user_did}}"::Address::"saved"',
|
|
98
|
+
");",
|
|
99
|
+
].join("\n"),
|
|
100
|
+
scopes: ["shipping:use-saved"],
|
|
101
|
+
category: "Checkout",
|
|
102
|
+
},
|
|
103
|
+
"shipping.new": {
|
|
104
|
+
id: "shipping.new",
|
|
105
|
+
label: "Ship to new addresses",
|
|
106
|
+
description: "Send orders to places you've never shipped to before. Off by default — turn on only if you want the agent to ship gifts or deliver to new locations.",
|
|
107
|
+
icon: "pin-new",
|
|
108
|
+
riskLevel: "high",
|
|
109
|
+
defaultOn: false,
|
|
110
|
+
cedar: [
|
|
111
|
+
"permit (",
|
|
112
|
+
' principal == Agent::"{{agent_did}}",',
|
|
113
|
+
' action == Action::"shipping:ship-new",',
|
|
114
|
+
' resource in User::"{{user_did}}"::Address::"new"',
|
|
115
|
+
");",
|
|
116
|
+
].join("\n"),
|
|
117
|
+
scopes: ["shipping:ship-new"],
|
|
118
|
+
category: "Checkout",
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Resolve a list of scopes to capability records. Operator overrides win over
|
|
123
|
+
* the default registry; scopes that match no capability fall through as
|
|
124
|
+
* "unknown" capabilities so the consent screen can still render them as raw
|
|
125
|
+
* permission rows.
|
|
126
|
+
*/
|
|
127
|
+
function resolveCapabilitiesForScopes(scopes, overrides = []) {
|
|
128
|
+
const indexedOverrides = new Map();
|
|
129
|
+
for (const override of overrides) {
|
|
130
|
+
indexedOverrides.set(override.id, override);
|
|
131
|
+
for (const scope of override.scopes) {
|
|
132
|
+
indexedOverrides.set(`scope:${scope}`, override);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const matched = new Map();
|
|
136
|
+
const unmatchedScopes = [];
|
|
137
|
+
for (const scope of scopes) {
|
|
138
|
+
const overrideMatch = indexedOverrides.get(`scope:${scope}`);
|
|
139
|
+
if (overrideMatch) {
|
|
140
|
+
matched.set(overrideMatch.id, overrideMatch);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
const defaultMatch = Object.values(exports.DEFAULT_CAPABILITIES).find((c) => c.scopes.includes(scope));
|
|
144
|
+
if (defaultMatch) {
|
|
145
|
+
const override = indexedOverrides.get(defaultMatch.id);
|
|
146
|
+
matched.set(defaultMatch.id, override ?? defaultMatch);
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
unmatchedScopes.push(scope);
|
|
150
|
+
}
|
|
151
|
+
const resolved = Array.from(matched.values());
|
|
152
|
+
for (const scope of unmatchedScopes) {
|
|
153
|
+
resolved.push(buildUnknownCapability(scope));
|
|
154
|
+
}
|
|
155
|
+
return resolved;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Build a placeholder capability for a scope we don't recognize. Keeps the
|
|
159
|
+
* consent screen renderable for never-before-seen scopes without crashing.
|
|
160
|
+
*/
|
|
161
|
+
function buildUnknownCapability(scope) {
|
|
162
|
+
const label = scope
|
|
163
|
+
.replace(/[_:.-]/g, " ")
|
|
164
|
+
.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
165
|
+
return {
|
|
166
|
+
id: `unknown.${scope.replace(/[^a-z0-9]/gi, "-").toLowerCase()}`,
|
|
167
|
+
label,
|
|
168
|
+
description: `Permission required by the ${scope} scope.`,
|
|
169
|
+
icon: "neutral",
|
|
170
|
+
riskLevel: "medium",
|
|
171
|
+
defaultOn: false,
|
|
172
|
+
cedar: [
|
|
173
|
+
"permit (",
|
|
174
|
+
' principal == Agent::"{{agent_did}}",',
|
|
175
|
+
` action == Action::"${scope}",`,
|
|
176
|
+
' resource in Org::"{{org}}"::Resource::"*"',
|
|
177
|
+
");",
|
|
178
|
+
].join("\n"),
|
|
179
|
+
scopes: [scope],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/capabilities/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cedar Policy Compilation
|
|
4
|
+
*
|
|
5
|
+
* Pure-string composition of Cedar policy fragments. We compile the granted
|
|
6
|
+
* `Capability[]` into one Cedar policy (a) attached as `cedarPolicy` claim on
|
|
7
|
+
* the delegation VC, (b) shown in the success-screen "View policy" disclosure.
|
|
8
|
+
*
|
|
9
|
+
* No `@cedar-policy/cedar-wasm` dependency — this module only emits Cedar
|
|
10
|
+
* source text. Runtime evaluation, if ever added, lives elsewhere.
|
|
11
|
+
*
|
|
12
|
+
* @module @kya-os/consent/cedar/compile
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.compileSingleCapability = compileSingleCapability;
|
|
16
|
+
exports.compileCapabilitiesToCedar = compileCapabilitiesToCedar;
|
|
17
|
+
const PLACEHOLDER_PATTERN = /\{\{\s*(agent_did|user_did|org|deployment)\s*\}\}/g;
|
|
18
|
+
/**
|
|
19
|
+
* Compile a single capability's Cedar fragment by binding placeholders to the
|
|
20
|
+
* given template context. Used by the per-row "View policy" disclosure so the
|
|
21
|
+
* end user sees the same exact Cedar source that lands on the VC.
|
|
22
|
+
*
|
|
23
|
+
* Throws when the fragment references an unknown placeholder or when the
|
|
24
|
+
* compiled output is empty.
|
|
25
|
+
*/
|
|
26
|
+
function compileSingleCapability(capability, context) {
|
|
27
|
+
const compiled = capability.cedar.replace(PLACEHOLDER_PATTERN, (_, key) => {
|
|
28
|
+
const value = context[key];
|
|
29
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
30
|
+
throw new Error(`Cedar template context missing required value for placeholder \`${key}\``);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
});
|
|
34
|
+
if (compiled.trim().length === 0) {
|
|
35
|
+
throw new Error(`Cedar fragment for capability \`${capability.id}\` is empty after compilation`);
|
|
36
|
+
}
|
|
37
|
+
return compiled;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Compile the granted capability set into one Cedar policy ready to attach to
|
|
41
|
+
* a delegation VC. Each capability's fragment is bound and concatenated with
|
|
42
|
+
* a comment header that records the capability id and label, so reviewers can
|
|
43
|
+
* map a `permit (...)` block back to the row the user clicked.
|
|
44
|
+
*/
|
|
45
|
+
function compileCapabilitiesToCedar(grants, context) {
|
|
46
|
+
if (grants.length === 0) {
|
|
47
|
+
return "";
|
|
48
|
+
}
|
|
49
|
+
const blocks = grants.map((grant) => {
|
|
50
|
+
const compiled = compileSingleCapability(grant, context);
|
|
51
|
+
return [
|
|
52
|
+
`// capability: ${grant.id} — ${grant.label}`,
|
|
53
|
+
`// risk: ${grant.riskLevel}; default-on: ${String(grant.defaultOn)}`,
|
|
54
|
+
compiled.trim(),
|
|
55
|
+
].join("\n");
|
|
56
|
+
});
|
|
57
|
+
return blocks.join("\n\n");
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/cedar/compile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAiBH,0DAqBC;AAQD,gEAkBC;AAzDD,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AAEjF;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CACrC,UAAsB,EACtB,OAA6B;IAE7B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE;QAChF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAiC,CAAC,CAAC;QACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,mEAAmE,GAAG,IAAI,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,CAAC,EAAE,+BAA+B,CAChF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CACxC,MAAoB,EACpB,OAA6B;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO;YACL,kBAAkB,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE;YAC7C,YAAY,KAAK,CAAC,SAAS,iBAAiB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACrE,QAAQ,CAAC,IAAI,EAAE;SAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cedar Policy Plain-Language Gloss
|
|
4
|
+
*
|
|
5
|
+
* Extracts a human-readable summary from a Cedar fragment so the per-row
|
|
6
|
+
* "View policy" disclosure can display both the raw Cedar and a sentence the
|
|
7
|
+
* end user can parse without knowing Cedar.
|
|
8
|
+
*
|
|
9
|
+
* The implementation is intentionally regex-based and tolerant. We never
|
|
10
|
+
* promise to gloss every Cedar feature — we promise the gloss is *useful*
|
|
11
|
+
* for the fragments we ship and authors typically write, and that the
|
|
12
|
+
* function never throws on novel input (it returns best-effort fields).
|
|
13
|
+
*
|
|
14
|
+
* @module @kya-os/consent/cedar/explain
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.explainCedarFragment = explainCedarFragment;
|
|
18
|
+
const ACTION_SINGLE = /action\s*==\s*Action::"([^"]+)"/g;
|
|
19
|
+
const ACTION_LIST = /action\s+in\s*\[([^\]]+)\]/g;
|
|
20
|
+
const ACTION_STRING_IN_LIST = /Action::"([^"]+)"/g;
|
|
21
|
+
const RESOURCE_IN = /resource\s+in\s+([^,)\n]+)/i;
|
|
22
|
+
const RESOURCE_EQ = /resource\s*==\s*([^,)\n]+)/i;
|
|
23
|
+
const CONDITION_BLOCK = /(when|unless)\s*\{([^}]+)\}/g;
|
|
24
|
+
/**
|
|
25
|
+
* Extract actions, resource expression, and condition clauses from a Cedar
|
|
26
|
+
* fragment. Returns best-effort fields; missing elements come back empty
|
|
27
|
+
* rather than throwing.
|
|
28
|
+
*/
|
|
29
|
+
function explainCedarFragment(cedar) {
|
|
30
|
+
return {
|
|
31
|
+
actions: extractActions(cedar),
|
|
32
|
+
resource: extractResource(cedar),
|
|
33
|
+
conditions: extractConditions(cedar),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function extractActions(cedar) {
|
|
37
|
+
const actions = new Set();
|
|
38
|
+
for (const match of cedar.matchAll(ACTION_SINGLE)) {
|
|
39
|
+
if (match[1])
|
|
40
|
+
actions.add(match[1]);
|
|
41
|
+
}
|
|
42
|
+
for (const listMatch of cedar.matchAll(ACTION_LIST)) {
|
|
43
|
+
const inner = listMatch[1];
|
|
44
|
+
if (!inner)
|
|
45
|
+
continue;
|
|
46
|
+
for (const stringMatch of inner.matchAll(ACTION_STRING_IN_LIST)) {
|
|
47
|
+
if (stringMatch[1])
|
|
48
|
+
actions.add(stringMatch[1]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return Array.from(actions);
|
|
52
|
+
}
|
|
53
|
+
function extractResource(cedar) {
|
|
54
|
+
const inMatch = RESOURCE_IN.exec(cedar);
|
|
55
|
+
if (inMatch && inMatch[1]) {
|
|
56
|
+
return inMatch[1].trim();
|
|
57
|
+
}
|
|
58
|
+
const eqMatch = RESOURCE_EQ.exec(cedar);
|
|
59
|
+
if (eqMatch && eqMatch[1]) {
|
|
60
|
+
return eqMatch[1].trim();
|
|
61
|
+
}
|
|
62
|
+
return "";
|
|
63
|
+
}
|
|
64
|
+
function extractConditions(cedar) {
|
|
65
|
+
const conditions = [];
|
|
66
|
+
for (const match of cedar.matchAll(CONDITION_BLOCK)) {
|
|
67
|
+
const keyword = match[1];
|
|
68
|
+
const body = match[2];
|
|
69
|
+
if (!keyword || !body)
|
|
70
|
+
continue;
|
|
71
|
+
conditions.push(`${keyword} ${body.trim().replace(/\s+/g, " ")}`);
|
|
72
|
+
}
|
|
73
|
+
return conditions;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=explain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/cedar/explain.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAgBH,oDAMC;AAlBD,MAAM,aAAa,GAAG,kCAAkC,CAAC;AACzD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AACnD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAChE,IAAI,WAAW,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,SAAS;QAChC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cedar policy compilation + plain-language gloss exports.
|
|
4
|
+
*
|
|
5
|
+
* @module @kya-os/consent/cedar
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.explainCedarFragment = exports.compileCapabilitiesToCedar = exports.compileSingleCapability = void 0;
|
|
9
|
+
var compile_js_1 = require("./compile.js");
|
|
10
|
+
Object.defineProperty(exports, "compileSingleCapability", { enumerable: true, get: function () { return compile_js_1.compileSingleCapability; } });
|
|
11
|
+
Object.defineProperty(exports, "compileCapabilitiesToCedar", { enumerable: true, get: function () { return compile_js_1.compileCapabilitiesToCedar; } });
|
|
12
|
+
var explain_js_1 = require("./explain.js");
|
|
13
|
+
Object.defineProperty(exports, "explainCedarFragment", { enumerable: true, get: function () { return explain_js_1.explainCedarFragment; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cedar/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAGsB;AAFpB,qHAAA,uBAAuB,OAAA;AACvB,wHAAA,0BAA0B,OAAA;AAE5B,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Consent Action Bar
|
|
4
|
+
*
|
|
5
|
+
* Primary `Allow {Agent} →` (light theme) / `Allow access` (dark theme) +
|
|
6
|
+
* secondary `Not now` (light) / `Deny` (dark). Shared between the consent
|
|
7
|
+
* screen and the (future-migrated) gateway consent.
|
|
8
|
+
*
|
|
9
|
+
* Emits `consent-allow` and `consent-deny` events; the parent decides what to
|
|
10
|
+
* do (typically: submit the form on allow, close window on deny).
|
|
11
|
+
*
|
|
12
|
+
* @module components/consent-action-bar
|
|
13
|
+
*/
|
|
14
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
15
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.ConsentActionBar = void 0;
|
|
22
|
+
const lit_1 = require("lit");
|
|
23
|
+
const decorators_js_1 = require("lit/decorators.js");
|
|
24
|
+
const tokens_js_1 = require("../copy/tokens.js");
|
|
25
|
+
let ConsentActionBar = class ConsentActionBar extends lit_1.LitElement {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
this.agentName = "";
|
|
29
|
+
this.theme = "light";
|
|
30
|
+
this.disabled = false;
|
|
31
|
+
this.loading = false;
|
|
32
|
+
}
|
|
33
|
+
emitAllow() {
|
|
34
|
+
if (this.disabled || this.loading)
|
|
35
|
+
return;
|
|
36
|
+
this.dispatchEvent(new CustomEvent("consent-allow", { bubbles: true, composed: true }));
|
|
37
|
+
}
|
|
38
|
+
emitDeny() {
|
|
39
|
+
if (this.loading)
|
|
40
|
+
return;
|
|
41
|
+
this.dispatchEvent(new CustomEvent("consent-deny", { bubbles: true, composed: true }));
|
|
42
|
+
}
|
|
43
|
+
render() {
|
|
44
|
+
const allowLabel = this.theme === "dark"
|
|
45
|
+
? tokens_js_1.CONSENT_COPY_TOKENS.actions.allowAccess
|
|
46
|
+
: `${(0, tokens_js_1.formatToken)(tokens_js_1.CONSENT_COPY_TOKENS.actions.allowAgentTemplate, {
|
|
47
|
+
Agent: this.agentName || "this agent",
|
|
48
|
+
})} →`;
|
|
49
|
+
const denyLabel = this.theme === "dark"
|
|
50
|
+
? tokens_js_1.CONSENT_COPY_TOKENS.actions.deny
|
|
51
|
+
: tokens_js_1.CONSENT_COPY_TOKENS.actions.notNow;
|
|
52
|
+
return (0, lit_1.html) `
|
|
53
|
+
<button
|
|
54
|
+
class="primary"
|
|
55
|
+
type="button"
|
|
56
|
+
?disabled=${this.disabled || this.loading}
|
|
57
|
+
@click=${this.emitAllow}
|
|
58
|
+
>
|
|
59
|
+
${allowLabel}
|
|
60
|
+
</button>
|
|
61
|
+
<button
|
|
62
|
+
class="secondary"
|
|
63
|
+
type="button"
|
|
64
|
+
?disabled=${this.loading}
|
|
65
|
+
@click=${this.emitDeny}
|
|
66
|
+
>
|
|
67
|
+
${denyLabel}
|
|
68
|
+
</button>
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.ConsentActionBar = ConsentActionBar;
|
|
73
|
+
ConsentActionBar.styles = (0, lit_1.css) `
|
|
74
|
+
:host {
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
gap: 4px;
|
|
78
|
+
width: 100%;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
button {
|
|
82
|
+
width: 100%;
|
|
83
|
+
padding: 14px 18px;
|
|
84
|
+
border-radius: 999px;
|
|
85
|
+
font-size: 15px;
|
|
86
|
+
font-weight: 500;
|
|
87
|
+
font-family: inherit;
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
transition: opacity 0.15s ease, transform 0.05s ease;
|
|
90
|
+
border: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
button:disabled {
|
|
94
|
+
opacity: 0.5;
|
|
95
|
+
cursor: not-allowed;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
button:focus-visible {
|
|
99
|
+
outline: 2px solid var(--cs-focus-ring, #0F172A);
|
|
100
|
+
outline-offset: 3px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.primary {
|
|
104
|
+
background: var(--cs-surface-accent, #0F172A);
|
|
105
|
+
color: var(--cs-surface-accent-text, #FFFFFF);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.primary:hover:not(:disabled) {
|
|
109
|
+
opacity: 0.92;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.secondary {
|
|
113
|
+
background: transparent;
|
|
114
|
+
color: var(--cs-text-secondary, #334155);
|
|
115
|
+
padding: 10px 18px;
|
|
116
|
+
font-weight: 500;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.secondary:hover:not(:disabled) {
|
|
120
|
+
color: var(--cs-text-primary, #0F172A);
|
|
121
|
+
}
|
|
122
|
+
`;
|
|
123
|
+
__decorate([
|
|
124
|
+
(0, decorators_js_1.property)({ type: String })
|
|
125
|
+
], ConsentActionBar.prototype, "agentName", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, decorators_js_1.property)({ type: String })
|
|
128
|
+
], ConsentActionBar.prototype, "theme", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, decorators_js_1.property)({ type: Boolean })
|
|
131
|
+
], ConsentActionBar.prototype, "disabled", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
(0, decorators_js_1.property)({ type: Boolean })
|
|
134
|
+
], ConsentActionBar.prototype, "loading", void 0);
|
|
135
|
+
exports.ConsentActionBar = ConsentActionBar = __decorate([
|
|
136
|
+
(0, decorators_js_1.customElement)("consent-action-bar")
|
|
137
|
+
], ConsentActionBar);
|
|
138
|
+
//# sourceMappingURL=consent-action-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent-action-bar.js","sourceRoot":"","sources":["../../../src/components/consent-action-bar.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;AAEH,6BAA4C;AAC5C,qDAA4D;AAE5D,iDAAqE;AAI9D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,gBAAU;IAAzC;;QACuB,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAiB,OAAO,CAAC;QAC7B,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,KAAK,CAAC;IAkG/C,CAAC;IA7CS,SAAS;QACf,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1C,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACpE,CAAC;IACJ,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,MAAM,UAAU,GACd,IAAI,CAAC,KAAK,KAAK,MAAM;YACnB,CAAC,CAAC,+BAAmB,CAAC,OAAO,CAAC,WAAW;YACzC,CAAC,CAAC,GAAG,IAAA,uBAAW,EAAC,+BAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAC7D,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY;aACtC,CAAC,IAAI,CAAC;QACb,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,KAAK,MAAM;YACnB,CAAC,CAAC,+BAAmB,CAAC,OAAO,CAAC,IAAI;YAClC,CAAC,CAAC,+BAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;QAEzC,OAAO,IAAA,UAAI,EAAA;;;;oBAIK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;iBAChC,IAAI,CAAC,SAAS;;UAErB,UAAU;;;;;oBAKA,IAAI,CAAC,OAAO;iBACf,IAAI,CAAC,QAAQ;;UAEpB,SAAS;;KAEd,CAAC;IACJ,CAAC;;AArGU,4CAAgB;AAMX,uBAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiD3B,AAjDqB,CAiDpB;AAtD0B;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDAAgB;AACf;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAA+B;AAC7B;IAA5B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDAAkB;AACjB;IAA5B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDAAiB;2BAJlC,gBAAgB;IAD5B,IAAA,6BAAa,EAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAsG5B"}
|