@kidlat-dakila/flightplan 0.1.8 → 0.1.9

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 (86) hide show
  1. package/backend/main.js +118 -980
  2. package/frontend/assets/_branchId-7x6qWn3I.js +1 -0
  3. package/frontend/assets/_branchId-OMHvVhfT.js +1 -0
  4. package/frontend/assets/_id-1eTNGJK9.js +1 -0
  5. package/frontend/assets/_id-CHxZrl-p.js +1 -0
  6. package/frontend/assets/agents-C9xHqVQD.js +1 -0
  7. package/frontend/assets/agents-KKXkUQ27.js +1 -0
  8. package/frontend/assets/create-B3JUVzoL.js +1 -0
  9. package/frontend/assets/create-CriuRRQV.js +1 -0
  10. package/frontend/assets/create-CsL8aMCo.js +1 -0
  11. package/frontend/assets/create-DhWyrgF0.js +1 -0
  12. package/frontend/assets/download-B00Se_e0.js +1 -0
  13. package/frontend/assets/forges-BMb9Pcn1.js +1 -0
  14. package/frontend/assets/forges-BOVWBO1B.js +1 -0
  15. package/frontend/assets/index-4USZJYGF.js +1 -0
  16. package/frontend/assets/index-B4xFHIrG.js +1 -0
  17. package/frontend/assets/index-BA8Qwprc.js +6 -0
  18. package/frontend/assets/index-BUcr0tJt.js +1 -0
  19. package/frontend/assets/index-Ba3RqmDE.js +1 -0
  20. package/frontend/assets/index-CFZ7PaJE.js +1 -0
  21. package/frontend/assets/index-COS3U9jZ.js +1 -0
  22. package/frontend/assets/index-COdzqD_M.js +1 -0
  23. package/frontend/assets/index-CZ3Rr8-h.js +1 -0
  24. package/frontend/assets/index-CikPFj0e.js +1 -0
  25. package/frontend/assets/index-Cl1Gcfks.js +1 -0
  26. package/frontend/assets/index-CmrDaRXW.js +1 -0
  27. package/frontend/assets/index-CrCss1qG.js +1 -0
  28. package/frontend/assets/index-D8-ze-TP.js +1 -0
  29. package/frontend/assets/index-DB42uFFk.js +1 -0
  30. package/frontend/assets/index-DGsH5lbQ.js +170 -0
  31. package/frontend/assets/index-DQyWuir1.js +1 -0
  32. package/frontend/assets/index-DRndyOxR.js +463 -0
  33. package/frontend/assets/index-DaFaImds.js +1 -0
  34. package/frontend/assets/index-DbJECumi.js +1 -0
  35. package/frontend/assets/index-DpY8OPAr.js +1 -0
  36. package/frontend/assets/index-DvuJKeYS.js +1 -0
  37. package/frontend/assets/index-paF1osGm.js +1 -0
  38. package/frontend/assets/repositories-AJnxH9f7.js +1 -0
  39. package/frontend/assets/repositories-Dy8KRYwV.js +1 -0
  40. package/frontend/assets/review-B9u6XA77.js +1 -0
  41. package/frontend/assets/review-M5J-BQx7.js +1 -0
  42. package/frontend/assets/route-BLz_XVsx.js +1 -0
  43. package/frontend/index.html +1 -1
  44. package/package.json +1 -1
  45. package/published-review/app.js +106 -98
  46. package/frontend/assets/_branchId-Caxyy__g.js +0 -1
  47. package/frontend/assets/_branchId-IJ4VEzEl.js +0 -1
  48. package/frontend/assets/_id-3L9ONe4W.js +0 -1
  49. package/frontend/assets/_id-CvORsoNj.js +0 -1
  50. package/frontend/assets/agents-DnjhKMUc.js +0 -1
  51. package/frontend/assets/agents-bla75JmI.js +0 -1
  52. package/frontend/assets/create-B82q7ZMu.js +0 -1
  53. package/frontend/assets/create-C9yw-thL.js +0 -1
  54. package/frontend/assets/create-CEpA1s8S.js +0 -1
  55. package/frontend/assets/create-D0h6PRxn.js +0 -1
  56. package/frontend/assets/download-CwWMZwNG.js +0 -1
  57. package/frontend/assets/forges-BH3uXIQL.js +0 -1
  58. package/frontend/assets/forges-uSh1-w20.js +0 -1
  59. package/frontend/assets/index--nj01XKS.js +0 -1
  60. package/frontend/assets/index-0VAWT0gs.js +0 -1
  61. package/frontend/assets/index-B0zuYONu.js +0 -1
  62. package/frontend/assets/index-BQaZ5gZR.js +0 -1
  63. package/frontend/assets/index-BZ6iL63Z.js +0 -1
  64. package/frontend/assets/index-Bar8NyIm.js +0 -1
  65. package/frontend/assets/index-BlTfCkr5.js +0 -1
  66. package/frontend/assets/index-BvuPClj3.js +0 -1
  67. package/frontend/assets/index-C9xsdcXo.js +0 -1
  68. package/frontend/assets/index-CJDNq1TA.js +0 -1
  69. package/frontend/assets/index-CJslcuJ0.js +0 -1
  70. package/frontend/assets/index-CXyB0ld0.js +0 -1
  71. package/frontend/assets/index-CcORd1N6.js +0 -1
  72. package/frontend/assets/index-CrAQ5_e4.js +0 -1
  73. package/frontend/assets/index-DG0FDX8u.js +0 -1
  74. package/frontend/assets/index-DKnoo-kT.js +0 -455
  75. package/frontend/assets/index-DKzDkR6v.js +0 -1
  76. package/frontend/assets/index-DfKNJbUM.js +0 -170
  77. package/frontend/assets/index-DlUHisPA.js +0 -1
  78. package/frontend/assets/index-Dv5cF6qF.js +0 -1
  79. package/frontend/assets/index-JPWJ3IiN.js +0 -1
  80. package/frontend/assets/index-V1avMli5.js +0 -6
  81. package/frontend/assets/index-iRAoFOv3.js +0 -1
  82. package/frontend/assets/repositories-DqGU7W63.js +0 -1
  83. package/frontend/assets/repositories-DuObN8PJ.js +0 -1
  84. package/frontend/assets/review-BbbMUFsk.js +0 -1
  85. package/frontend/assets/review-C3k0h5Vl.js +0 -1
  86. package/frontend/assets/route-D8s8AylJ.js +0 -1
package/backend/main.js CHANGED
@@ -33185,946 +33185,6 @@ var init_solarized_light = __esm({
33185
33185
  }
33186
33186
  });
33187
33187
 
33188
- // node_modules/.pnpm/qlobber@8.0.1/node_modules/qlobber/lib/wrap_native.js
33189
- var require_wrap_native = __commonJS({
33190
- "node_modules/.pnpm/qlobber@8.0.1/node_modules/qlobber/lib/wrap_native.js"(exports2, module2) {
33191
- "use strict";
33192
- var util2 = require("util");
33193
- module2.exports = function(QlobberNative, Qlobber) {
33194
- class WrappedQlobberNative extends QlobberNative {
33195
- constructor(options) {
33196
- super(options);
33197
- this.addP = util2.promisify(this.add_async);
33198
- this.removeP = util2.promisify(this.remove_async);
33199
- this.matchP = util2.promisify(this.match_async);
33200
- this.testP = util2.promisify(this.test_async);
33201
- this.clearP = util2.promisify(this.clear_async);
33202
- this._get_visitorP = util2.promisify(this.get_visitor_async);
33203
- this._visit_nextP = util2.promisify(this.visit_next_async);
33204
- this._get_restorerP = util2.promisify(this.get_restorer_async);
33205
- this._restore_nextP = util2.promisify(this.restore_next_async);
33206
- this._match_iterP = util2.promisify(this.match_iter_async);
33207
- this._match_nextP = util2.promisify(this.match_next_async);
33208
- }
33209
- *visit() {
33210
- const visitor = this.get_visitor();
33211
- while (true) {
33212
- const v3 = this.visit_next(visitor);
33213
- if (v3 === void 0) {
33214
- break;
33215
- }
33216
- yield v3;
33217
- }
33218
- }
33219
- async *visitP() {
33220
- const visitor = await this._get_visitorP();
33221
- while (true) {
33222
- const v3 = await this._visit_nextP(visitor);
33223
- if (v3 === void 0) {
33224
- break;
33225
- }
33226
- yield v3;
33227
- }
33228
- }
33229
- *match_iter(topic, ctx) {
33230
- const iterator = super.match_iter(topic, ctx);
33231
- while (true) {
33232
- const v3 = this.match_next(iterator);
33233
- if (v3 === void 0) {
33234
- break;
33235
- }
33236
- yield v3.value;
33237
- }
33238
- }
33239
- async *match_iterP(topic, ctx) {
33240
- const iterator = await this._match_iterP(topic, ctx);
33241
- while (true) {
33242
- const v3 = await this._match_nextP(iterator);
33243
- if (v3 === void 0) {
33244
- break;
33245
- }
33246
- yield v3.value;
33247
- }
33248
- }
33249
- get_trie() {
33250
- const qlobber = new Qlobber(this.options);
33251
- const restorer = qlobber.get_restorer();
33252
- for (let v3 of this.visit()) {
33253
- restorer(v3);
33254
- }
33255
- return qlobber.get_trie();
33256
- }
33257
- get_restorer(options) {
33258
- const restorer = super.get_restorer(options);
33259
- return (obj) => {
33260
- super.restore_next(restorer, obj);
33261
- };
33262
- }
33263
- async get_restorerP(options) {
33264
- const restorer = await this._get_restorerP(options);
33265
- return async (obj) => {
33266
- await this._restore_nextP(restorer, obj);
33267
- };
33268
- }
33269
- }
33270
- WrappedQlobberNative.is_native = true;
33271
- WrappedQlobberNative.nonNative = Qlobber;
33272
- return WrappedQlobberNative;
33273
- };
33274
- }
33275
- });
33276
-
33277
- // node_modules/.pnpm/qlobber@8.0.1/node_modules/qlobber/lib/qlobber.js
33278
- var require_qlobber = __commonJS({
33279
- "node_modules/.pnpm/qlobber@8.0.1/node_modules/qlobber/lib/qlobber.js"(exports2) {
33280
- "use strict";
33281
- var util2 = require("util");
33282
- function Qlobber(options) {
33283
- options = options || {};
33284
- this._separator = options.separator || ".";
33285
- this._wildcard_one = options.wildcard_one || "*";
33286
- this._wildcard_some = options.wildcard_some || "#";
33287
- this._max_words = options.max_words || 100;
33288
- this._max_wildcard_somes = options.max_wildcard_somes || 3;
33289
- this._match_empty_levels = options.match_empty_levels;
33290
- this._trie = /* @__PURE__ */ new Map();
33291
- if (options.cache_adds instanceof Map) {
33292
- this._shortcuts = options.cache_adds;
33293
- } else if (options.cache_adds) {
33294
- this._shortcuts = /* @__PURE__ */ new Map();
33295
- }
33296
- if (options.cache_splits > 0) {
33297
- this._cache_splits = options.cache_splits;
33298
- this._split_cache = /* @__PURE__ */ new Map();
33299
- }
33300
- }
33301
- Qlobber.prototype._initial_value = function(val) {
33302
- return [val];
33303
- };
33304
- Qlobber.prototype._add_value = function(vals, val) {
33305
- vals[vals.length] = val;
33306
- };
33307
- Qlobber.prototype._add_values = function(dest, origin) {
33308
- var i155, destLength = dest.length, originLength = origin.length;
33309
- for (i155 = 0; i155 < originLength; i155 += 1) {
33310
- dest[destLength + i155] = origin[i155];
33311
- }
33312
- };
33313
- Qlobber.prototype._iter_values = function(origin, ctx) {
33314
- return origin[Symbol.iterator](ctx);
33315
- };
33316
- Qlobber.prototype._remove_value = function(vals, val) {
33317
- if (val === void 0) {
33318
- return true;
33319
- }
33320
- var index = vals.lastIndexOf(val);
33321
- if (index >= 0) {
33322
- vals.splice(index, 1);
33323
- }
33324
- return vals.length === 0;
33325
- };
33326
- Qlobber.prototype._add = function(val, i155, words, sub_trie) {
33327
- var st2, word;
33328
- if (i155 === words.length) {
33329
- st2 = sub_trie.get(this._separator);
33330
- if (st2) {
33331
- this._add_value(st2, val);
33332
- } else {
33333
- st2 = this._initial_value(val);
33334
- sub_trie.set(this._separator, st2);
33335
- }
33336
- return st2;
33337
- }
33338
- word = words[i155];
33339
- st2 = sub_trie.get(word);
33340
- if (!st2) {
33341
- st2 = /* @__PURE__ */ new Map();
33342
- sub_trie.set(word, st2);
33343
- }
33344
- return this._add(val, i155 + 1, words, st2);
33345
- };
33346
- Qlobber.prototype._remove = function(val, i155, words, sub_trie) {
33347
- var st2, word, r162;
33348
- if (i155 === words.length) {
33349
- st2 = sub_trie.get(this._separator);
33350
- if (st2 && this._remove_value(st2, val)) {
33351
- sub_trie.delete(this._separator);
33352
- return true;
33353
- }
33354
- return false;
33355
- }
33356
- word = words[i155];
33357
- st2 = sub_trie.get(word);
33358
- if (!st2) {
33359
- return false;
33360
- }
33361
- r162 = this._remove(val, i155 + 1, words, st2);
33362
- if (st2.size === 0) {
33363
- sub_trie.delete(word);
33364
- }
33365
- return r162;
33366
- };
33367
- Qlobber.prototype._match_some = function(v3, i155, words, st2, ctx) {
33368
- var j3, w3;
33369
- for (w3 of st2.keys()) {
33370
- if (w3 !== this._separator) {
33371
- for (j3 = i155; j3 < words.length; j3 += 1) {
33372
- v3 = this._match(v3, j3, words, st2, ctx);
33373
- }
33374
- break;
33375
- }
33376
- }
33377
- return v3;
33378
- };
33379
- Qlobber.prototype._match = function(v3, i155, words, sub_trie, ctx) {
33380
- var word, st2;
33381
- st2 = sub_trie.get(this._wildcard_some);
33382
- if (st2) {
33383
- v3 = this._match_some(v3, i155, words, st2, ctx);
33384
- v3 = this._match(v3, words.length, words, st2, ctx);
33385
- }
33386
- if (i155 === words.length) {
33387
- st2 = sub_trie.get(this._separator);
33388
- if (st2) {
33389
- if (v3.dest) {
33390
- this._add_values(v3.dest, v3.source, ctx);
33391
- this._add_values(v3.dest, st2, ctx);
33392
- v3 = v3.dest;
33393
- } else if (v3.source) {
33394
- v3.dest = v3.source;
33395
- v3.source = st2;
33396
- } else {
33397
- this._add_values(v3, st2, ctx);
33398
- }
33399
- }
33400
- } else {
33401
- word = words[i155];
33402
- if (word !== this._wildcard_one && word !== this._wildcard_some) {
33403
- st2 = sub_trie.get(word);
33404
- if (st2) {
33405
- v3 = this._match(v3, i155 + 1, words, st2, ctx);
33406
- }
33407
- }
33408
- if (word || this._match_empty_levels) {
33409
- st2 = sub_trie.get(this._wildcard_one);
33410
- if (st2) {
33411
- v3 = this._match(v3, i155 + 1, words, st2, ctx);
33412
- }
33413
- }
33414
- }
33415
- return v3;
33416
- };
33417
- Qlobber.prototype._match2 = function(v3, topic, ctx) {
33418
- var vals = this._match(
33419
- {
33420
- source: v3
33421
- },
33422
- 0,
33423
- this._split(topic, false),
33424
- this._trie,
33425
- ctx
33426
- );
33427
- return vals.source || vals;
33428
- };
33429
- Qlobber.prototype._test_some = function(v3, i155, words, st2) {
33430
- var j3, w3;
33431
- for (w3 of st2.keys()) {
33432
- if (w3 !== this._separator) {
33433
- for (j3 = i155; j3 < words.length; j3 += 1) {
33434
- if (this._test(v3, j3, words, st2)) {
33435
- return true;
33436
- }
33437
- }
33438
- break;
33439
- }
33440
- }
33441
- return false;
33442
- };
33443
- Qlobber.prototype._test = function(v3, i155, words, sub_trie) {
33444
- var word, st2;
33445
- st2 = sub_trie.get(this._wildcard_some);
33446
- if (st2) {
33447
- if (this._test_some(v3, i155, words, st2) || // and we'll end up matching the rest of the words:
33448
- this._test(v3, words.length, words, st2)) {
33449
- return true;
33450
- }
33451
- }
33452
- if (i155 === words.length) {
33453
- st2 = sub_trie.get(this._separator);
33454
- if (st2 && this.test_values(st2, v3)) {
33455
- return true;
33456
- }
33457
- } else {
33458
- word = words[i155];
33459
- if (word !== this._wildcard_one && word !== this._wildcard_some) {
33460
- st2 = sub_trie.get(word);
33461
- if (st2 && this._test(v3, i155 + 1, words, st2)) {
33462
- return true;
33463
- }
33464
- }
33465
- if (word || this._match_empty_levels) {
33466
- st2 = sub_trie.get(this._wildcard_one);
33467
- if (st2 && this._test(v3, i155 + 1, words, st2)) {
33468
- return true;
33469
- }
33470
- }
33471
- }
33472
- return false;
33473
- };
33474
- Qlobber.prototype._match_some_iter = function* (i155, words, st2, ctx) {
33475
- var j3, w3;
33476
- for (w3 of st2.keys()) {
33477
- if (w3 !== this._separator) {
33478
- for (j3 = i155; j3 < words.length; j3 += 1) {
33479
- yield* this._match_iter(j3, words, st2, ctx);
33480
- }
33481
- break;
33482
- }
33483
- }
33484
- };
33485
- Qlobber.prototype._match_iter = function* (i155, words, sub_trie, ctx) {
33486
- var word, st2;
33487
- st2 = sub_trie.get(this._wildcard_some);
33488
- if (st2) {
33489
- yield* this._match_some_iter(i155, words, st2, ctx);
33490
- yield* this._match_iter(words.length, words, st2, ctx);
33491
- }
33492
- if (i155 === words.length) {
33493
- st2 = sub_trie.get(this._separator);
33494
- if (st2) {
33495
- yield* this._iter_values(st2, ctx);
33496
- }
33497
- } else {
33498
- word = words[i155];
33499
- if (word !== this._wildcard_one && word !== this._wildcard_some) {
33500
- st2 = sub_trie.get(word);
33501
- if (st2) {
33502
- yield* this._match_iter(i155 + 1, words, st2, ctx);
33503
- }
33504
- }
33505
- if (word || this._match_empty_levels) {
33506
- st2 = sub_trie.get(this._wildcard_one);
33507
- if (st2) {
33508
- yield* this._match_iter(i155 + 1, words, st2, ctx);
33509
- }
33510
- }
33511
- }
33512
- };
33513
- Qlobber.prototype._split_words = function(topic) {
33514
- const r162 = topic.split(this._separator);
33515
- if (r162.length > this._max_words) {
33516
- throw new Error("too many words");
33517
- }
33518
- return r162;
33519
- };
33520
- Qlobber.prototype._split = function(topic, adding) {
33521
- let r162;
33522
- if (this._split_cache) {
33523
- r162 = this._split_cache.get(topic);
33524
- if (r162 === void 0) {
33525
- r162 = this._split_words(topic);
33526
- this._split_cache.set(topic, r162);
33527
- if (this._split_cache.size > this._cache_splits) {
33528
- for (let t238 of this._split_cache.keys()) {
33529
- this._split_cache.delete(t238);
33530
- break;
33531
- }
33532
- }
33533
- }
33534
- } else {
33535
- r162 = this._split_words(topic);
33536
- }
33537
- if (adding && r162.reduce((n234, w3) => n234 + (w3 === this._wildcard_some), 0) > this._max_wildcard_somes) {
33538
- throw new Error("too many wildcard somes");
33539
- }
33540
- return r162;
33541
- };
33542
- Qlobber.prototype.add = function(topic, val) {
33543
- var shortcut = this._shortcuts && this._shortcuts.get(topic);
33544
- if (shortcut) {
33545
- this._add_value(shortcut, val);
33546
- } else {
33547
- shortcut = this._add(val, 0, this._split(topic, true), this._trie);
33548
- if (this._shortcuts) {
33549
- this._shortcuts.set(topic, shortcut);
33550
- }
33551
- }
33552
- return this;
33553
- };
33554
- Qlobber.prototype.remove = function(topic, val) {
33555
- if (this._remove(val, 0, this._split(topic, false), this._trie) && this._shortcuts) {
33556
- this._shortcuts.delete(topic);
33557
- }
33558
- return this;
33559
- };
33560
- Qlobber.prototype.match = function(topic, ctx) {
33561
- return this._match2([], topic, ctx);
33562
- };
33563
- Qlobber.prototype.match_iter = function(topic, ctx) {
33564
- return this._match_iter(0, this._split(topic, false), this._trie, ctx);
33565
- };
33566
- Qlobber.prototype.test = function(topic, val) {
33567
- return this._test(val, 0, this._split(topic, false), this._trie);
33568
- };
33569
- Qlobber.prototype.test_values = function(vals, val) {
33570
- return vals.indexOf(val) >= 0;
33571
- };
33572
- Qlobber.prototype.clear = function() {
33573
- this._trie.clear();
33574
- if (this._shortcuts) {
33575
- this._shortcuts.clear();
33576
- }
33577
- if (this._split_cache) {
33578
- this._split_cache.clear();
33579
- }
33580
- return this;
33581
- };
33582
- Qlobber.prototype.get_trie = function() {
33583
- return this._trie;
33584
- };
33585
- Qlobber.prototype.visit = function* () {
33586
- let iterators = [], iterator = this._trie.entries(), i155 = 0;
33587
- while (true) {
33588
- if (i155 === 0) {
33589
- yield { type: "start_entries" };
33590
- }
33591
- let next = iterator.next();
33592
- if (next.done) {
33593
- yield { type: "end_entries" };
33594
- let prev = iterators.pop();
33595
- if (prev === void 0) {
33596
- return;
33597
- }
33598
- [iterator, i155] = prev;
33599
- continue;
33600
- }
33601
- let [key, value] = next.value;
33602
- yield { type: "entry", key };
33603
- ++i155;
33604
- if (key === this._separator) {
33605
- yield { type: "start_values" };
33606
- if (value[Symbol.iterator]) {
33607
- for (let v3 of value) {
33608
- yield { type: "value", value: v3 };
33609
- }
33610
- } else {
33611
- yield { type: "value", value };
33612
- }
33613
- yield { type: "end_values" };
33614
- continue;
33615
- }
33616
- iterators.push([iterator, i155]);
33617
- iterator = value.entries();
33618
- i155 = 0;
33619
- }
33620
- };
33621
- Qlobber.prototype.get_restorer = function(options) {
33622
- options = options || {};
33623
- let sts = [], entry = this._trie, path11 = "";
33624
- return (obj) => {
33625
- switch (obj.type) {
33626
- case "entry":
33627
- entry = entry || /* @__PURE__ */ new Map();
33628
- sts.push([entry, obj.key, path11]);
33629
- entry = entry.get(obj.key);
33630
- if (options.cache_adds) {
33631
- if (path11) {
33632
- path11 += this._separator;
33633
- }
33634
- path11 += obj.key;
33635
- }
33636
- break;
33637
- case "value":
33638
- if (entry) {
33639
- this._add_value(entry, obj.value);
33640
- } else {
33641
- entry = this._initial_value(obj.value);
33642
- }
33643
- break;
33644
- case "end_entries":
33645
- if (entry && entry.size === 0) {
33646
- entry = void 0;
33647
- }
33648
- /* falls through */
33649
- case "end_values":
33650
- let prev = sts.pop();
33651
- if (prev === void 0) {
33652
- entry = void 0;
33653
- path11 = "";
33654
- } else {
33655
- let [prev_entry, key, prev_path] = prev;
33656
- if (entry) {
33657
- if (options.cache_adds && this._shortcuts && obj.type === "end_values") {
33658
- this._shortcuts.set(prev_path, entry);
33659
- }
33660
- prev_entry.set(key, entry);
33661
- }
33662
- entry = prev_entry;
33663
- path11 = prev_path;
33664
- }
33665
- break;
33666
- }
33667
- };
33668
- };
33669
- function QlobberDedup(options) {
33670
- Qlobber.call(this, options);
33671
- }
33672
- util2.inherits(QlobberDedup, Qlobber);
33673
- QlobberDedup.prototype._initial_value = function(val) {
33674
- return (/* @__PURE__ */ new Set()).add(val);
33675
- };
33676
- QlobberDedup.prototype._add_value = function(vals, val) {
33677
- vals.add(val);
33678
- };
33679
- QlobberDedup.prototype._add_values = function(dest, origin) {
33680
- origin.forEach(function(val) {
33681
- dest.add(val);
33682
- });
33683
- };
33684
- QlobberDedup.prototype._remove_value = function(vals, val) {
33685
- if (val === void 0) {
33686
- return true;
33687
- }
33688
- vals.delete(val);
33689
- return vals.size === 0;
33690
- };
33691
- QlobberDedup.prototype.test_values = function(vals, val) {
33692
- return vals.has(val);
33693
- };
33694
- QlobberDedup.prototype.match = function(topic, ctx) {
33695
- return this._match2(/* @__PURE__ */ new Set(), topic, ctx);
33696
- };
33697
- function QlobberTrue(options) {
33698
- Qlobber.call(this, options);
33699
- }
33700
- util2.inherits(QlobberTrue, Qlobber);
33701
- QlobberTrue.prototype._initial_value = function() {
33702
- return true;
33703
- };
33704
- QlobberTrue.prototype._add_value = function() {
33705
- };
33706
- QlobberTrue.prototype._remove_value = function() {
33707
- return true;
33708
- };
33709
- QlobberTrue.prototype._iter_values = function* () {
33710
- yield true;
33711
- };
33712
- QlobberTrue.prototype.test_values = function() {
33713
- return true;
33714
- };
33715
- QlobberTrue.prototype.match = function(topic, ctx) {
33716
- return this.test(topic, ctx);
33717
- };
33718
- var stream = require("stream");
33719
- function VisitorStream(qlobber) {
33720
- stream.Readable.call(this, { objectMode: true });
33721
- this._iterator = qlobber.visit();
33722
- }
33723
- util2.inherits(VisitorStream, stream.Readable);
33724
- VisitorStream.prototype._read = function() {
33725
- while (true) {
33726
- let { done, value } = this._iterator.next();
33727
- if (done) {
33728
- this.push(null);
33729
- break;
33730
- }
33731
- if (!this.push(value)) {
33732
- break;
33733
- }
33734
- }
33735
- };
33736
- function RestorerStream(qlobber) {
33737
- stream.Writable.call(this, { objectMode: true });
33738
- this._restorer = qlobber.get_restorer();
33739
- }
33740
- util2.inherits(RestorerStream, stream.Writable);
33741
- RestorerStream.prototype._write = function(value, _4, cb) {
33742
- this._restorer(value);
33743
- cb();
33744
- };
33745
- var native_module = null;
33746
- function set_native(qlobber_native) {
33747
- if (qlobber_native !== native_module) {
33748
- const wrap_native = require_wrap_native();
33749
- Qlobber.nativeString = wrap_native(qlobber_native.QlobberString, Qlobber);
33750
- Qlobber.nativeNumber = wrap_native(qlobber_native.QlobberNumber, Qlobber);
33751
- QlobberDedup.nativeString = wrap_native(qlobber_native.QlobberDedupString, QlobberDedup);
33752
- QlobberDedup.nativeNumber = wrap_native(qlobber_native.QlobberDedupNumber, QlobberDedup);
33753
- QlobberTrue.native = wrap_native(qlobber_native.QlobberTrue, QlobberTrue);
33754
- native_module = qlobber_native;
33755
- }
33756
- return exports2;
33757
- }
33758
- exports2.Qlobber = Qlobber;
33759
- exports2.QlobberDedup = QlobberDedup;
33760
- exports2.QlobberTrue = QlobberTrue;
33761
- exports2.VisitorStream = VisitorStream;
33762
- exports2.RestorerStream = RestorerStream;
33763
- exports2.set_native = set_native;
33764
- }
33765
- });
33766
-
33767
- // node_modules/.pnpm/qlobber@8.0.1/node_modules/qlobber/index.js
33768
- var require_qlobber2 = __commonJS({
33769
- "node_modules/.pnpm/qlobber@8.0.1/node_modules/qlobber/index.js"(exports2, module2) {
33770
- "use strict";
33771
- module2.exports = require_qlobber();
33772
- }
33773
- });
33774
-
33775
- // node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/immutable.js
33776
- var require_immutable = __commonJS({
33777
- "node_modules/.pnpm/xtend@4.0.2/node_modules/xtend/immutable.js"(exports2, module2) {
33778
- "use strict";
33779
- module2.exports = extend2;
33780
- var hasOwnProperty = Object.prototype.hasOwnProperty;
33781
- function extend2() {
33782
- var target = {};
33783
- for (var i155 = 0; i155 < arguments.length; i155++) {
33784
- var source = arguments[i155];
33785
- for (var key in source) {
33786
- if (hasOwnProperty.call(source, key)) {
33787
- target[key] = source[key];
33788
- }
33789
- }
33790
- }
33791
- return target;
33792
- }
33793
- }
33794
- });
33795
-
33796
- // node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/reusify.js
33797
- var require_reusify = __commonJS({
33798
- "node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/reusify.js"(exports2, module2) {
33799
- "use strict";
33800
- function reusify(Constructor) {
33801
- var head = new Constructor();
33802
- var tail = head;
33803
- function get() {
33804
- var current = head;
33805
- if (current.next) {
33806
- head = current.next;
33807
- } else {
33808
- head = new Constructor();
33809
- tail = head;
33810
- }
33811
- current.next = null;
33812
- return current;
33813
- }
33814
- function release(obj) {
33815
- tail.next = obj;
33816
- tail = obj;
33817
- }
33818
- return {
33819
- get,
33820
- release
33821
- };
33822
- }
33823
- module2.exports = reusify;
33824
- }
33825
- });
33826
-
33827
- // node_modules/.pnpm/fastparallel@2.4.1/node_modules/fastparallel/parallel.js
33828
- var require_parallel = __commonJS({
33829
- "node_modules/.pnpm/fastparallel@2.4.1/node_modules/fastparallel/parallel.js"(exports2, module2) {
33830
- "use strict";
33831
- var xtend = require_immutable();
33832
- var reusify = require_reusify();
33833
- var defaults = {
33834
- released: nop,
33835
- results: true
33836
- };
33837
- function fastparallel(options) {
33838
- options = xtend(defaults, options);
33839
- var released = options.released;
33840
- var queue = reusify(options.results ? ResultsHolder : NoResultsHolder);
33841
- var queueSingleCaller = reusify(SingleCaller);
33842
- var goArray = options.results ? goResultsArray : goNoResultsArray;
33843
- var goFunc = options.results ? goResultsFunc : goNoResultsFunc;
33844
- return parallel;
33845
- function parallel(that, toCall, arg, done) {
33846
- var holder = queue.get();
33847
- done = done || nop;
33848
- if (toCall.length === 0) {
33849
- done.call(that);
33850
- released(holder);
33851
- } else {
33852
- holder._callback = done;
33853
- holder._callThat = that;
33854
- holder._release = release;
33855
- if (typeof toCall === "function") {
33856
- goFunc(that, toCall, arg, holder);
33857
- } else {
33858
- goArray(that, toCall, arg, holder);
33859
- }
33860
- if (holder._count === 0) {
33861
- holder.release();
33862
- }
33863
- }
33864
- }
33865
- function release(holder) {
33866
- queue.release(holder);
33867
- released(holder);
33868
- }
33869
- function singleCallerRelease(holder) {
33870
- queueSingleCaller.release(holder);
33871
- }
33872
- function goResultsFunc(that, toCall, arg, holder) {
33873
- var singleCaller = null;
33874
- holder._count = arg.length;
33875
- holder._results = new Array(holder._count);
33876
- for (var i155 = 0; i155 < arg.length; i155++) {
33877
- singleCaller = queueSingleCaller.get();
33878
- singleCaller._release = singleCallerRelease;
33879
- singleCaller.parent = holder;
33880
- singleCaller.pos = i155;
33881
- if (that) {
33882
- toCall.call(that, arg[i155], singleCaller.release);
33883
- } else {
33884
- toCall(arg[i155], singleCaller.release);
33885
- }
33886
- }
33887
- }
33888
- function goResultsArray(that, funcs, arg, holder) {
33889
- var sc = null;
33890
- var tc = nop;
33891
- holder._count = funcs.length;
33892
- holder._results = new Array(holder._count);
33893
- for (var i155 = 0; i155 < funcs.length; i155++) {
33894
- sc = queueSingleCaller.get();
33895
- sc._release = singleCallerRelease;
33896
- sc.parent = holder;
33897
- sc.pos = i155;
33898
- tc = funcs[i155];
33899
- if (that) {
33900
- if (tc.length === 1) tc.call(that, sc.release);
33901
- else tc.call(that, arg, sc.release);
33902
- } else {
33903
- if (tc.length === 1) tc(sc.release);
33904
- else tc(arg, sc.release);
33905
- }
33906
- }
33907
- }
33908
- function goNoResultsFunc(that, toCall, arg, holder) {
33909
- holder._count = arg.length;
33910
- for (var i155 = 0; i155 < arg.length; i155++) {
33911
- if (that) {
33912
- toCall.call(that, arg[i155], holder.release);
33913
- } else {
33914
- toCall(arg[i155], holder.release);
33915
- }
33916
- }
33917
- }
33918
- function goNoResultsArray(that, funcs, arg, holder) {
33919
- var toCall = null;
33920
- holder._count = funcs.length;
33921
- for (var i155 = 0; i155 < funcs.length; i155++) {
33922
- toCall = funcs[i155];
33923
- if (that) {
33924
- if (toCall.length === 1) {
33925
- toCall.call(that, holder.release);
33926
- } else {
33927
- toCall.call(that, arg, holder.release);
33928
- }
33929
- } else {
33930
- if (toCall.length === 1) {
33931
- toCall(holder.release);
33932
- } else {
33933
- toCall(arg, holder.release);
33934
- }
33935
- }
33936
- }
33937
- }
33938
- }
33939
- function NoResultsHolder() {
33940
- this._count = -1;
33941
- this._callback = nop;
33942
- this._callThat = null;
33943
- this._release = null;
33944
- this.next = null;
33945
- var that = this;
33946
- var i155 = 0;
33947
- this.release = function() {
33948
- var cb = that._callback;
33949
- if (++i155 === that._count || that._count === 0) {
33950
- if (that._callThat) {
33951
- cb.call(that._callThat);
33952
- } else {
33953
- cb();
33954
- }
33955
- that._callback = nop;
33956
- that._callThat = null;
33957
- i155 = 0;
33958
- that._release(that);
33959
- }
33960
- };
33961
- }
33962
- function SingleCaller() {
33963
- this.pos = -1;
33964
- this._release = nop;
33965
- this.parent = null;
33966
- this.next = null;
33967
- var that = this;
33968
- this.release = function(err, result) {
33969
- that.parent.release(err, that.pos, result);
33970
- that.pos = -1;
33971
- that.parent = null;
33972
- that._release(that);
33973
- };
33974
- }
33975
- function ResultsHolder() {
33976
- this._count = -1;
33977
- this._callback = nop;
33978
- this._results = null;
33979
- this._err = null;
33980
- this._callThat = null;
33981
- this._release = nop;
33982
- this.next = null;
33983
- var that = this;
33984
- var i155 = 0;
33985
- this.release = function(err, pos, result) {
33986
- that._err = that._err || err;
33987
- if (pos >= 0) {
33988
- that._results[pos] = result;
33989
- }
33990
- var cb = that._callback;
33991
- if (++i155 === that._count || that._count === 0) {
33992
- if (that._callThat) {
33993
- cb.call(that._callThat, that._err, that._results);
33994
- } else {
33995
- cb(that._err, that._results);
33996
- }
33997
- that._callback = nop;
33998
- that._results = null;
33999
- that._err = null;
34000
- that._callThat = null;
34001
- i155 = 0;
34002
- that._release(that);
34003
- }
34004
- };
34005
- }
34006
- function nop() {
34007
- }
34008
- module2.exports = fastparallel;
34009
- }
34010
- });
34011
-
34012
- // node_modules/.pnpm/mqemitter@7.1.0/node_modules/mqemitter/mqemitter.js
34013
- var require_mqemitter = __commonJS({
34014
- "node_modules/.pnpm/mqemitter@7.1.0/node_modules/mqemitter/mqemitter.js"(exports2, module2) {
34015
- "use strict";
34016
- var { Qlobber } = require_qlobber2();
34017
- var assert2 = require("assert");
34018
- var fastparallel = require_parallel();
34019
- function MQEmitter(opts) {
34020
- if (!(this instanceof MQEmitter)) {
34021
- return new MQEmitter(opts);
34022
- }
34023
- const that = this;
34024
- opts = opts || {};
34025
- opts.matchEmptyLevels = opts.matchEmptyLevels === void 0 ? true : !!opts.matchEmptyLevels;
34026
- opts.separator = opts.separator || "/";
34027
- opts.wildcardOne = opts.wildcardOne || "+";
34028
- opts.wildcardSome = opts.wildcardSome || "#";
34029
- this._messageQueue = [];
34030
- this._messageCallbacks = [];
34031
- this._parallel = fastparallel({
34032
- results: false,
34033
- released
34034
- });
34035
- this.concurrency = opts.concurrency || 0;
34036
- this.current = 0;
34037
- this._doing = false;
34038
- this._matcher = new Qlobber({
34039
- match_empty_levels: opts.matchEmptyLevels,
34040
- separator: opts.separator,
34041
- wildcard_one: opts.wildcardOne,
34042
- wildcard_some: opts.wildcardSome
34043
- });
34044
- this.closed = false;
34045
- this._released = released;
34046
- function released() {
34047
- that.current--;
34048
- const message = that._messageQueue.shift();
34049
- const callback = that._messageCallbacks.shift();
34050
- if (message) {
34051
- that._do(message, callback);
34052
- } else {
34053
- that._doing = false;
34054
- }
34055
- }
34056
- }
34057
- Object.defineProperty(MQEmitter.prototype, "length", {
34058
- get: function() {
34059
- return this._messageQueue.length;
34060
- },
34061
- enumerable: true
34062
- });
34063
- MQEmitter.prototype.on = function on(topic, notify, done) {
34064
- assert2(topic);
34065
- assert2(notify);
34066
- this._matcher.add(topic, notify);
34067
- if (done) {
34068
- setImmediate(done);
34069
- }
34070
- return this;
34071
- };
34072
- MQEmitter.prototype.removeListener = function removeListener(topic, notify, done) {
34073
- assert2(topic);
34074
- assert2(notify);
34075
- const that = this;
34076
- setImmediate(function() {
34077
- that._matcher.remove(topic, notify);
34078
- if (done) {
34079
- done();
34080
- }
34081
- });
34082
- return this;
34083
- };
34084
- MQEmitter.prototype.removeAllListeners = function removeListener(topic, done) {
34085
- assert2(topic);
34086
- this._matcher.remove(topic);
34087
- if (done) {
34088
- setImmediate(done);
34089
- }
34090
- return this;
34091
- };
34092
- MQEmitter.prototype.emit = function emit(message, cb) {
34093
- assert2(message);
34094
- cb = cb || noop2;
34095
- if (this.closed) {
34096
- return cb(new Error("mqemitter is closed"));
34097
- }
34098
- if (this.concurrency > 0 && this.current >= this.concurrency) {
34099
- this._messageQueue.push(message);
34100
- this._messageCallbacks.push(cb);
34101
- if (!this._doing) {
34102
- process.emitWarning("MqEmitter leak detected", { detail: "For more info check: https://github.com/mcollina/mqemitter/pull/94" });
34103
- this._released();
34104
- }
34105
- } else {
34106
- this._do(message, cb);
34107
- }
34108
- return this;
34109
- };
34110
- MQEmitter.prototype.close = function close(cb) {
34111
- this.closed = true;
34112
- setImmediate(cb);
34113
- return this;
34114
- };
34115
- MQEmitter.prototype._do = function(message, callback) {
34116
- this._doing = true;
34117
- const matches = this._matcher.match(message.topic);
34118
- this.current++;
34119
- this._parallel(this, matches, message, callback);
34120
- return this;
34121
- };
34122
- function noop2() {
34123
- }
34124
- module2.exports = MQEmitter;
34125
- }
34126
- });
34127
-
34128
33188
  // node_modules/.pnpm/fastify-plugin@6.0.0/node_modules/fastify-plugin/lib/getPluginName.js
34129
33189
  var require_getPluginName = __commonJS({
34130
33190
  "node_modules/.pnpm/fastify-plugin@6.0.0/node_modules/fastify-plugin/lib/getPluginName.js"(exports2, module2) {
@@ -45311,6 +44371,37 @@ var require_sensible = __commonJS({
45311
44371
  }
45312
44372
  });
45313
44373
 
44374
+ // node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/reusify.js
44375
+ var require_reusify = __commonJS({
44376
+ "node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/reusify.js"(exports2, module2) {
44377
+ "use strict";
44378
+ function reusify(Constructor) {
44379
+ var head = new Constructor();
44380
+ var tail = head;
44381
+ function get() {
44382
+ var current = head;
44383
+ if (current.next) {
44384
+ head = current.next;
44385
+ } else {
44386
+ head = new Constructor();
44387
+ tail = head;
44388
+ }
44389
+ current.next = null;
44390
+ return current;
44391
+ }
44392
+ function release(obj) {
44393
+ tail.next = obj;
44394
+ tail = obj;
44395
+ }
44396
+ return {
44397
+ get,
44398
+ release
44399
+ };
44400
+ }
44401
+ module2.exports = reusify;
44402
+ }
44403
+ });
44404
+
45314
44405
  // node_modules/.pnpm/fastq@1.20.3/node_modules/fastq/queue.js
45315
44406
  var require_queue = __commonJS({
45316
44407
  "node_modules/.pnpm/fastq@1.20.3/node_modules/fastq/queue.js"(exports2, module2) {
@@ -126596,9 +125687,13 @@ var nanostoresLibrary = {
126596
125687
  ]
126597
125688
  };
126598
125689
 
125690
+ // packages/codegraph/src/shared/trailing-slashes.ts
125691
+ var SLASH = "/";
125692
+ var keptLengthOf = (text2) => text2.split("").reduceRight((keptLength, character, index) => keptLength === 0 && character !== SLASH ? index + 1 : keptLength, 0);
125693
+ var withoutTrailingSlashes = (text2) => text2.slice(0, keptLengthOf(text2));
125694
+
126599
125695
  // packages/codegraph/src/code-blocks/languages/typescript/libraries/nestjs-paths.ts
126600
125696
  var LEADING_SLASHES = /^\/+/;
126601
- var TRAILING_SLASHES = /\/+$/;
126602
125697
  var PATH_TOKENS = /\{|\}|\(\.\*\)|\*\w*|:\w+\??|[^{}()*:]+|./g;
126603
125698
  var REGEX_SPECIALS = /[.*+?^${}()|[\]\\/]/g;
126604
125699
  var SEGMENT = "[^/]+";
@@ -126637,7 +125732,7 @@ var isValidPattern = (pattern) => {
126637
125732
  }
126638
125733
  };
126639
125734
  var nestPathPatternOf = (path11) => {
126640
- const written = path11.replace(LEADING_SLASHES, "").replace(TRAILING_SLASHES, "");
125735
+ const written = withoutTrailingSlashes(path11.replace(LEADING_SLASHES, ""));
126641
125736
  const body = (written.match(PATH_TOKENS) ?? []).map(sourceOfToken).join("");
126642
125737
  const pattern = `^/${body}${TRAILING_SLASH}$`;
126643
125738
  return isValidPattern(pattern) ? pattern : null;
@@ -127078,6 +126173,7 @@ var MIDDLEWARE_RUNS3 = "middleware";
127078
126173
  var DEFAULT_EXPORT5 = "default";
127079
126174
  var CONFIG_EXPORT = "config";
127080
126175
  var APP_PAGE_GLOB = "{app,src/app}/**/page.{js,jsx,ts,tsx}";
126176
+ var APP_PRIVATE_FOLDERS = ["{app,src/app}/**/_*/**"];
127081
126177
  var PAGES_GLOB = "{pages,src/pages}/**/[!_]*.{js,jsx,ts,tsx}";
127082
126178
  var PAGE_GLOBS = /* @__PURE__ */ new Set([APP_PAGE_GLOB, PAGES_GLOB]);
127083
126179
  var isActionDirective = (match2) => match2.site === DIRECTIVE_SITE && match2.runs === ROUTE_RUNS3;
@@ -127137,20 +126233,23 @@ var nextLibrary = {
127137
126233
  readCards: readServerActionCards,
127138
126234
  readExportCards: readNextExportCards,
127139
126235
  patterns: [
127140
- { kind: "file", glob: APP_PAGE_GLOB, exports: [{ name: DEFAULT_EXPORT5, runs: PAGE_RUNS }] },
126236
+ { kind: "file", glob: APP_PAGE_GLOB, excludes: APP_PRIVATE_FOLDERS, exports: [{ name: DEFAULT_EXPORT5, runs: PAGE_RUNS }] },
127141
126237
  {
127142
126238
  kind: "file",
127143
126239
  glob: "{app,src/app}/**/{layout,template,loading,not-found}.{js,jsx,ts,tsx}",
126240
+ excludes: APP_PRIVATE_FOLDERS,
127144
126241
  exports: [{ name: "default", runs: "page" }]
127145
126242
  },
127146
126243
  {
127147
126244
  kind: "file",
127148
126245
  glob: "{app,src/app}/**/{error,global-error}.{js,jsx,ts,tsx}",
126246
+ excludes: APP_PRIVATE_FOLDERS,
127149
126247
  exports: [{ name: "default", runs: "page", classifies: "error-handling" }]
127150
126248
  },
127151
126249
  {
127152
126250
  kind: "file",
127153
126251
  glob: "{app,src/app}/**/route.{js,ts}",
126252
+ excludes: APP_PRIVATE_FOLDERS,
127154
126253
  exports: [
127155
126254
  { name: "GET", runs: "route", method: "GET" },
127156
126255
  { name: "POST", runs: "route", method: "POST" },
@@ -128470,6 +127569,7 @@ var translate = (glob, closers = [], translated = "") => {
128470
127569
  };
128471
127570
  var expressions = new Memo();
128472
127571
  var fitsGlob = (glob, filePath) => expressions.remember(glob, () => new RegExp(`^${translate(glob)}$`)).test(filePath);
127572
+ var fitsFilePattern = ({ glob, excludes = [] }, filePath) => fitsGlob(glob, filePath) && !excludes.some((excluded) => fitsGlob(excluded, filePath));
128473
127573
 
128474
127574
  // packages/configurations/src/code-graph/code-blocks.ts
128475
127575
  var CODE_BLOCK_TYPES = [
@@ -130230,6 +129330,13 @@ var WILDCARD_PATTERN = /[*?[]/;
130230
129330
  var EXTENSION_MARK = ".";
130231
129331
  var INDEX_NAME = "index";
130232
129332
  var ROUTE_GROUP_PATTERN = /^\(.*\)$/;
129333
+ var SLOT_MARK = "@";
129334
+ var INTERCEPTION_PATTERN = /^(?<marks>(?:\(\.\.\))+|\(\.\.\.\)|\(\.\))(?<name>.+)$/;
129335
+ var SAME_LEVEL_MARK = "(.)";
129336
+ var ROOT_MARK = "(...)";
129337
+ var LEVEL_UP_MARK = "(..)";
129338
+ var ESCAPED_UNDERSCORE_PATTERN = /%5F/gi;
129339
+ var UNDERSCORE = "_";
130233
129340
  var PATHED_RUNS = /* @__PURE__ */ new Set(["page", "route"]);
130234
129341
  var WORD_BREAK_PATTERN3 = /[-.]/g;
130235
129342
  var packageNameOf = (specifier) => {
@@ -130254,6 +129361,18 @@ var rootsOf = (glob) => {
130254
129361
  };
130255
129362
  var nameWithoutExtension = (fileName) => fileName.includes(EXTENSION_MARK) ? fileName.slice(0, fileName.indexOf(EXTENSION_MARK)) : fileName;
130256
129363
  var namesItsFile = (glob) => !WILDCARD_PATTERN.test(nameWithoutExtension(glob.slice(glob.lastIndexOf(FOLDER_SEPARATOR) + 1)));
129364
+ var urlSegmentOf = (folder) => folder.replace(ESCAPED_UNDERSCORE_PATTERN, UNDERSCORE);
129365
+ var segmentsInterceptedFrom = (segments, marks) => {
129366
+ if (marks === SAME_LEVEL_MARK) return segments;
129367
+ if (marks === ROOT_MARK) return [];
129368
+ const levelsUp = marks.length / LEVEL_UP_MARK.length;
129369
+ return segments.slice(0, Math.max(0, segments.length - levelsUp));
129370
+ };
129371
+ var withFolder = (segments, folder) => {
129372
+ if (ROUTE_GROUP_PATTERN.test(folder) || folder.startsWith(SLOT_MARK)) return segments;
129373
+ const interception = INTERCEPTION_PATTERN.exec(folder)?.groups;
129374
+ return interception === void 0 ? [...segments, urlSegmentOf(folder)] : [...segmentsInterceptedFrom(segments, interception.marks), urlSegmentOf(interception.name)];
129375
+ };
130257
129376
  var routePathOf2 = (glob, packagePath) => {
130258
129377
  if (!glob.includes(ANY_FOLDERS2)) return null;
130259
129378
  const root = rootsOf(glob).find((candidate) => packagePath.startsWith(`${candidate}${FOLDER_SEPARATOR}`));
@@ -130261,7 +129380,7 @@ var routePathOf2 = (glob, packagePath) => {
130261
129380
  const parts = packagePath.slice(root.length + FOLDER_SEPARATOR.length).split(FOLDER_SEPARATOR);
130262
129381
  const fileName = nameWithoutExtension(parts[parts.length - 1]);
130263
129382
  const named3 = namesItsFile(glob) || fileName === INDEX_NAME ? [] : [fileName];
130264
- const segments = [...parts.slice(0, -1), ...named3].filter((segment) => !ROUTE_GROUP_PATTERN.test(segment));
129383
+ const segments = [...parts.slice(0, -1), ...named3].reduce(withFolder, []);
130265
129384
  return `${FOLDER_SEPARATOR}${segments.join(FOLDER_SEPARATOR)}`;
130266
129385
  };
130267
129386
  var namingsOfPattern = (library, pattern, { packagePath }) => pattern.exports.map(({ name, runs, method, classifies }) => ({
@@ -130280,7 +129399,7 @@ var namingsOfPattern = (library, pattern, { packagePath }) => pattern.exports.ma
130280
129399
  }));
130281
129400
  var listExportNamings = (manifest, language, libraries) => {
130282
129401
  if (manifest === void 0) return [];
130283
- return libraries.filter((library) => library.language === language && isUsed(library, manifest)).flatMap((library) => library.patterns.filter(isFilePattern).filter((pattern) => fitsGlob(pattern.glob, manifest.packagePath)).flatMap((pattern) => namingsOfPattern(library, pattern, manifest)));
129402
+ return libraries.filter((library) => library.language === language && isUsed(library, manifest)).flatMap((library) => library.patterns.filter(isFilePattern).filter((pattern) => fitsFilePattern(pattern, manifest.packagePath)).flatMap((pattern) => namingsOfPattern(library, pattern, manifest)));
130284
129403
  };
130285
129404
  var isSaidOfSamePattern = (one, two) => one.library === two.library && one.catalogue.name === two.catalogue.name;
130286
129405
  var methodsOf = (namings) => {
@@ -135936,7 +135055,7 @@ var INDENTED = /^\s+/;
135936
135055
  var PACKAGE_INIT = /^([^/]+)\/__init__\.py$/;
135937
135056
  var MODULE_EXTENSION = ".py";
135938
135057
  var isMarker = (name) => MARKERS.some((marker) => marker === name);
135939
- var isSrc = (value) => typeof value === "string" && value.replace(/\/+$/, "") === "src";
135058
+ var isSrc = (value) => typeof value === "string" && withoutTrailingSlashes(value) === "src";
135940
135059
  function join(dir, sub) {
135941
135060
  const joined3 = dir === "" ? sub : path3.posix.normalize(path3.posix.join(dir, sub));
135942
135061
  return joined3 === "." ? "" : joined3;
@@ -136572,7 +135691,10 @@ function moduleResolver(files, read2) {
136572
135691
  }
136573
135692
 
136574
135693
  // packages/codegraph/src/import-graph/languages/vue-script.ts
136575
- var SCRIPT_PATTERN = /<script\b([^>]*)>([\s\S]*?)<\/script\s*>/gi;
135694
+ var SCRIPT_END_TAG_PATTERN = /<\/script(?=[\s/>])[^>]*>?/i;
135695
+ var SCRIPT_OPEN_TAG_START_PATTERN = /<script(?!\w)/i;
135696
+ var SCRIPT_OPEN_TAG_START = "<script";
135697
+ var TAG_END = ">";
136576
135698
  var LANGUAGE_ATTRIBUTE_PATTERN = /\blang\s*=\s*["']?([A-Za-z]+)/i;
136577
135699
  var SOURCE_ATTRIBUTE_PATTERN = /\bsrc\s*=\s*["']([^"']+)["']/i;
136578
135700
  var TYPESCRIPT_SCRIPT_LANGUAGE = "ts";
@@ -136583,12 +135705,19 @@ var isJavaScriptScript = (attributes) => {
136583
135705
  return language === null || JAVASCRIPT_SCRIPT_LANGUAGES.has(language);
136584
135706
  };
136585
135707
  var grammarOf = (attributes) => languageOf(attributes) === TYPESCRIPT_SCRIPT_LANGUAGE ? "typescript" : "tsx";
136586
- var readVueScripts = (text2) => [...text2.matchAll(SCRIPT_PATTERN)].map(([, attributes = "", body = ""]) => ({
135708
+ var toVueScript = (attributes, body) => ({
136587
135709
  grammar: grammarOf(attributes),
136588
135710
  text: body,
136589
135711
  source: SOURCE_ATTRIBUTE_PATTERN.exec(attributes)?.[1] ?? null,
136590
135712
  isJavaScript: isJavaScriptScript(attributes)
136591
- }));
135713
+ });
135714
+ var scriptEndingIn = (textBeforeEndTag) => {
135715
+ const openTagStart = textBeforeEndTag.search(SCRIPT_OPEN_TAG_START_PATTERN);
135716
+ const attributesStart = openTagStart + SCRIPT_OPEN_TAG_START.length;
135717
+ const openTagEnd = openTagStart === -1 ? -1 : textBeforeEndTag.indexOf(TAG_END, attributesStart);
135718
+ return openTagEnd === -1 ? [] : [toVueScript(textBeforeEndTag.slice(attributesStart, openTagEnd), textBeforeEndTag.slice(openTagEnd + TAG_END.length))];
135719
+ };
135720
+ var readVueScripts = (text2) => text2.split(SCRIPT_END_TAG_PATTERN).slice(0, -1).flatMap(scriptEndingIn);
136592
135721
 
136593
135722
  // packages/codegraph/src/import-graph/languages/typescript-specifiers.ts
136594
135723
  var VUE_EXTENSIONS = [".vue"];
@@ -144754,10 +143883,13 @@ var SOFT_BREAK_TEXT = " ";
144754
143883
  var CLOSING2 = -1;
144755
143884
  var TRAILING_LINE_BREAK_PATTERN = /\n$/;
144756
143885
  var MARKDOWN_OPTIONS = { html: false, linkify: false };
144757
- var markdown = new lib_default(MARKDOWN_OPTIONS);
144758
- var contextMarkdown = new lib_default(MARKDOWN_OPTIONS).use(containerPluginOf(TABS_CONTAINER)).use(containerPluginOf(ACCORDION_CONTAINER));
144759
- var EMPTY_INLINE_STATE = { inlines: [], isStrong: false, isEmphasized: false, link: null };
144760
143886
  var isCodeLink = (href) => href.startsWith(CODE_LINK_SCHEME);
143887
+ var linkEncoding = new lib_default(MARKDOWN_OPTIONS);
143888
+ var normalizeLinkKeepingCodeLinks = (url2) => isCodeLink(url2) ? url2 : linkEncoding.normalizeLink(url2);
143889
+ var createMarkdown = () => Object.assign(new lib_default(MARKDOWN_OPTIONS), { normalizeLink: normalizeLinkKeepingCodeLinks });
143890
+ var markdown = createMarkdown();
143891
+ var contextMarkdown = createMarkdown().use(containerPluginOf(TABS_CONTAINER)).use(containerPluginOf(ACCORDION_CONTAINER));
143892
+ var EMPTY_INLINE_STATE = { inlines: [], isStrong: false, isEmphasized: false, link: null };
144761
143893
  var openLinkOf = (token, knownLinkIds) => {
144762
143894
  const href = token.attrGet("href") ?? "";
144763
143895
  const linkId = isCodeLink(href) ? href.slice(CODE_LINK_SCHEME.length) : null;
@@ -145258,7 +144390,7 @@ var codeLinesIn = (highlighted, span, focus, decorations = NO_DECORATIONS) => hi
145258
144390
  var findSource = (sources, path11) => sources.find((highlighted) => highlighted.source.path === path11) ?? null;
145259
144391
 
145260
144392
  // packages/codegraph/src/code/links.ts
145261
- var CODE_LINK_PATTERN = /\]\(code:([^)\s]+)\)/g;
144393
+ var CODE_LINK_PATTERN = /\]\(code:((?:[^()\s]|\([^()\s]*\))+)\)/g;
145262
144394
  var LINES_TARGET_PATTERN = /^L\d+(?:-\d+)?$/;
145263
144395
  var LINES_PREFIX = "L";
145264
144396
  var LINES_SEPARATOR = "-";
@@ -149382,7 +148514,9 @@ var RENAME_TO_PREFIX = "rename to ";
149382
148514
  var NEW_SIDE_PREFIX = "+++ ";
149383
148515
  var OLD_SIDE_PREFIX = "--- ";
149384
148516
  var BINARY_PREFIX = "Binary files ";
149385
- var BINARY_PATTERN = /^Binary files a\/(.+?) and b\/(.+?) differ$/;
148517
+ var BINARY_PATHS_PREFIX = "Binary files a/";
148518
+ var BINARY_PATHS_SEPARATOR = " and b/";
148519
+ var BINARY_PATHS_SUFFIX = " differ";
149386
148520
  var HEADER_PATH_OFFSET = 4;
149387
148521
  var START3 = { files: [], current: null, patch: [], hasHunk: false };
149388
148522
  function headerPath(line) {
@@ -149391,9 +148525,13 @@ function headerPath(line) {
149391
148525
  const prefix = line.startsWith(NEW_SIDE_PREFIX) ? "b/" : "a/";
149392
148526
  return target.startsWith(prefix) ? target.slice(prefix.length) : target;
149393
148527
  }
148528
+ var isBinaryPathsLine = (line) => line.length >= BINARY_PATHS_PREFIX.length + BINARY_PATHS_SUFFIX.length && line.startsWith(BINARY_PATHS_PREFIX) && line.endsWith(BINARY_PATHS_SUFFIX);
149394
148529
  function binaryPath(line) {
149395
- const match2 = BINARY_PATTERN.exec(line.trim());
149396
- return match2?.[2] ?? match2?.[1] ?? "";
148530
+ const trimmed = line.trim();
148531
+ if (!isBinaryPathsLine(trimmed)) return "";
148532
+ const paths = trimmed.slice(BINARY_PATHS_PREFIX.length, trimmed.length - BINARY_PATHS_SUFFIX.length);
148533
+ const separatorAt = paths.indexOf(BINARY_PATHS_SEPARATOR, 1);
148534
+ return separatorAt === -1 ? "" : paths.slice(separatorAt + BINARY_PATHS_SEPARATOR.length);
149397
148535
  }
149398
148536
  function flush2(state) {
149399
148537
  if (state.current === null) return state;
@@ -149848,6 +148986,11 @@ var BaseGitAdapter = class {
149848
148986
  }
149849
148987
  };
149850
148988
 
148989
+ // packages/git-forge/src/git-adapter/helpers/trailing-slashes.ts
148990
+ var SLASH2 = "/";
148991
+ var keptLengthOf2 = (text2) => text2.split("").reduceRight((keptLength, character, index) => keptLength === 0 && character !== SLASH2 ? index + 1 : keptLength, 0);
148992
+ var withoutTrailingSlashes2 = (text2) => text2.slice(0, keptLengthOf2(text2));
148993
+
149851
148994
  // node_modules/.pnpm/@agntn+forges@0.3.6_@azure+identity@4.13.3_supports-color@7.2.0__supports-color@7.2.0_typebox@1.3.34_zod@4.5.4/node_modules/@agntn/forges/dist/index.mjs
149852
148995
  init_errors2();
149853
148996
  init_provider();
@@ -151239,7 +150382,7 @@ function mergeHeaders3(configured, requested2) {
151239
150382
  function createRest(config3) {
151240
150383
  const fetcher = config3.fetcher ?? (async (input2, init) => fetch(input2, init));
151241
150384
  const sleep = config3.sleep ?? pause;
151242
- const base = config3.baseUrl.replace(/\/+$/, "");
150385
+ const base = withoutTrailingSlashes2(config3.baseUrl);
151243
150386
  const url2 = (path11) => /^https?:\/\//i.test(path11) ? path11 : `${base}/${path11.replace(/^\/+/, "")}`;
151244
150387
  const attemptRequest = async (target, init) => {
151245
150388
  try {
@@ -151322,7 +150465,7 @@ function bitbucketAnchor(path11, line) {
151322
150465
  return line === void 0 ? `#L${path11}` : `#L${path11}T${String(line)}`;
151323
150466
  }
151324
150467
  function isCloudUrl(baseUrl) {
151325
- const configured = baseUrl.trim().replace(/\/+$/, "");
150468
+ const configured = withoutTrailingSlashes2(baseUrl.trim());
151326
150469
  return configured === "" || CLOUD_HOST.test(configured);
151327
150470
  }
151328
150471
  function splitWorkspace(repo) {
@@ -151989,7 +151132,7 @@ var REVIEWER_STATES = {
151989
151132
  NEEDS_WORK: "changes-requested"
151990
151133
  };
151991
151134
  function dataCenterWebRoot(baseUrl) {
151992
- const trimmed = baseUrl.trim().replace(/\/+$/, "");
151135
+ const trimmed = withoutTrailingSlashes2(baseUrl.trim());
151993
151136
  return trimmed.endsWith(API_SUFFIX) ? trimmed.slice(0, trimmed.length - API_SUFFIX.length) : trimmed;
151994
151137
  }
151995
151138
  function splitProject(repo) {
@@ -153002,7 +152145,7 @@ var HISTORY_STATES3 = {
153002
152145
  MERGED: "merged"
153003
152146
  };
153004
152147
  function githubApiRoot(baseUrl) {
153005
- const trimmed = baseUrl.trim().replace(/\/+$/, "");
152148
+ const trimmed = withoutTrailingSlashes2(baseUrl.trim());
153006
152149
  if (trimmed === "") return "https://api.github.com";
153007
152150
  if (trimmed.endsWith("/api/v3")) return trimmed;
153008
152151
  return `${trimmed}/api/v3`;
@@ -153741,7 +152884,7 @@ var REVIEW_FILTERS2 = [
153741
152884
  { key: "not-draft", label: "Not a draft" }
153742
152885
  ];
153743
152886
  function gitlabApiRoot(baseUrl) {
153744
- const trimmed = baseUrl.trim().replace(/\/+$/, "");
152887
+ const trimmed = withoutTrailingSlashes2(baseUrl.trim());
153745
152888
  const host = trimmed === "" ? CLOUD_URL : trimmed;
153746
152889
  return host.endsWith(API_SUFFIX2) ? host : `${host}${API_SUFFIX2}`;
153747
152890
  }
@@ -153749,7 +152892,7 @@ function gitlabDiffAnchor(path11) {
153749
152892
  return crypto3.createHash("sha1").update(path11, "utf8").digest("hex");
153750
152893
  }
153751
152894
  function gitlabWebRoot(baseUrl) {
153752
- const trimmed = baseUrl.trim().replace(/\/+$/, "");
152895
+ const trimmed = withoutTrailingSlashes2(baseUrl.trim());
153753
152896
  return (trimmed === "" ? CLOUD_URL : trimmed).replace(/\/api\/v4$/, "");
153754
152897
  }
153755
152898
  function mergeRequestIid(ref) {
@@ -162758,19 +161901,16 @@ var FileConversationStore = class {
162758
161901
  };
162759
161902
 
162760
161903
  // apps/backend/src/utils/conversation-hub/index.ts
162761
- var import_mqemitter = __toESM(require_mqemitter());
162762
- var TOPIC_ROOT = "conversation";
162763
- var topicOf = (key) => [TOPIC_ROOT, encodeURIComponent(key.repositoryName), encodeURIComponent(key.targetId)].join("/");
162764
161904
  var HubSubscription = class {
162765
- emitter;
161905
+ events;
162766
161906
  topic;
162767
161907
  hasChange = false;
162768
161908
  isClosed = false;
162769
161909
  finishWait = null;
162770
- constructor(emitter, topic) {
162771
- this.emitter = emitter;
161910
+ constructor(events, topic) {
161911
+ this.events = events;
162772
161912
  this.topic = topic;
162773
- emitter.on(topic, this.notify);
161913
+ events.addEventListener(topic, this.notify);
162774
161914
  }
162775
161915
  nextChange = async ({ timeoutMs, signal }) => {
162776
161916
  if (this.hasChange) {
@@ -162798,26 +161938,23 @@ var HubSubscription = class {
162798
161938
  close = () => {
162799
161939
  if (this.isClosed) return;
162800
161940
  this.isClosed = true;
162801
- this.emitter.removeListener(this.topic, this.notify);
161941
+ this.events.removeEventListener(this.topic, this.notify);
162802
161942
  this.finishWait?.("aborted");
162803
161943
  };
162804
- notify = (_message, done) => {
161944
+ notify = () => {
162805
161945
  if (this.finishWait === null) this.hasChange = true;
162806
161946
  else this.finishWait("changed");
162807
- done();
162808
161947
  };
162809
161948
  };
162810
161949
  var createConversationHub = () => {
162811
- const emitter = (0, import_mqemitter.default)();
161950
+ const events = new EventTarget();
162812
161951
  return {
162813
161952
  publish: (key) => {
162814
- emitter.emit({ topic: topicOf(key) });
161953
+ events.dispatchEvent(new Event(reviewKeyId(key)));
162815
161954
  },
162816
- subscribe: (key) => new HubSubscription(emitter, topicOf(key)),
161955
+ subscribe: (key) => new HubSubscription(events, reviewKeyId(key)),
162817
161956
  close: async () => {
162818
- await new Promise((resolve3) => {
162819
- emitter.close(resolve3);
162820
- });
161957
+ await Promise.resolve();
162821
161958
  }
162822
161959
  };
162823
161960
  };
@@ -171124,8 +170261,9 @@ var getSetup = async (input2, context) => {
171124
170261
  var getSetupRoute = publicProcedure.input(getSetupInputSchema).output(setupPageSchema).query(async ({ ctx, input: input2 }) => getSetup(input2, ctx));
171125
170262
 
171126
170263
  // apps/backend/src/procedures/get-setup-gate/utils/plan-setup-gate.ts
171127
- var TRAILING_SLASHES_PATTERN = /\/+$/;
171128
- var isSetupPath = (path11) => path11.replace(TRAILING_SLASHES_PATTERN, "") === SETUP_PATH;
170264
+ var SLASH3 = "/";
170265
+ var withoutTrailingSlashes3 = (text2) => text2.slice(0, text2.split("").reduceRight((keptLength, character, index) => keptLength === 0 && character !== SLASH3 ? index + 1 : keptLength, 0));
170266
+ var isSetupPath = (path11) => withoutTrailingSlashes3(path11) === SETUP_PATH;
171129
170267
  var planSetupGate = (isSetupComplete, path11) => {
171130
170268
  if (isSetupComplete || isSetupPath(path11)) return { redirectTo: null };
171131
170269
  return { redirectTo: SETUP_PATH };