@mirai/core 0.2.15 → 0.2.17

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.
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findDangerousCSSRules = void 0;
7
+ const NATIVE_TAGS = ['iframe', 'img', 'input', 'textarea', 'select', 'option', 'a', 'button', 'form', 'table', 'thead', 'tbody', 'tr', 'th', 'td'];
8
+ const findDangerousCSSRules = () => {
9
+ const {
10
+ styleSheets
11
+ } = document;
12
+ let value = [];
13
+ const checkRules = function (rules) {
14
+ let fileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'inline';
15
+ const dangerousRules = Array.from(rules).filter(rule => {
16
+ return rule.selectorText && NATIVE_TAGS.some(selector => new RegExp(`\\b${selector}\\b`).test(rule.selectorText));
17
+ }).map(rule => ({
18
+ selector: rule.selectorText,
19
+ fileName
20
+ }));
21
+ value = [...value, ...dangerousRules];
22
+ for (const rule of rules) {
23
+ if (rule.cssRules) checkRules(rule.cssRules, fileName);
24
+ }
25
+ };
26
+ for (const styleSheet of styleSheets) {
27
+ const rules = styleSheet.cssRules || styleSheet.rules;
28
+ if (rules) checkRules(rules, styleSheet.href);
29
+ }
30
+ return value;
31
+ };
32
+ exports.findDangerousCSSRules = findDangerousCSSRules;
33
+ //# sourceMappingURL=findDangerousCSSRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findDangerousCSSRules.js","names":["NATIVE_TAGS","findDangerousCSSRules","styleSheets","document","value","checkRules","rules","fileName","arguments","length","undefined","dangerousRules","Array","from","filter","rule","selectorText","some","selector","RegExp","test","map","cssRules","styleSheet","href","exports"],"sources":["../../src/helpers/findDangerousCSSRules.js"],"sourcesContent":["const NATIVE_TAGS = [\n 'iframe',\n 'img',\n 'input',\n 'textarea',\n 'select',\n 'option',\n 'a',\n 'button',\n 'form',\n 'table',\n 'thead',\n 'tbody',\n 'tr',\n 'th',\n 'td',\n];\n\nexport const findDangerousCSSRules = () => {\n const { styleSheets } = document;\n let value = [];\n\n const checkRules = (rules, fileName = 'inline') => {\n const dangerousRules = Array.from(rules)\n .filter((rule) => {\n return (\n rule.selectorText && NATIVE_TAGS.some((selector) => new RegExp(`\\\\b${selector}\\\\b`).test(rule.selectorText))\n );\n })\n .map((rule) => ({ selector: rule.selectorText, fileName }));\n\n value = [...value, ...dangerousRules];\n\n for (const rule of rules) {\n if (rule.cssRules) checkRules(rule.cssRules, fileName);\n }\n };\n\n for (const styleSheet of styleSheets) {\n const rules = styleSheet.cssRules || styleSheet.rules;\n if (rules) checkRules(rules, styleSheet.href);\n }\n\n return value;\n};\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAG,CAClB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;AAEM,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAM;IAAEC;EAAY,CAAC,GAAGC,QAAQ;EAChC,IAAIC,KAAK,GAAG,EAAE;EAEd,MAAMC,UAAU,GAAG,SAAAA,CAACC,KAAK,EAA0B;IAAA,IAAxBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,QAAQ;IAC5C,MAAMG,cAAc,GAAGC,KAAK,CAACC,IAAI,CAACP,KAAK,CAAC,CACrCQ,MAAM,CAAEC,IAAI,IAAK;MAChB,OACEA,IAAI,CAACC,YAAY,IAAIhB,WAAW,CAACiB,IAAI,CAAEC,QAAQ,IAAK,IAAIC,MAAM,CAAE,MAAKD,QAAS,KAAI,CAAC,CAACE,IAAI,CAACL,IAAI,CAACC,YAAY,CAAC,CAAC;IAEhH,CAAC,CAAC,CACDK,GAAG,CAAEN,IAAI,KAAM;MAAEG,QAAQ,EAAEH,IAAI,CAACC,YAAY;MAAET;IAAS,CAAC,CAAC,CAAC;IAE7DH,KAAK,GAAG,CAAC,GAAGA,KAAK,EAAE,GAAGO,cAAc,CAAC;IAErC,KAAK,MAAMI,IAAI,IAAIT,KAAK,EAAE;MACxB,IAAIS,IAAI,CAACO,QAAQ,EAAEjB,UAAU,CAACU,IAAI,CAACO,QAAQ,EAAEf,QAAQ,CAAC;IACxD;EACF,CAAC;EAED,KAAK,MAAMgB,UAAU,IAAIrB,WAAW,EAAE;IACpC,MAAMI,KAAK,GAAGiB,UAAU,CAACD,QAAQ,IAAIC,UAAU,CAACjB,KAAK;IACrD,IAAIA,KAAK,EAAED,UAAU,CAACC,KAAK,EAAEiB,UAAU,CAACC,IAAI,CAAC;EAC/C;EAEA,OAAOpB,KAAK;AACd,CAAC;AAACqB,OAAA,CAAAxB,qBAAA,GAAAA,qBAAA"}
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.theme = void 0;
7
+ var _findDangerousCSSRules = require("./findDangerousCSSRules");
8
+ const BROWSER_FONTS = ['"system-ui"', 'serif', 'Times', '"Times New Roman"', '-webkit-standard'];
9
+ const FONT_FAMILY = 'font-family';
7
10
  const VARIABLES = {
8
11
  '--mirai-ui-accent': '--corporative-color'
9
12
  };
10
- const BROWSER_FONTS = ['"system-ui"', 'serif', 'Times', '"Times New Roman"', '-webkit-standard'];
11
- const FONT_FAMILY = 'font-family';
12
13
  const theme = () => {
13
14
  const processed = [];
14
15
  const setVariable = (key, value) => {
@@ -24,20 +25,22 @@ const theme = () => {
24
25
  });
25
26
 
26
27
  // CSS Selectors
27
- function getFont() {
28
- let font;
29
- const bodyFont = window.getComputedStyle(document.body).getPropertyValue(FONT_FAMILY);
30
- if (bodyFont && !BROWSER_FONTS.includes(bodyFont)) {
31
- font = bodyFont;
32
- } else {
33
- const miBe = document.querySelector('.mi-be');
34
- const miBeFont = miBe ? window.getComputedStyle(miBe).getPropertyValue(FONT_FAMILY) : undefined;
35
- if (miBeFont && !BROWSER_FONTS.includes(miBeFont)) font = miBeFont;
36
- }
37
- return font;
28
+ let font;
29
+ const bodyFont = window.getComputedStyle(document.body).getPropertyValue(FONT_FAMILY);
30
+ if (bodyFont && !BROWSER_FONTS.includes(bodyFont)) {
31
+ font = bodyFont;
32
+ } else {
33
+ const miBe = document.querySelector('.mi-be');
34
+ const miBeFont = miBe ? window.getComputedStyle(miBe).getPropertyValue(FONT_FAMILY) : undefined;
35
+ if (miBeFont && !BROWSER_FONTS.includes(miBeFont)) font = miBeFont;
38
36
  }
39
- const font = getFont();
40
37
  if (font) setVariable('--mirai-ui-font', font);
38
+
39
+ // Dangerous CSS rules
40
+ if (window.Mirai?.environment !== 'production') {
41
+ const cssRules = (0, _findDangerousCSSRules.findDangerousCSSRules)();
42
+ if (cssRules.length) console.warn('WARNING: css rules ending with html tags', cssRules);
43
+ }
41
44
  };
42
45
  exports.theme = theme;
43
46
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","names":["VARIABLES","BROWSER_FONTS","FONT_FAMILY","theme","processed","setVariable","key","value","includes","document","documentElement","style","setProperty","trim","push","Object","entries","forEach","_ref","variable","legacy","getComputedStyle","getPropertyValue","getFont","font","bodyFont","window","body","miBe","querySelector","miBeFont","undefined","exports"],"sources":["../../src/helpers/theme.js"],"sourcesContent":["const VARIABLES = {\n '--mirai-ui-accent': '--corporative-color',\n};\n\nconst BROWSER_FONTS = ['\"system-ui\"', 'serif', 'Times', '\"Times New Roman\"', '-webkit-standard'];\nconst FONT_FAMILY = 'font-family';\n\nexport const theme = () => {\n const processed = [];\n\n const setVariable = (key, value) => {\n if (!value || processed.includes(key)) return;\n\n document.documentElement.style.setProperty(key, value.trim());\n processed.push(key);\n };\n\n // CSS variables\n Object.entries(VARIABLES).forEach(([variable, legacy]) => {\n if (getComputedStyle(document.documentElement).getPropertyValue(legacy)) setVariable(variable, `var(${legacy})`);\n });\n\n // CSS Selectors\n function getFont() {\n let font;\n\n const bodyFont = window.getComputedStyle(document.body).getPropertyValue(FONT_FAMILY);\n if (bodyFont && !BROWSER_FONTS.includes(bodyFont)) {\n font = bodyFont;\n } else {\n const miBe = document.querySelector('.mi-be');\n const miBeFont = miBe ? window.getComputedStyle(miBe).getPropertyValue(FONT_FAMILY) : undefined;\n if (miBeFont && !BROWSER_FONTS.includes(miBeFont)) font = miBeFont;\n }\n\n return font;\n }\n\n const font = getFont();\n if (font) setVariable('--mirai-ui-font', font);\n};\n"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG;EAChB,mBAAmB,EAAE;AACvB,CAAC;AAED,MAAMC,aAAa,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;AAChG,MAAMC,WAAW,GAAG,aAAa;AAE1B,MAAMC,KAAK,GAAGA,CAAA,KAAM;EACzB,MAAMC,SAAS,GAAG,EAAE;EAEpB,MAAMC,WAAW,GAAGA,CAACC,GAAG,EAAEC,KAAK,KAAK;IAClC,IAAI,CAACA,KAAK,IAAIH,SAAS,CAACI,QAAQ,CAACF,GAAG,CAAC,EAAE;IAEvCG,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,WAAW,CAACN,GAAG,EAAEC,KAAK,CAACM,IAAI,CAAC,CAAC,CAAC;IAC7DT,SAAS,CAACU,IAAI,CAACR,GAAG,CAAC;EACrB,CAAC;;EAED;EACAS,MAAM,CAACC,OAAO,CAAChB,SAAS,CAAC,CAACiB,OAAO,CAACC,IAAA,IAAwB;IAAA,IAAvB,CAACC,QAAQ,EAAEC,MAAM,CAAC,GAAAF,IAAA;IACnD,IAAIG,gBAAgB,CAACZ,QAAQ,CAACC,eAAe,CAAC,CAACY,gBAAgB,CAACF,MAAM,CAAC,EAAEf,WAAW,CAACc,QAAQ,EAAG,OAAMC,MAAO,GAAE,CAAC;EAClH,CAAC,CAAC;;EAEF;EACA,SAASG,OAAOA,CAAA,EAAG;IACjB,IAAIC,IAAI;IAER,MAAMC,QAAQ,GAAGC,MAAM,CAACL,gBAAgB,CAACZ,QAAQ,CAACkB,IAAI,CAAC,CAACL,gBAAgB,CAACpB,WAAW,CAAC;IACrF,IAAIuB,QAAQ,IAAI,CAACxB,aAAa,CAACO,QAAQ,CAACiB,QAAQ,CAAC,EAAE;MACjDD,IAAI,GAAGC,QAAQ;IACjB,CAAC,MAAM;MACL,MAAMG,IAAI,GAAGnB,QAAQ,CAACoB,aAAa,CAAC,QAAQ,CAAC;MAC7C,MAAMC,QAAQ,GAAGF,IAAI,GAAGF,MAAM,CAACL,gBAAgB,CAACO,IAAI,CAAC,CAACN,gBAAgB,CAACpB,WAAW,CAAC,GAAG6B,SAAS;MAC/F,IAAID,QAAQ,IAAI,CAAC7B,aAAa,CAACO,QAAQ,CAACsB,QAAQ,CAAC,EAAEN,IAAI,GAAGM,QAAQ;IACpE;IAEA,OAAON,IAAI;EACb;EAEA,MAAMA,IAAI,GAAGD,OAAO,CAAC,CAAC;EACtB,IAAIC,IAAI,EAAEnB,WAAW,CAAC,iBAAiB,EAAEmB,IAAI,CAAC;AAChD,CAAC;AAACQ,OAAA,CAAA7B,KAAA,GAAAA,KAAA"}
1
+ {"version":3,"file":"theme.js","names":["_findDangerousCSSRules","require","BROWSER_FONTS","FONT_FAMILY","VARIABLES","theme","processed","setVariable","key","value","includes","document","documentElement","style","setProperty","trim","push","Object","entries","forEach","_ref","variable","legacy","getComputedStyle","getPropertyValue","font","bodyFont","window","body","miBe","querySelector","miBeFont","undefined","Mirai","environment","cssRules","findDangerousCSSRules","length","console","warn","exports"],"sources":["../../src/helpers/theme.js"],"sourcesContent":["import { findDangerousCSSRules } from './findDangerousCSSRules';\n\nconst BROWSER_FONTS = ['\"system-ui\"', 'serif', 'Times', '\"Times New Roman\"', '-webkit-standard'];\nconst FONT_FAMILY = 'font-family';\nconst VARIABLES = {\n '--mirai-ui-accent': '--corporative-color',\n};\n\nexport const theme = () => {\n const processed = [];\n\n const setVariable = (key, value) => {\n if (!value || processed.includes(key)) return;\n\n document.documentElement.style.setProperty(key, value.trim());\n processed.push(key);\n };\n\n // CSS variables\n Object.entries(VARIABLES).forEach(([variable, legacy]) => {\n if (getComputedStyle(document.documentElement).getPropertyValue(legacy)) setVariable(variable, `var(${legacy})`);\n });\n\n // CSS Selectors\n let font;\n\n const bodyFont = window.getComputedStyle(document.body).getPropertyValue(FONT_FAMILY);\n if (bodyFont && !BROWSER_FONTS.includes(bodyFont)) {\n font = bodyFont;\n } else {\n const miBe = document.querySelector('.mi-be');\n const miBeFont = miBe ? window.getComputedStyle(miBe).getPropertyValue(FONT_FAMILY) : undefined;\n if (miBeFont && !BROWSER_FONTS.includes(miBeFont)) font = miBeFont;\n }\n\n if (font) setVariable('--mirai-ui-font', font);\n\n // Dangerous CSS rules\n if (window.Mirai?.environment !== 'production') {\n const cssRules = findDangerousCSSRules();\n if (cssRules.length) console.warn('WARNING: css rules ending with html tags', cssRules);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;AAChG,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,SAAS,GAAG;EAChB,mBAAmB,EAAE;AACvB,CAAC;AAEM,MAAMC,KAAK,GAAGA,CAAA,KAAM;EACzB,MAAMC,SAAS,GAAG,EAAE;EAEpB,MAAMC,WAAW,GAAGA,CAACC,GAAG,EAAEC,KAAK,KAAK;IAClC,IAAI,CAACA,KAAK,IAAIH,SAAS,CAACI,QAAQ,CAACF,GAAG,CAAC,EAAE;IAEvCG,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,WAAW,CAACN,GAAG,EAAEC,KAAK,CAACM,IAAI,CAAC,CAAC,CAAC;IAC7DT,SAAS,CAACU,IAAI,CAACR,GAAG,CAAC;EACrB,CAAC;;EAED;EACAS,MAAM,CAACC,OAAO,CAACd,SAAS,CAAC,CAACe,OAAO,CAACC,IAAA,IAAwB;IAAA,IAAvB,CAACC,QAAQ,EAAEC,MAAM,CAAC,GAAAF,IAAA;IACnD,IAAIG,gBAAgB,CAACZ,QAAQ,CAACC,eAAe,CAAC,CAACY,gBAAgB,CAACF,MAAM,CAAC,EAAEf,WAAW,CAACc,QAAQ,EAAG,OAAMC,MAAO,GAAE,CAAC;EAClH,CAAC,CAAC;;EAEF;EACA,IAAIG,IAAI;EAER,MAAMC,QAAQ,GAAGC,MAAM,CAACJ,gBAAgB,CAACZ,QAAQ,CAACiB,IAAI,CAAC,CAACJ,gBAAgB,CAACrB,WAAW,CAAC;EACrF,IAAIuB,QAAQ,IAAI,CAACxB,aAAa,CAACQ,QAAQ,CAACgB,QAAQ,CAAC,EAAE;IACjDD,IAAI,GAAGC,QAAQ;EACjB,CAAC,MAAM;IACL,MAAMG,IAAI,GAAGlB,QAAQ,CAACmB,aAAa,CAAC,QAAQ,CAAC;IAC7C,MAAMC,QAAQ,GAAGF,IAAI,GAAGF,MAAM,CAACJ,gBAAgB,CAACM,IAAI,CAAC,CAACL,gBAAgB,CAACrB,WAAW,CAAC,GAAG6B,SAAS;IAC/F,IAAID,QAAQ,IAAI,CAAC7B,aAAa,CAACQ,QAAQ,CAACqB,QAAQ,CAAC,EAAEN,IAAI,GAAGM,QAAQ;EACpE;EAEA,IAAIN,IAAI,EAAElB,WAAW,CAAC,iBAAiB,EAAEkB,IAAI,CAAC;;EAE9C;EACA,IAAIE,MAAM,CAACM,KAAK,EAAEC,WAAW,KAAK,YAAY,EAAE;IAC9C,MAAMC,QAAQ,GAAG,IAAAC,4CAAqB,EAAC,CAAC;IACxC,IAAID,QAAQ,CAACE,MAAM,EAAEC,OAAO,CAACC,IAAI,CAAC,0CAA0C,EAAEJ,QAAQ,CAAC;EACzF;AACF,CAAC;AAACK,OAAA,CAAAnC,KAAA,GAAAA,KAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",