vaderjs 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/create-vader-app/example_proj/dist/vaderjs/index.js +5 -0
  2. package/create-vader-app/example_proj/dist/vaderjs/vader-min.js +1115 -0
  3. package/create-vader-app/example_proj/dist/vaderjs/vaderRouter-min.js +1 -0
  4. package/create-vader-app/example_proj/dist/vaderjs/worker.js +327 -0
  5. package/create-vader-app/example_proj/index.html +20 -0
  6. package/create-vader-app/example_proj/readme.md +2 -0
  7. package/create-vader-app/example_proj/src/pages/Index.js +13 -0
  8. package/create-vader-app/example_proj/src/views/app.html +16 -0
  9. package/create-vader-app/index.js +20 -0
  10. package/create-vader-app/node_modules/.package-lock.json +350 -0
  11. package/create-vader-app/node_modules/chalk/license +9 -0
  12. package/create-vader-app/node_modules/chalk/package.json +83 -0
  13. package/create-vader-app/node_modules/chalk/readme.md +325 -0
  14. package/create-vader-app/node_modules/chalk/source/index.d.ts +320 -0
  15. package/create-vader-app/node_modules/chalk/source/index.js +225 -0
  16. package/create-vader-app/node_modules/chalk/source/utilities.js +33 -0
  17. package/create-vader-app/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  18. package/create-vader-app/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  19. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  20. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/browser.js +30 -0
  21. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  22. package/create-vader-app/node_modules/chalk/source/vendor/supports-color/index.js +182 -0
  23. package/create-vader-app/node_modules/commander/LICENSE +22 -0
  24. package/create-vader-app/node_modules/commander/Readme.md +1146 -0
  25. package/create-vader-app/node_modules/commander/esm.mjs +16 -0
  26. package/create-vader-app/node_modules/commander/index.js +27 -0
  27. package/create-vader-app/node_modules/commander/lib/argument.js +147 -0
  28. package/create-vader-app/node_modules/commander/lib/command.js +2196 -0
  29. package/create-vader-app/node_modules/commander/lib/error.js +45 -0
  30. package/create-vader-app/node_modules/commander/lib/help.js +464 -0
  31. package/create-vader-app/node_modules/commander/lib/option.js +331 -0
  32. package/create-vader-app/node_modules/commander/lib/suggestSimilar.js +100 -0
  33. package/create-vader-app/node_modules/commander/package-support.json +16 -0
  34. package/create-vader-app/node_modules/commander/package.json +90 -0
  35. package/create-vader-app/node_modules/commander/typings/esm.d.mts +3 -0
  36. package/create-vader-app/node_modules/commander/typings/index.d.ts +889 -0
  37. package/create-vader-app/node_modules/fs-extra/LICENSE +15 -0
  38. package/create-vader-app/node_modules/fs-extra/README.md +292 -0
  39. package/create-vader-app/node_modules/fs-extra/lib/copy/copy-sync.js +161 -0
  40. package/create-vader-app/node_modules/fs-extra/lib/copy/copy.js +238 -0
  41. package/create-vader-app/node_modules/fs-extra/lib/copy/index.js +7 -0
  42. package/create-vader-app/node_modules/fs-extra/lib/empty/index.js +39 -0
  43. package/create-vader-app/node_modules/fs-extra/lib/ensure/file.js +69 -0
  44. package/create-vader-app/node_modules/fs-extra/lib/ensure/index.js +23 -0
  45. package/create-vader-app/node_modules/fs-extra/lib/ensure/link.js +64 -0
  46. package/create-vader-app/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  47. package/create-vader-app/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  48. package/create-vader-app/node_modules/fs-extra/lib/ensure/symlink.js +82 -0
  49. package/create-vader-app/node_modules/fs-extra/lib/esm.mjs +68 -0
  50. package/create-vader-app/node_modules/fs-extra/lib/fs/index.js +140 -0
  51. package/create-vader-app/node_modules/fs-extra/lib/index.js +16 -0
  52. package/create-vader-app/node_modules/fs-extra/lib/json/index.js +16 -0
  53. package/create-vader-app/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  54. package/create-vader-app/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  55. package/create-vader-app/node_modules/fs-extra/lib/json/output-json.js +12 -0
  56. package/create-vader-app/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  57. package/create-vader-app/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
  58. package/create-vader-app/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
  59. package/create-vader-app/node_modules/fs-extra/lib/move/index.js +7 -0
  60. package/create-vader-app/node_modules/fs-extra/lib/move/move-sync.js +55 -0
  61. package/create-vader-app/node_modules/fs-extra/lib/move/move.js +76 -0
  62. package/create-vader-app/node_modules/fs-extra/lib/output-file/index.js +40 -0
  63. package/create-vader-app/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  64. package/create-vader-app/node_modules/fs-extra/lib/remove/index.js +17 -0
  65. package/create-vader-app/node_modules/fs-extra/lib/util/stat.js +154 -0
  66. package/create-vader-app/node_modules/fs-extra/lib/util/utimes.js +26 -0
  67. package/create-vader-app/node_modules/fs-extra/package.json +71 -0
  68. package/create-vader-app/node_modules/graceful-fs/LICENSE +15 -0
  69. package/create-vader-app/node_modules/graceful-fs/README.md +143 -0
  70. package/create-vader-app/node_modules/graceful-fs/clone.js +23 -0
  71. package/create-vader-app/node_modules/graceful-fs/graceful-fs.js +448 -0
  72. package/create-vader-app/node_modules/graceful-fs/legacy-streams.js +118 -0
  73. package/create-vader-app/node_modules/graceful-fs/package.json +53 -0
  74. package/create-vader-app/node_modules/graceful-fs/polyfills.js +355 -0
  75. package/create-vader-app/node_modules/inherits/LICENSE +16 -0
  76. package/create-vader-app/node_modules/inherits/README.md +42 -0
  77. package/create-vader-app/node_modules/inherits/inherits.js +7 -0
  78. package/create-vader-app/node_modules/inherits/inherits_browser.js +23 -0
  79. package/create-vader-app/node_modules/inherits/package.json +29 -0
  80. package/create-vader-app/node_modules/jsonfile/CHANGELOG.md +171 -0
  81. package/create-vader-app/node_modules/jsonfile/LICENSE +15 -0
  82. package/create-vader-app/node_modules/jsonfile/README.md +230 -0
  83. package/create-vader-app/node_modules/jsonfile/index.js +88 -0
  84. package/create-vader-app/node_modules/jsonfile/package.json +40 -0
  85. package/create-vader-app/node_modules/jsonfile/utils.js +14 -0
  86. package/create-vader-app/node_modules/path/LICENSE +18 -0
  87. package/create-vader-app/node_modules/path/README.md +15 -0
  88. package/create-vader-app/node_modules/path/package.json +24 -0
  89. package/create-vader-app/node_modules/path/path.js +628 -0
  90. package/create-vader-app/node_modules/process/.eslintrc +21 -0
  91. package/create-vader-app/node_modules/process/LICENSE +22 -0
  92. package/create-vader-app/node_modules/process/README.md +26 -0
  93. package/create-vader-app/node_modules/process/browser.js +184 -0
  94. package/create-vader-app/node_modules/process/index.js +2 -0
  95. package/create-vader-app/node_modules/process/package.json +27 -0
  96. package/create-vader-app/node_modules/process/test.js +199 -0
  97. package/create-vader-app/node_modules/universalify/LICENSE +20 -0
  98. package/create-vader-app/node_modules/universalify/README.md +76 -0
  99. package/create-vader-app/node_modules/universalify/index.js +24 -0
  100. package/create-vader-app/node_modules/universalify/package.json +34 -0
  101. package/create-vader-app/node_modules/util/LICENSE +18 -0
  102. package/create-vader-app/node_modules/util/README.md +15 -0
  103. package/create-vader-app/node_modules/util/package.json +35 -0
  104. package/create-vader-app/node_modules/util/support/isBuffer.js +3 -0
  105. package/create-vader-app/node_modules/util/support/isBufferBrowser.js +6 -0
  106. package/create-vader-app/node_modules/util/util.js +586 -0
  107. package/create-vader-app/package-lock.json +384 -0
  108. package/create-vader-app/package.json +18 -0
  109. package/images/router.png +0 -0
  110. package/images/state.png +0 -0
  111. package/package.json +1 -1
  112. package/ts.config.json +1 -0
  113. package/vader-min.js +1 -1
  114. package/vader.js +106 -326
  115. package/worker-min.js +1 -1
  116. package/worker.js +268 -168
package/worker.js CHANGED
@@ -1,10 +1,9 @@
1
-
2
- onmessage = (e)=>{
3
- let time_started = Date.now()
4
- let strings = e.data.strings
5
- let args = e.data.args
6
- let js = ''
7
- let l = e.data.location.split('/').slice(0,-1).join('/')
1
+ onmessage = (e) => {
2
+ let time_started = Date.now();
3
+ let strings = e.data.strings;
4
+ let args = e.data.args;
5
+ let js = "";
6
+ let l = e.data.location.split("/").slice(0, -1).join("/");
8
7
  let result = "";
9
8
  for (let i = 0; i < strings.length; i++) {
10
9
  result += strings[i];
@@ -13,214 +12,315 @@ onmessage = (e)=>{
13
12
  }
14
13
  }
15
14
 
16
- let comments = result.match(/--([^>]*)--/gs)
17
- if(comments){
18
- while(comments.length){
19
- let comment = comments.pop()
20
- console.log(comment)
21
- // @ts-ignore
22
- result = result.replace(comment,'')
23
- }
15
+ let comments = result.match(/--([^>]*)--/gs);
16
+ /**
17
+ * @example
18
+ *
19
+ * -- This is a comment --
20
+ */
21
+ if (comments) {
22
+ while (comments.length) {
23
+ let comment = comments.pop();
24
+ // @ts-ignore
25
+ result = result.replace(comment, "");
26
+ }
24
27
  }
25
28
 
29
+ result = result.replace(/(#+)([^<>\n]*)(?![^<]*>)(?![^{]*})/g, (match, hashes, text) => {
30
+ let level = hashes.length;
31
+ return `<h${level} class="markdown_heading">${text}</h${level}>`;
32
+ });
33
+
26
34
 
27
- // Convert headings (e.g., #1-6 Heading => <h1-6>Heading</h1-6>)
28
- // @ts-ignore
29
- result = result.replace(/(#+)(.*)/g, (match, hashes, text) => {
30
- console.log(match)
31
- if(!match.includes('<') || !match.includes('>')){
32
- let level = hashes.length;
33
- return `<h ${level} class="markdown_heading">${text}</h${level}>`;
34
- }else{
35
- return match
36
- }
37
- });
35
+ // Convert bold (e.g., **Bold** => <b>Bold</b>)
36
+ result = result.replace(/\*\*(.*?)\*\*/g, (match, text) => {
37
+ return `<b class="markdown_bold">${text}</b>`;
38
+ });
38
39
 
39
-
40
+ // Convert italic (e.g., *Italic* => <i>Italic</i>)
41
+ result = result.replace(/\*(.*?)\*/g, (match, text) => {
42
+ return `<i class="markdown_italic">${text}</i>`;
43
+ });
40
44
 
41
-
42
- // Convert bold (e.g., **Bold** => <b>Bold</b>)
43
- result = result.replace(/\*\*(.*?)\*\*/g, (match, text) => {
44
- return `<b class="markdown_bold">${text}</b>`;
45
- });
46
-
47
- // Convert italic (e.g., *Italic* => <i>Italic</i>)
48
- result = result.replace(/\*(.*?)\*/g, (match, text) => {
49
- return `<i class="markdown_italic">${text}</i>`;
50
- });
51
-
52
- // Convert code (e.g., `code` => <code>code</code>)
53
- result = result.replace(/`(.*?)`/g, (match, text) => {
54
- return `<code>${text}</code>`;
55
- });
56
-
57
- // Convert links (e.g., [Text](URL) => <a href="URL">Text</a>)
58
- result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (match, text, url) => {
59
- return `<a class="markdown_link" href="${url}">${text}</a>`;
60
- });
61
-
62
- // Convert images (e.g., ![Alt](URL) => <img src="URL" alt="Alt" />)
63
- result = result.replace(/!\[([^\]]+)\]\(([^)]+)\)/g, (match, alt, src) => {
64
- return `<img class="markdown_image" src="${src}" alt="${alt}" />`;
65
- });
66
-
67
- // Convert unordered lists (e.g., * Item => <ul><li>Item</li></ul>)
68
- result.split('\n').forEach((line, index, arr) => {
69
- if (line.match(/^\s*-\s+(.*?)$/gm)) {
70
- if (index === 0 || !arr[index - 1].match(/^\s*-\s+(.*?)$/gm)) {
71
- result = result.replace(line, `<ul class="markdown_unordered" style="list-style-type:disc;list-style:inside"><li>${line.replace(/^\s*-\s+(.*?)$/gm, '$1')}</li>`);
72
- } else if (index === arr.length - 1 || !arr[index + 1].match(/^\s*-\s+(.*?)$/gm)) {
73
- result = result.replace(line, `<li>${line.replace(/^\s*-\s+(.*?)$/gm, '$1')}</li></ul>`);
74
- } else {
75
- result = result.replace(line, `<li>${line.replace(/^\s*-\s+(.*?)$/gm, '$1')}</li>`);
76
- }
45
+ // Convert code (e.g., `code` => <code>code</code>)
46
+ result = result.replace(/`(.*?)`/g, (match, text) => {
47
+ return `<code>${text}</code>`;
48
+ });
49
+
50
+ // Convert links (e.g., [Text](URL) => <a href="URL">Text</a>)
51
+ result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (match, text, url) => {
52
+ return `<a class="markdown_link" href="${url}">${text}</a>`;
53
+ });
54
+
55
+ // Convert images (e.g., ![Alt](URL) => <img src="URL" alt="Alt" />)
56
+ result = result.replace(/!\[([^\]]+)\]\(([^)]+)\)/g, (match, alt, src) => {
57
+ return `<img class="markdown_image" src="${src}" alt="${alt}" />`;
58
+ });
59
+
60
+ // Convert unordered lists (e.g., * Item => <ul><li>Item</li></ul>)
61
+ result.split("\n").forEach((line, index, arr) => {
62
+ if (line.match(/^\s*-\s+(.*?)$/gm)) {
63
+ if (index === 0 || !arr[index - 1].match(/^\s*-\s+(.*?)$/gm)) {
64
+ result = result.replace(
65
+ line,
66
+ `<ul class="markdown_unordered" style="list-style-type:disc;list-style:inside"><li>${line.replace(
67
+ /^\s*-\s+(.*?)$/gm,
68
+ "$1"
69
+ )}</li>`
70
+ );
71
+ } else if (
72
+ index === arr.length - 1 ||
73
+ !arr[index + 1].match(/^\s*-\s+(.*?)$/gm)
74
+ ) {
75
+ result = result.replace(
76
+ line,
77
+ `<li>${line.replace(/^\s*-\s+(.*?)$/gm, "$1")}</li></ul>`
78
+ );
79
+ } else {
80
+ result = result.replace(
81
+ line,
82
+ `<li>${line.replace(/^\s*-\s+(.*?)$/gm, "$1")}</li>`
83
+ );
77
84
  }
78
- });
85
+ }
86
+ });
79
87
 
80
- // Convert ordered lists (e.g., 1. Item => <ol><li>Item</li></ol>) in order
81
-
82
- result.split('\n').forEach((line, index, arr) => {
83
- if (line.match(/^\s*\d+\.\s+(.*?)$/gm)) {
84
- if (index === 0 || !arr[index - 1].match(/^\s*\d+\.\s+(.*?)$/gm)) {
85
- result = result.replace(line, `<ol class="markdown_ordered" style="list-style-type:decimal;"><li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, '$1')}</li>`);
86
- } else if (index === arr.length - 1 || !arr[index + 1].match(/^\s*\d+\.\s+(.*?)$/gm)) {
87
- result = result.replace(line, `<li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, '$1')}</li></ol>`);
88
- } else {
89
- result = result.replace(line, `<li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, '$1')}</li>`);
90
- }
88
+ // Convert ordered lists (e.g., 1. Item => <ol><li>Item</li></ol>) in order
89
+
90
+ result.split("\n").forEach((line, index, arr) => {
91
+ if (line.match(/^\s*\d+\.\s+(.*?)$/gm)) {
92
+ if (index === 0 || !arr[index - 1].match(/^\s*\d+\.\s+(.*?)$/gm)) {
93
+ result = result.replace(
94
+ line,
95
+ `<ol class="markdown_ordered" style="list-style-type:decimal;"><li>${line.replace(
96
+ /^\s*\d+\.\s+(.*?)$/gm,
97
+ "$1"
98
+ )}</li>`
99
+ );
100
+ } else if (
101
+ index === arr.length - 1 ||
102
+ !arr[index + 1].match(/^\s*\d+\.\s+(.*?)$/gm)
103
+ ) {
104
+ result = result.replace(
105
+ line,
106
+ `<li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, "$1")}</li></ol>`
107
+ );
108
+ } else {
109
+ result = result.replace(
110
+ line,
111
+ `<li>${line.replace(/^\s*\d+\.\s+(.*?)$/gm, "$1")}</li>`
112
+ );
91
113
  }
92
- });
114
+ }
115
+ });
93
116
 
94
-
95
- result = result.replace(/^\s*-\s+(.*?)$/gm, (match, text) => {
96
- return `<li class="markdown_list_item">${text}</li>`;
97
- });
98
- result = result.replace(/^\s*---\s*$/gm, '<hr class="markdown_horizontal" />');
99
-
100
- // Convert blockquotes (e.g., > Quote => <blockquote>Quote</blockquote>)
101
- result = result.replace(/^\s*> (.*)$/gm, (match, text) => {
102
- return `<blockquote class="markdown_blockquote">${text}</blockquote>`;
103
- });
117
+ result = result.replace(/^\s*-\s+(.*?)$/gm, (match, text) => {
118
+ return `<li class="markdown_list_item">${text}</li>`;
119
+ });
120
+ result = result.replace(
121
+ /^\s*---\s*$/gm,
122
+ '<hr class="markdown_horizontal" />'
123
+ );
104
124
 
105
- // Convert tables (e.g., | Header | Cell | => <table><thead><tr><th>Header</th><th>Cell</th></tr></thead></table>)
106
- result = result.replace(/((?: *\|.*?)+)\n((?: *\|.*?)+)/gm, (match, header, cell) => {
107
- const headerCells = header.split('|').slice(1, -1);
108
- const cells = cell.split('|').slice(1, -1);
125
+ // Convert blockquotes (e.g., > Quote => <blockquote>Quote</blockquote>)
126
+ result = result.replace(/^\s*> (.*)$/gm, (match, text) => {
127
+ return `<blockquote class="markdown_blockquote">${text}</blockquote>`;
128
+ });
129
+
130
+ // Convert tables (e.g., | Header | Cell | => <table><thead><tr><th>Header</th><th>Cell</th></tr></thead></table>)
131
+ result = result.replace(
132
+ /((?: *\|.*?)+)\n((?: *\|.*?)+)/gm,
133
+ (match, header, cell) => {
134
+ const headerCells = header.split("|").slice(1, -1);
135
+ const cells = cell.split("|").slice(1, -1);
109
136
  let table = '<table class="markdown_table">';
110
- table += '<thead class="markdown_table_head"><tr class="markdown_table_row">';
137
+ table +=
138
+ '<thead class="markdown_table_head"><tr class="markdown_table_row">';
111
139
  headerCells.forEach((headerCell) => {
112
140
  table += `<th class="markdown_table_header_cell">${headerCell}</th>`;
113
141
  });
114
- table += '</tr></thead><tbody class="markdown_table_body"><tr class="markdown_table_row">';
142
+ table +=
143
+ '</tr></thead><tbody class="markdown_table_body"><tr class="markdown_table_row">';
115
144
  cells.forEach((cell) => {
116
145
  table += `<td class="markdown_table_body_cell">${cell}</td>`;
117
146
  });
118
- table += '</tr></tbody></table>';
147
+ table += "</tr></tbody></table>";
119
148
  return table;
120
- });
121
-
122
-
123
-
149
+ }
150
+ );
124
151
 
125
- if(!result.includes('<body>')){
126
- throw new Error(`Vader Error: You must enclose your html in a body tag for all components. \n\n${result}`)
152
+ if (!result.includes("<body>")) {
153
+ throw new Error(
154
+ `Vader Error: You must enclose your html in a body tag for all components. \n\n${result}`
155
+ );
127
156
  }
128
157
  /**
129
158
  * @type {string[]}
130
159
  * @description - grabbing all className attributes and replace them with class
131
160
  */
132
161
  // @ts-ignore
133
- result = result.replace(/classname/g,'class')
134
- /**
162
+ result = result.replace(/classname/g, "class");
163
+ /**
135
164
  * @type {string[]}
136
165
  * @description - grabbing all image tags and replace the src attribute with the absolute path
137
166
  */
138
167
  // @ts-ignore
139
- let images = result.match(/<img([^>]*)>/g)
140
- if(images){
141
- for(let i = 0; i < images.length; i++){
142
- let image = images[i]
143
- let src = image.match(/src="([^"]*)"/)
144
- let alt = image.match(/alt="([^"]*)"/)
145
- if(src){
146
- if(!src[1].includes('http') && !result.includes('<!-- #vader-disable_relative-paths -->')){
147
- // @ts-ignore
148
- result = result.replace(src[1],`${l}/${src[1]}`)
149
- } else if(!src[1].includes('http') && src[1].startsWith('.') && !result.includes('<!-- #vader-disable_relative-paths -->')){
150
- throw new Error(`Vader Error: You cannot use absolute paths since relative paths are not disabled in ${e.data.file}. Use relative paths instead. \n\n${src[1]}`)
151
- }
152
- }
153
- if(!alt && !result.includes('<!-- #vader-disable_accessibility -->')){
154
- throw new Error(`Vader Error: You must include an alt attribute in the image tag \n\n${image} of class ${e.data.name}. `)
168
+ let images = result.match(/<img([^>]*)>/g);
169
+ if (images) {
170
+ for (let i = 0; i < images.length; i++) {
171
+ let image = images[i];
172
+ let src = image.match(/src="([^"]*)"/);
173
+ let alt = image.match(/alt="([^"]*)"/);
174
+
175
+ if (!alt && !result.includes("<!-- #vader-disable_accessibility -->")) {
176
+ throw new Error(
177
+ `Vader Error: You must include an alt attribute in the image tag \n\n${image} of class ${e.data.name}. `
178
+ );
179
+ }
180
+ if (src) {
181
+ src.forEach((s) => {
182
+ if (
183
+ !s.includes("http") &&
184
+ !result.includes("<!-- #vader-disable_relative-paths -->")
185
+ ) {
186
+ result = result.replace(`src="${s}"`, `src="${l}/${s}"`);
187
+ } else if (
188
+ !s.includes("http") &&
189
+ s.startsWith(".") &&
190
+ !result.includes("<!-- #vader-disable_relative-paths -->")
191
+ ) {
192
+ throw new Error(
193
+ `Vader Error: You cannot use absolute paths since relative paths are not disabled in ${e.data.file}. Use relative paths instead. \n\n${s}`
194
+ );
195
+ }
196
+ });
197
+ }
155
198
  }
199
+ }
156
200
 
157
- // @ts-ignore
158
- if(!caches.match(`${l}/${src[1]}`)){
159
- caches.open('vader').then((cache)=>{
160
- // @ts-ignore
161
- cache.add(`${l}/${src[1]}`)
162
- // @ts-ignore
163
- console.log('cached', `${l}/${src[1]}`)
164
- }).catch((err)=>{
165
- console.log(err)
166
- })
167
- }else{
201
+ let href = result.match(/href="([^"]*)"/g);
202
+ if (href) {
203
+ while (href.length) {
204
+ let h = href.pop();
168
205
  // @ts-ignore
169
- console.log('already cached', caches.match(`${l}/${src[1]}`))
170
- }
171
- }
172
- }
173
-
174
- let href = result.match(/href="([^"]*)"/g)
175
- if(href){
176
- while(href.length){
177
- let h = href.pop()
178
- // @ts-ignore
179
- h = h.replace('href="','').replace('"','')
180
- if(!h.includes('http') && !result.includes('<!-- #vader-disable_relative-paths -->')){
181
- result = result.replace(`href="${h}"`,`href="#${h}"`)
182
- }else if(!h.includes('http') && h.startsWith('.') && !result.includes('<!-- #vader-disable_relative-paths -->')){
183
- throw new Error(`Vader Error: You cannot use absolute paths since relative paths are not disabled in ${e.data.file}. Use relative paths instead. \n\n${h}`)
184
- }
206
+ h = h.replace('href="', "").replace('"', "");
207
+ if (
208
+ !h.includes("http") &&
209
+ !result.includes("<!-- #vader-disable_relative-paths -->")
210
+ ) {
211
+ result = result.replace(`href="${h}"`, `href="#${h}"`);
212
+ } else if (
213
+ !h.includes("http") &&
214
+ h.startsWith(".") &&
215
+ !result.includes("<!-- #vader-disable_relative-paths -->")
216
+ ) {
217
+ throw new Error(
218
+ `Vader Error: You cannot use absolute paths since relative paths are not disabled in ${e.data.file}. Use relative paths instead. \n\n${h}`
219
+ );
185
220
  }
221
+ }
186
222
  }
187
-
188
- let time_ended = Date.now()
189
- let time_taken = time_ended - time_started
190
- let hasran = false
191
- if(l.includes('localhost') || l.includes('127.0.0.1') && !hasran){
192
- hasran = true
193
- result+= `\$\{console.log('%c${e.data.name} component rendered in ${time_taken}ms','color:#fff;background:#000;padding:5px;border-radius:5px;font-size:12px;font-weight:bold'),""\}`
223
+
224
+ let time_ended = Date.now();
225
+ let time_taken = time_ended - time_started;
226
+ let hasran = false;
227
+ if (l.includes("localhost") || (l.includes("127.0.0.1") && !hasran)) {
228
+ hasran = true;
229
+ result += `\$\{console.log('%c${e.data.name} component rendered in ${time_taken}ms')\}`;
194
230
  }
195
-
196
-
197
- const d = result.split('<script>')
231
+
232
+ const d = result.split("<script>");
198
233
 
199
234
  if (d) {
200
235
  d.forEach((scriptTag, index) => {
201
236
  if (index === 0) {
202
237
  result = scriptTag;
203
238
  } else {
204
- if(scriptTag.includes('// <![CDATA[ <-- For SVG support')){
205
- return
239
+ if (scriptTag.includes("// <![CDATA[ <-- For SVG support")) {
240
+ return;
206
241
  }
207
- let script = scriptTag.split('</script>')[0];
242
+ let script = scriptTag.split("</script>")[0];
208
243
  js += script;
209
244
  }
210
245
  });
211
246
  }
212
-
213
- let jstemplates = result.match(/(\$\(.*?\))/gs)
214
- if(jstemplates){
215
- while(jstemplates.length){
216
- let jstemplate = jstemplates.pop()
217
- // @ts-ignore
218
- result = result.replace(jstemplate,`$\{${jstemplate.replace('$(','').replace(')','')}\}`)
247
+
248
+ let jstemplates = result.match(/(\$\(.*?\))/gs);
249
+ if (jstemplates) {
250
+ while (jstemplates.length) {
251
+ let jstemplate = jstemplates.pop();
252
+ // @ts-ignore
253
+ result = result.replace(
254
+ // @ts-ignore
255
+ jstemplate,
256
+ // @ts-ignore
257
+ `$\{${jstemplate.replace("$(", "").replace(")", "")}\}`
258
+ );
259
+ }
260
+ }
261
+
262
+ let title = result.match(/@title '([^>]*)';/);
263
+ if (title) {
264
+ let t = title[1];
265
+ let ti = `{document.title = "${t}", ""}`;
266
+ result = result.replace(title[0], "$" + ti);
267
+ }
268
+ // @ts-ignore
269
+
270
+
271
+ let styles = result.match(/@style{([^>]*)};/gs);
272
+
273
+ if (styles) {
274
+ for (let i = 0; i < styles.length; i++) {
275
+ // make sure its in a tag
276
+
277
+ if (!styles[i].includes("style")) {
278
+ continue;
219
279
  }
280
+ let style = styles[i];
281
+ console.log(style)
282
+
283
+ let css = style.replace("@style{", "").replace("};", "");
284
+ // @ts-ignore
285
+ css = css.replaceAll(",", ";");
286
+ // @ts-ignore
287
+ css = css.replaceAll(/[A-Z]/g, (match) => {
288
+ return `-${match.toLowerCase()}`;
289
+ }
290
+ );
291
+ //@ts-ignore
292
+ css = css.replaceAll(/'/g, " ");
293
+ result = result.replace(style, `style="${css}"`);
294
+
295
+
296
+ }
297
+ }
298
+
299
+ let stylsheet = result.match(/@stylesheet{([^>]*)};/);
300
+ if (stylsheet) {
301
+ let styles = stylsheet[1];
302
+ /**
303
+ * @stylesheet{
304
+ * body:{
305
+ * backgroundColor: red;
306
+ *
307
+ * }
308
+ * }
309
+ */
310
+
311
+ // @ts-ignore
312
+ let css = styles.replaceAll(" ", "");
313
+ css = css.replaceAll(",", ";");
314
+ css = css.replaceAll(/[A-Z]/g, (match) => {
315
+ return `-${match.toLowerCase()}`;
316
+ }
317
+ );
318
+ css = css.replaceAll(/'/g, " ");
319
+
320
+ result = result.replace(stylsheet[0], `<style>${css}</style>`);
220
321
  }
221
322
  postMessage({
222
323
  template: `<div data-component=${e.data.name}>${result}</div>`,
223
- js: js ? js : ''
224
- })
225
-
226
- }
324
+ js: js ? js : ""
325
+ });
326
+ };