lilact 0.7.5 → 0.7.7

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.
@@ -3,4 +3,4 @@
3
3
  <p>Lilact jsx parser doesn't rely on the Lilact itself, and can be used by other engines. The easiest way
4
4
  is using the <code>bin/transpile.js</code> script. It has its own help.</p>
5
5
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">jsx</span>: <span class="tsd-signature-type">any</span></span></li><li><span><span class="tsd-kind-parameter">__namedParameters</span>: <span class="tsd-signature-symbol">{</span><br/>    <span class="tsd-kind-property">appendSourcemap</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">blocks_info</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">counter</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">labels</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{}</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">discardComments</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">factory</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">fragment</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">injectTraceLabels</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">mappings</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">never</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = {}</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The transpiled javascript code.</p>
6
- <aside class="tsd-sources"><ul><li>Defined in jsx.js:937</li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Lilact</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
6
+ <aside class="tsd-sources"><ul><li>Defined in jsx.js:944</li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Lilact</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
package/docs/index.html CHANGED
@@ -13,7 +13,7 @@ that is around <code>80kb</code> minified and around <code>27kb</code> gzipped a
13
13
  <code>Lilact</code> is very fast, it uses minimum resources and handles memory very efficiently.</p>
14
14
  <p><code>Lilact</code> works in the browser, so it doesn't rely on any JS/node back-end and can
15
15
  essentially work with any kind of web server/back-end. An example of using it with a PHP/MySQL
16
- data store is available on <a href="https://github.com/arashkazemi/LilactPHPDemo">LilactPHPDemo</a>.</p>
16
+ data store is available on <a href="https://github.com/arashkazemi/lilact-php-demo">lilact-php-demo</a>.</p>
17
17
  <p><code>Lilact</code> uses its own JSX transpiler, and not babel. It is a recursive-descent
18
18
  parser with lookahead, but it doesn't parse the JS syntax completely and relies on the
19
19
  JS runtime to detect some errors. The transpiler weights
@@ -118,10 +118,6 @@ __webpack_require__.r(__webpack_exports__);
118
118
  // Works almosr perfectly so far (all observed bugs except 1 are fixed), works
119
119
  // even on nasty things like the compressed version of tensorflow.js! Feel free
120
120
  // to report any bugs, and please include a testable example. Thanks! :)
121
- //
122
- // note: until an efficient fix is found, make sure the slashes inside
123
- // a regexp are escaped, even if they work without escaping.
124
-
125
121
 
126
122
  // todo: injected string try catchs should be generated by a function
127
123
 
@@ -157,16 +153,22 @@ function lookAhead(f, code, index, ...args)
157
153
 
158
154
  function parseRegex(code, index, container)
159
155
  {
160
- // previous token can only be(end with) ;=,([{}!^~&|:?*-+\\/<> or directive or
156
+ // previous token can only be(end with) ;=,([{}!^~&|:?*%-+/<> or directive or
161
157
  // the slash can only be the first character
162
158
  // the backward scan automatically passes for i=0
163
159
 
160
+ // if there is endline before starting /, then the previous token can also be ) and ]
161
+
164
162
  // todo: i have doubts about including preprocessorDelimiter
165
163
 
166
164
  let i = index;
167
- const dels = `;=,([{}!^~&|:?*-+\\/<>${transpilerConfig.preprocessorDelimiter}`;
165
+ const dels = `;=,([{}!^~&|:?*%-+/<>${transpilerConfig.preprocessorDelimiter}`;
168
166
  while(--i>0) {
169
- if( ' \t\n\r'.indexOf(code[i])!==-1 ) continue;
167
+ if( ' \t\r'.indexOf(code[i])!==-1 ) continue;
168
+ if(code[i]==='\n' ) {
169
+ dels+=")]";
170
+ continue;
171
+ }
170
172
  if( dels.indexOf(code[i])!==-1 ) break;
171
173
  return;
172
174
  }
@@ -182,11 +184,16 @@ function parseRegex(code, index, container)
182
184
  case '\n':
183
185
  return;
184
186
  case '/':
185
- b.end = index+1;
186
- if(container) container.children.push(b);
187
- return b;
188
- case '\\':
189
- index++;
187
+ // we proceed and try to parse the possible regexp , if it is a valid regexp, done,
188
+ // if not, that slash can be inside a regexp so we continue. until we reach an endline.
189
+ try {
190
+ eval("const x="+code.slice(b.begin, index+1));
191
+ b.end = index+1;
192
+ if(container) container.children.push(b);
193
+ return b;
194
+ }
195
+ catch(e) {}
196
+
190
197
  default:
191
198
  index++;
192
199
  }
@@ -558,7 +565,7 @@ function parseXML(code, index, container)
558
565
  skip_spaces();
559
566
  }
560
567
 
561
- let av; // attribute value
568
+ let av;
562
569
 
563
570
  switch(code[index]) {
564
571
  case '\'':
@@ -1239,7 +1246,7 @@ function transpileJSX( jsx, {
1239
1246
 
1240
1247
 
1241
1248
 
1242
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL2FyYXNoL0Rlc2t0b3AvUHJvamVjdHMvTGlsYWN0L3NyYy9qc3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIvVXNlcnMvYXJhc2gvRGVza3RvcC9Qcm9qZWN0cy9MaWxhY3Qvc3JjL2pzeC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4QkM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7Q0FFQTtDQUNBOztDQUVBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7OztDQUdBOzs7O0NBSUE7aUNBQ2dDOzs7OztFQUsvQjtFQUNBOzhCQUM0Qjs7OztxQ0FJTzs7Ozs7OzttQkFPbEI7Q0FDbEI7YUFDWTtJQUNULElBQUk7Ozs7OztvQkFNWTtDQUNuQjtFQUNDO0VBQ0E7RUFDQTs7RUFFQTs7OztPQUlLLFFBQVE7S0FDVixrQkFBbUI7S0FDbkIsYUFBYzs7OztZQUlQOzs7OztPQUtMLG9CQUFvQjs7U0FFbEIsS0FBSzs7Ozs7TUFLUixtQ0FBbUM7Ozs7Ozs7Ozs7c0JBVW5CO0NBQ3JCO1lBQ1c7Ozs7O0lBS1IseUNBQXlDO29CQUN6Qjs7Ozs7OztPQU9iLG9CQUFvQjs7O1NBR2xCLEtBQUs7OztNQUdSLHNDQUFzQzs7T0FFckMsbUNBQW1DOzs7Ozs7TUFNcEMsZ0JBQWdCOztPQUVmLG1DQUFtQzs7Ozs7Ozs7OztZQVU5Qjs7Ozt3QkFJWTtDQUN2Qjs7T0FFTTtHQUNIOztFQUVGOzs7Ozs7SUFNRSxTQUFTO2FBQ0E7Ozs7OzswQkFNYSxtQkFBb0IsQUFBRDs7OztLQUl4QyxtQ0FBbUM7Ozs7T0FJakM7OztRQUdDLFVBQVc7OztLQUdkLFdBQVc7Y0FDRjs7Ozs7O3VCQU1TLHFCQUFzQixBQUFEOzs7TUFHdEMsbUNBQW1DOzs7OztZQUs3Qjs7OztDQUlYO0NBQ0E7OzJCQUUwQjtDQUMxQjs7O3lDQUd3QyxnQkFBZ0I7Ozs7O3NCQUtuQyxVQUFVO3NCQUNWO3NC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
1249
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL2FyYXNoL0Rlc2t0b3AvUHJvamVjdHMvTGlsYWN0L3NyYy9qc3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIvVXNlcnMvYXJhc2gvRGVza3RvcC9Qcm9qZWN0cy9MaWxhY3Qvc3JjL2pzeC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4QkM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7Q0FFQTtDQUNBOztDQUVBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0NBRUE7Ozs7Q0FJQTtpQ0FDZ0M7Ozs7O0VBSy9CO0VBQ0E7OEJBQzRCOzs7O3FDQUlPOzs7Ozs7O21CQU9sQjtDQUNsQjthQUNZO0lBQ1QsSUFBSTs7Ozs7O29CQU1ZO0NBQ25CO0VBQ0M7RUFDQTtFQUNBOztFQUVBOztFQUVBOzs7O09BSUssUUFBUTtLQUNWLGdCQUFpQjtLQUNqQixrQkFBa0I7Ozs7S0FJbEIsYUFBYzs7OztZQUlQOzs7OztPQUtMLG9CQUFvQjs7U0FFbEIsS0FBSzs7OztJQUlWO0lBQ0E7UUFDSTtTQUNDLHFCQUFzQjs7T0FFeEIsbUNBQW1DOzs7U0FHakMsSUFBSTs7Ozs7Ozs7c0JBUVM7Q0FDckI7WUFDVzs7Ozs7SUFLUix5Q0FBeUM7b0JBQ3pCOzs7Ozs7O09BT2Isb0JBQW9COzs7U0FHbEIsS0FBSzs7O01BR1Isc0NBQXNDOztPQUVyQyxtQ0FBbUM7Ozs7OztNQU1wQyxnQkFBZ0I7O09BRWYsbUNBQW1DOzs7Ozs7Ozs7O1lBVTlCOzs7O3dCQUlZO0NBQ3ZCOztPQUVNO0dBQ0g7O0VBRUY7Ozs7OztJQU1FLFNBQVM7YUFDQTs7Ozs7OzBCQU1hLG1CQUFvQixBQUFEOzs7O0tBSXhDLG1DQUFtQzs7OztPQUlqQzs7O1FBR0MsVUFBVzs7O0tBR2QsV0FBVztjQUNGOzs7Ozs7dUJBTVMscUJBQXNCLEFBQUQ7OztNQUd0QyxtQ0FBbUM7Ozs7O1lBSzdCOzs7O0NBSVg7Q0FDQTs7MkJBRTBCO0NB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
1243
1250
 
1244
1251
  /***/ }),
1245
1252
 
@@ -7678,7 +7685,7 @@ function NavLink({
7678
7685
  function compilePath(pattern) {
7679
7686
  const paramNames = [];
7680
7687
  // escape regex and replace :param and *
7681
- let regexSource = "^" + pattern.replace(/\/+$/,"").replace(/([.+?^=!:${}()|[\]\/\\])/g, "\\$1")
7688
+ let regexSource = "^" + pattern.replace(/\/+$/,"").replace(/([.+?^=!:${}()|[\]/\\])/g, "\\$1")
7682
7689
  .replace(/\\\:([A-Za-z0-9_]+)/g, (_, name) => {
7683
7690
  paramNames.push(name);
7684
7691
  return "([^/]+)";