@briklab/lib 1.2.1-test → 1.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.
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Easy way to use colors
2
+ * Easy way to use colors with Protection Levels
3
3
  */
4
+ import type { ProtectionLevel } from "../jstc/index.js";
4
5
  type ColorInput = string | {
5
6
  r: number;
6
7
  g: number;
@@ -18,16 +19,14 @@ export default class Color {
18
19
  private g;
19
20
  private b;
20
21
  private a;
21
- constructor(input: ColorInput);
22
+ private protectionLevel;
23
+ constructor(input: ColorInput, protectionLevel?: ProtectionLevel);
22
24
  hex(): string;
23
25
  rgb(): string;
24
26
  rgba(): string;
25
27
  hsl(): string;
26
28
  hsla(): string;
27
29
  css(): string;
28
- /**
29
- * ANSI / Terminal color helpers
30
- */
31
30
  static RESET: string;
32
31
  static BOLD: string;
33
32
  static UNDERLINE: string;
@@ -1,205 +1,5 @@
1
- /**
2
- * Easy way to use colors
3
- */
4
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
5
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
6
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
7
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
8
- };
9
- var _Color_instances, _Color_rgbToAnsi256Index, _Color_clamp, _Color_toHex, _Color_parseString, _Color_hslToRgb, _Color_rgbToHsl;
10
- import { warner } from "../warner/index.js";
11
- const NAMED_COLORS = {
12
- red: "#ff0000",
13
- blue: "#0000ff",
14
- green: "#00ff00",
15
- yellow: "#ffff00",
16
- orange: "#ffa500",
17
- black: "#000000",
18
- white: "#ffffff",
19
- gray: "#808080",
20
- };
21
- class Color {
22
- constructor(input) {
23
- _Color_instances.add(this);
24
- this.r = 0;
25
- this.g = 0;
26
- this.b = 0;
27
- this.a = 1;
28
- if (typeof input === "string") {
29
- __classPrivateFieldGet(this, _Color_instances, "m", _Color_parseString).call(this, input);
30
- }
31
- else if ("r" in input && "g" in input && "b" in input) {
32
- this.r = __classPrivateFieldGet(this, _Color_instances, "m", _Color_clamp).call(this, input.r);
33
- this.g = __classPrivateFieldGet(this, _Color_instances, "m", _Color_clamp).call(this, input.g);
34
- this.b = __classPrivateFieldGet(this, _Color_instances, "m", _Color_clamp).call(this, input.b);
35
- this.a = input.a ?? 1;
36
- }
37
- else if ("h" in input && "s" in input && "l" in input) {
38
- const { r, g, b } = __classPrivateFieldGet(this, _Color_instances, "m", _Color_hslToRgb).call(this, input.h, input.s, input.l);
39
- this.r = r;
40
- this.g = g;
41
- this.b = b;
42
- this.a = input.a ?? 1;
43
- }
44
- else {
45
- warner.warn({ message: `[Color.constructor] Invalid first argument!
46
- Hint: The first argument must be a valid color array
47
- Using black as fallback.` });
48
- }
49
- }
50
- // -----------------------
51
- // Public Methods
52
- // -----------------------
53
- hex() {
54
- return `#${__classPrivateFieldGet(this, _Color_instances, "m", _Color_toHex).call(this, this.r)}${__classPrivateFieldGet(this, _Color_instances, "m", _Color_toHex).call(this, this.g)}${__classPrivateFieldGet(this, _Color_instances, "m", _Color_toHex).call(this, this.b)}`;
55
- }
56
- rgb() {
57
- return `rgb(${this.r}, ${this.g}, ${this.b})`;
58
- }
59
- rgba() {
60
- return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;
61
- }
62
- hsl() {
63
- const { h, s, l } = __classPrivateFieldGet(this, _Color_instances, "m", _Color_rgbToHsl).call(this, this.r, this.g, this.b);
64
- return `hsl(${h}, ${s}%, ${l}%)`;
65
- }
66
- hsla() {
67
- const { h, s, l } = __classPrivateFieldGet(this, _Color_instances, "m", _Color_rgbToHsl).call(this, this.r, this.g, this.b);
68
- return `hsla(${h}, ${s}%, ${l}%, ${this.a})`;
69
- }
70
- css() {
71
- return this.a === 1 ? this.hex() : this.rgba();
72
- }
73
- /** Return a 24-bit (truecolor) ANSI sequence for this color (foreground) */
74
- ansiTruecolor() {
75
- return `\x1b[38;2;${this.r};${this.g};${this.b}m`;
76
- }
77
- /** Return a 24-bit (truecolor) ANSI sequence for background */
78
- ansiTruecolorBg() {
79
- return `\x1b[48;2;${this.r};${this.g};${this.b}m`;
80
- }
81
- /** Return a 256-color ANSI sequence for this color (foreground) */
82
- ansi256() {
83
- const idx = __classPrivateFieldGet(this, _Color_instances, "m", _Color_rgbToAnsi256Index).call(this, this.r, this.g, this.b);
84
- return `\x1b[38;5;${idx}m`;
85
- }
86
- /** Return a 256-color ANSI sequence for background */
87
- ansi256Bg() {
88
- const idx = __classPrivateFieldGet(this, _Color_instances, "m", _Color_rgbToAnsi256Index).call(this, this.r, this.g, this.b);
89
- return `\x1b[48;5;${idx}m`;
90
- }
91
- /** Wrap text with this color (truecolor by default). Options: {background?: boolean, use256?: boolean, bold?: boolean, underline?: boolean} */
92
- wrapAnsi(text, opts = {}) {
93
- const use256 = Boolean(opts.use256);
94
- const seq = opts.background
95
- ? use256
96
- ? this.ansi256Bg()
97
- : this.ansiTruecolorBg()
98
- : use256
99
- ? this.ansi256()
100
- : this.ansiTruecolor();
101
- const mods = `${opts.bold ? Color.BOLD : ""}${opts.underline ? Color.UNDERLINE : ""}`;
102
- return `${mods}${seq}${text}${Color.RESET}`;
103
- }
104
- }
105
- _Color_instances = new WeakSet(), _Color_rgbToAnsi256Index = function _Color_rgbToAnsi256Index(r, g, b) {
106
- // grayscale range
107
- if (r === g && g === b) {
108
- if (r < 8)
109
- return 16;
110
- if (r > 248)
111
- return 231;
112
- return Math.round(((r - 8) / 247) * 24) + 232;
113
- }
114
- const to6 = (v) => Math.round((v / 255) * 5);
115
- const ri = to6(r);
116
- const gi = to6(g);
117
- const bi = to6(b);
118
- return 16 + 36 * ri + 6 * gi + bi;
119
- }, _Color_clamp = function _Color_clamp(value) {
120
- return Math.max(0, Math.min(255, value));
121
- }, _Color_toHex = function _Color_toHex(value) {
122
- return value.toString(16).padStart(2, "0");
123
- }, _Color_parseString = function _Color_parseString(str) {
124
- str = str.trim().toLowerCase();
125
- if (NAMED_COLORS[str]) {
126
- str = NAMED_COLORS[str];
127
- }
128
- if (str.startsWith("#")) {
129
- const hex = str.slice(1);
130
- if (hex.length === 3) {
131
- this.r = parseInt(hex[0] + hex[0], 16);
132
- this.g = parseInt(hex[1] + hex[1], 16);
133
- this.b = parseInt(hex[2] + hex[2], 16);
134
- }
135
- else if (hex.length === 6) {
136
- this.r = parseInt(hex.slice(0, 2), 16);
137
- this.g = parseInt(hex.slice(2, 4), 16);
138
- this.b = parseInt(hex.slice(4, 6), 16);
139
- }
140
- else {
141
- warner.warn({ message: `[Color class] @briklab/lib/color: Invalid hex!
142
- Hint: You must pass a valid hex color string!
143
- Using black as fallback.` });
144
- }
145
- }
146
- else if (str.startsWith("rgb")) {
147
- const vals = str.match(/[\d.]+/g)?.map(Number);
148
- if (vals && vals.length >= 3) {
149
- [this.r, this.g, this.b] = vals;
150
- this.a = vals[3] ?? 1;
151
- }
152
- }
153
- else if (str.startsWith("hsl")) {
154
- const vals = str.match(/[\d.]+/g)?.map(Number);
155
- if (vals && vals.length >= 3) {
156
- const { r, g, b } = __classPrivateFieldGet(this, _Color_instances, "m", _Color_hslToRgb).call(this, vals[0], vals[1], vals[2]);
157
- this.r = r;
158
- this.g = g;
159
- this.b = b;
160
- this.a = vals[3] ?? 1;
161
- }
162
- }
163
- else {
164
- warner.warn({ message: `[Color class] @briklab/lib/color: Unknown color string "${str}"!
165
- Hint: The argument must be a valid color string!
166
- Using black as fallback.` });
167
- }
168
- }, _Color_hslToRgb = function _Color_hslToRgb(h, s, l) {
169
- s /= 100;
170
- l /= 100;
171
- const k = (n) => (n + h / 30) % 12;
172
- const a = s * Math.min(l, 1 - l);
173
- const f = (n) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));
174
- return { r: Math.round(f(0) * 255), g: Math.round(f(8) * 255), b: Math.round(f(4) * 255) };
175
- }, _Color_rgbToHsl = function _Color_rgbToHsl(r, g, b) {
176
- r /= 255;
177
- g /= 255;
178
- b /= 255;
179
- const max = Math.max(r, g, b), min = Math.min(r, g, b);
180
- let h = 0, s = 0, l = (max + min) / 2;
181
- if (max !== min) {
182
- const d = max - min;
183
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
184
- switch (max) {
185
- case r:
186
- h = (g - b) / d + (g < b ? 6 : 0);
187
- break;
188
- case g:
189
- h = (b - r) / d + 2;
190
- break;
191
- case b:
192
- h = (r - g) / d + 4;
193
- break;
194
- }
195
- h *= 60;
196
- }
197
- return { h: Math.round(h), s: Math.round(s * 100), l: Math.round(l * 100) };
198
- };
199
- /**
200
- * ANSI / Terminal color helpers
201
- */
202
- Color.RESET = "\x1b[0m";
203
- Color.BOLD = "\x1b[1m";
204
- Color.UNDERLINE = "\x1b[4m";
205
- export default Color;
1
+ var n=function(h,t,s,i){if(s==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?h!==t||!i:!t.has(h))throw new TypeError("Cannot read private member from an object whose class did not declare it");return s==="m"?i:s==="a"?i.call(h):i?i.value:t.get(h)},a,x,u,g,m,C,_,$;import{createWarner as v}from"../warner/index.js";const f=v("@briklab/lib/color"),w={red:"#ff0000",blue:"#0000ff",green:"#00ff00",yellow:"#ffff00",orange:"#ffa500",black:"#000000",white:"#ffffff",gray:"#808080"};class c{constructor(t,s){if(a.add(this),this.r=0,this.g=0,this.b=0,this.a=1,this.protectionLevel="boundary",s&&["none","boundary","sandbox","hardened"].includes(s)&&(this.protectionLevel=s),typeof t=="string")n(this,a,"m",C).call(this,t);else if("r"in t&&"g"in t&&"b"in t)this.r=n(this,a,"m",g).call(this,t.r),this.g=n(this,a,"m",g).call(this,t.g),this.b=n(this,a,"m",g).call(this,t.b),this.a=t.a??1;else if("h"in t&&"s"in t&&"l"in t){const{r:i,g:r,b:o}=n(this,a,"m",_).call(this,t.h,t.s,t.l);this.r=i,this.g=r,this.b=o,this.a=t.a??1}else n(this,a,"m",x).call(this)}hex(){return`#${n(this,a,"m",m).call(this,this.r)}${n(this,a,"m",m).call(this,this.g)}${n(this,a,"m",m).call(this,this.b)}`}rgb(){return`rgb(${this.r}, ${this.g}, ${this.b})`}rgba(){return`rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`}hsl(){const{h:t,s,l:i}=n(this,a,"m",$).call(this,this.r,this.g,this.b);return`hsl(${t}, ${s}%, ${i}%)`}hsla(){const{h:t,s,l:i}=n(this,a,"m",$).call(this,this.r,this.g,this.b);return`hsla(${t}, ${s}%, ${i}%, ${this.a})`}css(){return this.a===1?this.hex():this.rgba()}ansiTruecolor(){return`\x1B[38;2;${this.r};${this.g};${this.b}m`}ansiTruecolorBg(){return`\x1B[48;2;${this.r};${this.g};${this.b}m`}ansi256(){return`\x1B[38;5;${n(this,a,"m",u).call(this,this.r,this.g,this.b)}m`}ansi256Bg(){return`\x1B[48;5;${n(this,a,"m",u).call(this,this.r,this.g,this.b)}m`}wrapAnsi(t,s={}){const i=!!s.use256,r=s.background?i?this.ansi256Bg():this.ansiTruecolorBg():i?this.ansi256():this.ansiTruecolor();return`${`${s.bold?c.BOLD:""}${s.underline?c.UNDERLINE:""}`}${r}${t}${c.RESET}`}}a=new WeakSet,x=function(){if(this.protectionLevel==="hardened")throw new Error("[Color.constructor] Invalid color input provided. Expected string, RGB, or HSL object.");this.protectionLevel==="sandbox"?f.warn({message:"[Color.constructor] Invalid color input provided."}):this.protectionLevel==="boundary"&&f.warn({message:"[Color.constructor] Invalid color input! Using black as fallback."})},u=function(t,s,i){if(t===s&&s===i)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;const r=d=>Math.round(d/255*5),o=r(t),e=r(s),l=r(i);return 16+36*o+6*e+l},g=function(t){return Math.max(0,Math.min(255,t))},m=function(t){return t.toString(16).padStart(2,"0")},C=function(t){if(t=t.trim().toLowerCase(),w[t]&&(t=w[t]),t.startsWith("#")){const s=t.slice(1);s.length===3?(this.r=parseInt(s[0]+s[0],16),this.g=parseInt(s[1]+s[1],16),this.b=parseInt(s[2]+s[2],16)):s.length===6?(this.r=parseInt(s.slice(0,2),16),this.g=parseInt(s.slice(2,4),16),this.b=parseInt(s.slice(4,6),16)):f.warn({message:`[Color class] @briklab/lib/color: Invalid hex!
2
+ Hint: You must pass a valid hex color string!
3
+ Using black as fallback.`})}else if(t.startsWith("rgb")){const s=t.match(/[\d.]+/g)?.map(Number);s&&s.length>=3&&([this.r,this.g,this.b]=s,this.a=s[3]??1)}else if(t.startsWith("hsl")){const s=t.match(/[\d.]+/g)?.map(Number);if(s&&s.length>=3){const{r:i,g:r,b:o}=n(this,a,"m",_).call(this,s[0],s[1],s[2]);this.r=i,this.g=r,this.b=o,this.a=s[3]??1}}else f.warn({message:`[Color class] @briklab/lib/color: Unknown color string "${t}"!
4
+ Hint: The argument must be a valid color string!
5
+ Using black as fallback.`})},_=function(t,s,i){s/=100,i/=100;const r=l=>(l+t/30)%12,o=s*Math.min(i,1-i),e=l=>i-o*Math.max(-1,Math.min(r(l)-3,Math.min(9-r(l),1)));return{r:Math.round(e(0)*255),g:Math.round(e(8)*255),b:Math.round(e(4)*255)}},$=function(t,s,i){t/=255,s/=255,i/=255;const r=Math.max(t,s,i),o=Math.min(t,s,i);let e=0,l=0,d=(r+o)/2;if(r!==o){const b=r-o;switch(l=d>.5?b/(2-r-o):b/(r+o),r){case t:e=(s-i)/b+(s<i?6:0);break;case s:e=(i-t)/b+2;break;case i:e=(t-s)/b+4;break}e*=60}return{h:Math.round(e),s:Math.round(l*100),l:Math.round(d*100)}},c.RESET="\x1B[0m",c.BOLD="\x1B[1m",c.UNDERLINE="\x1B[4m";var M=c;export{M as default};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.js"],
4
- "mappings": "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",
5
- "names": ["__classPrivateFieldGet", "receiver", "state", "kind", "f", "_Color_instances", "_Color_rgbToAnsi256Index", "_Color_clamp", "_Color_toHex", "_Color_parseString", "_Color_hslToRgb", "_Color_rgbToHsl", "warner", "NAMED_COLORS", "Color", "input", "r", "g", "b", "h", "s", "l", "text", "opts", "use256", "seq", "to6", "v", "ri", "gi", "bi", "value", "str", "hex", "vals", "k", "n", "a", "max", "min", "d", "index_default"]
4
+ "mappings": "AAGA,IAAIA,EAAkE,SAAUC,EAAUC,EAAOC,EAAMC,EAAG,CACtG,GAAID,IAAS,KAAO,CAACC,EAAG,MAAM,IAAI,UAAU,+CAA+C,EAC3F,GAAI,OAAOF,GAAU,WAAaD,IAAaC,GAAS,CAACE,EAAI,CAACF,EAAM,IAAID,CAAQ,EAAG,MAAM,IAAI,UAAU,0EAA0E,EACjL,OAAOE,IAAS,IAAMC,EAAID,IAAS,IAAMC,EAAE,KAAKH,CAAQ,EAAIG,EAAIA,EAAE,MAAQF,EAAM,IAAID,CAAQ,CAChG,EACII,EAAkBC,EAA2BC,EAA0BC,EAAcC,EAAcC,EAAoBC,EAAiBC,EAC5I,OAAS,gBAAAC,MAAoB,qBAC7B,MAAMC,EAAcD,EAAa,oBAAoB,EAC/CE,EAAe,CACjB,IAAK,UACL,KAAM,UACN,MAAO,UACP,OAAQ,UACR,OAAQ,UACR,MAAO,UACP,MAAO,UACP,KAAM,SACV,EACA,MAAMC,CAAM,CACR,YAAYC,EAAOC,EAAiB,CAUhC,GATAb,EAAiB,IAAI,IAAI,EACzB,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,gBAAkB,WACnBa,GAAmB,CAAC,OAAQ,WAAY,UAAW,UAAU,EAAE,SAASA,CAAe,IACvF,KAAK,gBAAkBA,GAEvB,OAAOD,GAAU,SACjBjB,EAAuB,KAAMK,EAAkB,IAAKK,CAAkB,EAAE,KAAK,KAAMO,CAAK,UAEnF,MAAOA,GAAS,MAAOA,GAAS,MAAOA,EAC5C,KAAK,EAAIjB,EAAuB,KAAMK,EAAkB,IAAKG,CAAY,EAAE,KAAK,KAAMS,EAAM,CAAC,EAC7F,KAAK,EAAIjB,EAAuB,KAAMK,EAAkB,IAAKG,CAAY,EAAE,KAAK,KAAMS,EAAM,CAAC,EAC7F,KAAK,EAAIjB,EAAuB,KAAMK,EAAkB,IAAKG,CAAY,EAAE,KAAK,KAAMS,EAAM,CAAC,EAC7F,KAAK,EAAIA,EAAM,GAAK,UAEf,MAAOA,GAAS,MAAOA,GAAS,MAAOA,EAAO,CACnD,KAAM,CAAE,EAAAE,EAAG,EAAAC,EAAG,EAAAC,CAAE,EAAIrB,EAAuB,KAAMK,EAAkB,IAAKM,CAAe,EAAE,KAAK,KAAMM,EAAM,EAAGA,EAAM,EAAGA,EAAM,CAAC,EAC7H,KAAK,EAAIE,EACT,KAAK,EAAIC,EACT,KAAK,EAAIC,EACT,KAAK,EAAIJ,EAAM,GAAK,CACxB,MAEIjB,EAAuB,KAAMK,EAAkB,IAAKC,CAAyB,EAAE,KAAK,IAAI,CAEhG,CAIA,KAAM,CACF,MAAO,IAAIN,EAAuB,KAAMK,EAAkB,IAAKI,CAAY,EAAE,KAAK,KAAM,KAAK,CAAC,CAAC,GAAGT,EAAuB,KAAMK,EAAkB,IAAKI,CAAY,EAAE,KAAK,KAAM,KAAK,CAAC,CAAC,GAAGT,EAAuB,KAAMK,EAAkB,IAAKI,CAAY,EAAE,KAAK,KAAM,KAAK,CAAC,CAAC,EACjR,CACA,KAAM,CACF,MAAO,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,GAC9C,CACA,MAAO,CACH,MAAO,QAAQ,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC,GAC1D,CACA,KAAM,CACF,KAAM,CAAE,EAAAa,EAAG,EAAG,EAAAC,CAAE,EAAIvB,EAAuB,KAAMK,EAAkB,IAAKO,CAAe,EAAE,KAAK,KAAM,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,EAC1H,MAAO,OAAOU,CAAC,KAAK,CAAC,MAAMC,CAAC,IAChC,CACA,MAAO,CACH,KAAM,CAAE,EAAAD,EAAG,EAAG,EAAAC,CAAE,EAAIvB,EAAuB,KAAMK,EAAkB,IAAKO,CAAe,EAAE,KAAK,KAAM,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,EAC1H,MAAO,QAAQU,CAAC,KAAK,CAAC,MAAMC,CAAC,MAAM,KAAK,CAAC,GAC7C,CACA,KAAM,CACF,OAAO,KAAK,IAAM,EAAI,KAAK,IAAI,EAAI,KAAK,KAAK,CACjD,CAEA,eAAgB,CACZ,MAAO,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAClD,CAEA,iBAAkB,CACd,MAAO,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAClD,CAEA,SAAU,CAEN,MAAO,aADKvB,EAAuB,KAAMK,EAAkB,IAAKE,CAAwB,EAAE,KAAK,KAAM,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,CACpG,GAC3B,CAEA,WAAY,CAER,MAAO,aADKP,EAAuB,KAAMK,EAAkB,IAAKE,CAAwB,EAAE,KAAK,KAAM,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,CACpG,GAC3B,CAEA,SAASiB,EAAMC,EAAO,CAAC,EAAG,CACtB,MAAMC,EAAS,EAAQD,EAAK,OACtBE,EAAMF,EAAK,WACXC,EACI,KAAK,UAAU,EACf,KAAK,gBAAgB,EACzBA,EACI,KAAK,QAAQ,EACb,KAAK,cAAc,EAE7B,MAAO,GADM,GAAGD,EAAK,KAAOT,EAAM,KAAO,EAAE,GAAGS,EAAK,UAAYT,EAAM,UAAY,EAAE,EACrE,GAAGW,CAAG,GAAGH,CAAI,GAAGR,EAAM,KAAK,EAC7C,CACJ,CACAX,EAAmB,IAAI,QAAWC,EAA4B,UAAqC,CAC/F,GAAI,KAAK,kBAAoB,WACzB,MAAM,IAAI,MAAM,wFAAwF,EAEnG,KAAK,kBAAoB,UAC9BQ,EAAY,KAAK,CACb,QAAS,mDACb,CAAC,EAEI,KAAK,kBAAoB,YAC9BA,EAAY,KAAK,CACb,QAAS,mEACb,CAAC,CAGT,EAAGP,EAA2B,SAAkCY,EAAGC,EAAGC,EAAG,CAErE,GAAIF,IAAMC,GAAKA,IAAMC,EACjB,OAAIF,EAAI,EACG,GACPA,EAAI,IACG,IACJ,KAAK,OAAQA,EAAI,GAAK,IAAO,EAAE,EAAI,IAE9C,MAAMS,EAAOC,GAAM,KAAK,MAAOA,EAAI,IAAO,CAAC,EACrCC,EAAKF,EAAIT,CAAC,EACVY,EAAKH,EAAIR,CAAC,EACVY,EAAKJ,EAAIP,CAAC,EAChB,MAAO,IAAK,GAAKS,EAAK,EAAIC,EAAKC,CACnC,EAAGxB,EAAe,SAAsByB,EAAO,CAC3C,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,IAAKA,CAAK,CAAC,CAC3C,EAAGxB,EAAe,SAAsBwB,EAAO,CAC3C,OAAOA,EAAM,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAC7C,EAAGvB,EAAqB,SAA4BwB,EAAK,CAKrD,GAJAA,EAAMA,EAAI,KAAK,EAAE,YAAY,EACzBnB,EAAamB,CAAG,IAChBA,EAAMnB,EAAamB,CAAG,GAEtBA,EAAI,WAAW,GAAG,EAAG,CACrB,MAAMC,EAAMD,EAAI,MAAM,CAAC,EACnBC,EAAI,SAAW,GACf,KAAK,EAAI,SAASA,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAG,EAAE,EACrC,KAAK,EAAI,SAASA,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAG,EAAE,EACrC,KAAK,EAAI,SAASA,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAG,EAAE,GAEhCA,EAAI,SAAW,GACpB,KAAK,EAAI,SAASA,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,EACrC,KAAK,EAAI,SAASA,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,EACrC,KAAK,EAAI,SAASA,EAAI,MAAM,EAAG,CAAC,EAAG,EAAE,GAGrCrB,EAAY,KAAK,CAAE,QAAS;AAAA;AAAA,iCAEN,CAAC,CAE/B,SACSoB,EAAI,WAAW,KAAK,EAAG,CAC5B,MAAME,EAAOF,EAAI,MAAM,SAAS,GAAG,IAAI,MAAM,EACzCE,GAAQA,EAAK,QAAU,IACvB,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC,EAAIA,EAC3B,KAAK,EAAIA,EAAK,CAAC,GAAK,EAE5B,SACSF,EAAI,WAAW,KAAK,EAAG,CAC5B,MAAME,EAAOF,EAAI,MAAM,SAAS,GAAG,IAAI,MAAM,EAC7C,GAAIE,GAAQA,EAAK,QAAU,EAAG,CAC1B,KAAM,CAAE,EAAAjB,EAAG,EAAAC,EAAG,EAAAC,CAAE,EAAIrB,EAAuB,KAAMK,EAAkB,IAAKM,CAAe,EAAE,KAAK,KAAMyB,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAC7H,KAAK,EAAIjB,EACT,KAAK,EAAIC,EACT,KAAK,EAAIC,EACT,KAAK,EAAIe,EAAK,CAAC,GAAK,CACxB,CACJ,MAEItB,EAAY,KAAK,CAAE,QAAS,2DAA2DoB,CAAG;AAAA;AAAA,iCAEhE,CAAC,CAEnC,EAAGvB,EAAkB,SAAyBW,EAAG,EAAGC,EAAG,CACnD,GAAK,IACLA,GAAK,IACL,MAAMc,EAAKC,IAAOA,EAAIhB,EAAI,IAAM,GAC1BiB,EAAI,EAAI,KAAK,IAAIhB,EAAG,EAAIA,CAAC,EACzBnB,EAAKkC,GAAMf,EAAIgB,EAAI,KAAK,IAAI,GAAI,KAAK,IAAIF,EAAEC,CAAC,EAAI,EAAG,KAAK,IAAI,EAAID,EAAEC,CAAC,EAAG,CAAC,CAAC,CAAC,EAC/E,MAAO,CAAE,EAAG,KAAK,MAAMlC,EAAE,CAAC,EAAI,GAAG,EAAG,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAI,GAAG,EAAG,EAAG,KAAK,MAAMA,EAAE,CAAC,EAAI,GAAG,CAAE,CAC7F,EAAGQ,EAAkB,SAAyBO,EAAGC,EAAGC,EAAG,CACnDF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,MAAMmB,EAAM,KAAK,IAAIrB,EAAGC,EAAGC,CAAC,EAAGoB,EAAM,KAAK,IAAItB,EAAGC,EAAGC,CAAC,EACrD,IAAIC,EAAI,EAAGoB,EAAI,EAAGnB,GAAKiB,EAAMC,GAAO,EACpC,GAAID,IAAQC,EAAK,CACb,MAAME,EAAIH,EAAMC,EAEhB,OADAC,EAAInB,EAAI,GAAMoB,GAAK,EAAIH,EAAMC,GAAOE,GAAKH,EAAMC,GACvCD,EAAK,CACT,KAAKrB,EACDG,GAAKF,EAAIC,GAAKsB,GAAKvB,EAAIC,EAAI,EAAI,GAC/B,MACJ,KAAKD,EACDE,GAAKD,EAAIF,GAAKwB,EAAI,EAClB,MACJ,KAAKtB,EACDC,GAAKH,EAAIC,GAAKuB,EAAI,EAClB,KACR,CACArB,GAAK,EACT,CACA,MAAO,CAAE,EAAG,KAAK,MAAMA,CAAC,EAAG,EAAG,KAAK,MAAMoB,EAAI,GAAG,EAAG,EAAG,KAAK,MAAMnB,EAAI,GAAG,CAAE,CAC9E,EACAP,EAAM,MAAQ,UACdA,EAAM,KAAO,UACbA,EAAM,UAAY,UAClB,IAAO4B,EAAQ5B",
5
+ "names": ["__classPrivateFieldGet", "receiver", "state", "kind", "f", "_Color_instances", "_Color_handleInvalidInput", "_Color_rgbToAnsi256Index", "_Color_clamp", "_Color_toHex", "_Color_parseString", "_Color_hslToRgb", "_Color_rgbToHsl", "createWarner", "colorWarner", "NAMED_COLORS", "Color", "input", "protectionLevel", "r", "g", "b", "h", "l", "text", "opts", "use256", "seq", "to6", "v", "ri", "gi", "bi", "value", "str", "hex", "vals", "k", "n", "a", "max", "min", "s", "d", "index_default"]
6
6
  }
package/dist/index.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * @packageDocumentation
3
3
  * The main library for briklab packages
4
4
  */
5
- export { warner, default as Warner } from "./warner/index.js";
5
+ export { warner, createWarner, default as Warner } from "./warner/index.js";
package/dist/index.js CHANGED
@@ -2,4 +2,4 @@
2
2
  * @packageDocumentation
3
3
  * The main library for briklab packages
4
4
  */
5
- export { warner, default as Warner } from "./warner/index.js";
5
+ export { warner, createWarner, default as Warner } from "./warner/index.js";
@@ -1,9 +1,14 @@
1
1
  /**
2
2
  * # JSTC
3
3
  * @packageDocumentation
4
- * Runtime JS Type Checker
4
+ * Runtime JS Type Checker with Protection Levels
5
5
  * @module JSTC
6
6
  */
7
+ /**
8
+ * # Protection Level
9
+ * Defines the security/validation level for operations
10
+ */
11
+ export type ProtectionLevel = "none" | "boundary" | "sandbox" | "hardened";
7
12
  /**
8
13
  * # Primitive Type
9
14
  */
@@ -28,6 +33,16 @@ export type JSTypeOrArray = JSType | JSType[];
28
33
  */
29
34
  export declare class JSTypeChecker {
30
35
  #private;
36
+ /**
37
+ * ### JSTypeChecker.setProtectionLevel
38
+ * Set the protection level for type checking strictness
39
+ */
40
+ setProtectionLevel(level: ProtectionLevel): void;
41
+ /**
42
+ * ### JSTypeChecker.getProtectionLevel
43
+ * Get the current protection level
44
+ */
45
+ getProtectionLevel(): ProtectionLevel;
31
46
  /**
32
47
  * ### JSTypeChecker.for
33
48
  * check if specific arguments are of a specific type, class, etc.
@@ -1,96 +1,3 @@
1
- /**
2
- * # JSTC
3
- * @packageDocumentation
4
- * Runtime JS Type Checker
5
- * @module JSTC
6
- */
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _JSTypeChecker___CustomHandler;
13
- /**
14
- * # JSTypeChecker
15
- * A JS Type Checker. Add type checking to your javascript files as well
16
- */
17
- export class JSTypeChecker {
18
- constructor() {
19
- _JSTypeChecker___CustomHandler.set(this, {
20
- Array: (value) => Array.isArray(value),
21
- "string[]": (value) => Array.isArray(value) && value.every((v) => typeof v === "string"),
22
- });
23
- }
24
- /**
25
- * ### JSTypeChecker.for
26
- * check if specific arguments are of a specific type, class, etc.
27
- * @param {unknown[]} args
28
- */
29
- for(args) {
30
- if (!Array.isArray(args)) {
31
- console.warn(`[JSTC.for] @briklab/lib/jstc: Invalid first argument!
32
- Hint: The first argument must be a array.
33
- Using [givenValue] as fallback`);
34
- args = [args];
35
- }
36
- return {
37
- /**
38
- * ### JSTypeChecker.for().check
39
- * Check the given arguments with corresponding given types
40
- */
41
- check: (types) => {
42
- if (args.length < types.length)
43
- return false;
44
- for (let i = 0; i < types.length; i++) {
45
- const value = args[i];
46
- const expected = types[i];
47
- const expectedTypes = Array.isArray(expected) ? expected : [expected];
48
- let matched = false;
49
- for (const tRaw of expectedTypes) {
50
- const unionTypes = typeof tRaw === "string" ? tRaw.split("|") : [tRaw];
51
- for (const t of unionTypes) {
52
- if (typeof t === "function") {
53
- if (value instanceof t) {
54
- matched = true;
55
- break;
56
- }
57
- }
58
- else if (typeof t === "string" && __classPrivateFieldGet(this, _JSTypeChecker___CustomHandler, "f")[t]) {
59
- if (__classPrivateFieldGet(this, _JSTypeChecker___CustomHandler, "f")[t](value)) {
60
- matched = true;
61
- break;
62
- }
63
- }
64
- else if (typeof value === t) {
65
- matched = true;
66
- break;
67
- }
68
- }
69
- if (matched)
70
- break;
71
- }
72
- if (!matched)
73
- return false;
74
- }
75
- return true;
76
- },
77
- };
78
- }
79
- /**
80
- * ### JSTypeChecker.addCustomHandler
81
- * Create a custom handler for checking types.
82
- */
83
- addCustomHandler(name, handler) {
84
- if (!(typeof name === "string" && typeof handler === "function")) {
85
- console.warn(`[JSTC.addCustomHandler] @briklab/lib/jstc: Invalid Arguments!
86
- Hint: The first argument must be a string, and the second argument must be a function
87
- Using String(argument1) and ()=>false as fallbacks`);
88
- name = String(name);
89
- handler = () => false;
90
- }
91
- __classPrivateFieldGet(this, _JSTypeChecker___CustomHandler, "f")[name] = handler;
92
- }
93
- }
94
- _JSTypeChecker___CustomHandler = new WeakMap();
95
- const JSTC = new JSTypeChecker();
96
- export default JSTC;
1
+ var u=function(i,e,t,r,s){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?i!==e||!s:!e.has(i))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?s.call(i,t):s?s.value=t:e.set(i,t),t},n=function(i,e,t,r){if(t==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?i!==e||!r:!e.has(i))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?r:t==="a"?r.call(i):r?r.value:e.get(i)},f,o,c;class w{constructor(){f.set(this,{Array:e=>Array.isArray(e),"string[]":e=>Array.isArray(e)&&e.every(t=>typeof t=="string")}),o.set(this,"boundary"),c.set(this,!1)}setProtectionLevel(e){["none","boundary","sandbox","hardened"].includes(e)&&(u(this,o,e,"f"),(e==="sandbox"||e==="hardened")&&(Object.freeze(n(this,f,"f")),u(this,c,!0,"f")))}getProtectionLevel(){return n(this,o,"f")}for(e){return Array.isArray(e)||(console.warn(`[JSTC.for] @briklab/lib/jstc: Invalid first argument!
2
+ Hint: The first argument must be a array.
3
+ Using [givenValue] as fallback`),e=[e]),{check:t=>{if(e.length<t.length)return!1;for(let r=0;r<t.length;r++){const s=e[r],d=t[r],b=Array.isArray(d)?d:[d];let l=!1;for(const h of b){const y=typeof h=="string"?h.split("|"):[h];for(const a of y)if(typeof a=="function"){if(s instanceof a){l=!0;break}}else if(typeof a=="string"&&n(this,f,"f")[a]){if(n(this,f,"f")[a](s)){l=!0;break}}else if(typeof s===a){l=!0;break}if(l)break}if(!l)return!1}return!0}}}addCustomHandler(e,t){if(n(this,o,"f")==="sandbox"&&n(this,c,"f")){console.warn('[JSTC.addCustomHandler] @briklab/lib/jstc: Protection level is "sandbox" - custom handlers are frozen!');return}if(n(this,o,"f")==="hardened"&&n(this,c,"f"))throw new Error('[JSTC.addCustomHandler] @briklab/lib/jstc: Protection level is "hardened" - custom handlers cannot be modified!');if(!(typeof e=="string"&&typeof t=="function")){if(n(this,o,"f")==="boundary"||n(this,o,"f")==="hardened")throw new Error("[JSTC.addCustomHandler] @briklab/lib/jstc: Invalid Arguments! First must be string, second must be function");n(this,o,"f")!=="none"&&console.warn("[JSTC.addCustomHandler] @briklab/lib/jstc: Invalid Arguments!"),e=String(e),t=()=>!1}n(this,f,"f")[e]=t}}f=new WeakMap,o=new WeakMap,c=new WeakMap;const p=new w;var m=p;export{w as JSTypeChecker,m as default};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.js"],
4
- "mappings": "AAMA,IAAIA,EAAkE,SAAUC,EAAUC,EAAOC,EAAMC,EAAG,CACtG,GAAID,IAAS,KAAO,CAACC,EAAG,MAAM,IAAI,UAAU,+CAA+C,EAC3F,GAAI,OAAOF,GAAU,WAAaD,IAAaC,GAAS,CAACE,EAAI,CAACF,EAAM,IAAID,CAAQ,EAAG,MAAM,IAAI,UAAU,0EAA0E,EACjL,OAAOE,IAAS,IAAMC,EAAID,IAAS,IAAMC,EAAE,KAAKH,CAAQ,EAAIG,EAAIA,EAAE,MAAQF,EAAM,IAAID,CAAQ,CAChG,EACII,EACJ,OAAS,UAAAC,MAAc,qBAKhB,MAAMC,CAAc,CACvB,aAAc,CACVF,EAA+B,IAAI,KAAM,CACrC,MAAQG,GAAU,MAAM,QAAQA,CAAK,EACrC,WAAaA,GAAU,MAAM,QAAQA,CAAK,GAAKA,EAAM,MAAOC,GAAM,OAAOA,GAAM,QAAQ,CAC3F,CAAC,CACL,CAMA,IAAIC,EAAM,CACN,OAAK,MAAM,QAAQA,CAAI,IACnBJ,EAAO,KAAK,CAAE,QAAS;AAAA;AAAA,uCAEK,CAAC,EAC7BI,EAAO,CAACA,CAAI,GAET,CAKH,MAAQC,GAAU,CACd,GAAID,EAAK,OAASC,EAAM,OACpB,MAAO,GACX,QAASC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAAK,CACnC,MAAMJ,EAAQE,EAAKE,CAAC,EACdC,EAAWF,EAAMC,CAAC,EAClBE,EAAgB,MAAM,QAAQD,CAAQ,EAAIA,EAAW,CAACA,CAAQ,EACpE,IAAIE,EAAU,GACd,UAAWC,KAAQF,EAAe,CAC9B,MAAMG,EAAa,OAAOD,GAAS,SAAWA,EAAK,MAAM,GAAG,EAAI,CAACA,CAAI,EACrE,UAAWE,KAAKD,EACZ,GAAI,OAAOC,GAAM,YACb,GAAIV,aAAiBU,EAAG,CACpBH,EAAU,GACV,KACJ,UAEK,OAAOG,GAAM,UAAYlB,EAAuB,KAAMK,EAAgC,GAAG,EAAEa,CAAC,GACjG,GAAIlB,EAAuB,KAAMK,EAAgC,GAAG,EAAEa,CAAC,EAAEV,CAAK,EAAG,CAC7EO,EAAU,GACV,KACJ,UAEK,OAAOP,IAAUU,EAAG,CACzBH,EAAU,GACV,KACJ,CAEJ,GAAIA,EACA,KACR,CACA,GAAI,CAACA,EACD,MAAO,EACf,CACA,MAAO,EACX,CACJ,CACJ,CAKA,iBAAiBI,EAAMC,EAAS,CACtB,OAAOD,GAAS,UAAY,OAAOC,GAAY,aACjDd,EAAO,KAAK,CAAE,QAAS;AAAA;AAAA,2DAEyB,CAAC,EACjDa,EAAO,OAAOA,CAAI,EAClBC,EAAU,IAAM,IAEpBpB,EAAuB,KAAMK,EAAgC,GAAG,EAAEc,CAAI,EAAIC,CAC9E,CACJ,CACAf,EAAiC,IAAI,QACrC,MAAMgB,EAAO,IAAId,EACjB,IAAOe,EAAQD",
5
- "names": ["__classPrivateFieldGet", "receiver", "state", "kind", "f", "_JSTypeChecker___CustomHandler", "warner", "JSTypeChecker", "value", "v", "args", "types", "i", "expected", "expectedTypes", "matched", "tRaw", "unionTypes", "t", "name", "handler", "JSTC", "index_default"]
4
+ "mappings": "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",
5
+ "names": ["__classPrivateFieldSet", "receiver", "state", "value", "kind", "f", "__classPrivateFieldGet", "_JSTypeChecker___CustomHandler", "_JSTypeChecker_protectionLevel", "_JSTypeChecker_frozenHandlers", "JSTypeChecker", "v", "level", "args", "types", "i", "expected", "expectedTypes", "matched", "tRaw", "unionTypes", "t", "name", "handler", "JSTC", "index_default"]
6
6
  }
@@ -1,21 +1,22 @@
1
1
  /**
2
2
  * # @briklab/lib/stylesheet
3
- * Create inline styles in JS/TS
3
+ * Create inline styles in JS/TS with Protection Levels
4
4
  */
5
+ import type { ProtectionLevel } from "../jstc/index.js";
5
6
  /**
6
7
  * # InlineStyle
7
- * @classdesc Create a CSS Inline style.
8
+ * @classdesc Create a CSS Inline style with protection levels.
8
9
  * @class
9
10
  */
10
11
  export default class InlineStyle {
11
12
  #private;
12
13
  /**
13
14
  * ## constructor
14
- * construct a InlineStyle
15
+ * construct a InlineStyle with optional protection level
15
16
  */
16
17
  constructor(styleObject: {
17
18
  [key: string]: string;
18
- });
19
+ }, protectionLevel?: ProtectionLevel);
19
20
  generate(): string;
20
21
  get text(): string;
21
22
  get ansi(): string;