rip-lang 3.14.3 → 3.14.5

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/docs/dist/rip.js CHANGED
@@ -5382,7 +5382,7 @@ function __schema(descriptor) {
5382
5382
  "THIS"
5383
5383
  ]);
5384
5384
  var TAGGABLE = new Set(["IDENTIFIER", "PROPERTY", ")", "CALL_END", "]", "INDEX_END"]);
5385
- var CONTROL_IN_IMPLICIT = new Set(["IF", "TRY", "FINALLY", "CATCH", "CLASS", "SWITCH", "COMPONENT"]);
5385
+ var CONTROL_IN_IMPLICIT = new Set(["IF", "TRY", "FINALLY", "CATCH", "CLASS", "SWITCH", "COMPONENT", "FOR"]);
5386
5386
  var SINGLE_LINERS = new Set(["ELSE", "->", "=>", "TRY", "FINALLY", "THEN"]);
5387
5387
  var SINGLE_CLOSERS = new Set(["TERMINATOR", "CATCH", "FINALLY", "ELSE", "OUTDENT", "LEADING_WHEN"]);
5388
5388
  var LINE_BREAK = new Set(["INDENT", "OUTDENT", "TERMINATOR"]);
@@ -11414,7 +11414,7 @@ function _setDataSection() {
11414
11414
  this.indentLevel++;
11415
11415
  let lines = [];
11416
11416
  if (!noVar)
11417
- lines.push(`${itemVarPattern} = ${iterCode}[${idxName}];`);
11417
+ lines.push(`let ${itemVarPattern} = ${iterCode}[${idxName}];`);
11418
11418
  if (guard) {
11419
11419
  lines.push(`if (${this.emit(guard, "value")}) {`);
11420
11420
  this.indentLevel++;
@@ -11433,7 +11433,7 @@ ${this.indent()}}`;
11433
11433
  if (noVar) {
11434
11434
  return guard ? loopHeader + `{ if (${this.emit(guard, "value")}) ${this.emit(body, "statement")}; }` : loopHeader + `{ ${this.emit(body, "statement")}; }`;
11435
11435
  }
11436
- return guard ? loopHeader + `{ ${itemVarPattern} = ${iterCode}[${idxName}]; if (${this.emit(guard, "value")}) ${this.emit(body, "statement")}; }` : loopHeader + `{ ${itemVarPattern} = ${iterCode}[${idxName}]; ${this.emit(body, "statement")}; }`;
11436
+ return guard ? loopHeader + `{ let ${itemVarPattern} = ${iterCode}[${idxName}]; if (${this.emit(guard, "value")}) ${this.emit(body, "statement")}; }` : loopHeader + `{ let ${itemVarPattern} = ${iterCode}[${idxName}]; ${this.emit(body, "statement")}; }`;
11437
11437
  }
11438
11438
  if (indexVar) {
11439
11439
  let iterCode = this.emit(iterable, "value");
@@ -11442,7 +11442,7 @@ ${this.indent()}}`;
11442
11442
  code2 += `{
11443
11443
  `;
11444
11444
  this.indentLevel++;
11445
- code2 += this.indent() + `${itemVarPattern} = ${iterCode}[${indexVar}];
11445
+ code2 += this.indent() + `let ${itemVarPattern} = ${iterCode}[${indexVar}];
11446
11446
  `;
11447
11447
  if (guard) {
11448
11448
  code2 += this.indent() + `if (${this.unwrap(this.emit(guard, "value"))}) {
@@ -11462,7 +11462,7 @@ ${this.indent()}}`;
11462
11462
  this.indentLevel--;
11463
11463
  code2 += this.indent() + "}";
11464
11464
  } else {
11465
- code2 += guard ? `{ ${itemVarPattern} = ${iterCode}[${indexVar}]; if (${this.unwrap(this.emit(guard, "value"))}) ${this.emit(body, "statement")}; }` : `{ ${itemVarPattern} = ${iterCode}[${indexVar}]; ${this.emit(body, "statement")}; }`;
11465
+ code2 += guard ? `{ let ${itemVarPattern} = ${iterCode}[${indexVar}]; if (${this.unwrap(this.emit(guard, "value"))}) ${this.emit(body, "statement")}; }` : `{ let ${itemVarPattern} = ${iterCode}[${indexVar}]; ${this.emit(body, "statement")}; }`;
11466
11466
  }
11467
11467
  return code2;
11468
11468
  }
@@ -11482,8 +11482,7 @@ ${this.indent()}}`;
11482
11482
  return code2;
11483
11483
  }
11484
11484
  }
11485
- let bind = noVar ? "let " : "";
11486
- let code = `for (${bind}${itemVarPattern} of ${this.emit(iterable, "value")}) `;
11485
+ let code = `for (let ${itemVarPattern} of ${this.emit(iterable, "value")}) `;
11487
11486
  code += guard ? this.emitLoopBodyWithGuard(body, guard) : this.emitLoopBody(body);
11488
11487
  return code;
11489
11488
  }
@@ -11495,7 +11494,7 @@ ${this.indent()}}`;
11495
11494
  }
11496
11495
  let [keyVar, valueVar] = Array.isArray(vars) ? vars : [vars];
11497
11496
  let objCode = this.emit(obj, "value");
11498
- let code = `for (${keyVar} in ${objCode}) `;
11497
+ let code = `for (let ${keyVar} in ${objCode}) `;
11499
11498
  if (own && !valueVar && !guard) {
11500
11499
  if (this.is(body, "block")) {
11501
11500
  this.indentLevel++;
@@ -11515,7 +11514,7 @@ ${this.indent()}}`;
11515
11514
  let lines = [];
11516
11515
  if (own)
11517
11516
  lines.push(`if (!Object.hasOwn(${objCode}, ${keyVar})) continue;`);
11518
- lines.push(`${valueVar} = ${objCode}[${keyVar}];`);
11517
+ lines.push(`let ${valueVar} = ${objCode}[${keyVar}];`);
11519
11518
  if (guard) {
11520
11519
  lines.push(`if (${this.emit(guard, "value")}) {`);
11521
11520
  this.indentLevel++;
@@ -11534,7 +11533,7 @@ ${this.indent()}}`;
11534
11533
  let inline = "";
11535
11534
  if (own)
11536
11535
  inline += `if (!Object.hasOwn(${objCode}, ${keyVar})) continue; `;
11537
- inline += `${valueVar} = ${objCode}[${keyVar}]; `;
11536
+ inline += `let ${valueVar} = ${objCode}[${keyVar}]; `;
11538
11537
  if (guard)
11539
11538
  inline += `if (${this.emit(guard, "value")}) `;
11540
11539
  inline += `${this.emit(body, "statement")};`;
@@ -11582,7 +11581,7 @@ ${this.indent()}}`;
11582
11581
  itemVarPattern = this.emitDestructuringPattern(firstVar);
11583
11582
  else
11584
11583
  itemVarPattern = firstVar;
11585
- let code = `for ${awaitKw}(${itemVarPattern} of ${iterCode}) `;
11584
+ let code = `for ${awaitKw}(let ${itemVarPattern} of ${iterCode}) `;
11586
11585
  if (needsTempVar && destructStmts.length > 0) {
11587
11586
  let stmts = this.unwrapBlock(body);
11588
11587
  let allStmts = this.withIndent(() => [
@@ -11934,30 +11933,29 @@ ${this.indent()}}`;
11934
11933
  let isPlus1 = !isNeg && (step === "1" || step === 1 || str(step) === "1");
11935
11934
  let update = isMinus1 ? `${idxN}--` : isPlus1 ? `${idxN}++` : `${idxN} += ${stc}`;
11936
11935
  let header = isNeg ? `for (let ${idxN} = ${ic}.length - 1; ${idxN} >= 0; ${update})` : `for (let ${idxN} = 0; ${idxN} < ${ic}.length; ${update})`;
11937
- return { header, setup: noVar ? null : `${ivp} = ${ic}[${idxN}];` };
11936
+ return { header, setup: noVar ? null : `let ${ivp} = ${ic}[${idxN}];` };
11938
11937
  }
11939
11938
  if (indexVar) {
11940
11939
  let ic = this.emit(iterable, "value");
11941
11940
  return {
11942
11941
  header: `for (let ${indexVar} = 0; ${indexVar} < ${ic}.length; ${indexVar}++)`,
11943
- setup: `${ivp} = ${ic}[${indexVar}];`
11942
+ setup: `let ${ivp} = ${ic}[${indexVar}];`
11944
11943
  };
11945
11944
  }
11946
- let bind = noVar ? "let " : "";
11947
- return { header: `for (${bind}${ivp} of ${this.emit(iterable, "value")})`, setup: null };
11945
+ return { header: `for (let ${ivp} of ${this.emit(iterable, "value")})`, setup: null };
11948
11946
  }
11949
11947
  _forOfHeader(vars, iterable, own) {
11950
11948
  let va = Array.isArray(vars) ? vars : [vars];
11951
11949
  let [kv, vv] = va;
11952
11950
  let kvp = this.is(kv, "array") || this.is(kv, "object") ? this.emitDestructuringPattern(kv) : kv;
11953
11951
  let oc = this.emit(iterable, "value");
11954
- return { header: `for (${kvp} in ${oc})`, own, vv, oc, kvp };
11952
+ return { header: `for (let ${kvp} in ${oc})`, own, vv, oc, kvp };
11955
11953
  }
11956
11954
  _forAsHeader(vars, iterable, isAwait) {
11957
11955
  let va = Array.isArray(vars) ? vars : [vars];
11958
11956
  let [fv] = va;
11959
11957
  let ivp = this.is(fv, "array") || this.is(fv, "object") ? this.emitDestructuringPattern(fv) : fv;
11960
- return { header: `for ${isAwait ? "await " : ""}(${ivp} of ${this.emit(iterable, "value")})` };
11958
+ return { header: `for ${isAwait ? "await " : ""}(let ${ivp} of ${this.emit(iterable, "value")})` };
11961
11959
  }
11962
11960
  emitComprehension(head, rest, context) {
11963
11961
  let [expr, iterators, guards] = rest;
@@ -11991,7 +11989,7 @@ ${this.indent()}}`;
11991
11989
  code += this.indent() + `if (!Object.hasOwn(${oc}, ${kvp})) continue;
11992
11990
  `;
11993
11991
  if (vv)
11994
- code += this.indent() + `${vv} = ${oc}[${kvp}];
11992
+ code += this.indent() + `let ${vv} = ${oc}[${kvp}];
11995
11993
  `;
11996
11994
  } else if (iterType === "for-as") {
11997
11995
  let { header } = this._forAsHeader(vars, iterable, iter[3]);
@@ -12073,14 +12071,14 @@ ${this.indent()}}`;
12073
12071
  if (iterType === "for-of") {
12074
12072
  let [kv, vv] = vars;
12075
12073
  let oc = this.emit(iterable, "value");
12076
- code += this.indent() + `for (${kv} in ${oc}) {
12074
+ code += this.indent() + `for (let ${kv} in ${oc}) {
12077
12075
  `;
12078
12076
  this.indentLevel++;
12079
12077
  if (own)
12080
12078
  code += this.indent() + `if (!Object.hasOwn(${oc}, ${kv})) continue;
12081
12079
  `;
12082
12080
  if (vv)
12083
- code += this.indent() + `${vv} = ${oc}[${kv}];
12081
+ code += this.indent() + `let ${vv} = ${oc}[${kv}];
12084
12082
  `;
12085
12083
  }
12086
12084
  }
@@ -12572,7 +12570,25 @@ export default ${expr[1]}`;
12572
12570
  }
12573
12571
  }
12574
12572
  }
12575
- let needsReturn = !isConstructor && !sideEffectOnly && isLast && !noRetStmts.includes(h) && !loopStmts.includes(h) && !this.hasExplicitControlFlow(stmt);
12573
+ if (!isConstructor && !sideEffectOnly && isLast && loopStmts.includes(h)) {
12574
+ if (this.containsYield(stmt)) {
12575
+ code += this.indent() + this.addSemicolon(stmt, this.emit(stmt, "statement")) + `
12576
+ `;
12577
+ return;
12578
+ }
12579
+ code += this.indent() + `const _result = [];
12580
+ `;
12581
+ this.comprehensionTarget = "_result";
12582
+ let saved = this._skipCompTargetInit;
12583
+ this._skipCompTargetInit = true;
12584
+ code += this.emit(stmt, "value");
12585
+ this._skipCompTargetInit = saved;
12586
+ this.comprehensionTarget = null;
12587
+ code += this.indent() + `return _result;
12588
+ `;
12589
+ return;
12590
+ }
12591
+ let needsReturn = !isConstructor && !sideEffectOnly && isLast && !noRetStmts.includes(h) && !this.hasExplicitControlFlow(stmt);
12576
12592
  let ctx = needsReturn ? "value" : "statement";
12577
12593
  let sc = this.emit(stmt, ctx);
12578
12594
  if (needsReturn)
@@ -12698,9 +12714,41 @@ ${this.indent()}}`;
12698
12714
  }
12699
12715
  emitComprehensionWithTarget(expr, iterators, guards, targetVar) {
12700
12716
  let code = "";
12701
- code += this.indent() + `${targetVar} = [];
12717
+ if (!this._skipCompTargetInit)
12718
+ code += this.indent() + `${targetVar} = [];
12719
+ `;
12720
+ let hasCtrl = (node) => {
12721
+ if (typeof node === "string" && (node === "break" || node === "continue"))
12722
+ return true;
12723
+ if (!Array.isArray(node))
12724
+ return false;
12725
+ if (["break", "continue", "return", "throw"].includes(node[0]))
12726
+ return true;
12727
+ if (node[0] === "if")
12728
+ return node.slice(1).some(hasCtrl);
12729
+ return node.some(hasCtrl);
12730
+ };
12731
+ let emitBody = () => {
12732
+ let loopTypes = ["for-in", "for-of", "for-as", "while", "loop"];
12733
+ if (this.is(expr, "block")) {
12734
+ for (let i = 0;i < expr.length - 1; i++) {
12735
+ let s = expr[i + 1], isLast = i === expr.length - 2;
12736
+ if (!isLast || hasCtrl(s) || Array.isArray(s) && loopTypes.includes(s[0])) {
12737
+ code += this.indent() + this.emit(s, "statement") + `;
12738
+ `;
12739
+ } else {
12740
+ code += this.indent() + `${targetVar}.push(${this.emit(s, "value")});
12741
+ `;
12742
+ }
12743
+ }
12744
+ } else if (hasCtrl(expr)) {
12745
+ code += this.indent() + this.emit(expr, "statement") + `;
12746
+ `;
12747
+ } else {
12748
+ code += this.indent() + `${targetVar}.push(${this.emit(expr, "value")});
12702
12749
  `;
12703
- let unwrappedExpr = this.is(expr, "block") && expr.length === 2 ? expr[1] : expr;
12750
+ }
12751
+ };
12704
12752
  if (iterators.length === 1) {
12705
12753
  let [iterType, vars, iterable, stepOrOwn] = iterators[0];
12706
12754
  if (iterType === "for-in") {
@@ -12711,14 +12759,61 @@ ${this.indent()}}`;
12711
12759
  if (setup)
12712
12760
  code += this.indent() + setup + `
12713
12761
  `;
12714
- if (guards && guards.length > 0) {
12762
+ if (guards?.length > 0) {
12715
12763
  code += this.indent() + `if (${guards.map((g) => this.emit(g, "value")).join(" && ")}) {
12716
12764
  `;
12717
12765
  this.indentLevel++;
12718
12766
  }
12719
- code += this.indent() + `${targetVar}.push(${this.unwrap(this.emit(unwrappedExpr, "value"))});
12767
+ emitBody();
12768
+ if (guards?.length > 0) {
12769
+ this.indentLevel--;
12770
+ code += this.indent() + `}
12771
+ `;
12772
+ }
12773
+ this.indentLevel--;
12774
+ code += this.indent() + `}
12720
12775
  `;
12721
- if (guards && guards.length > 0) {
12776
+ return code;
12777
+ }
12778
+ if (iterType === "for-of") {
12779
+ let { header, own, vv, oc, kvp } = this._forOfHeader(vars, iterable, stepOrOwn);
12780
+ code += this.indent() + header + ` {
12781
+ `;
12782
+ this.indentLevel++;
12783
+ if (own)
12784
+ code += this.indent() + `if (!Object.hasOwn(${oc}, ${kvp})) continue;
12785
+ `;
12786
+ if (vv)
12787
+ code += this.indent() + `let ${vv} = ${oc}[${kvp}];
12788
+ `;
12789
+ if (guards?.length > 0) {
12790
+ code += this.indent() + `if (${guards.map((g) => this.emit(g, "value")).join(" && ")}) {
12791
+ `;
12792
+ this.indentLevel++;
12793
+ }
12794
+ emitBody();
12795
+ if (guards?.length > 0) {
12796
+ this.indentLevel--;
12797
+ code += this.indent() + `}
12798
+ `;
12799
+ }
12800
+ this.indentLevel--;
12801
+ code += this.indent() + `}
12802
+ `;
12803
+ return code;
12804
+ }
12805
+ if (iterType === "for-as") {
12806
+ let { header } = this._forAsHeader(vars, iterable, stepOrOwn);
12807
+ code += this.indent() + header + ` {
12808
+ `;
12809
+ this.indentLevel++;
12810
+ if (guards?.length > 0) {
12811
+ code += this.indent() + `if (${guards.map((g) => this.emit(g, "value")).join(" && ")}) {
12812
+ `;
12813
+ this.indentLevel++;
12814
+ }
12815
+ emitBody();
12816
+ if (guards?.length > 0) {
12722
12817
  this.indentLevel--;
12723
12818
  code += this.indent() + `}
12724
12819
  `;
@@ -12729,8 +12824,10 @@ ${this.indent()}}`;
12729
12824
  return code;
12730
12825
  }
12731
12826
  }
12732
- return this.indent() + `${targetVar} = (() => { /* complex comprehension */ })();
12827
+ code = "";
12828
+ code += this.indent() + `${targetVar} = ${this.emit(["comprehension", expr, iterators, guards || []], "value")};
12733
12829
  `;
12830
+ return code;
12734
12831
  }
12735
12832
  emitComprehensionAsLoop(expr, iterators, guards) {
12736
12833
  let code = "";
@@ -12784,7 +12881,7 @@ ${this.indent()}}`;
12784
12881
  code += this.indent() + `if (!Object.hasOwn(${oc}, ${kvp})) continue;
12785
12882
  `;
12786
12883
  if (vv)
12787
- code += this.indent() + `${vv} = ${oc}[${kvp}];
12884
+ code += this.indent() + `let ${vv} = ${oc}[${kvp}];
12788
12885
  `;
12789
12886
  emitBody();
12790
12887
  this.indentLevel--;
@@ -13835,8 +13932,8 @@ globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
13835
13932
  return new CodeEmitter({}).getComponentRuntime();
13836
13933
  }
13837
13934
  // src/browser.js
13838
- var VERSION = "3.14.3";
13839
- var BUILD_DATE = "2026-04-23@15:51:16GMT";
13935
+ var VERSION = "3.14.5";
13936
+ var BUILD_DATE = "2026-04-24@12:50:45GMT";
13840
13937
  if (typeof globalThis !== "undefined") {
13841
13938
  if (!globalThis.__rip)
13842
13939
  new Function(getReactiveRuntime())();
@@ -14351,10 +14448,10 @@ ${indented}`);
14351
14448
  _depth++;
14352
14449
  return (() => {
14353
14450
  try {
14354
- for (seg of segs) {
14451
+ for (let seg2 of segs) {
14355
14452
  if (!(obj != null))
14356
14453
  return;
14357
- obj = obj[resolveIndex(seg, obj)];
14454
+ obj = obj[resolveIndex(seg2, obj)];
14358
14455
  }
14359
14456
  return obj;
14360
14457
  } finally {
@@ -14370,8 +14467,8 @@ ${indented}`);
14370
14467
  return (() => {
14371
14468
  try {
14372
14469
  for (let i2 = 0;i2 < segs.length; i2++) {
14373
- seg = segs[i2];
14374
- key = resolveIndex(seg, obj);
14470
+ let seg2 = segs[i2];
14471
+ key = resolveIndex(seg2, obj);
14375
14472
  if (i2 === segs.length - 1) {
14376
14473
  obj[key] = value;
14377
14474
  } else {
@@ -14434,9 +14531,9 @@ ${indented}`);
14434
14531
  try {
14435
14532
  return (() => {
14436
14533
  const result = [];
14437
- for (k in obj) {
14438
- v = obj[k];
14439
- result.push(target[k] = v);
14534
+ for (let k2 in obj) {
14535
+ let v2 = obj[k2];
14536
+ result.push(target[k2] = v2);
14440
14537
  }
14441
14538
  return result;
14442
14539
  })();
@@ -14454,10 +14551,10 @@ ${indented}`);
14454
14551
  try {
14455
14552
  segs = walk(path);
14456
14553
  obj = proxy;
14457
- for (seg of segs) {
14554
+ for (let seg2 of segs) {
14458
14555
  if (!(obj != null))
14459
14556
  return [];
14460
- obj = obj[resolveIndex(seg, obj)];
14557
+ obj = obj[resolveIndex(seg2, obj)];
14461
14558
  }
14462
14559
  if (!(obj != null && typeof obj === "object"))
14463
14560
  return [];
@@ -14480,8 +14577,8 @@ ${indented}`);
14480
14577
  return false;
14481
14578
  obj = proxy;
14482
14579
  for (let i2 = 0;i2 < segs.length; i2++) {
14483
- seg = segs[i2];
14484
- key = resolveIndex(seg, obj);
14580
+ let seg2 = segs[i2];
14581
+ key = resolveIndex(seg2, obj);
14485
14582
  if (i2 === segs.length - 1) {
14486
14583
  t = raw(obj);
14487
14584
  keysSignal(t).value;
@@ -14510,8 +14607,8 @@ ${indented}`);
14510
14607
  return (() => {
14511
14608
  const result = [];
14512
14609
  for (let i2 = 0;i2 < segs.length; i2++) {
14513
- seg = segs[i2];
14514
- key = resolveIndex(seg, obj);
14610
+ let seg2 = segs[i2];
14611
+ key = resolveIndex(seg2, obj);
14515
14612
  if (i2 === segs.length - 1) {
14516
14613
  delete obj[key];
14517
14614
  return;
@@ -14553,9 +14650,9 @@ ${indented}`);
14553
14650
  saved = storage.getItem(storageKey);
14554
14651
  if (saved) {
14555
14652
  savedData = JSON.parse(saved);
14556
- for (k in savedData) {
14557
- v = savedData[k];
14558
- app.data[k] = v;
14653
+ for (let k2 in savedData) {
14654
+ let v2 = savedData[k2];
14655
+ app.data[k2] = v2;
14559
14656
  }
14560
14657
  }
14561
14658
  } catch {}
@@ -14715,9 +14812,11 @@ ${indented}`);
14715
14812
  compiled = new Map;
14716
14813
  notify = function(event, path) {
14717
14814
  let watcher;
14718
- for (watcher of watchers) {
14719
- watcher(event, path);
14815
+ const _result = [];
14816
+ for (let watcher2 of watchers) {
14817
+ _result.push(watcher2(event, path));
14720
14818
  }
14819
+ return _result;
14721
14820
  };
14722
14821
  return { read: function(path) {
14723
14822
  return files.get(path);
@@ -14739,12 +14838,12 @@ ${indented}`);
14739
14838
  let path, prefix, rest, result;
14740
14839
  result = [];
14741
14840
  prefix = dir ? dir + "/" : "";
14742
- for ([path] of files) {
14743
- if (path.startsWith(prefix)) {
14744
- rest = path.slice(prefix.length);
14841
+ for (let [path2] of files) {
14842
+ if (path2.startsWith(prefix)) {
14843
+ rest = path2.slice(prefix.length);
14745
14844
  if (rest.includes("/"))
14746
14845
  continue;
14747
- result.push(path);
14846
+ result.push(path2);
14748
14847
  }
14749
14848
  }
14750
14849
  return result;
@@ -14752,17 +14851,19 @@ ${indented}`);
14752
14851
  let path, prefix, result;
14753
14852
  result = [];
14754
14853
  prefix = dir ? dir + "/" : "";
14755
- for ([path] of files) {
14756
- if (path.startsWith(prefix))
14757
- result.push(path);
14854
+ for (let [path2] of files) {
14855
+ if (path2.startsWith(prefix))
14856
+ result.push(path2);
14758
14857
  }
14759
14858
  return result;
14760
14859
  }, load: function(obj) {
14761
14860
  let content, key;
14762
- for (key in obj) {
14763
- content = obj[key];
14764
- files.set(key, content);
14861
+ const _result = [];
14862
+ for (let key2 in obj) {
14863
+ let content2 = obj[key2];
14864
+ _result.push(files.set(key2, content2));
14765
14865
  }
14866
+ return _result;
14766
14867
  }, watch: function(fn) {
14767
14868
  watchers.push(fn);
14768
14869
  return function() {
@@ -14798,15 +14899,15 @@ ${indented}`);
14798
14899
  };
14799
14900
  matchRoute = function(path, routes) {
14800
14901
  let i, match, name, params, route;
14801
- for (route of routes) {
14802
- match = path.match(route.regex.regex);
14902
+ for (let route2 of routes) {
14903
+ match = path.match(route2.regex.regex);
14803
14904
  if (match) {
14804
14905
  params = {};
14805
- for (let i2 = 0;i2 < route.regex.names.length; i2++) {
14806
- name = route.regex.names[i2];
14807
- params[name] = decodeURIComponent(match[i2 + 1]);
14906
+ for (let i2 = 0;i2 < route2.regex.names.length; i2++) {
14907
+ let name2 = route2.regex.names[i2];
14908
+ params[name2] = decodeURIComponent(match[i2 + 1]);
14808
14909
  }
14809
- return { route, params };
14910
+ return { route: route2, params };
14810
14911
  }
14811
14912
  }
14812
14913
  return null;
@@ -14816,14 +14917,14 @@ ${indented}`);
14816
14917
  routes = [];
14817
14918
  layouts = new Map;
14818
14919
  allFiles = components.listAll(root);
14819
- for (filePath of allFiles) {
14820
- rel = filePath.slice(root.length + 1);
14920
+ for (let filePath2 of allFiles) {
14921
+ rel = filePath2.slice(root.length + 1);
14821
14922
  if (!rel.endsWith(".rip"))
14822
14923
  continue;
14823
14924
  name = rel.split("/").pop();
14824
14925
  if (name === "_layout.rip") {
14825
14926
  dir = rel === "_layout.rip" ? "" : rel.slice(0, -"/_layout.rip".length);
14826
- layouts.set(dir, filePath);
14927
+ layouts.set(dir, filePath2);
14827
14928
  continue;
14828
14929
  }
14829
14930
  if (name.startsWith("_"))
@@ -14835,7 +14936,7 @@ ${indented}`);
14835
14936
  continue;
14836
14937
  urlPattern = fileToPattern(rel);
14837
14938
  regex = patternToRegex(urlPattern);
14838
- routes.push({ pattern: urlPattern, regex, file: filePath, rel });
14939
+ routes.push({ pattern: urlPattern, regex, file: filePath2, rel });
14839
14940
  }
14840
14941
  routes.sort(function(a, b) {
14841
14942
  let aCatch, aDyn, bCatch, bDyn;
@@ -14860,10 +14961,10 @@ ${indented}`);
14860
14961
  if (layouts.has(""))
14861
14962
  chain.push(layouts.get(""));
14862
14963
  for (let i2 = 0;i2 < segments.length; i2++) {
14863
- seg = segments[i2];
14964
+ let seg2 = segments[i2];
14864
14965
  if (i2 === segments.length - 1)
14865
14966
  break;
14866
- dir = dir ? dir + "/" + seg : seg;
14967
+ dir = dir ? dir + "/" + seg2 : seg2;
14867
14968
  if (layouts.has(dir))
14868
14969
  chain.push(layouts.get(dir));
14869
14970
  }
@@ -14926,8 +15027,8 @@ ${indented}`);
14926
15027
  _query.value = Object.fromEntries(new URLSearchParams(queryStr));
14927
15028
  return _hash.value = hash;
14928
15029
  });
14929
- for (cb of navCallbacks) {
14930
- cb(router.current);
15030
+ for (let cb2 of navCallbacks) {
15031
+ cb2(router.current);
14931
15032
  }
14932
15033
  return true;
14933
15034
  }
@@ -15022,28 +15123,28 @@ ${indented}`);
15022
15123
  if (a.length !== b.length)
15023
15124
  return false;
15024
15125
  for (let i2 = 0;i2 < a.length; i2++) {
15025
- item = a[i2];
15026
- if (item !== b[i2])
15126
+ let item2 = a[i2];
15127
+ if (item2 !== b[i2])
15027
15128
  return false;
15028
15129
  }
15029
15130
  return true;
15030
15131
  };
15031
15132
  findComponent = function(mod) {
15032
15133
  let key, val;
15033
- for (key in mod) {
15034
- val = mod[key];
15035
- if (typeof val === "function" && (val.prototype?.mount || val.prototype?._create))
15036
- return val;
15134
+ for (let key2 in mod) {
15135
+ let val2 = mod[key2];
15136
+ if (typeof val2 === "function" && (val2.prototype?.mount || val2.prototype?._create))
15137
+ return val2;
15037
15138
  }
15038
15139
  return typeof mod.default === "function" ? mod.default : undefined;
15039
15140
  };
15040
15141
  findAllComponents = function(mod) {
15041
15142
  let key, result, val;
15042
15143
  result = {};
15043
- for (key in mod) {
15044
- val = mod[key];
15045
- if (typeof val === "function" && (val.prototype?.mount || val.prototype?._create)) {
15046
- result[key] = val;
15144
+ for (let key2 in mod) {
15145
+ let val2 = mod[key2];
15146
+ if (typeof val2 === "function" && (val2.prototype?.mount || val2.prototype?._create)) {
15147
+ result[key2] = val2;
15047
15148
  }
15048
15149
  }
15049
15150
  return result;
@@ -15058,17 +15159,17 @@ ${indented}`);
15058
15159
  buildComponentMap = function(components, root = "components") {
15059
15160
  let fileName, map, name, path;
15060
15161
  map = {};
15061
- for (path of components.listAll(root)) {
15062
- if (!path.endsWith(".rip"))
15162
+ for (let path2 of components.listAll(root)) {
15163
+ if (!path2.endsWith(".rip"))
15063
15164
  continue;
15064
- fileName = path.split("/").pop();
15165
+ fileName = path2.split("/").pop();
15065
15166
  if (fileName.startsWith("_"))
15066
15167
  continue;
15067
- name = fileToComponentName(path);
15168
+ name = fileToComponentName(path2);
15068
15169
  if (map[name]) {
15069
- console.warn(`[Rip] Component name collision: ${name} (${map[name]} vs ${path})`);
15170
+ console.warn(`[Rip] Component name collision: ${name} (${map[name]} vs ${path2})`);
15070
15171
  }
15071
- map[name] = path;
15172
+ map[name] = path2;
15072
15173
  }
15073
15174
  return map;
15074
15175
  };
@@ -15079,12 +15180,12 @@ ${indented}`);
15079
15180
  if (currentPath) {
15080
15181
  parts = currentPath.split("/");
15081
15182
  parts.pop();
15082
- for (seg of specifier.split("/")) {
15083
- if (seg === "..") {
15183
+ for (let seg2 of specifier.split("/")) {
15184
+ if (seg2 === "..") {
15084
15185
  parts.pop();
15085
15186
  } else {
15086
- if (!(seg === ".")) {
15087
- parts.push(seg);
15187
+ if (!(seg2 === ".")) {
15188
+ parts.push(seg2);
15088
15189
  }
15089
15190
  }
15090
15191
  }
@@ -15096,9 +15197,9 @@ ${indented}`);
15096
15197
  return `components/_lib/${clean}`;
15097
15198
  if (components.exists(`components/${clean}`))
15098
15199
  return `components/${clean}`;
15099
- for (p of components.listAll("components")) {
15100
- if (p.endsWith(`/${basename}`))
15101
- return p;
15200
+ for (let p2 of components.listAll("components")) {
15201
+ if (p2.endsWith(`/${basename}`))
15202
+ return p2;
15102
15203
  }
15103
15204
  return null;
15104
15205
  };
@@ -15120,8 +15221,8 @@ ${indented}`);
15120
15221
  ripImportRe = /^(\s*import\s+(?:\{([^}]+)\}\s+from\s+|.*?\s+from\s+)?['"])([^'"]*\.rip)(['"];?\s*)$/gm;
15121
15222
  matches = Array.from(js.matchAll(ripImportRe));
15122
15223
  for (let _i = matches.length - 1;_i >= 0; _i--) {
15123
- m = matches[_i];
15124
- [full, pre, namedImports, specifier, post] = m;
15224
+ let m2 = matches[_i];
15225
+ [full, pre, namedImports, specifier, post] = m2;
15125
15226
  storePath = resolveStorePath(specifier, path, components);
15126
15227
  if (storePath === path)
15127
15228
  continue;
@@ -15143,34 +15244,34 @@ ${indented}`);
15143
15244
  blobUrl = resolver.blobUrls?.[storePath];
15144
15245
  if (blobUrl) {
15145
15246
  replacement = `${pre}${blobUrl}${post}`;
15146
- js = js.slice(0, m.index) + replacement + js.slice(m.index + full.length);
15247
+ js = js.slice(0, m2.index) + replacement + js.slice(m2.index + full.length);
15147
15248
  if (namedImports) {
15148
- for (n of namedImports.split(",")) {
15149
- importedNames.add(n.trim().split(/\s+as\s+/).pop().trim());
15249
+ for (let n2 of namedImports.split(",")) {
15250
+ importedNames.add(n2.trim().split(/\s+as\s+/).pop().trim());
15150
15251
  }
15151
15252
  }
15152
15253
  }
15153
15254
  }
15154
15255
  }
15155
15256
  needed = {};
15156
- for (name in resolver.map) {
15157
- depPath = resolver.map[name];
15158
- if (importedNames.has(name))
15257
+ for (let name2 in resolver.map) {
15258
+ let depPath2 = resolver.map[name2];
15259
+ if (importedNames.has(name2))
15159
15260
  continue;
15160
- if (depPath !== path && js.includes(`new ${name}(`)) {
15161
- if (!resolver.classes[name]) {
15162
- depSource = components.read(depPath);
15261
+ if (depPath2 !== path && js.includes(`new ${name2}(`)) {
15262
+ if (!resolver.classes[name2]) {
15263
+ depSource = components.read(depPath2);
15163
15264
  if (depSource) {
15164
- depMod = await compileAndImport(depSource, compile2, components, depPath, resolver);
15265
+ depMod = await compileAndImport(depSource, compile2, components, depPath2, resolver);
15165
15266
  found = findAllComponents(depMod);
15166
- for (k in found) {
15167
- v = found[k];
15168
- resolver.classes[k] = v;
15267
+ for (let k2 in found) {
15268
+ let v2 = found[k2];
15269
+ resolver.classes[k2] = v2;
15169
15270
  }
15170
15271
  }
15171
15272
  }
15172
- if (resolver.classes[name])
15173
- needed[name] = true;
15273
+ if (resolver.classes[name2])
15274
+ needed[name2] = true;
15174
15275
  }
15175
15276
  }
15176
15277
  names = Object.keys(needed);
@@ -15193,9 +15294,9 @@ ${indented}`);
15193
15294
  mod = await import(url);
15194
15295
  if (resolver) {
15195
15296
  found = findAllComponents(mod);
15196
- for (k in found) {
15197
- v = found[k];
15198
- resolver.classes[k] = v;
15297
+ for (let k2 in found) {
15298
+ let v2 = found[k2];
15299
+ resolver.classes[k2] = v2;
15199
15300
  }
15200
15301
  }
15201
15302
  if (components && path)
@@ -15242,12 +15343,12 @@ ${indented}`);
15242
15343
  let inst;
15243
15344
  cacheComponent();
15244
15345
  for (let _i = layoutInstances.length - 1;_i >= 0; _i--) {
15245
- inst = layoutInstances[_i];
15246
- if (inst.beforeUnmount)
15247
- inst.beforeUnmount();
15248
- if (inst.unmounted)
15249
- inst.unmounted();
15250
- inst._target?.remove();
15346
+ let inst2 = layoutInstances[_i];
15347
+ if (inst2.beforeUnmount)
15348
+ inst2.beforeUnmount();
15349
+ if (inst2.unmounted)
15350
+ inst2.unmounted();
15351
+ inst2._target?.remove();
15251
15352
  }
15252
15353
  layoutInstances = [];
15253
15354
  return mountPoint = container;
@@ -15304,11 +15405,11 @@ ${indented}`);
15304
15405
  if (layoutsChanged && layoutFiles.length > 0) {
15305
15406
  container.innerHTML = "";
15306
15407
  mp = container;
15307
- for (layoutFile of layoutFiles) {
15308
- layoutSource = components.read(layoutFile);
15408
+ for (let layoutFile2 of layoutFiles) {
15409
+ layoutSource = components.read(layoutFile2);
15309
15410
  if (!layoutSource)
15310
15411
  continue;
15311
- layoutMod = await compileAndImport(layoutSource, compile2, components, layoutFile, resolver);
15412
+ layoutMod = await compileAndImport(layoutSource, compile2, components, layoutFile2, resolver);
15312
15413
  if (gen2 !== generation) {
15313
15414
  router.navigating = false;
15314
15415
  return;
@@ -15320,7 +15421,7 @@ ${indented}`);
15320
15421
  if (inst.beforeMount)
15321
15422
  inst.beforeMount();
15322
15423
  wrapper = document.createElement("div");
15323
- wrapper.setAttribute("data-layout", layoutFile);
15424
+ wrapper.setAttribute("data-layout", layoutFile2);
15324
15425
  mp.appendChild(wrapper);
15325
15426
  inst.mount(wrapper);
15326
15427
  layoutInstances.push(inst);
@@ -15370,10 +15471,10 @@ ${indented}`);
15370
15471
  onError({ status: 500, message: err.message, error: err });
15371
15472
  handled = false;
15372
15473
  for (let _i = layoutInstances.length - 1;_i >= 0; _i--) {
15373
- inst = layoutInstances[_i];
15374
- if (inst.onError) {
15474
+ let inst2 = layoutInstances[_i];
15475
+ if (inst2.onError) {
15375
15476
  try {
15376
- inst.onError(err);
15477
+ inst2.onError(err);
15377
15478
  handled = true;
15378
15479
  break;
15379
15480
  } catch (boundaryErr) {
@@ -15432,11 +15533,13 @@ ${indented}`);
15432
15533
  });
15433
15534
  es.addEventListener("css", function() {
15434
15535
  let link;
15435
- for (link of document.querySelectorAll('link[rel="stylesheet"]')) {
15436
- url = new URL(link.href);
15536
+ const _result = [];
15537
+ for (let link2 of document.querySelectorAll('link[rel="stylesheet"]')) {
15538
+ url = new URL(link2.href);
15437
15539
  url.searchParams.set("_t", Date.now());
15438
- link.href = url.toString();
15540
+ link2.href = url.toString();
15439
15541
  }
15542
+ return _result;
15440
15543
  });
15441
15544
  return es.onerror = function() {
15442
15545
  es.close();