secure-ui-components 0.2.8 → 0.3.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.
- package/README.md +23 -25
- package/dist/components/secure-card/secure-card.d.ts.map +1 -1
- package/dist/components/secure-card/secure-card.js +1 -1
- package/dist/components/secure-card/secure-card.js.map +1 -1
- package/dist/components/secure-datetime/secure-datetime.js +1 -1
- package/dist/components/secure-datetime/secure-datetime.js.map +1 -1
- package/dist/components/secure-file-upload/secure-file-upload.js +1 -1
- package/dist/components/secure-form/secure-form.d.ts +1 -108
- package/dist/components/secure-form/secure-form.d.ts.map +1 -1
- package/dist/components/secure-form/secure-form.js +1 -33
- package/dist/components/secure-form/secure-form.js.map +1 -1
- package/dist/components/secure-input/secure-input.d.ts +0 -110
- package/dist/components/secure-input/secure-input.d.ts.map +1 -1
- package/dist/components/secure-input/secure-input.js +1 -30
- package/dist/components/secure-input/secure-input.js.map +1 -1
- package/dist/components/secure-password-confirm/secure-password-confirm.d.ts +0 -1
- package/dist/components/secure-password-confirm/secure-password-confirm.d.ts.map +1 -1
- package/dist/components/secure-password-confirm/secure-password-confirm.js +1 -1
- package/dist/components/secure-password-confirm/secure-password-confirm.js.map +1 -1
- package/dist/components/secure-select/secure-select.d.ts +2 -132
- package/dist/components/secure-select/secure-select.d.ts.map +1 -1
- package/dist/components/secure-select/secure-select.js +1 -38
- package/dist/components/secure-select/secure-select.js.map +1 -1
- package/dist/components/secure-submit-button/secure-submit-button.d.ts +0 -46
- package/dist/components/secure-submit-button/secure-submit-button.d.ts.map +1 -1
- package/dist/components/secure-submit-button/secure-submit-button.js +1 -22
- package/dist/components/secure-submit-button/secure-submit-button.js.map +1 -1
- package/dist/components/secure-table/secure-table.d.ts +0 -51
- package/dist/components/secure-table/secure-table.d.ts.map +1 -1
- package/dist/components/secure-table/secure-table.js +25 -25
- package/dist/components/secure-table/secure-table.js.map +1 -1
- package/dist/components/secure-textarea/secure-textarea.d.ts +0 -104
- package/dist/components/secure-textarea/secure-textarea.d.ts.map +1 -1
- package/dist/components/secure-textarea/secure-textarea.js +1 -30
- package/dist/components/secure-textarea/secure-textarea.js.map +1 -1
- package/dist/core/base-component.d.ts +8 -129
- package/dist/core/base-component.d.ts.map +1 -1
- package/dist/core/base-component.js +1 -18
- package/dist/core/base-component.js.map +1 -1
- package/dist/core/security-config.d.ts +6 -70
- package/dist/core/security-config.d.ts.map +1 -1
- package/dist/core/security-config.js +1 -16
- package/dist/core/security-config.js.map +1 -1
- package/dist/core/types.d.ts +27 -28
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -5
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +2 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/secure-ui.bundle.js +16 -209
- package/package.json +1 -5
|
@@ -1,50 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Base component class for Secure-UI. All field components extend this.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* and
|
|
7
|
-
*
|
|
8
|
-
* Security Features:
|
|
9
|
-
* - Closed Shadow DOM (prevents external JavaScript access)
|
|
10
|
-
* - Automatic XSS sanitization
|
|
11
|
-
* - Security tier enforcement
|
|
12
|
-
* - Audit logging infrastructure
|
|
13
|
-
* - Rate limiting support
|
|
14
|
-
* - Progressive enhancement (works without JS)
|
|
15
|
-
*
|
|
16
|
-
* @module base-component
|
|
17
|
-
* @license MIT
|
|
4
|
+
* Provides: closed Shadow DOM, security tier enforcement (fail-secure default
|
|
5
|
+
* CRITICAL, immutable after init), XSS sanitization, rate limiting, audit
|
|
6
|
+
* logging, injection detection, and field-level behavioural telemetry.
|
|
18
7
|
*/
|
|
19
8
|
import type { SecurityTierValue, TierConfig, ValidationResult, ValidationOptions, RateLimitResult, AuditLogEntry, FieldTelemetry } from './types.js';
|
|
20
|
-
/**
|
|
21
|
-
* Base class for all Secure-UI components
|
|
22
|
-
*
|
|
23
|
-
* All components in the Secure-UI library should extend this class to inherit
|
|
24
|
-
* core security functionality and standardized behavior.
|
|
25
|
-
*
|
|
26
|
-
* Security Architecture:
|
|
27
|
-
* - Closed Shadow DOM prevents external tampering
|
|
28
|
-
* - All attributes are sanitized on read
|
|
29
|
-
* - Security tier is immutable after initial set
|
|
30
|
-
* - Default tier is CRITICAL (fail secure)
|
|
31
|
-
*/
|
|
32
9
|
export declare abstract class SecureBaseComponent extends HTMLElement {
|
|
33
10
|
#private;
|
|
34
|
-
/**
|
|
35
|
-
* Constructor
|
|
36
|
-
*
|
|
37
|
-
* Security Note: Creates a CLOSED shadow DOM to prevent external JavaScript
|
|
38
|
-
* from accessing or modifying the component's internal DOM.
|
|
39
|
-
*/
|
|
40
11
|
constructor();
|
|
41
|
-
/**
|
|
42
|
-
* Observed attributes - must be overridden by child classes
|
|
43
|
-
*/
|
|
44
12
|
static get observedAttributes(): string[];
|
|
45
|
-
/**
|
|
46
|
-
* Called when element is added to DOM
|
|
47
|
-
*/
|
|
48
13
|
connectedCallback(): void;
|
|
49
14
|
/**
|
|
50
15
|
* Initialize security tier, config, and audit logging without triggering render.
|
|
@@ -55,16 +20,7 @@ export declare abstract class SecureBaseComponent extends HTMLElement {
|
|
|
55
20
|
* @protected
|
|
56
21
|
*/
|
|
57
22
|
protected initializeSecurity(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Called when an observed attribute changes
|
|
60
|
-
*
|
|
61
|
-
* Security Note: security-tier attribute is immutable after initialization
|
|
62
|
-
* to prevent privilege escalation.
|
|
63
|
-
*/
|
|
64
23
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
65
|
-
/**
|
|
66
|
-
* Handle attribute changes - to be overridden by child classes
|
|
67
|
-
*/
|
|
68
24
|
protected handleAttributeChange(_name: string, _oldValue: string | null, _newValue: string | null): void;
|
|
69
25
|
/**
|
|
70
26
|
* Returns the base stylesheet URL or inlined CSS text (bundle mode).
|
|
@@ -87,104 +43,27 @@ export declare abstract class SecureBaseComponent extends HTMLElement {
|
|
|
87
43
|
* @protected
|
|
88
44
|
*/
|
|
89
45
|
protected addComponentStyles(cssInput: string): void;
|
|
90
|
-
/**
|
|
91
|
-
* Render method to be implemented by child classes
|
|
92
|
-
*/
|
|
93
46
|
protected abstract render(): DocumentFragment | HTMLElement | null;
|
|
94
|
-
/**
|
|
95
|
-
* Sanitize a string value to prevent XSS
|
|
96
|
-
*/
|
|
47
|
+
/** div.textContent round-trip — safe HTML-entity encoding, no innerHTML needed. */
|
|
97
48
|
protected sanitizeValue(value: string): string;
|
|
98
|
-
/**
|
|
99
|
-
* Validate input against tier-specific rules
|
|
100
|
-
*/
|
|
101
49
|
protected validateInput(value: string, options?: ValidationOptions): ValidationResult;
|
|
102
|
-
/**
|
|
103
|
-
* Check rate limit for this component
|
|
104
|
-
*/
|
|
105
50
|
protected checkRateLimit(): RateLimitResult;
|
|
106
|
-
/**
|
|
107
|
-
* Get the shadow root (protected access for child classes)
|
|
108
|
-
*/
|
|
109
51
|
get shadowRoot(): ShadowRoot;
|
|
110
|
-
/**
|
|
111
|
-
* Get the current security tier
|
|
112
|
-
*/
|
|
113
52
|
get securityTier(): SecurityTierValue;
|
|
114
|
-
/**
|
|
115
|
-
* Get the tier configuration
|
|
116
|
-
*/
|
|
117
53
|
get config(): TierConfig;
|
|
118
|
-
/**
|
|
119
|
-
* Get all audit log entries
|
|
120
|
-
*/
|
|
121
54
|
getAuditLog(): AuditLogEntry[];
|
|
122
|
-
|
|
123
|
-
* Clear the local audit log
|
|
124
|
-
*/
|
|
125
|
-
clearAuditLog(): void;
|
|
126
|
-
/**
|
|
127
|
-
* Trigger an audit event from child classes
|
|
128
|
-
*/
|
|
55
|
+
protected clearAuditLog(): void;
|
|
129
56
|
protected audit(event: string, data: Record<string, unknown>): void;
|
|
130
|
-
|
|
131
|
-
* Check a raw input value for injection patterns and signal if one is found.
|
|
132
|
-
*
|
|
133
|
-
* Called by input components on every input event, after the raw value is captured.
|
|
134
|
-
* Only the first matching pattern is reported to avoid event flooding.
|
|
135
|
-
* The raw value is never included in the dispatched event detail.
|
|
136
|
-
*
|
|
137
|
-
* @param value - Raw field value (unmodified user input)
|
|
138
|
-
* @param fieldName - The field's name attribute
|
|
139
|
-
*/
|
|
140
|
-
protected detectInjection(value: string, fieldName: string): void;
|
|
141
|
-
/**
|
|
142
|
-
* Show an inline threat feedback message inside the component.
|
|
143
|
-
* Called by detectInjection() when threat-feedback attribute is present.
|
|
144
|
-
* Override in child classes that render a threat UI container.
|
|
145
|
-
* @protected
|
|
146
|
-
*/
|
|
57
|
+
protected detectInjection(value: string, fieldName: string, showFeedback?: boolean): void;
|
|
147
58
|
protected showThreatFeedback(_patternId: string): void;
|
|
148
|
-
/**
|
|
149
|
-
* Clear any visible threat feedback.
|
|
150
|
-
* Called by detectInjection() when input is clean and threat-feedback is set.
|
|
151
|
-
* @protected
|
|
152
|
-
*/
|
|
153
59
|
protected clearThreatFeedback(): void;
|
|
154
|
-
/**
|
|
155
|
-
* Returns a human-readable label for the given injection pattern ID.
|
|
156
|
-
* @protected
|
|
157
|
-
*/
|
|
158
60
|
protected getThreatLabel(patternId: string): string;
|
|
159
|
-
/**
|
|
160
|
-
* Force re-render of the component
|
|
161
|
-
*/
|
|
162
61
|
protected rerender(): void;
|
|
163
|
-
/**
|
|
164
|
-
* Call from the field's `focus` event handler to start a telemetry session.
|
|
165
|
-
* @protected
|
|
166
|
-
*/
|
|
167
62
|
protected recordTelemetryFocus(): void;
|
|
168
|
-
/**
|
|
169
|
-
* Call from the field's `input` event handler.
|
|
170
|
-
* Pass the native `InputEvent` so inputType can be inspected.
|
|
171
|
-
* @protected
|
|
172
|
-
*/
|
|
173
63
|
protected recordTelemetryInput(event: Event): void;
|
|
174
|
-
/**
|
|
175
|
-
* Call from the field's `blur` event handler to finalise the telemetry session.
|
|
176
|
-
* @protected
|
|
177
|
-
*/
|
|
178
64
|
protected recordTelemetryBlur(): void;
|
|
179
|
-
/**
|
|
180
|
-
* Returns computed behavioral signals for the current (or last completed)
|
|
181
|
-
* interaction session. Safe to include in server payloads — contains no
|
|
182
|
-
* raw field values or PII.
|
|
183
|
-
*/
|
|
65
|
+
/** Computed behavioural signals for this field. No raw values or PII. */
|
|
184
66
|
getFieldTelemetry(): FieldTelemetry;
|
|
185
|
-
/**
|
|
186
|
-
* Clean up when component is removed from DOM
|
|
187
|
-
*/
|
|
188
67
|
disconnectedCallback(): void;
|
|
189
68
|
}
|
|
190
69
|
export default SecureBaseComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-component.d.ts","sourceRoot":"","sources":["../../src/core/base-component.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"base-component.d.ts","sourceRoot":"","sources":["../../src/core/base-component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAEf,aAAa,EACb,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,8BAAsB,mBAAoB,SAAQ,WAAW;;;IA4D3D,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAYzB;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAepC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAiB9F,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAcxG;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAepD,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,gBAAgB,GAAG,WAAW,GAAG,IAAI;IAElE,mFAAmF;IACnF,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAU9C,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB;IAqCzF,SAAS,CAAC,cAAc,IAAI,eAAe;IAsE3C,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,YAAY,IAAI,iBAAiB,CAEpC;IAED,IAAI,MAAM,IAAI,UAAU,CAEvB;IAED,WAAW,IAAI,aAAa,EAAE;IAI9B,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMnE,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,IAAI;IAiCvF,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACtD,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAErC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAInD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAI1B,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAYtC,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IA8BlD,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAarC,yEAAyE;IACzE,iBAAiB,IAAI,cAAc;IAsCnC,oBAAoB,IAAI,IAAI;CAU7B;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview Base Component Class for Secure-UI
|
|
3
|
-
*
|
|
4
|
-
* This module provides the foundational class that all Secure-UI web components
|
|
5
|
-
* extend. It implements core security features, progressive enhancement,
|
|
6
|
-
* and standardized lifecycle management.
|
|
7
|
-
*
|
|
8
|
-
* Security Features:
|
|
9
|
-
* - Closed Shadow DOM (prevents external JavaScript access)
|
|
10
|
-
* - Automatic XSS sanitization
|
|
11
|
-
* - Security tier enforcement
|
|
12
|
-
* - Audit logging infrastructure
|
|
13
|
-
* - Rate limiting support
|
|
14
|
-
* - Progressive enhancement (works without JS)
|
|
15
|
-
*
|
|
16
|
-
* @module base-component
|
|
17
|
-
* @license MIT
|
|
18
|
-
*/var c;import{SecurityTier as u,getTierConfig as l,isValidTier as d}from"./security-config.js";class h extends HTMLElement{static#l=1e3;static#h={"script-tag":"Script injection blocked","js-protocol":"JavaScript protocol blocked","event-handler":"Event handler injection blocked","html-injection":"HTML element injection blocked","css-expression":"CSS expression injection blocked",vbscript:"VBScript injection blocked","data-uri-html":"Data URI injection blocked","template-syntax":"Template injection blocked"};static#u=[{id:"script-tag",pattern:/<script[\s>/]/i},{id:"js-protocol",pattern:/javascript\s*:/i},{id:"event-handler",pattern:/\bon\w+\s*=/i},{id:"html-injection",pattern:/<\s*(img|svg|iframe|object|embed|link|meta|base)[^>]*/i},{id:"css-expression",pattern:/expression\s*\(/i},{id:"vbscript",pattern:/vbscript\s*:/i},{id:"data-uri-html",pattern:/data:\s*text\/html/i},{id:"template-syntax",pattern:/\{\{[\s\S]*?\}\}/}];#n=u.CRITICAL;#t;#i;#s=[];#e={attempts:0,windowStart:Date.now()};#o=!1;#r={focusAt:null,firstKeystrokeAt:null,blurAt:null,keyCount:0,correctionCount:0,pasteDetected:!1,autofillDetected:!1,focusCount:0,blurWithoutChange:0,lastInputLength:0};constructor(){super(),this.#i=this.attachShadow({mode:"closed"}),this.#t=l(this.#n)}static get observedAttributes(){return["security-tier","disabled","readonly","threat-feedback"]}connectedCallback(){this.#o||(this.#d(),this.#o=!0)}#d(){this.initializeSecurity(),this.#c()}initializeSecurity(){const t=this.getAttribute("security-tier");t&&d(t)&&(this.#n=t),this.#t=l(this.#n),this.#a("component_initialized",{tier:this.#n,timestamp:new Date().toISOString()})}attributeChangedCallback(t,e,i){if(t==="security-tier"&&this.#o){console.warn(`Security tier cannot be changed after initialization. Attempted change from "${e}" to "${i}" blocked.`),e!==null&&this.setAttribute("security-tier",e);return}this.#o&&this.handleAttributeChange(t,e,i)}handleAttributeChange(t,e,i){}#c(){this.#i.innerHTML="",this.addComponentStyles(new URL("./base.css",import.meta.url).href);const t=this.render();t&&this.#i.appendChild(t)}getBaseStylesheetUrl(){return new URL("./base.css",import.meta.url).href}addComponentStyles(t){if(t.includes("{")){const e=new CSSStyleSheet;e.replaceSync(t),this.#i.adoptedStyleSheets=[...this.#i.adoptedStyleSheets,e]}else{const e=document.createElement("link");e.rel="stylesheet",e.href=t,this.#i.appendChild(e)}}sanitizeValue(t){if(typeof t!="string")return"";const e=document.createElement("div");return e.textContent=t,e.innerHTML}validateInput(t,e={}){const i=[],s=this.#t;(e.required!==void 0?e.required:s.validation.required)&&(!t||t.trim().length===0)&&i.push("This field is required");const r=e.maxLength||s.validation.maxLength;t&&t.length>r&&i.push(`Value exceeds maximum length of ${r}`);const a=e.minLength||0;t&&t.length<a&&i.push(`Value must be at least ${a} characters`);const o=e.pattern||s.validation.pattern;return o&&t&&!o.test(t)&&i.push("Value does not match required format"),s.validation.strict&&i.length>0&&this.#a("validation_failed",{errors:i,valueLength:t?t.length:0}),{valid:i.length===0,errors:i}}checkRateLimit(){if(!this.#t.rateLimit.enabled)return{allowed:!0,retryAfter:0};const t=Date.now(),e=this.#t.rateLimit.windowMs;if(t-this.#e.windowStart>e&&(this.#e.attempts=0,this.#e.windowStart=t),this.#e.attempts>=this.#t.rateLimit.maxAttempts){const i=e-(t-this.#e.windowStart);return this.#a("rate_limit_exceeded",{attempts:this.#e.attempts,retryAfter:i}),{allowed:!1,retryAfter:i}}return this.#e.attempts++,{allowed:!0,retryAfter:0}}#a(t,e={}){const i=this.#t.audit;if(!(t.includes("access")&&i.logAccess||t.includes("change")&&i.logChanges||t.includes("submit")&&i.logSubmission||t.includes("initialized")||t.includes("rate_limit")||t.includes("validation")||t.includes("threat")))return;const n={event:t,tier:this.#n,timestamp:new Date().toISOString(),...e};i.includeMetadata&&(n.userAgent=navigator.userAgent,n.language=navigator.language),this.#s.length>=c.#l&&this.#s.shift(),this.#s.push(n),this.dispatchEvent(new CustomEvent("secure-audit",{detail:n,bubbles:!0,composed:!0}))}get shadowRoot(){return this.#i}get securityTier(){return this.#n}get config(){return this.#t}getAuditLog(){return[...this.#s]}clearAuditLog(){this.#s=[]}audit(t,e){this.#a(t,e)}detectInjection(t,e){for(const{id:i,pattern:s}of c.#u)if(s.test(t)){this.audit("threat_detected",{fieldName:e,patternId:i,threatType:"injection"}),this.dispatchEvent(new CustomEvent("secure-threat-detected",{detail:{fieldName:e,threatType:"injection",patternId:i,tier:this.securityTier,timestamp:Date.now()},bubbles:!0,composed:!0})),this.hasAttribute("threat-feedback")&&this.showThreatFeedback(i);return}this.hasAttribute("threat-feedback")&&this.clearThreatFeedback()}showThreatFeedback(t){}clearThreatFeedback(){}getThreatLabel(t){return c.#h[t]??`Injection blocked: ${t}`}rerender(){this.#c()}recordTelemetryFocus(){const t=this.#r;t.focusAt=Date.now(),t.blurAt=null,t.focusCount++;const e=this.shadowRoot.querySelector('input:not([type="hidden"]), textarea, select');t.lastInputLength=e?e.value.length:0}recordTelemetryInput(t){const e=this.#r,i=Date.now();e.firstKeystrokeAt===null&&(e.firstKeystrokeAt=i);const n=t.inputType??"";n==="insertFromPaste"||n==="insertFromPasteAsQuotation"?e.pasteDetected=!0:n==="insertReplacementText"?e.autofillDetected=!0:n.startsWith("delete")||n==="historyUndo"||n==="historyRedo"?e.correctionCount++:e.keyCount++;const r=t.target;r&&(e.lastInputLength=r.value.length)}recordTelemetryBlur(){const t=this.#r;t.blurAt=Date.now();const e=this.shadowRoot.querySelector('input:not([type="hidden"]), textarea, select');(e?e.value.length:0)===t.lastInputLength&&t.keyCount===0&&!t.pasteDetected&&t.blurWithoutChange++}getFieldTelemetry(){const t=this.#r,e=t.focusAt??Date.now(),i=t.firstKeystrokeAt,s=t.blurAt??Date.now(),n=i!==null?i-e:0,r=i!==null?s-i:0,a=r/1e3,o=a>0?t.keyCount/a:0;return{dwell:n,completionTime:r,velocity:Math.round(o*100)/100,corrections:t.correctionCount,pasteDetected:t.pasteDetected,autofillDetected:t.autofillDetected,focusCount:t.focusCount,blurWithoutChange:t.blurWithoutChange}}#p(){this.#r={focusAt:null,firstKeystrokeAt:null,blurAt:null,keyCount:0,correctionCount:0,pasteDetected:!1,autofillDetected:!1,focusCount:0,blurWithoutChange:0,lastInputLength:0}}disconnectedCallback(){this.#e={attempts:0,windowStart:Date.now()},this.#p(),this.#t.audit.logAccess&&this.#a("component_disconnected",{timestamp:new Date().toISOString()})}}c=h;var f=h;export{h as SecureBaseComponent,f as default};
|
|
1
|
+
var c;import{SecurityTier as h,getTierConfig as l,isValidTier as d}from"./security-config.js";class u extends HTMLElement{static#l=1e3;static#u={"script-tag":"Script injection blocked","js-protocol":"JavaScript protocol blocked","event-handler":"Event handler injection blocked","html-injection":"HTML element injection blocked","css-expression":"CSS expression injection blocked",vbscript:"VBScript injection blocked","data-uri-html":"Data URI injection blocked","template-syntax":"Template injection blocked"};static#h=[{id:"script-tag",pattern:/<script[\s>/]/i},{id:"js-protocol",pattern:/javascript\s*:/i},{id:"event-handler",pattern:/\bon\w+\s*=/i},{id:"html-injection",pattern:/<\s*(img|svg|iframe|object|embed|link|meta|base)[^>]*/i},{id:"css-expression",pattern:/expression\s*\(/i},{id:"vbscript",pattern:/vbscript\s*:/i},{id:"data-uri-html",pattern:/data:\s*text\/html/i},{id:"template-syntax",pattern:/\{\{[\s\S]*?\}\}/}];#n=h.CRITICAL;#t;#i;#s=[];#e={attempts:0,windowStart:Date.now()};#o=!1;#r={focusAt:null,firstKeystrokeAt:null,blurAt:null,keyCount:0,correctionCount:0,pasteDetected:!1,autofillDetected:!1,focusCount:0,blurWithoutChange:0,lastInputLength:0};constructor(){super(),this.#i=this.attachShadow({mode:"closed"}),this.#t=l(this.#n)}static get observedAttributes(){return["security-tier","disabled","readonly","threat-feedback"]}connectedCallback(){this.#o||(this.#d(),this.#o=!0)}#d(){this.initializeSecurity(),this.#c()}initializeSecurity(){const t=this.getAttribute("security-tier");t&&d(t)&&(this.#n=t),this.#t=l(this.#n),this.#a("component_initialized",{tier:this.#n,timestamp:new Date().toISOString()})}attributeChangedCallback(t,e,i){if(t==="security-tier"&&this.#o){console.warn(`Security tier cannot be changed after initialization. Attempted change from "${e}" to "${i}" blocked.`),e!==null&&this.setAttribute("security-tier",e);return}this.#o&&this.handleAttributeChange(t,e,i)}handleAttributeChange(t,e,i){}#c(){this.#i.innerHTML="",this.addComponentStyles(new URL("./base.css",import.meta.url).href);const t=this.render();t&&this.#i.appendChild(t)}getBaseStylesheetUrl(){return new URL("./base.css",import.meta.url).href}addComponentStyles(t){if(t.includes("{")){const e=new CSSStyleSheet;e.replaceSync(t),this.#i.adoptedStyleSheets=[...this.#i.adoptedStyleSheets,e]}else{const e=document.createElement("link");e.rel="stylesheet",e.href=t,this.#i.appendChild(e)}}sanitizeValue(t){if(typeof t!="string")return"";const e=document.createElement("div");return e.textContent=t,e.innerHTML}validateInput(t,e={}){const i=[],s=this.#t;(e.required!==void 0?e.required:s.validation.required)&&(!t||t.trim().length===0)&&i.push("This field is required");const r=e.maxLength||s.validation.maxLength;t&&t.length>r&&i.push(`Value exceeds maximum length of ${r}`);const a=e.minLength||0;t&&t.length<a&&i.push(`Value must be at least ${a} characters`);const o=e.pattern||s.validation.pattern;return o&&t&&!o.test(t)&&i.push("Value does not match required format"),s.validation.strict&&i.length>0&&this.#a("validation_failed",{errors:i,valueLength:t?t.length:0}),{valid:i.length===0,errors:i}}checkRateLimit(){if(!this.#t.rateLimit.enabled)return{allowed:!0,retryAfter:0};const t=Date.now(),e=this.#t.rateLimit.windowMs;if(t-this.#e.windowStart>e&&(this.#e.attempts=0,this.#e.windowStart=t),this.#e.attempts>=this.#t.rateLimit.maxAttempts){const i=e-(t-this.#e.windowStart);return this.#a("rate_limit_exceeded",{attempts:this.#e.attempts,retryAfter:i}),{allowed:!1,retryAfter:i}}return this.#e.attempts++,{allowed:!0,retryAfter:0}}#a(t,e={}){const i=this.#t.audit;if(!(t.includes("access")&&i.logAccess||t.includes("change")&&i.logChanges||t.includes("submit")&&i.logSubmission||t.includes("initialized")||t.includes("rate_limit")||t.includes("validation")||t.includes("threat")))return;const n={event:t,tier:this.#n,timestamp:new Date().toISOString(),data:Object.keys(e).length>0?e:void 0};i.includeMetadata&&(n.userAgent=navigator.userAgent,n.language=navigator.language),this.#s.length>=c.#l&&this.#s.shift(),this.#s.push(n),this.dispatchEvent(new CustomEvent("secure-audit",{detail:n,bubbles:!0,composed:!0}))}get shadowRoot(){return this.#i}get securityTier(){return this.#n}get config(){return this.#t}getAuditLog(){return[...this.#s]}clearAuditLog(){this.#s=[]}audit(t,e){this.#a(t,e)}detectInjection(t,e,i=!1){const s=i||this.hasAttribute("threat-feedback");for(const{id:n,pattern:r}of c.#h)if(r.test(t)){this.audit("threat_detected",{fieldName:e,patternId:n,threatType:"injection"}),this.dispatchEvent(new CustomEvent("secure-threat-detected",{detail:{fieldName:e,threatType:"injection",patternId:n,tier:this.securityTier,timestamp:Date.now()},bubbles:!0,composed:!0})),s&&this.showThreatFeedback(n);return}s&&this.clearThreatFeedback()}showThreatFeedback(t){}clearThreatFeedback(){}getThreatLabel(t){return c.#u[t]??`Injection blocked: ${t}`}rerender(){this.#c()}recordTelemetryFocus(){const t=this.#r;t.focusAt=Date.now(),t.blurAt=null,t.focusCount++;const e=this.shadowRoot.querySelector('input:not([type="hidden"]), textarea, select');t.lastInputLength=e?e.value.length:0}recordTelemetryInput(t){const e=this.#r,i=Date.now();e.firstKeystrokeAt===null&&(e.firstKeystrokeAt=i);const n=t.inputType??"";n==="insertFromPaste"||n==="insertFromPasteAsQuotation"?e.pasteDetected=!0:n==="insertReplacementText"?e.autofillDetected=!0:n.startsWith("delete")||n==="historyUndo"||n==="historyRedo"?e.correctionCount++:e.keyCount++;const r=t.target;r&&(e.lastInputLength=r.value.length)}recordTelemetryBlur(){const t=this.#r;t.blurAt=Date.now();const e=this.shadowRoot.querySelector('input:not([type="hidden"]), textarea, select');(e?e.value.length:0)===t.lastInputLength&&t.keyCount===0&&!t.pasteDetected&&t.blurWithoutChange++}getFieldTelemetry(){const t=this.#r,e=t.focusAt??Date.now(),i=t.firstKeystrokeAt,s=t.blurAt??Date.now(),n=i!==null?i-e:0,r=i!==null?s-i:0,a=r/1e3,o=a>0?t.keyCount/a:0;return{dwell:n,completionTime:r,velocity:Math.round(o*100)/100,corrections:t.correctionCount,pasteDetected:t.pasteDetected,autofillDetected:t.autofillDetected,focusCount:t.focusCount,blurWithoutChange:t.blurWithoutChange}}#p(){this.#r={focusAt:null,firstKeystrokeAt:null,blurAt:null,keyCount:0,correctionCount:0,pasteDetected:!1,autofillDetected:!1,focusCount:0,blurWithoutChange:0,lastInputLength:0}}disconnectedCallback(){this.#e={attempts:0,windowStart:Date.now()},this.#p(),this.#t.audit.logAccess&&this.#a("component_disconnected",{timestamp:new Date().toISOString()})}}c=u;var m=u;export{u as SecureBaseComponent,m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-component.js","sourceRoot":"","sources":["../../src/core/base-component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-component.js","sourceRoot":"","sources":["../../src/core/base-component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* This module defines the four security tiers that govern all component behavior
|
|
5
|
-
* in the Secure-UI library. Each tier represents a different level of data sensitivity
|
|
6
|
-
* and applies corresponding security controls.
|
|
7
|
-
*
|
|
8
|
-
* Security Philosophy:
|
|
9
|
-
* - Defense in depth: Multiple layers of protection at each tier
|
|
10
|
-
* - Fail secure: Default to highest security when tier is ambiguous
|
|
11
|
-
* - Progressive enhancement: All tiers work without JavaScript
|
|
12
|
-
* - Zero trust: Always validate, never assume data is safe
|
|
13
|
-
*
|
|
14
|
-
* @module security-config
|
|
15
|
-
* @license MIT
|
|
2
|
+
* Security tier definitions and configuration for Secure-UI.
|
|
3
|
+
* Four tiers: public → authenticated → sensitive → critical (fail-secure default).
|
|
16
4
|
*/
|
|
17
5
|
import type { SecurityTierValue, TierConfig, CSPDirectives, SecurityHeaders } from './types.js';
|
|
18
|
-
/**
|
|
19
|
-
* Security tier enumeration
|
|
20
|
-
* These constants should be used throughout the library to reference security levels
|
|
21
|
-
*/
|
|
22
6
|
export declare const SecurityTier: Readonly<{
|
|
23
7
|
/** PUBLIC: Non-sensitive data (e.g., search queries, public comments) */
|
|
24
8
|
PUBLIC: "public";
|
|
@@ -29,61 +13,13 @@ export declare const SecurityTier: Readonly<{
|
|
|
29
13
|
/** CRITICAL: High-risk data (e.g., passwords, SSN, payment info) */
|
|
30
14
|
CRITICAL: "critical";
|
|
31
15
|
}>;
|
|
32
|
-
/**
|
|
33
|
-
* Default configuration for each security tier
|
|
34
|
-
*
|
|
35
|
-
* Security Note: These defaults implement defense-in-depth by progressively
|
|
36
|
-
* adding security controls at each tier. When in doubt, components should
|
|
37
|
-
* default to CRITICAL tier behavior.
|
|
38
|
-
*/
|
|
39
16
|
export declare const TIER_CONFIG: Readonly<Record<SecurityTierValue, TierConfig>>;
|
|
40
|
-
/**
|
|
41
|
-
* Get configuration for a specific security tier
|
|
42
|
-
*
|
|
43
|
-
* Security Note: If an invalid tier is provided, this function fails secure
|
|
44
|
-
* by returning the CRITICAL tier configuration.
|
|
45
|
-
*/
|
|
17
|
+
/** Returns tier config; falls back to CRITICAL for invalid input (fail-secure). */
|
|
46
18
|
export declare function getTierConfig(tier: string): TierConfig;
|
|
47
|
-
/**
|
|
48
|
-
* Validate that a tier value is valid
|
|
49
|
-
*/
|
|
50
19
|
export declare function isValidTier(tier: string): tier is SecurityTierValue;
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
* @returns -1 if tier1 < tier2, 0 if equal, 1 if tier1 > tier2
|
|
55
|
-
*/
|
|
56
|
-
export declare function compareTiers(tier1: string, tier2: string): number;
|
|
57
|
-
/**
|
|
58
|
-
* Get the more secure of two tiers
|
|
59
|
-
*/
|
|
60
|
-
export declare function getMoreSecureTier(tier1: string, tier2: string): string;
|
|
61
|
-
/**
|
|
62
|
-
* Content Security Policy recommendations for each tier
|
|
63
|
-
*/
|
|
20
|
+
/** Returns -1 / 0 / 1 by tier level. */
|
|
21
|
+
export declare function compareTiers(tier1: SecurityTierValue, tier2: SecurityTierValue): number;
|
|
22
|
+
export declare function getMoreSecureTier(tier1: SecurityTierValue, tier2: SecurityTierValue): SecurityTierValue;
|
|
64
23
|
export declare const CSP_RECOMMENDATIONS: Readonly<Record<SecurityTierValue, Readonly<CSPDirectives>>>;
|
|
65
|
-
/**
|
|
66
|
-
* Default security headers recommendations
|
|
67
|
-
*/
|
|
68
24
|
export declare const SECURITY_HEADERS: Readonly<SecurityHeaders>;
|
|
69
|
-
declare const _default: {
|
|
70
|
-
SecurityTier: Readonly<{
|
|
71
|
-
/** PUBLIC: Non-sensitive data (e.g., search queries, public comments) */
|
|
72
|
-
PUBLIC: "public";
|
|
73
|
-
/** AUTHENTICATED: User-specific but non-sensitive data (e.g., display names, preferences) */
|
|
74
|
-
AUTHENTICATED: "authenticated";
|
|
75
|
-
/** SENSITIVE: Personally identifiable information (e.g., email, phone, address) */
|
|
76
|
-
SENSITIVE: "sensitive";
|
|
77
|
-
/** CRITICAL: High-risk data (e.g., passwords, SSN, payment info) */
|
|
78
|
-
CRITICAL: "critical";
|
|
79
|
-
}>;
|
|
80
|
-
TIER_CONFIG: Readonly<Record<SecurityTierValue, TierConfig>>;
|
|
81
|
-
getTierConfig: typeof getTierConfig;
|
|
82
|
-
isValidTier: typeof isValidTier;
|
|
83
|
-
compareTiers: typeof compareTiers;
|
|
84
|
-
getMoreSecureTier: typeof getMoreSecureTier;
|
|
85
|
-
CSP_RECOMMENDATIONS: Readonly<Record<SecurityTierValue, Readonly<CSPDirectives>>>;
|
|
86
|
-
SECURITY_HEADERS: Readonly<SecurityHeaders>;
|
|
87
|
-
};
|
|
88
|
-
export default _default;
|
|
89
25
|
//# sourceMappingURL=security-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-config.d.ts","sourceRoot":"","sources":["../../src/core/security-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"security-config.d.ts","sourceRoot":"","sources":["../../src/core/security-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,YAAY;IACvB,yEAAyE;;IAGzE,6FAA6F;;IAG7F,mFAAmF;;IAGnF,oEAAoE;;EAEpE,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAoItE,CAAC;AAEH,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAOtD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAEnE;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAKvF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CAEvG;AAED,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAiC3F,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,eAAe,CAMrD,CAAC"}
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview Security Configuration and Tier Definitions
|
|
3
|
-
*
|
|
4
|
-
* This module defines the four security tiers that govern all component behavior
|
|
5
|
-
* in the Secure-UI library. Each tier represents a different level of data sensitivity
|
|
6
|
-
* and applies corresponding security controls.
|
|
7
|
-
*
|
|
8
|
-
* Security Philosophy:
|
|
9
|
-
* - Defense in depth: Multiple layers of protection at each tier
|
|
10
|
-
* - Fail secure: Default to highest security when tier is ambiguous
|
|
11
|
-
* - Progressive enhancement: All tiers work without JavaScript
|
|
12
|
-
* - Zero trust: Always validate, never assume data is safe
|
|
13
|
-
*
|
|
14
|
-
* @module security-config
|
|
15
|
-
* @license MIT
|
|
16
|
-
*/const t=Object.freeze({PUBLIC:"public",AUTHENTICATED:"authenticated",SENSITIVE:"sensitive",CRITICAL:"critical"}),a=Object.freeze({[t.PUBLIC]:Object.freeze({name:"Public",level:1,validation:Object.freeze({required:!1,strict:!1,maxLength:5e3,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!1,character:"\u2022",partial:!1}),storage:Object.freeze({allowAutocomplete:!0,allowCache:!0,allowHistory:!0}),audit:Object.freeze({logAccess:!1,logChanges:!1,logSubmission:!1,includeMetadata:!1}),rateLimit:Object.freeze({enabled:!1,maxAttempts:0,windowMs:0})}),[t.AUTHENTICATED]:Object.freeze({name:"Authenticated",level:2,validation:Object.freeze({required:!0,strict:!1,maxLength:1e3,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!1,character:"\u2022",partial:!1}),storage:Object.freeze({allowAutocomplete:!0,allowCache:!1,allowHistory:!1}),audit:Object.freeze({logAccess:!1,logChanges:!0,logSubmission:!0,includeMetadata:!0}),rateLimit:Object.freeze({enabled:!1,maxAttempts:0,windowMs:0})}),[t.SENSITIVE]:Object.freeze({name:"Sensitive",level:3,validation:Object.freeze({required:!0,strict:!0,maxLength:500,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!0,character:"\u2022",partial:!0}),storage:Object.freeze({allowAutocomplete:!1,allowCache:!1,allowHistory:!1}),audit:Object.freeze({logAccess:!0,logChanges:!0,logSubmission:!0,includeMetadata:!0}),rateLimit:Object.freeze({enabled:!0,maxAttempts:10,windowMs:6e4})}),[t.CRITICAL]:Object.freeze({name:"Critical",level:4,validation:Object.freeze({required:!0,strict:!0,maxLength:256,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!0,character:"\u2022",partial:!1}),storage:Object.freeze({allowAutocomplete:!1,allowCache:!1,allowHistory:!1}),audit:Object.freeze({logAccess:!0,logChanges:!0,logSubmission:!0,includeMetadata:!0}),rateLimit:Object.freeze({enabled:!0,maxAttempts:5,windowMs:6e4})})});function l(e){return!e||!a[e]?(console.warn(`Invalid security tier "${e}", defaulting to CRITICAL`),a[t.CRITICAL]):a[e]}function n(e){return Object.values(t).includes(e)}function s(e,r){const c=l(e),i=l(r);return Math.sign(c.level-i.level)}function o(e,r){return s(e,r)>=0?e:r}const f=Object.freeze({[t.PUBLIC]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"]}),[t.AUTHENTICATED]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"],"form-action":["'self'"]}),[t.SENSITIVE]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"],"form-action":["'self'"],"frame-ancestors":["'none'"],"upgrade-insecure-requests":[]}),[t.CRITICAL]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"],"form-action":["'self'"],"frame-ancestors":["'none'"],"upgrade-insecure-requests":[],"block-all-mixed-content":[],"base-uri":["'none'"]})}),u=Object.freeze({"X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY","X-XSS-Protection":"1; mode=block","Referrer-Policy":"strict-origin-when-cross-origin","Permissions-Policy":"geolocation=(), microphone=(), camera=()"});var b={SecurityTier:t,TIER_CONFIG:a,getTierConfig:l,isValidTier:n,compareTiers:s,getMoreSecureTier:o,CSP_RECOMMENDATIONS:f,SECURITY_HEADERS:u};export{f as CSP_RECOMMENDATIONS,u as SECURITY_HEADERS,t as SecurityTier,a as TIER_CONFIG,s as compareTiers,b as default,o as getMoreSecureTier,l as getTierConfig,n as isValidTier};
|
|
1
|
+
const t=Object.freeze({PUBLIC:"public",AUTHENTICATED:"authenticated",SENSITIVE:"sensitive",CRITICAL:"critical"}),a=Object.freeze({[t.PUBLIC]:Object.freeze({name:"Public",level:1,validation:Object.freeze({required:!1,strict:!1,maxLength:5e3,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!1,character:"\u2022",partial:!1}),storage:Object.freeze({allowAutocomplete:!0,allowCache:!0,allowHistory:!0}),audit:Object.freeze({logAccess:!1,logChanges:!1,logSubmission:!1,includeMetadata:!1}),rateLimit:Object.freeze({enabled:!1,maxAttempts:0,windowMs:0})}),[t.AUTHENTICATED]:Object.freeze({name:"Authenticated",level:2,validation:Object.freeze({required:!0,strict:!1,maxLength:1e3,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!1,character:"\u2022",partial:!1}),storage:Object.freeze({allowAutocomplete:!0,allowCache:!1,allowHistory:!1}),audit:Object.freeze({logAccess:!1,logChanges:!0,logSubmission:!0,includeMetadata:!0}),rateLimit:Object.freeze({enabled:!1,maxAttempts:0,windowMs:0})}),[t.SENSITIVE]:Object.freeze({name:"Sensitive",level:3,validation:Object.freeze({required:!0,strict:!0,maxLength:500,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!0,character:"\u2022",partial:!0}),storage:Object.freeze({allowAutocomplete:!1,allowCache:!1,allowHistory:!1}),audit:Object.freeze({logAccess:!0,logChanges:!0,logSubmission:!0,includeMetadata:!0}),rateLimit:Object.freeze({enabled:!0,maxAttempts:10,windowMs:6e4})}),[t.CRITICAL]:Object.freeze({name:"Critical",level:4,validation:Object.freeze({required:!0,strict:!0,maxLength:256,pattern:null,sanitizeHtml:!0}),masking:Object.freeze({enabled:!0,character:"\u2022",partial:!1}),storage:Object.freeze({allowAutocomplete:!1,allowCache:!1,allowHistory:!1}),audit:Object.freeze({logAccess:!0,logChanges:!0,logSubmission:!0,includeMetadata:!0}),rateLimit:Object.freeze({enabled:!0,maxAttempts:5,windowMs:6e4})})});function l(e){return!e||!a[e]?(console.warn(`Invalid security tier "${e}", defaulting to CRITICAL`),a[t.CRITICAL]):a[e]}function n(e){return Object.values(t).includes(e)}function i(e,r){const s=l(e),c=l(r);return Math.sign(s.level-c.level)}function o(e,r){return i(e,r)>=0?e:r}const f=Object.freeze({[t.PUBLIC]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"]}),[t.AUTHENTICATED]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"],"form-action":["'self'"]}),[t.SENSITIVE]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"],"form-action":["'self'"],"frame-ancestors":["'none'"],"upgrade-insecure-requests":[]}),[t.CRITICAL]:Object.freeze({"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'"],"form-action":["'self'"],"frame-ancestors":["'none'"],"upgrade-insecure-requests":[],"block-all-mixed-content":[],"base-uri":["'none'"]})}),u=Object.freeze({"X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY","X-XSS-Protection":"1; mode=block","Referrer-Policy":"strict-origin-when-cross-origin","Permissions-Policy":"geolocation=(), microphone=(), camera=()"});export{f as CSP_RECOMMENDATIONS,u as SECURITY_HEADERS,t as SecurityTier,a as TIER_CONFIG,i as compareTiers,o as getMoreSecureTier,l as getTierConfig,n as isValidTier};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-config.js","sourceRoot":"","sources":["../../src/core/security-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"security-config.js","sourceRoot":"","sources":["../../src/core/security-config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Shared type definitions for the Secure-UI component library.
|
|
3
|
-
* @module types
|
|
4
|
-
* @license MIT
|
|
5
|
-
*/
|
|
1
|
+
/** Shared type definitions for the Secure-UI component library. */
|
|
6
2
|
/**
|
|
7
3
|
* Security tier string literal values
|
|
8
4
|
*/
|
|
@@ -93,16 +89,14 @@ export interface RateLimitState {
|
|
|
93
89
|
attempts: number;
|
|
94
90
|
windowStart: number;
|
|
95
91
|
}
|
|
96
|
-
/**
|
|
97
|
-
* Audit log entry
|
|
98
|
-
*/
|
|
99
92
|
export interface AuditLogEntry {
|
|
100
93
|
event: string;
|
|
101
94
|
tier: SecurityTierValue;
|
|
102
95
|
timestamp: string;
|
|
103
96
|
userAgent?: string;
|
|
104
97
|
language?: string;
|
|
105
|
-
|
|
98
|
+
/** Additional event-specific data attached at audit time. */
|
|
99
|
+
data?: Record<string, unknown>;
|
|
106
100
|
}
|
|
107
101
|
/**
|
|
108
102
|
* CSP directive mapping
|
|
@@ -115,7 +109,7 @@ export type SecurityHeaders = Record<string, string>;
|
|
|
115
109
|
/**
|
|
116
110
|
* Custom event detail for secure-input events
|
|
117
111
|
*/
|
|
118
|
-
export interface
|
|
112
|
+
export interface SecureInputChangeDetail {
|
|
119
113
|
name: string;
|
|
120
114
|
value: string;
|
|
121
115
|
masked: boolean;
|
|
@@ -124,23 +118,21 @@ export interface SecureInputEventDetail {
|
|
|
124
118
|
/**
|
|
125
119
|
* Custom event detail for secure-textarea events
|
|
126
120
|
*/
|
|
127
|
-
export interface
|
|
121
|
+
export interface SecureTextareaChangeDetail {
|
|
128
122
|
name: string;
|
|
129
123
|
value: string;
|
|
130
124
|
tier: SecurityTierValue;
|
|
131
125
|
}
|
|
132
|
-
|
|
133
|
-
* Custom event detail for secure-select events
|
|
134
|
-
*/
|
|
135
|
-
export interface SecureSelectEventDetail {
|
|
126
|
+
export interface SecureSelectChangeDetail {
|
|
136
127
|
name: string;
|
|
137
|
-
|
|
128
|
+
/** string for single-select; string[] for multi-select */
|
|
129
|
+
value: string | string[];
|
|
138
130
|
tier: SecurityTierValue;
|
|
139
131
|
}
|
|
140
132
|
/**
|
|
141
133
|
* Custom event detail for secure-file-upload events
|
|
142
134
|
*/
|
|
143
|
-
export interface
|
|
135
|
+
export interface SecureFileChangeDetail {
|
|
144
136
|
name: string;
|
|
145
137
|
files: File[];
|
|
146
138
|
tier: SecurityTierValue;
|
|
@@ -148,20 +140,22 @@ export interface SecureFileUploadEventDetail {
|
|
|
148
140
|
/**
|
|
149
141
|
* Custom event detail for secure-datetime events
|
|
150
142
|
*/
|
|
151
|
-
export interface
|
|
143
|
+
export interface SecureDatetimeChangeDetail {
|
|
152
144
|
name: string;
|
|
153
145
|
value: string;
|
|
154
146
|
type: string;
|
|
155
147
|
tier: SecurityTierValue;
|
|
156
148
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Custom event detail for secure-form-submit events
|
|
159
|
-
*/
|
|
160
149
|
export interface SecureFormSubmitEventDetail {
|
|
161
150
|
formData: Record<string, string>;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Call to cancel the library's internal fetch submission.
|
|
153
|
+
* Distinct from `event.preventDefault()` (which also cancels, via the
|
|
154
|
+
* cancelable event flag) — this additionally re-enables the form and
|
|
155
|
+
* resets submitting state so the UI recovers cleanly.
|
|
156
|
+
*/
|
|
157
|
+
cancelSubmission: () => void;
|
|
158
|
+
/** Behavioral telemetry collected from all secure fields. */
|
|
165
159
|
telemetry: SessionTelemetry;
|
|
166
160
|
}
|
|
167
161
|
/**
|
|
@@ -177,9 +171,6 @@ export interface SecureFormSuccessEventDetail {
|
|
|
177
171
|
* Custom event detail for secure-audit events
|
|
178
172
|
*/
|
|
179
173
|
export type SecureAuditEventDetail = AuditLogEntry;
|
|
180
|
-
/**
|
|
181
|
-
* Table column definition
|
|
182
|
-
*/
|
|
183
174
|
export interface TableColumnDefinition {
|
|
184
175
|
key: string;
|
|
185
176
|
label: string;
|
|
@@ -187,6 +178,12 @@ export interface TableColumnDefinition {
|
|
|
187
178
|
filterable?: boolean;
|
|
188
179
|
tier?: SecurityTierValue;
|
|
189
180
|
width?: string;
|
|
181
|
+
/**
|
|
182
|
+
* Custom cell renderer. Return value is treated as an HTML string and run
|
|
183
|
+
* through the library's DOMParser-based sanitizer before insertion — event
|
|
184
|
+
* handlers and disallowed tags are stripped. Safe data-* attributes and
|
|
185
|
+
* common inline elements are preserved.
|
|
186
|
+
*/
|
|
190
187
|
render?: (value: unknown, row: Record<string, unknown>, columnKey: string) => string;
|
|
191
188
|
}
|
|
192
189
|
/**
|
|
@@ -365,11 +362,13 @@ export type CardType = 'visa' | 'mastercard' | 'amex' | 'discover' | 'diners' |
|
|
|
365
362
|
* Security note: full PAN and CVC are intentionally absent.
|
|
366
363
|
* Use element.getCardData() to obtain raw values for SDK tokenisation.
|
|
367
364
|
*/
|
|
368
|
-
export interface
|
|
365
|
+
export interface SecureCardChangeDetail {
|
|
369
366
|
name: string;
|
|
370
367
|
cardType: CardType;
|
|
371
368
|
last4: string;
|
|
369
|
+
/** 1–12 */
|
|
372
370
|
expiryMonth: number;
|
|
371
|
+
/** Full 4-digit year (e.g. 2027, not 27) */
|
|
373
372
|
expiryYear: number;
|
|
374
373
|
cardholderName: string;
|
|
375
374
|
valid: boolean;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|