create-towns-protocol-app 0.0.430 → 0.0.432

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/README.md CHANGED
@@ -9,7 +9,7 @@ This package is used to scaffold a new React Towns Protocol app.
9
9
  By default, the script will create a new app using the Playground template: a full-featured example application.
10
10
 
11
11
  ```bash
12
- yarn create towns-protocol-app my-app
12
+ bun create towns-protocol-app my-app
13
13
  ```
14
14
 
15
15
  ### React Templates
@@ -21,16 +21,16 @@ Then, it will install the necessary dependencies: `@towns-protocol/sdk` and `@to
21
21
  Finally, it will add the `vite-plugin-node-polyfills` to the `vite.config.ts` file to ensure compatibility with Node.js native modules that are used by the Towns Protocol SDK.
22
22
 
23
23
  ```bash
24
- yarn create towns-protocol-app my-app --template react-ts
24
+ bun create towns-protocol-app my-app --template react-ts
25
25
  ```
26
26
 
27
27
  ## Usage
28
28
 
29
29
  You can use your preferred package manager to run the command.
30
- Example using `yarn`:
30
+ Example using `bun`:
31
31
 
32
32
  ```bash
33
- yarn create towns-protocol-app
33
+ bun create towns-protocol-app
34
34
  ```
35
35
 
36
36
  This will create a new React Towns Protocol app in the current directory.
@@ -38,13 +38,13 @@ This will create a new React Towns Protocol app in the current directory.
38
38
  If you want to create a new app in a different directory, you can specify the directory name as an argument:
39
39
 
40
40
  ```bash
41
- yarn create towns-protocol-app my-app
41
+ bun create towns-protocol-app my-app
42
42
  ```
43
43
 
44
44
  You can specify a template using the `-t` or `--template` flag:
45
45
 
46
46
  ```bash
47
- yarn create towns-protocol-app my-app --template react-ts
47
+ bun create towns-protocol-app my-app --template react-ts
48
48
  ```
49
49
 
50
50
  Available templates:
package/dist/index.js CHANGED
@@ -25,9 +25,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
 
28
- // ../../node_modules/minimist/index.js
28
+ // ../../node_modules/.bun/minimist@1.2.8/node_modules/minimist/index.js
29
29
  var require_minimist = __commonJS({
30
- "../../node_modules/minimist/index.js"(exports2, module2) {
30
+ "../../node_modules/.bun/minimist@1.2.8/node_modules/minimist/index.js"(exports2, module2) {
31
31
  "use strict";
32
32
  function hasKey(obj, keys) {
33
33
  var o = obj;
@@ -247,9 +247,9 @@ var require_minimist = __commonJS({
247
247
  }
248
248
  });
249
249
 
250
- // ../../node_modules/picocolors/picocolors.js
250
+ // ../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js
251
251
  var require_picocolors = __commonJS({
252
- "../../node_modules/picocolors/picocolors.js"(exports2, module2) {
252
+ "../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports2, module2) {
253
253
  "use strict";
254
254
  var p = process || {};
255
255
  var argv2 = p.argv || [];
@@ -320,9 +320,9 @@ var require_picocolors = __commonJS({
320
320
  }
321
321
  });
322
322
 
323
- // ../../node_modules/isexe/windows.js
323
+ // ../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js
324
324
  var require_windows = __commonJS({
325
- "../../node_modules/isexe/windows.js"(exports2, module2) {
325
+ "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js"(exports2, module2) {
326
326
  "use strict";
327
327
  module2.exports = isexe;
328
328
  isexe.sync = sync;
@@ -361,9 +361,9 @@ var require_windows = __commonJS({
361
361
  }
362
362
  });
363
363
 
364
- // ../../node_modules/isexe/mode.js
364
+ // ../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js
365
365
  var require_mode = __commonJS({
366
- "../../node_modules/isexe/mode.js"(exports2, module2) {
366
+ "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js"(exports2, module2) {
367
367
  "use strict";
368
368
  module2.exports = isexe;
369
369
  isexe.sync = sync;
@@ -395,9 +395,9 @@ var require_mode = __commonJS({
395
395
  }
396
396
  });
397
397
 
398
- // ../../node_modules/isexe/index.js
398
+ // ../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js
399
399
  var require_isexe = __commonJS({
400
- "../../node_modules/isexe/index.js"(exports2, module2) {
400
+ "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js"(exports2, module2) {
401
401
  "use strict";
402
402
  var fs2 = require("fs");
403
403
  var core;
@@ -451,9 +451,9 @@ var require_isexe = __commonJS({
451
451
  }
452
452
  });
453
453
 
454
- // ../../node_modules/cross-spawn/node_modules/which/which.js
454
+ // ../../node_modules/.bun/which@2.0.2/node_modules/which/which.js
455
455
  var require_which = __commonJS({
456
- "../../node_modules/cross-spawn/node_modules/which/which.js"(exports2, module2) {
456
+ "../../node_modules/.bun/which@2.0.2/node_modules/which/which.js"(exports2, module2) {
457
457
  "use strict";
458
458
  var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
459
459
  var path5 = require("path");
@@ -548,9 +548,9 @@ var require_which = __commonJS({
548
548
  }
549
549
  });
550
550
 
551
- // ../../node_modules/path-key/index.js
551
+ // ../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js
552
552
  var require_path_key = __commonJS({
553
- "../../node_modules/path-key/index.js"(exports2, module2) {
553
+ "../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js"(exports2, module2) {
554
554
  "use strict";
555
555
  var pathKey = (options = {}) => {
556
556
  const environment = options.env || process.env;
@@ -565,9 +565,9 @@ var require_path_key = __commonJS({
565
565
  }
566
566
  });
567
567
 
568
- // ../../node_modules/cross-spawn/lib/util/resolveCommand.js
568
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
569
569
  var require_resolveCommand = __commonJS({
570
- "../../node_modules/cross-spawn/lib/util/resolveCommand.js"(exports2, module2) {
570
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports2, module2) {
571
571
  "use strict";
572
572
  var path5 = require("path");
573
573
  var which = require_which();
@@ -607,9 +607,9 @@ var require_resolveCommand = __commonJS({
607
607
  }
608
608
  });
609
609
 
610
- // ../../node_modules/cross-spawn/lib/util/escape.js
610
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js
611
611
  var require_escape = __commonJS({
612
- "../../node_modules/cross-spawn/lib/util/escape.js"(exports2, module2) {
612
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"(exports2, module2) {
613
613
  "use strict";
614
614
  var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
615
615
  function escapeCommand(arg) {
@@ -632,17 +632,17 @@ var require_escape = __commonJS({
632
632
  }
633
633
  });
634
634
 
635
- // ../../node_modules/shebang-regex/index.js
635
+ // ../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js
636
636
  var require_shebang_regex = __commonJS({
637
- "../../node_modules/shebang-regex/index.js"(exports2, module2) {
637
+ "../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"(exports2, module2) {
638
638
  "use strict";
639
639
  module2.exports = /^#!(.*)/;
640
640
  }
641
641
  });
642
642
 
643
- // ../../node_modules/shebang-command/index.js
643
+ // ../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js
644
644
  var require_shebang_command = __commonJS({
645
- "../../node_modules/shebang-command/index.js"(exports2, module2) {
645
+ "../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js"(exports2, module2) {
646
646
  "use strict";
647
647
  var shebangRegex = require_shebang_regex();
648
648
  module2.exports = (string = "") => {
@@ -660,9 +660,9 @@ var require_shebang_command = __commonJS({
660
660
  }
661
661
  });
662
662
 
663
- // ../../node_modules/cross-spawn/lib/util/readShebang.js
663
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js
664
664
  var require_readShebang = __commonJS({
665
- "../../node_modules/cross-spawn/lib/util/readShebang.js"(exports2, module2) {
665
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"(exports2, module2) {
666
666
  "use strict";
667
667
  var fs2 = require("fs");
668
668
  var shebangCommand = require_shebang_command();
@@ -682,9 +682,9 @@ var require_readShebang = __commonJS({
682
682
  }
683
683
  });
684
684
 
685
- // ../../node_modules/cross-spawn/lib/parse.js
685
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js
686
686
  var require_parse = __commonJS({
687
- "../../node_modules/cross-spawn/lib/parse.js"(exports2, module2) {
687
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"(exports2, module2) {
688
688
  "use strict";
689
689
  var path5 = require("path");
690
690
  var resolveCommand = require_resolveCommand();
@@ -744,9 +744,9 @@ var require_parse = __commonJS({
744
744
  }
745
745
  });
746
746
 
747
- // ../../node_modules/cross-spawn/lib/enoent.js
747
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js
748
748
  var require_enoent = __commonJS({
749
- "../../node_modules/cross-spawn/lib/enoent.js"(exports2, module2) {
749
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"(exports2, module2) {
750
750
  "use strict";
751
751
  var isWin = process.platform === "win32";
752
752
  function notFoundError(original, syscall) {
@@ -794,9 +794,9 @@ var require_enoent = __commonJS({
794
794
  }
795
795
  });
796
796
 
797
- // ../../node_modules/cross-spawn/index.js
797
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js
798
798
  var require_cross_spawn = __commonJS({
799
- "../../node_modules/cross-spawn/index.js"(exports2, module2) {
799
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"(exports2, module2) {
800
800
  "use strict";
801
801
  var cp = require("child_process");
802
802
  var parse2 = require_parse();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/minimist/index.js","../../../node_modules/picocolors/picocolors.js","../../../node_modules/isexe/windows.js","../../../node_modules/isexe/mode.js","../../../node_modules/isexe/index.js","../../../node_modules/cross-spawn/node_modules/which/which.js","../../../node_modules/path-key/index.js","../../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/shebang-regex/index.js","../../../node_modules/shebang-command/index.js","../../../node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/cross-spawn/lib/parse.js","../../../node_modules/cross-spawn/lib/enoent.js","../../../node_modules/cross-spawn/index.js","../src/index.ts","../src/utils.ts","../src/modules/vite-react.ts","../src/modules/clone-playground.ts"],"sourcesContent":["'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","import minimist from 'minimist'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport { getPackageManager, type CreateRiverBuildAppConfig, formatTargetDir } from './utils'\nimport { buildRiverReactApp } from './modules/vite-react'\nimport { clonePlayground } from './modules/clone-playground'\n\nconst argv = minimist<{\n template?: string\n help?: boolean\n}>(process.argv.slice(2), {\n default: { help: false, template: 'playground' },\n alias: { h: 'help', t: 'template' },\n string: ['_'],\n})\n\n// prettier-ignore\nconst helpMessage = `\\\nUsage: create-towns-protocol-app [OPTION]... [DIRECTORY]\n\nCreate a new Towns Protocol app.\nWith no arguments, creates a new app in the current directory.\n\nOptions:\n -t, --template NAME use a specific template\n\nAvailable templates:\n${picocolors.yellow ('react-ts react playground' )}\n`\n\ntype Template = 'react-ts' | 'react' | 'playground'\n\nconst build = {\n 'react-ts': buildRiverReactApp,\n react: buildRiverReactApp,\n playground: clonePlayground,\n} satisfies Record<Template, (cfg: CreateRiverBuildAppConfig) => Promise<void>>\n\nasync function init() {\n const targetDir = formatTargetDir(argv._[0]) || '.'\n const packageName = targetDir === '.' ? path.basename(process.cwd()) : targetDir\n const projectDir = targetDir === '.' ? process.cwd() : path.join(process.cwd(), targetDir)\n const pkgManager = getPackageManager()\n const template = (argv.template || argv.t) as Template\n\n const help = argv.help\n if (help) {\n console.log(helpMessage)\n return\n }\n\n console.log(picocolors.blue(`\\nScaffolding project in ${packageName}...`))\n await build[template]({\n projectDir,\n packageName,\n targetDir,\n viteTemplate: template !== 'playground' ? template : undefined,\n })\n console.log(picocolors.green('\\nDone! 🎉'))\n console.log(picocolors.blue('\\nNow run: cd ' + targetDir + ' && ' + pkgManager + ` install`))\n console.log(picocolors.blue('\\nThen run: ' + pkgManager + ' dev'))\n}\n\ninit().catch((e) => {\n console.error(e)\n process.exit(1)\n})\n","import { readFileSync, writeFileSync } from 'node:fs'\nimport path from 'node:path'\nimport playgroundPackageJson from '../../playground/package.json' with { type: 'json' }\n\nexport type CreateRiverBuildAppConfig = {\n projectDir: string\n packageName: string\n targetDir: string\n viteTemplate?: 'react-ts' | 'react'\n}\n\nexport const getPackageManager = () => {\n if (process.env.npm_config_user_agent) {\n const agent = process.env.npm_config_user_agent\n if (agent.startsWith('yarn')) return 'yarn'\n if (agent.startsWith('npm')) return 'npm'\n if (agent.startsWith('pnpm')) return 'pnpm'\n if (agent.startsWith('bun')) return 'bun'\n }\n // Default to npm if no user agent is found\n return 'npm'\n}\n\ntype PackageJson = typeof playgroundPackageJson\n\nexport const addDependencies = async (\n projectDir: string,\n cfg: (currentDeps: PackageJson) => {\n dependencies: Array<string | string[]>\n devDependencies?: Array<string | string[]>\n },\n) => {\n const packageJsonPath = path.join(projectDir, 'package.json')\n const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'))\n const { dependencies, devDependencies } = cfg(packageJson)\n\n if (devDependencies && devDependencies.length > 0) {\n if (!packageJson.devDependencies) {\n packageJson.devDependencies = {}\n }\n for (const dep of devDependencies) {\n if (Array.isArray(dep)) {\n packageJson.devDependencies[dep[0]] = dep[1]\n } else {\n packageJson.devDependencies[dep] = 'latest'\n }\n }\n }\n\n if (!packageJson.dependencies) {\n packageJson.dependencies = {}\n }\n for (const dep of dependencies) {\n if (Array.isArray(dep)) {\n packageJson.dependencies[dep[0]] = dep[1]\n } else {\n packageJson.dependencies[dep] = 'latest'\n }\n }\n\n writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\\n')\n}\n\nexport const formatTargetDir = (targetDir: string | undefined) =>\n targetDir?.trim().replace(/\\/+$/g, '')\n","import spawn from 'cross-spawn'\nimport { addDependencies, getPackageManager, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport { readFileSync, writeFileSync } from 'node:fs'\nimport picocolors from 'picocolors'\n\nexport const buildRiverReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const result = await scaffoldViteReactApp(cfg)\n\n if (result.signal === 'SIGINT' || result.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result.status !== 0) {\n console.error(picocolors.red('\\nFailed to scaffold project.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nVite project created successfully.'))\n console.log(picocolors.blue('\\nAdding River SDK dependencies...'))\n\n await addDependencies(cfg.projectDir, () => ({\n dependencies: ['@towns-protocol/react-sdk', '@towns-protocol/sdk'],\n devDependencies: ['vite-plugin-node-polyfills'],\n }))\n\n console.log(picocolors.green('\\nRiver SDK dependencies added successfully.'))\n console.log(picocolors.blue('\\nUpdating vite.config.ts...'))\n\n await updateViteConfigWithPolyfills(cfg)\n\n console.log(picocolors.green('\\nvite.config.ts updated successfully.'))\n}\n\nconst scaffoldViteReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir, packageName, viteTemplate = 'react-ts' } = cfg\n const pkgManager = getPackageManager()\n\n const createViteCommand = (() => {\n const nameForViteScript = targetDir === '.' ? '.' : packageName\n switch (pkgManager) {\n case 'yarn':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'pnpm':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'bun':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n default:\n // npm requires the -- flag to pass args to the template\n return [\n 'create',\n 'vite@latest',\n nameForViteScript,\n '--',\n '--template',\n viteTemplate,\n ]\n }\n })()\n\n return spawn.sync(pkgManager, createViteCommand, { stdio: 'inherit' })\n}\n\nconst updateViteConfigWithPolyfills = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir, viteTemplate } = cfg\n const isJsTemplate = viteTemplate === 'react'\n const viteConfigPath = path.join(projectDir, isJsTemplate ? 'vite.config.js' : 'vite.config.ts')\n let viteConfig = readFileSync(viteConfigPath, 'utf8')\n\n // Add import for vite-plugin-node-polyfills\n viteConfig = `import { nodePolyfills } from 'vite-plugin-node-polyfills'\\n${viteConfig}`\n\n // Add nodePolyfills to plugins array\n viteConfig = viteConfig.replace(/plugins:\\s*\\[([\\s\\S]*?)\\]/, (_, pluginsContent) => {\n const trimmedContent = pluginsContent.trim()\n const separator = trimmedContent ? ',\\n ' : ''\n return `plugins: [${pluginsContent}${separator}nodePolyfills()\\n ]`\n })\n\n writeFileSync(viteConfigPath, viteConfig)\n}\n","import spawn from 'cross-spawn'\nimport { addDependencies, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport fs from 'node:fs'\nimport * as jsoncParser from 'jsonc-parser'\n\nexport const clonePlayground = async (cfg: CreateRiverBuildAppConfig) => {\n console.log(picocolors.blue('\\nCloning Towns Protocol Playground...'))\n\n const result = await cloneRepo(cfg)\n if (!result) return\n if (result?.signal === 'SIGINT' || result?.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result && result.status !== 0) {\n console.error(picocolors.red('\\nFailed to clone playground.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nPlayground cloned successfully.'))\n console.log(picocolors.blue('\\nUpdating dependencies...'))\n\n await updateDependencies(cfg)\n console.log(picocolors.green('\\nDependencies updated successfully.'))\n\n await fixTsConfig(cfg)\n spawn.sync('git', ['init'], {\n stdio: 'inherit',\n cwd: cfg.targetDir,\n })\n}\n\nconst cloneRepo = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir } = cfg\n const tempDir = `${targetDir}-temp`\n\n // Clone with minimal data to a temporary directory\n const latestSdkTag = getLatestSdkTag()\n if (!latestSdkTag) {\n console.error(picocolors.red('\\nFailed to get latest SDK tag.'))\n return\n }\n\n const cloneResult = spawn.sync(\n 'git',\n [\n 'clone',\n '--no-checkout',\n '--depth',\n '1',\n '--sparse',\n '--branch',\n latestSdkTag,\n 'https://github.com/towns-protocol/towns.git',\n tempDir,\n ],\n { stdio: 'inherit' },\n )\n if (cloneResult.status !== 0) return cloneResult\n\n // Set up sparse checkout\n const sparseResult = spawn.sync('git', ['sparse-checkout', 'set', 'packages/playground'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (sparseResult.status !== 0) return sparseResult\n\n // Checkout the content\n const checkoutResult = spawn.sync('git', ['checkout'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (checkoutResult.status !== 0) return checkoutResult\n\n // Verify playground directory exists\n const playgroundDir = path.join(tempDir, 'packages/playground')\n const baseTsConfigPath = path.join(tempDir, 'packages/tsconfig.base.json')\n\n if (!fs.existsSync(playgroundDir)) {\n console.error(picocolors.red(`\\nPlayground directory not found at ${playgroundDir}`))\n return\n }\n\n // Move playground contents to target directory\n fs.mkdirSync(targetDir, { recursive: true })\n fs.cpSync(playgroundDir, targetDir, { recursive: true })\n\n // Copy tsconfig.base.json if it exists (since playground uses the config from monorepo)\n if (fs.existsSync(baseTsConfigPath)) {\n fs.copyFileSync(baseTsConfigPath, path.join(targetDir, 'tsconfig.base.json'))\n }\n // Clean up temporary directory\n fs.rmSync(tempDir, { recursive: true, force: true })\n return checkoutResult\n}\n\nconst updateDependencies = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n\n // Update package.json with latest Towns Protocol dependencies\n await addDependencies(projectDir, (json) => {\n const allTownsProtocolDeps = Object.keys(json.dependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n const allTownsProtocolDevDeps = Object.keys(json.devDependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n return {\n dependencies: allTownsProtocolDeps,\n devDependencies: [\n ...allTownsProtocolDevDeps,\n // hardcoded for now. if we add ^ in front of the version (e.g. ^5.1.6)\n // it will make npm install to get the latest 5.x.x\n ['typescript', '5.8.2'],\n ],\n }\n })\n}\n\nconst fixTsConfig = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n const tsConfigPath = path.join(projectDir, 'tsconfig.json')\n\n if (fs.existsSync(tsConfigPath)) {\n const tsConfigContent = fs.readFileSync(tsConfigPath, 'utf8')\n // TSConfig is a JSON with comments, so we need to parse it with jsonc-parser\n const tsConfig = jsoncParser.parse(tsConfigContent)\n\n if (tsConfig.extends === './../tsconfig.base.json') {\n // Create an edit to replace the extends value\n const edits = jsoncParser.modify(tsConfigContent, ['extends'], './tsconfig.base.json', {\n formattingOptions: { tabSize: 2 },\n })\n\n // Apply the edit\n const updatedContent = jsoncParser.applyEdits(tsConfigContent, edits)\n fs.writeFileSync(tsConfigPath, updatedContent)\n }\n }\n}\n\nfunction getLatestSdkTag(): string | null {\n const tagsResult = spawn.sync(\n 'git',\n ['ls-remote', '--tags', 'https://github.com/towns-protocol/towns.git', 'sdk-*'],\n { encoding: 'utf8' },\n )\n\n if (tagsResult.status !== 0 || !tagsResult.stdout) return null\n\n const tags = tagsResult.stdout\n .split('\\n')\n .filter(Boolean)\n .map((line) => {\n const [_hash, ref] = line.split('\\t')\n const tag = ref.replace('refs/tags/', '').replace(/\\^{}$/, '')\n\n // Extract version numbers from tags like sdk-hash-1.2.3\n const match = tag.match(/^sdk-[0-9a-f]+-(\\d+)\\.(\\d+)\\.(\\d+)$/)\n if (!match) return null\n\n return {\n tag,\n version: [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])],\n }\n })\n .filter(\n (item): item is { tag: string; version: number[] } =>\n item !== null && Array.isArray(item.version) && item.version.length === 3,\n )\n .sort((a, b) => {\n // Compare version numbers\n for (let i = 0; i < 3; i++) {\n if (a.version[i] !== b.version[i]) {\n return b.version[i] - a.version[i]\n }\n }\n return 0\n })\n\n return tags.length > 0 ? tags[0].tag : null\n}\n"],"mappings":"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","names":["exports","module","key","argv","arg","value","i","exports","module","argv","exports","module","fs","path","exports","module","fs","path","exports","module","fs","path","exports","module","path","exports","module","exports","module","path","exports","module","exports","module","exports","module","path","exports","module","fs","exports","module","path","parse","exports","module","exports","module","parse","spawn","import_node_path","import_picocolors","path","import_node_path","import_node_fs","picocolors","spawn","path","import_cross_spawn","import_node_path","import_picocolors","import_node_fs","picocolors","spawn","path","fs","minimist","picocolors","path"]}
1
+ {"version":3,"sources":["../../../node_modules/.bun/minimist@1.2.8/node_modules/minimist/index.js","../../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js","../../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js","../../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js","../../../node_modules/.bun/which@2.0.2/node_modules/which/which.js","../../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js","../../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js","../src/index.ts","../src/utils.ts","../src/modules/vite-react.ts","../src/modules/clone-playground.ts"],"sourcesContent":["'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","import minimist from 'minimist'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport { getPackageManager, type CreateRiverBuildAppConfig, formatTargetDir } from './utils'\nimport { buildRiverReactApp } from './modules/vite-react'\nimport { clonePlayground } from './modules/clone-playground'\n\nconst argv = minimist<{\n template?: string\n help?: boolean\n}>(process.argv.slice(2), {\n default: { help: false, template: 'playground' },\n alias: { h: 'help', t: 'template' },\n string: ['_'],\n})\n\n// prettier-ignore\nconst helpMessage = `\\\nUsage: create-towns-protocol-app [OPTION]... [DIRECTORY]\n\nCreate a new Towns Protocol app.\nWith no arguments, creates a new app in the current directory.\n\nOptions:\n -t, --template NAME use a specific template\n\nAvailable templates:\n${picocolors.yellow ('react-ts react playground' )}\n`\n\ntype Template = 'react-ts' | 'react' | 'playground'\n\nconst build = {\n 'react-ts': buildRiverReactApp,\n react: buildRiverReactApp,\n playground: clonePlayground,\n} satisfies Record<Template, (cfg: CreateRiverBuildAppConfig) => Promise<void>>\n\nasync function init() {\n const targetDir = formatTargetDir(argv._[0]) || '.'\n const packageName = targetDir === '.' ? path.basename(process.cwd()) : targetDir\n const projectDir = targetDir === '.' ? process.cwd() : path.join(process.cwd(), targetDir)\n const pkgManager = getPackageManager()\n const template = (argv.template || argv.t) as Template\n\n const help = argv.help\n if (help) {\n console.log(helpMessage)\n return\n }\n\n console.log(picocolors.blue(`\\nScaffolding project in ${packageName}...`))\n await build[template]({\n projectDir,\n packageName,\n targetDir,\n viteTemplate: template !== 'playground' ? template : undefined,\n })\n console.log(picocolors.green('\\nDone! 🎉'))\n console.log(picocolors.blue('\\nNow run: cd ' + targetDir + ' && ' + pkgManager + ` install`))\n console.log(picocolors.blue('\\nThen run: ' + pkgManager + ' dev'))\n}\n\ninit().catch((e) => {\n console.error(e)\n process.exit(1)\n})\n","import { readFileSync, writeFileSync } from 'node:fs'\nimport path from 'node:path'\nimport playgroundPackageJson from '../../playground/package.json' with { type: 'json' }\n\nexport type CreateRiverBuildAppConfig = {\n projectDir: string\n packageName: string\n targetDir: string\n viteTemplate?: 'react-ts' | 'react'\n}\n\nexport const getPackageManager = () => {\n if (process.env.npm_config_user_agent) {\n const agent = process.env.npm_config_user_agent\n if (agent.startsWith('yarn')) return 'yarn'\n if (agent.startsWith('npm')) return 'npm'\n if (agent.startsWith('pnpm')) return 'pnpm'\n if (agent.startsWith('bun')) return 'bun'\n }\n // Default to npm if no user agent is found\n return 'npm'\n}\n\ntype PackageJson = typeof playgroundPackageJson\n\nexport const addDependencies = async (\n projectDir: string,\n cfg: (currentDeps: PackageJson) => {\n dependencies: Array<string | string[]>\n devDependencies?: Array<string | string[]>\n },\n) => {\n const packageJsonPath = path.join(projectDir, 'package.json')\n const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'))\n const { dependencies, devDependencies } = cfg(packageJson)\n\n if (devDependencies && devDependencies.length > 0) {\n if (!packageJson.devDependencies) {\n packageJson.devDependencies = {}\n }\n for (const dep of devDependencies) {\n if (Array.isArray(dep)) {\n packageJson.devDependencies[dep[0]] = dep[1]\n } else {\n packageJson.devDependencies[dep] = 'latest'\n }\n }\n }\n\n if (!packageJson.dependencies) {\n packageJson.dependencies = {}\n }\n for (const dep of dependencies) {\n if (Array.isArray(dep)) {\n packageJson.dependencies[dep[0]] = dep[1]\n } else {\n packageJson.dependencies[dep] = 'latest'\n }\n }\n\n writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\\n')\n}\n\nexport const formatTargetDir = (targetDir: string | undefined) =>\n targetDir?.trim().replace(/\\/+$/g, '')\n","import spawn from 'cross-spawn'\nimport { addDependencies, getPackageManager, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport { readFileSync, writeFileSync } from 'node:fs'\nimport picocolors from 'picocolors'\n\nexport const buildRiverReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const result = await scaffoldViteReactApp(cfg)\n\n if (result.signal === 'SIGINT' || result.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result.status !== 0) {\n console.error(picocolors.red('\\nFailed to scaffold project.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nVite project created successfully.'))\n console.log(picocolors.blue('\\nAdding River SDK dependencies...'))\n\n await addDependencies(cfg.projectDir, () => ({\n dependencies: ['@towns-protocol/react-sdk', '@towns-protocol/sdk'],\n devDependencies: ['vite-plugin-node-polyfills'],\n }))\n\n console.log(picocolors.green('\\nRiver SDK dependencies added successfully.'))\n console.log(picocolors.blue('\\nUpdating vite.config.ts...'))\n\n await updateViteConfigWithPolyfills(cfg)\n\n console.log(picocolors.green('\\nvite.config.ts updated successfully.'))\n}\n\nconst scaffoldViteReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir, packageName, viteTemplate = 'react-ts' } = cfg\n const pkgManager = getPackageManager()\n\n const createViteCommand = (() => {\n const nameForViteScript = targetDir === '.' ? '.' : packageName\n switch (pkgManager) {\n case 'yarn':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'pnpm':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'bun':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n default:\n // npm requires the -- flag to pass args to the template\n return [\n 'create',\n 'vite@latest',\n nameForViteScript,\n '--',\n '--template',\n viteTemplate,\n ]\n }\n })()\n\n return spawn.sync(pkgManager, createViteCommand, { stdio: 'inherit' })\n}\n\nconst updateViteConfigWithPolyfills = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir, viteTemplate } = cfg\n const isJsTemplate = viteTemplate === 'react'\n const viteConfigPath = path.join(projectDir, isJsTemplate ? 'vite.config.js' : 'vite.config.ts')\n let viteConfig = readFileSync(viteConfigPath, 'utf8')\n\n // Add import for vite-plugin-node-polyfills\n viteConfig = `import { nodePolyfills } from 'vite-plugin-node-polyfills'\\n${viteConfig}`\n\n // Add nodePolyfills to plugins array\n viteConfig = viteConfig.replace(/plugins:\\s*\\[([\\s\\S]*?)\\]/, (_, pluginsContent) => {\n const trimmedContent = pluginsContent.trim()\n const separator = trimmedContent ? ',\\n ' : ''\n return `plugins: [${pluginsContent}${separator}nodePolyfills()\\n ]`\n })\n\n writeFileSync(viteConfigPath, viteConfig)\n}\n","import spawn from 'cross-spawn'\nimport { addDependencies, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport fs from 'node:fs'\nimport * as jsoncParser from 'jsonc-parser'\n\nexport const clonePlayground = async (cfg: CreateRiverBuildAppConfig) => {\n console.log(picocolors.blue('\\nCloning Towns Protocol Playground...'))\n\n const result = await cloneRepo(cfg)\n if (!result) return\n if (result?.signal === 'SIGINT' || result?.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result && result.status !== 0) {\n console.error(picocolors.red('\\nFailed to clone playground.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nPlayground cloned successfully.'))\n console.log(picocolors.blue('\\nUpdating dependencies...'))\n\n await updateDependencies(cfg)\n console.log(picocolors.green('\\nDependencies updated successfully.'))\n\n await fixTsConfig(cfg)\n spawn.sync('git', ['init'], {\n stdio: 'inherit',\n cwd: cfg.targetDir,\n })\n}\n\nconst cloneRepo = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir } = cfg\n const tempDir = `${targetDir}-temp`\n\n // Clone with minimal data to a temporary directory\n const latestSdkTag = getLatestSdkTag()\n if (!latestSdkTag) {\n console.error(picocolors.red('\\nFailed to get latest SDK tag.'))\n return\n }\n\n const cloneResult = spawn.sync(\n 'git',\n [\n 'clone',\n '--no-checkout',\n '--depth',\n '1',\n '--sparse',\n '--branch',\n latestSdkTag,\n 'https://github.com/towns-protocol/towns.git',\n tempDir,\n ],\n { stdio: 'inherit' },\n )\n if (cloneResult.status !== 0) return cloneResult\n\n // Set up sparse checkout\n const sparseResult = spawn.sync('git', ['sparse-checkout', 'set', 'packages/playground'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (sparseResult.status !== 0) return sparseResult\n\n // Checkout the content\n const checkoutResult = spawn.sync('git', ['checkout'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (checkoutResult.status !== 0) return checkoutResult\n\n // Verify playground directory exists\n const playgroundDir = path.join(tempDir, 'packages/playground')\n const baseTsConfigPath = path.join(tempDir, 'packages/tsconfig.base.json')\n\n if (!fs.existsSync(playgroundDir)) {\n console.error(picocolors.red(`\\nPlayground directory not found at ${playgroundDir}`))\n return\n }\n\n // Move playground contents to target directory\n fs.mkdirSync(targetDir, { recursive: true })\n fs.cpSync(playgroundDir, targetDir, { recursive: true })\n\n // Copy tsconfig.base.json if it exists (since playground uses the config from monorepo)\n if (fs.existsSync(baseTsConfigPath)) {\n fs.copyFileSync(baseTsConfigPath, path.join(targetDir, 'tsconfig.base.json'))\n }\n // Clean up temporary directory\n fs.rmSync(tempDir, { recursive: true, force: true })\n return checkoutResult\n}\n\nconst updateDependencies = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n\n // Update package.json with latest Towns Protocol dependencies\n await addDependencies(projectDir, (json) => {\n const allTownsProtocolDeps = Object.keys(json.dependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n const allTownsProtocolDevDeps = Object.keys(json.devDependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n return {\n dependencies: allTownsProtocolDeps,\n devDependencies: [\n ...allTownsProtocolDevDeps,\n // hardcoded for now. if we add ^ in front of the version (e.g. ^5.1.6)\n // it will make npm install to get the latest 5.x.x\n ['typescript', '5.8.2'],\n ],\n }\n })\n}\n\nconst fixTsConfig = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n const tsConfigPath = path.join(projectDir, 'tsconfig.json')\n\n if (fs.existsSync(tsConfigPath)) {\n const tsConfigContent = fs.readFileSync(tsConfigPath, 'utf8')\n // TSConfig is a JSON with comments, so we need to parse it with jsonc-parser\n const tsConfig = jsoncParser.parse(tsConfigContent)\n\n if (tsConfig.extends === './../tsconfig.base.json') {\n // Create an edit to replace the extends value\n const edits = jsoncParser.modify(tsConfigContent, ['extends'], './tsconfig.base.json', {\n formattingOptions: { tabSize: 2 },\n })\n\n // Apply the edit\n const updatedContent = jsoncParser.applyEdits(tsConfigContent, edits)\n fs.writeFileSync(tsConfigPath, updatedContent)\n }\n }\n}\n\nfunction getLatestSdkTag(): string | null {\n const tagsResult = spawn.sync(\n 'git',\n ['ls-remote', '--tags', 'https://github.com/towns-protocol/towns.git', 'sdk-*'],\n { encoding: 'utf8' },\n )\n\n if (tagsResult.status !== 0 || !tagsResult.stdout) return null\n\n const tags = tagsResult.stdout\n .split('\\n')\n .filter(Boolean)\n .map((line) => {\n const [_hash, ref] = line.split('\\t')\n const tag = ref.replace('refs/tags/', '').replace(/\\^{}$/, '')\n\n // Extract version numbers from tags like sdk-hash-1.2.3\n const match = tag.match(/^sdk-[0-9a-f]+-(\\d+)\\.(\\d+)\\.(\\d+)$/)\n if (!match) return null\n\n return {\n tag,\n version: [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])],\n }\n })\n .filter(\n (item): item is { tag: string; version: number[] } =>\n item !== null && Array.isArray(item.version) && item.version.length === 3,\n )\n .sort((a, b) => {\n // Compare version numbers\n for (let i = 0; i < 3; i++) {\n if (a.version[i] !== b.version[i]) {\n return b.version[i] - a.version[i]\n }\n }\n return 0\n })\n\n return tags.length > 0 ? tags[0].tag : null\n}\n"],"mappings":"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","names":["exports","module","key","argv","arg","value","i","exports","module","argv","exports","module","fs","path","exports","module","fs","path","exports","module","fs","path","exports","module","path","exports","module","exports","module","path","exports","module","exports","module","exports","module","path","exports","module","fs","exports","module","path","parse","exports","module","exports","module","parse","spawn","import_node_path","import_picocolors","path","import_node_path","import_node_fs","picocolors","spawn","path","import_cross_spawn","import_node_path","import_picocolors","import_node_fs","picocolors","spawn","path","fs","minimist","picocolors","path"]}
package/dist/index.mjs CHANGED
@@ -30,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  mod
31
31
  ));
32
32
 
33
- // ../../node_modules/minimist/index.js
33
+ // ../../node_modules/.bun/minimist@1.2.8/node_modules/minimist/index.js
34
34
  var require_minimist = __commonJS({
35
- "../../node_modules/minimist/index.js"(exports, module) {
35
+ "../../node_modules/.bun/minimist@1.2.8/node_modules/minimist/index.js"(exports, module) {
36
36
  "use strict";
37
37
  function hasKey(obj, keys) {
38
38
  var o = obj;
@@ -252,9 +252,9 @@ var require_minimist = __commonJS({
252
252
  }
253
253
  });
254
254
 
255
- // ../../node_modules/picocolors/picocolors.js
255
+ // ../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js
256
256
  var require_picocolors = __commonJS({
257
- "../../node_modules/picocolors/picocolors.js"(exports, module) {
257
+ "../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module) {
258
258
  "use strict";
259
259
  var p = process || {};
260
260
  var argv2 = p.argv || [];
@@ -325,9 +325,9 @@ var require_picocolors = __commonJS({
325
325
  }
326
326
  });
327
327
 
328
- // ../../node_modules/isexe/windows.js
328
+ // ../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js
329
329
  var require_windows = __commonJS({
330
- "../../node_modules/isexe/windows.js"(exports, module) {
330
+ "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js"(exports, module) {
331
331
  "use strict";
332
332
  module.exports = isexe;
333
333
  isexe.sync = sync;
@@ -366,9 +366,9 @@ var require_windows = __commonJS({
366
366
  }
367
367
  });
368
368
 
369
- // ../../node_modules/isexe/mode.js
369
+ // ../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js
370
370
  var require_mode = __commonJS({
371
- "../../node_modules/isexe/mode.js"(exports, module) {
371
+ "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js"(exports, module) {
372
372
  "use strict";
373
373
  module.exports = isexe;
374
374
  isexe.sync = sync;
@@ -400,9 +400,9 @@ var require_mode = __commonJS({
400
400
  }
401
401
  });
402
402
 
403
- // ../../node_modules/isexe/index.js
403
+ // ../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js
404
404
  var require_isexe = __commonJS({
405
- "../../node_modules/isexe/index.js"(exports, module) {
405
+ "../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js"(exports, module) {
406
406
  "use strict";
407
407
  var fs2 = __require("fs");
408
408
  var core;
@@ -456,9 +456,9 @@ var require_isexe = __commonJS({
456
456
  }
457
457
  });
458
458
 
459
- // ../../node_modules/cross-spawn/node_modules/which/which.js
459
+ // ../../node_modules/.bun/which@2.0.2/node_modules/which/which.js
460
460
  var require_which = __commonJS({
461
- "../../node_modules/cross-spawn/node_modules/which/which.js"(exports, module) {
461
+ "../../node_modules/.bun/which@2.0.2/node_modules/which/which.js"(exports, module) {
462
462
  "use strict";
463
463
  var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
464
464
  var path5 = __require("path");
@@ -553,9 +553,9 @@ var require_which = __commonJS({
553
553
  }
554
554
  });
555
555
 
556
- // ../../node_modules/path-key/index.js
556
+ // ../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js
557
557
  var require_path_key = __commonJS({
558
- "../../node_modules/path-key/index.js"(exports, module) {
558
+ "../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js"(exports, module) {
559
559
  "use strict";
560
560
  var pathKey = (options = {}) => {
561
561
  const environment = options.env || process.env;
@@ -570,9 +570,9 @@ var require_path_key = __commonJS({
570
570
  }
571
571
  });
572
572
 
573
- // ../../node_modules/cross-spawn/lib/util/resolveCommand.js
573
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
574
574
  var require_resolveCommand = __commonJS({
575
- "../../node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module) {
575
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module) {
576
576
  "use strict";
577
577
  var path5 = __require("path");
578
578
  var which = require_which();
@@ -612,9 +612,9 @@ var require_resolveCommand = __commonJS({
612
612
  }
613
613
  });
614
614
 
615
- // ../../node_modules/cross-spawn/lib/util/escape.js
615
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js
616
616
  var require_escape = __commonJS({
617
- "../../node_modules/cross-spawn/lib/util/escape.js"(exports, module) {
617
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js"(exports, module) {
618
618
  "use strict";
619
619
  var metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
620
620
  function escapeCommand(arg) {
@@ -637,17 +637,17 @@ var require_escape = __commonJS({
637
637
  }
638
638
  });
639
639
 
640
- // ../../node_modules/shebang-regex/index.js
640
+ // ../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js
641
641
  var require_shebang_regex = __commonJS({
642
- "../../node_modules/shebang-regex/index.js"(exports, module) {
642
+ "../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js"(exports, module) {
643
643
  "use strict";
644
644
  module.exports = /^#!(.*)/;
645
645
  }
646
646
  });
647
647
 
648
- // ../../node_modules/shebang-command/index.js
648
+ // ../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js
649
649
  var require_shebang_command = __commonJS({
650
- "../../node_modules/shebang-command/index.js"(exports, module) {
650
+ "../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js"(exports, module) {
651
651
  "use strict";
652
652
  var shebangRegex = require_shebang_regex();
653
653
  module.exports = (string = "") => {
@@ -665,9 +665,9 @@ var require_shebang_command = __commonJS({
665
665
  }
666
666
  });
667
667
 
668
- // ../../node_modules/cross-spawn/lib/util/readShebang.js
668
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js
669
669
  var require_readShebang = __commonJS({
670
- "../../node_modules/cross-spawn/lib/util/readShebang.js"(exports, module) {
670
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"(exports, module) {
671
671
  "use strict";
672
672
  var fs2 = __require("fs");
673
673
  var shebangCommand = require_shebang_command();
@@ -687,9 +687,9 @@ var require_readShebang = __commonJS({
687
687
  }
688
688
  });
689
689
 
690
- // ../../node_modules/cross-spawn/lib/parse.js
690
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js
691
691
  var require_parse = __commonJS({
692
- "../../node_modules/cross-spawn/lib/parse.js"(exports, module) {
692
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"(exports, module) {
693
693
  "use strict";
694
694
  var path5 = __require("path");
695
695
  var resolveCommand = require_resolveCommand();
@@ -749,9 +749,9 @@ var require_parse = __commonJS({
749
749
  }
750
750
  });
751
751
 
752
- // ../../node_modules/cross-spawn/lib/enoent.js
752
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js
753
753
  var require_enoent = __commonJS({
754
- "../../node_modules/cross-spawn/lib/enoent.js"(exports, module) {
754
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js"(exports, module) {
755
755
  "use strict";
756
756
  var isWin = process.platform === "win32";
757
757
  function notFoundError(original, syscall) {
@@ -799,9 +799,9 @@ var require_enoent = __commonJS({
799
799
  }
800
800
  });
801
801
 
802
- // ../../node_modules/cross-spawn/index.js
802
+ // ../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js
803
803
  var require_cross_spawn = __commonJS({
804
- "../../node_modules/cross-spawn/index.js"(exports, module) {
804
+ "../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js"(exports, module) {
805
805
  "use strict";
806
806
  var cp = __require("child_process");
807
807
  var parse2 = require_parse();
@@ -829,11 +829,11 @@ var require_cross_spawn = __commonJS({
829
829
  // src/index.ts
830
830
  var import_minimist = __toESM(require_minimist());
831
831
  var import_picocolors3 = __toESM(require_picocolors());
832
- import path4 from "node:path";
832
+ import path4 from "path";
833
833
 
834
834
  // src/utils.ts
835
- import { readFileSync, writeFileSync } from "node:fs";
836
- import path from "node:path";
835
+ import { readFileSync, writeFileSync } from "fs";
836
+ import path from "path";
837
837
  var getPackageManager = () => {
838
838
  if (process.env.npm_config_user_agent) {
839
839
  const agent = process.env.npm_config_user_agent;
@@ -877,8 +877,8 @@ var formatTargetDir = (targetDir) => targetDir?.trim().replace(/\/+$/g, "");
877
877
  // src/modules/vite-react.ts
878
878
  var import_cross_spawn = __toESM(require_cross_spawn());
879
879
  var import_picocolors = __toESM(require_picocolors());
880
- import path2 from "node:path";
881
- import { readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "node:fs";
880
+ import path2 from "path";
881
+ import { readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "fs";
882
882
  var buildRiverReactApp = async (cfg) => {
883
883
  const result = await scaffoldViteReactApp(cfg);
884
884
  if (result.signal === "SIGINT" || result.signal === "SIGTERM") {
@@ -944,8 +944,8 @@ ${viteConfig}`;
944
944
  // src/modules/clone-playground.ts
945
945
  var import_cross_spawn2 = __toESM(require_cross_spawn());
946
946
  var import_picocolors2 = __toESM(require_picocolors());
947
- import path3 from "node:path";
948
- import fs from "node:fs";
947
+ import path3 from "path";
948
+ import fs from "fs";
949
949
  import * as jsoncParser from "jsonc-parser";
950
950
  var clonePlayground = async (cfg) => {
951
951
  console.log(import_picocolors2.default.blue("\nCloning Towns Protocol Playground..."));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/minimist/index.js","../../../node_modules/picocolors/picocolors.js","../../../node_modules/isexe/windows.js","../../../node_modules/isexe/mode.js","../../../node_modules/isexe/index.js","../../../node_modules/cross-spawn/node_modules/which/which.js","../../../node_modules/path-key/index.js","../../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/shebang-regex/index.js","../../../node_modules/shebang-command/index.js","../../../node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/cross-spawn/lib/parse.js","../../../node_modules/cross-spawn/lib/enoent.js","../../../node_modules/cross-spawn/index.js","../src/index.ts","../src/utils.ts","../src/modules/vite-react.ts","../src/modules/clone-playground.ts"],"sourcesContent":["'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","import minimist from 'minimist'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport { getPackageManager, type CreateRiverBuildAppConfig, formatTargetDir } from './utils'\nimport { buildRiverReactApp } from './modules/vite-react'\nimport { clonePlayground } from './modules/clone-playground'\n\nconst argv = minimist<{\n template?: string\n help?: boolean\n}>(process.argv.slice(2), {\n default: { help: false, template: 'playground' },\n alias: { h: 'help', t: 'template' },\n string: ['_'],\n})\n\n// prettier-ignore\nconst helpMessage = `\\\nUsage: create-towns-protocol-app [OPTION]... [DIRECTORY]\n\nCreate a new Towns Protocol app.\nWith no arguments, creates a new app in the current directory.\n\nOptions:\n -t, --template NAME use a specific template\n\nAvailable templates:\n${picocolors.yellow ('react-ts react playground' )}\n`\n\ntype Template = 'react-ts' | 'react' | 'playground'\n\nconst build = {\n 'react-ts': buildRiverReactApp,\n react: buildRiverReactApp,\n playground: clonePlayground,\n} satisfies Record<Template, (cfg: CreateRiverBuildAppConfig) => Promise<void>>\n\nasync function init() {\n const targetDir = formatTargetDir(argv._[0]) || '.'\n const packageName = targetDir === '.' ? path.basename(process.cwd()) : targetDir\n const projectDir = targetDir === '.' ? process.cwd() : path.join(process.cwd(), targetDir)\n const pkgManager = getPackageManager()\n const template = (argv.template || argv.t) as Template\n\n const help = argv.help\n if (help) {\n console.log(helpMessage)\n return\n }\n\n console.log(picocolors.blue(`\\nScaffolding project in ${packageName}...`))\n await build[template]({\n projectDir,\n packageName,\n targetDir,\n viteTemplate: template !== 'playground' ? template : undefined,\n })\n console.log(picocolors.green('\\nDone! 🎉'))\n console.log(picocolors.blue('\\nNow run: cd ' + targetDir + ' && ' + pkgManager + ` install`))\n console.log(picocolors.blue('\\nThen run: ' + pkgManager + ' dev'))\n}\n\ninit().catch((e) => {\n console.error(e)\n process.exit(1)\n})\n","import { readFileSync, writeFileSync } from 'node:fs'\nimport path from 'node:path'\nimport playgroundPackageJson from '../../playground/package.json' with { type: 'json' }\n\nexport type CreateRiverBuildAppConfig = {\n projectDir: string\n packageName: string\n targetDir: string\n viteTemplate?: 'react-ts' | 'react'\n}\n\nexport const getPackageManager = () => {\n if (process.env.npm_config_user_agent) {\n const agent = process.env.npm_config_user_agent\n if (agent.startsWith('yarn')) return 'yarn'\n if (agent.startsWith('npm')) return 'npm'\n if (agent.startsWith('pnpm')) return 'pnpm'\n if (agent.startsWith('bun')) return 'bun'\n }\n // Default to npm if no user agent is found\n return 'npm'\n}\n\ntype PackageJson = typeof playgroundPackageJson\n\nexport const addDependencies = async (\n projectDir: string,\n cfg: (currentDeps: PackageJson) => {\n dependencies: Array<string | string[]>\n devDependencies?: Array<string | string[]>\n },\n) => {\n const packageJsonPath = path.join(projectDir, 'package.json')\n const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'))\n const { dependencies, devDependencies } = cfg(packageJson)\n\n if (devDependencies && devDependencies.length > 0) {\n if (!packageJson.devDependencies) {\n packageJson.devDependencies = {}\n }\n for (const dep of devDependencies) {\n if (Array.isArray(dep)) {\n packageJson.devDependencies[dep[0]] = dep[1]\n } else {\n packageJson.devDependencies[dep] = 'latest'\n }\n }\n }\n\n if (!packageJson.dependencies) {\n packageJson.dependencies = {}\n }\n for (const dep of dependencies) {\n if (Array.isArray(dep)) {\n packageJson.dependencies[dep[0]] = dep[1]\n } else {\n packageJson.dependencies[dep] = 'latest'\n }\n }\n\n writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\\n')\n}\n\nexport const formatTargetDir = (targetDir: string | undefined) =>\n targetDir?.trim().replace(/\\/+$/g, '')\n","import spawn from 'cross-spawn'\nimport { addDependencies, getPackageManager, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport { readFileSync, writeFileSync } from 'node:fs'\nimport picocolors from 'picocolors'\n\nexport const buildRiverReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const result = await scaffoldViteReactApp(cfg)\n\n if (result.signal === 'SIGINT' || result.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result.status !== 0) {\n console.error(picocolors.red('\\nFailed to scaffold project.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nVite project created successfully.'))\n console.log(picocolors.blue('\\nAdding River SDK dependencies...'))\n\n await addDependencies(cfg.projectDir, () => ({\n dependencies: ['@towns-protocol/react-sdk', '@towns-protocol/sdk'],\n devDependencies: ['vite-plugin-node-polyfills'],\n }))\n\n console.log(picocolors.green('\\nRiver SDK dependencies added successfully.'))\n console.log(picocolors.blue('\\nUpdating vite.config.ts...'))\n\n await updateViteConfigWithPolyfills(cfg)\n\n console.log(picocolors.green('\\nvite.config.ts updated successfully.'))\n}\n\nconst scaffoldViteReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir, packageName, viteTemplate = 'react-ts' } = cfg\n const pkgManager = getPackageManager()\n\n const createViteCommand = (() => {\n const nameForViteScript = targetDir === '.' ? '.' : packageName\n switch (pkgManager) {\n case 'yarn':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'pnpm':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'bun':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n default:\n // npm requires the -- flag to pass args to the template\n return [\n 'create',\n 'vite@latest',\n nameForViteScript,\n '--',\n '--template',\n viteTemplate,\n ]\n }\n })()\n\n return spawn.sync(pkgManager, createViteCommand, { stdio: 'inherit' })\n}\n\nconst updateViteConfigWithPolyfills = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir, viteTemplate } = cfg\n const isJsTemplate = viteTemplate === 'react'\n const viteConfigPath = path.join(projectDir, isJsTemplate ? 'vite.config.js' : 'vite.config.ts')\n let viteConfig = readFileSync(viteConfigPath, 'utf8')\n\n // Add import for vite-plugin-node-polyfills\n viteConfig = `import { nodePolyfills } from 'vite-plugin-node-polyfills'\\n${viteConfig}`\n\n // Add nodePolyfills to plugins array\n viteConfig = viteConfig.replace(/plugins:\\s*\\[([\\s\\S]*?)\\]/, (_, pluginsContent) => {\n const trimmedContent = pluginsContent.trim()\n const separator = trimmedContent ? ',\\n ' : ''\n return `plugins: [${pluginsContent}${separator}nodePolyfills()\\n ]`\n })\n\n writeFileSync(viteConfigPath, viteConfig)\n}\n","import spawn from 'cross-spawn'\nimport { addDependencies, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport fs from 'node:fs'\nimport * as jsoncParser from 'jsonc-parser'\n\nexport const clonePlayground = async (cfg: CreateRiverBuildAppConfig) => {\n console.log(picocolors.blue('\\nCloning Towns Protocol Playground...'))\n\n const result = await cloneRepo(cfg)\n if (!result) return\n if (result?.signal === 'SIGINT' || result?.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result && result.status !== 0) {\n console.error(picocolors.red('\\nFailed to clone playground.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nPlayground cloned successfully.'))\n console.log(picocolors.blue('\\nUpdating dependencies...'))\n\n await updateDependencies(cfg)\n console.log(picocolors.green('\\nDependencies updated successfully.'))\n\n await fixTsConfig(cfg)\n spawn.sync('git', ['init'], {\n stdio: 'inherit',\n cwd: cfg.targetDir,\n })\n}\n\nconst cloneRepo = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir } = cfg\n const tempDir = `${targetDir}-temp`\n\n // Clone with minimal data to a temporary directory\n const latestSdkTag = getLatestSdkTag()\n if (!latestSdkTag) {\n console.error(picocolors.red('\\nFailed to get latest SDK tag.'))\n return\n }\n\n const cloneResult = spawn.sync(\n 'git',\n [\n 'clone',\n '--no-checkout',\n '--depth',\n '1',\n '--sparse',\n '--branch',\n latestSdkTag,\n 'https://github.com/towns-protocol/towns.git',\n tempDir,\n ],\n { stdio: 'inherit' },\n )\n if (cloneResult.status !== 0) return cloneResult\n\n // Set up sparse checkout\n const sparseResult = spawn.sync('git', ['sparse-checkout', 'set', 'packages/playground'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (sparseResult.status !== 0) return sparseResult\n\n // Checkout the content\n const checkoutResult = spawn.sync('git', ['checkout'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (checkoutResult.status !== 0) return checkoutResult\n\n // Verify playground directory exists\n const playgroundDir = path.join(tempDir, 'packages/playground')\n const baseTsConfigPath = path.join(tempDir, 'packages/tsconfig.base.json')\n\n if (!fs.existsSync(playgroundDir)) {\n console.error(picocolors.red(`\\nPlayground directory not found at ${playgroundDir}`))\n return\n }\n\n // Move playground contents to target directory\n fs.mkdirSync(targetDir, { recursive: true })\n fs.cpSync(playgroundDir, targetDir, { recursive: true })\n\n // Copy tsconfig.base.json if it exists (since playground uses the config from monorepo)\n if (fs.existsSync(baseTsConfigPath)) {\n fs.copyFileSync(baseTsConfigPath, path.join(targetDir, 'tsconfig.base.json'))\n }\n // Clean up temporary directory\n fs.rmSync(tempDir, { recursive: true, force: true })\n return checkoutResult\n}\n\nconst updateDependencies = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n\n // Update package.json with latest Towns Protocol dependencies\n await addDependencies(projectDir, (json) => {\n const allTownsProtocolDeps = Object.keys(json.dependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n const allTownsProtocolDevDeps = Object.keys(json.devDependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n return {\n dependencies: allTownsProtocolDeps,\n devDependencies: [\n ...allTownsProtocolDevDeps,\n // hardcoded for now. if we add ^ in front of the version (e.g. ^5.1.6)\n // it will make npm install to get the latest 5.x.x\n ['typescript', '5.8.2'],\n ],\n }\n })\n}\n\nconst fixTsConfig = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n const tsConfigPath = path.join(projectDir, 'tsconfig.json')\n\n if (fs.existsSync(tsConfigPath)) {\n const tsConfigContent = fs.readFileSync(tsConfigPath, 'utf8')\n // TSConfig is a JSON with comments, so we need to parse it with jsonc-parser\n const tsConfig = jsoncParser.parse(tsConfigContent)\n\n if (tsConfig.extends === './../tsconfig.base.json') {\n // Create an edit to replace the extends value\n const edits = jsoncParser.modify(tsConfigContent, ['extends'], './tsconfig.base.json', {\n formattingOptions: { tabSize: 2 },\n })\n\n // Apply the edit\n const updatedContent = jsoncParser.applyEdits(tsConfigContent, edits)\n fs.writeFileSync(tsConfigPath, updatedContent)\n }\n }\n}\n\nfunction getLatestSdkTag(): string | null {\n const tagsResult = spawn.sync(\n 'git',\n ['ls-remote', '--tags', 'https://github.com/towns-protocol/towns.git', 'sdk-*'],\n { encoding: 'utf8' },\n )\n\n if (tagsResult.status !== 0 || !tagsResult.stdout) return null\n\n const tags = tagsResult.stdout\n .split('\\n')\n .filter(Boolean)\n .map((line) => {\n const [_hash, ref] = line.split('\\t')\n const tag = ref.replace('refs/tags/', '').replace(/\\^{}$/, '')\n\n // Extract version numbers from tags like sdk-hash-1.2.3\n const match = tag.match(/^sdk-[0-9a-f]+-(\\d+)\\.(\\d+)\\.(\\d+)$/)\n if (!match) return null\n\n return {\n tag,\n version: [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])],\n }\n })\n .filter(\n (item): item is { tag: string; version: number[] } =>\n item !== null && Array.isArray(item.version) && item.version.length === 3,\n )\n .sort((a, b) => {\n // Compare version numbers\n for (let i = 0; i < 3; i++) {\n if (a.version[i] !== b.version[i]) {\n return b.version[i] - a.version[i]\n }\n }\n return 0\n })\n\n return tags.length > 0 ? tags[0].tag : null\n}\n"],"mappings":"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","names":["key","argv","arg","value","i","argv","fs","path","fs","path","fs","path","path","path","path","fs","path","parse","parse","spawn","import_picocolors","path","path","readFileSync","writeFileSync","picocolors","spawn","import_cross_spawn","import_picocolors","path","picocolors","spawn","minimist","picocolors","path"]}
1
+ {"version":3,"sources":["../../../node_modules/.bun/minimist@1.2.8/node_modules/minimist/index.js","../../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/windows.js","../../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/mode.js","../../../node_modules/.bun/isexe@2.0.0/node_modules/isexe/index.js","../../../node_modules/.bun/which@2.0.2/node_modules/which/which.js","../../../node_modules/.bun/path-key@3.1.1/node_modules/path-key/index.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js","../../../node_modules/.bun/shebang-regex@3.0.0/node_modules/shebang-regex/index.js","../../../node_modules/.bun/shebang-command@2.0.0/node_modules/shebang-command/index.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js","../../../node_modules/.bun/cross-spawn@7.0.6/node_modules/cross-spawn/index.js","../src/index.ts","../src/utils.ts","../src/modules/vite-react.ts","../src/modules/clone-playground.ts"],"sourcesContent":["'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","import minimist from 'minimist'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport { getPackageManager, type CreateRiverBuildAppConfig, formatTargetDir } from './utils'\nimport { buildRiverReactApp } from './modules/vite-react'\nimport { clonePlayground } from './modules/clone-playground'\n\nconst argv = minimist<{\n template?: string\n help?: boolean\n}>(process.argv.slice(2), {\n default: { help: false, template: 'playground' },\n alias: { h: 'help', t: 'template' },\n string: ['_'],\n})\n\n// prettier-ignore\nconst helpMessage = `\\\nUsage: create-towns-protocol-app [OPTION]... [DIRECTORY]\n\nCreate a new Towns Protocol app.\nWith no arguments, creates a new app in the current directory.\n\nOptions:\n -t, --template NAME use a specific template\n\nAvailable templates:\n${picocolors.yellow ('react-ts react playground' )}\n`\n\ntype Template = 'react-ts' | 'react' | 'playground'\n\nconst build = {\n 'react-ts': buildRiverReactApp,\n react: buildRiverReactApp,\n playground: clonePlayground,\n} satisfies Record<Template, (cfg: CreateRiverBuildAppConfig) => Promise<void>>\n\nasync function init() {\n const targetDir = formatTargetDir(argv._[0]) || '.'\n const packageName = targetDir === '.' ? path.basename(process.cwd()) : targetDir\n const projectDir = targetDir === '.' ? process.cwd() : path.join(process.cwd(), targetDir)\n const pkgManager = getPackageManager()\n const template = (argv.template || argv.t) as Template\n\n const help = argv.help\n if (help) {\n console.log(helpMessage)\n return\n }\n\n console.log(picocolors.blue(`\\nScaffolding project in ${packageName}...`))\n await build[template]({\n projectDir,\n packageName,\n targetDir,\n viteTemplate: template !== 'playground' ? template : undefined,\n })\n console.log(picocolors.green('\\nDone! 🎉'))\n console.log(picocolors.blue('\\nNow run: cd ' + targetDir + ' && ' + pkgManager + ` install`))\n console.log(picocolors.blue('\\nThen run: ' + pkgManager + ' dev'))\n}\n\ninit().catch((e) => {\n console.error(e)\n process.exit(1)\n})\n","import { readFileSync, writeFileSync } from 'node:fs'\nimport path from 'node:path'\nimport playgroundPackageJson from '../../playground/package.json' with { type: 'json' }\n\nexport type CreateRiverBuildAppConfig = {\n projectDir: string\n packageName: string\n targetDir: string\n viteTemplate?: 'react-ts' | 'react'\n}\n\nexport const getPackageManager = () => {\n if (process.env.npm_config_user_agent) {\n const agent = process.env.npm_config_user_agent\n if (agent.startsWith('yarn')) return 'yarn'\n if (agent.startsWith('npm')) return 'npm'\n if (agent.startsWith('pnpm')) return 'pnpm'\n if (agent.startsWith('bun')) return 'bun'\n }\n // Default to npm if no user agent is found\n return 'npm'\n}\n\ntype PackageJson = typeof playgroundPackageJson\n\nexport const addDependencies = async (\n projectDir: string,\n cfg: (currentDeps: PackageJson) => {\n dependencies: Array<string | string[]>\n devDependencies?: Array<string | string[]>\n },\n) => {\n const packageJsonPath = path.join(projectDir, 'package.json')\n const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'))\n const { dependencies, devDependencies } = cfg(packageJson)\n\n if (devDependencies && devDependencies.length > 0) {\n if (!packageJson.devDependencies) {\n packageJson.devDependencies = {}\n }\n for (const dep of devDependencies) {\n if (Array.isArray(dep)) {\n packageJson.devDependencies[dep[0]] = dep[1]\n } else {\n packageJson.devDependencies[dep] = 'latest'\n }\n }\n }\n\n if (!packageJson.dependencies) {\n packageJson.dependencies = {}\n }\n for (const dep of dependencies) {\n if (Array.isArray(dep)) {\n packageJson.dependencies[dep[0]] = dep[1]\n } else {\n packageJson.dependencies[dep] = 'latest'\n }\n }\n\n writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\\n')\n}\n\nexport const formatTargetDir = (targetDir: string | undefined) =>\n targetDir?.trim().replace(/\\/+$/g, '')\n","import spawn from 'cross-spawn'\nimport { addDependencies, getPackageManager, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport { readFileSync, writeFileSync } from 'node:fs'\nimport picocolors from 'picocolors'\n\nexport const buildRiverReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const result = await scaffoldViteReactApp(cfg)\n\n if (result.signal === 'SIGINT' || result.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result.status !== 0) {\n console.error(picocolors.red('\\nFailed to scaffold project.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nVite project created successfully.'))\n console.log(picocolors.blue('\\nAdding River SDK dependencies...'))\n\n await addDependencies(cfg.projectDir, () => ({\n dependencies: ['@towns-protocol/react-sdk', '@towns-protocol/sdk'],\n devDependencies: ['vite-plugin-node-polyfills'],\n }))\n\n console.log(picocolors.green('\\nRiver SDK dependencies added successfully.'))\n console.log(picocolors.blue('\\nUpdating vite.config.ts...'))\n\n await updateViteConfigWithPolyfills(cfg)\n\n console.log(picocolors.green('\\nvite.config.ts updated successfully.'))\n}\n\nconst scaffoldViteReactApp = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir, packageName, viteTemplate = 'react-ts' } = cfg\n const pkgManager = getPackageManager()\n\n const createViteCommand = (() => {\n const nameForViteScript = targetDir === '.' ? '.' : packageName\n switch (pkgManager) {\n case 'yarn':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'pnpm':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n case 'bun':\n return ['create', 'vite', nameForViteScript, '--template', viteTemplate]\n default:\n // npm requires the -- flag to pass args to the template\n return [\n 'create',\n 'vite@latest',\n nameForViteScript,\n '--',\n '--template',\n viteTemplate,\n ]\n }\n })()\n\n return spawn.sync(pkgManager, createViteCommand, { stdio: 'inherit' })\n}\n\nconst updateViteConfigWithPolyfills = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir, viteTemplate } = cfg\n const isJsTemplate = viteTemplate === 'react'\n const viteConfigPath = path.join(projectDir, isJsTemplate ? 'vite.config.js' : 'vite.config.ts')\n let viteConfig = readFileSync(viteConfigPath, 'utf8')\n\n // Add import for vite-plugin-node-polyfills\n viteConfig = `import { nodePolyfills } from 'vite-plugin-node-polyfills'\\n${viteConfig}`\n\n // Add nodePolyfills to plugins array\n viteConfig = viteConfig.replace(/plugins:\\s*\\[([\\s\\S]*?)\\]/, (_, pluginsContent) => {\n const trimmedContent = pluginsContent.trim()\n const separator = trimmedContent ? ',\\n ' : ''\n return `plugins: [${pluginsContent}${separator}nodePolyfills()\\n ]`\n })\n\n writeFileSync(viteConfigPath, viteConfig)\n}\n","import spawn from 'cross-spawn'\nimport { addDependencies, type CreateRiverBuildAppConfig } from '../utils'\nimport path from 'node:path'\nimport picocolors from 'picocolors'\nimport fs from 'node:fs'\nimport * as jsoncParser from 'jsonc-parser'\n\nexport const clonePlayground = async (cfg: CreateRiverBuildAppConfig) => {\n console.log(picocolors.blue('\\nCloning Towns Protocol Playground...'))\n\n const result = await cloneRepo(cfg)\n if (!result) return\n if (result?.signal === 'SIGINT' || result?.signal === 'SIGTERM') {\n console.log('\\nOperation cancelled')\n process.exit(1)\n }\n if (result && result.status !== 0) {\n console.error(picocolors.red('\\nFailed to clone playground.'))\n process.exit(1)\n }\n\n console.log(picocolors.green('\\nPlayground cloned successfully.'))\n console.log(picocolors.blue('\\nUpdating dependencies...'))\n\n await updateDependencies(cfg)\n console.log(picocolors.green('\\nDependencies updated successfully.'))\n\n await fixTsConfig(cfg)\n spawn.sync('git', ['init'], {\n stdio: 'inherit',\n cwd: cfg.targetDir,\n })\n}\n\nconst cloneRepo = async (cfg: CreateRiverBuildAppConfig) => {\n const { targetDir } = cfg\n const tempDir = `${targetDir}-temp`\n\n // Clone with minimal data to a temporary directory\n const latestSdkTag = getLatestSdkTag()\n if (!latestSdkTag) {\n console.error(picocolors.red('\\nFailed to get latest SDK tag.'))\n return\n }\n\n const cloneResult = spawn.sync(\n 'git',\n [\n 'clone',\n '--no-checkout',\n '--depth',\n '1',\n '--sparse',\n '--branch',\n latestSdkTag,\n 'https://github.com/towns-protocol/towns.git',\n tempDir,\n ],\n { stdio: 'inherit' },\n )\n if (cloneResult.status !== 0) return cloneResult\n\n // Set up sparse checkout\n const sparseResult = spawn.sync('git', ['sparse-checkout', 'set', 'packages/playground'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (sparseResult.status !== 0) return sparseResult\n\n // Checkout the content\n const checkoutResult = spawn.sync('git', ['checkout'], {\n stdio: 'inherit',\n cwd: tempDir,\n })\n if (checkoutResult.status !== 0) return checkoutResult\n\n // Verify playground directory exists\n const playgroundDir = path.join(tempDir, 'packages/playground')\n const baseTsConfigPath = path.join(tempDir, 'packages/tsconfig.base.json')\n\n if (!fs.existsSync(playgroundDir)) {\n console.error(picocolors.red(`\\nPlayground directory not found at ${playgroundDir}`))\n return\n }\n\n // Move playground contents to target directory\n fs.mkdirSync(targetDir, { recursive: true })\n fs.cpSync(playgroundDir, targetDir, { recursive: true })\n\n // Copy tsconfig.base.json if it exists (since playground uses the config from monorepo)\n if (fs.existsSync(baseTsConfigPath)) {\n fs.copyFileSync(baseTsConfigPath, path.join(targetDir, 'tsconfig.base.json'))\n }\n // Clean up temporary directory\n fs.rmSync(tempDir, { recursive: true, force: true })\n return checkoutResult\n}\n\nconst updateDependencies = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n\n // Update package.json with latest Towns Protocol dependencies\n await addDependencies(projectDir, (json) => {\n const allTownsProtocolDeps = Object.keys(json.dependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n const allTownsProtocolDevDeps = Object.keys(json.devDependencies).filter((dep) =>\n dep.startsWith('@towns-protocol'),\n )\n return {\n dependencies: allTownsProtocolDeps,\n devDependencies: [\n ...allTownsProtocolDevDeps,\n // hardcoded for now. if we add ^ in front of the version (e.g. ^5.1.6)\n // it will make npm install to get the latest 5.x.x\n ['typescript', '5.8.2'],\n ],\n }\n })\n}\n\nconst fixTsConfig = async (cfg: CreateRiverBuildAppConfig) => {\n const { projectDir } = cfg\n const tsConfigPath = path.join(projectDir, 'tsconfig.json')\n\n if (fs.existsSync(tsConfigPath)) {\n const tsConfigContent = fs.readFileSync(tsConfigPath, 'utf8')\n // TSConfig is a JSON with comments, so we need to parse it with jsonc-parser\n const tsConfig = jsoncParser.parse(tsConfigContent)\n\n if (tsConfig.extends === './../tsconfig.base.json') {\n // Create an edit to replace the extends value\n const edits = jsoncParser.modify(tsConfigContent, ['extends'], './tsconfig.base.json', {\n formattingOptions: { tabSize: 2 },\n })\n\n // Apply the edit\n const updatedContent = jsoncParser.applyEdits(tsConfigContent, edits)\n fs.writeFileSync(tsConfigPath, updatedContent)\n }\n }\n}\n\nfunction getLatestSdkTag(): string | null {\n const tagsResult = spawn.sync(\n 'git',\n ['ls-remote', '--tags', 'https://github.com/towns-protocol/towns.git', 'sdk-*'],\n { encoding: 'utf8' },\n )\n\n if (tagsResult.status !== 0 || !tagsResult.stdout) return null\n\n const tags = tagsResult.stdout\n .split('\\n')\n .filter(Boolean)\n .map((line) => {\n const [_hash, ref] = line.split('\\t')\n const tag = ref.replace('refs/tags/', '').replace(/\\^{}$/, '')\n\n // Extract version numbers from tags like sdk-hash-1.2.3\n const match = tag.match(/^sdk-[0-9a-f]+-(\\d+)\\.(\\d+)\\.(\\d+)$/)\n if (!match) return null\n\n return {\n tag,\n version: [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])],\n }\n })\n .filter(\n (item): item is { tag: string; version: number[] } =>\n item !== null && Array.isArray(item.version) && item.version.length === 3,\n )\n .sort((a, b) => {\n // Compare version numbers\n for (let i = 0; i < 3; i++) {\n if (a.version[i] !== b.version[i]) {\n return b.version[i] - a.version[i]\n }\n }\n return 0\n })\n\n return tags.length > 0 ? tags[0].tag : null\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAEA,aAAS,OAAO,KAAK,MAAM;AAC1B,UAAI,IAAI;AACR,WAAK,MAAM,GAAG,EAAE,EAAE,QAAQ,SAAUA,MAAK;AACxC,YAAI,EAAEA,IAAG,KAAK,CAAC;AAAA,MAChB,CAAC;AAED,UAAI,MAAM,KAAK,KAAK,SAAS,CAAC;AAC9B,aAAO,OAAO;AAAA,IACf;AAEA,aAAS,SAAS,GAAG;AACpB,UAAI,OAAO,MAAM,UAAU;AAAE,eAAO;AAAA,MAAM;AAC1C,UAAK,iBAAkB,KAAK,CAAC,GAAG;AAAE,eAAO;AAAA,MAAM;AAC/C,aAAQ,6CAA8C,KAAK,CAAC;AAAA,IAC7D;AAEA,aAAS,qBAAqB,KAAK,KAAK;AACvC,aAAQ,QAAQ,iBAAiB,OAAO,IAAI,GAAG,MAAM,cAAe,QAAQ;AAAA,IAC7E;AAEA,WAAO,UAAU,SAAU,MAAM,MAAM;AACtC,UAAI,CAAC,MAAM;AAAE,eAAO,CAAC;AAAA,MAAG;AAExB,UAAI,QAAQ;AAAA,QACX,OAAO,CAAC;AAAA,QACR,SAAS,CAAC;AAAA,QACV,WAAW;AAAA,MACZ;AAEA,UAAI,OAAO,KAAK,YAAY,YAAY;AACvC,cAAM,YAAY,KAAK;AAAA,MACxB;AAEA,UAAI,OAAO,KAAK,YAAY,aAAa,KAAK,SAAS;AACtD,cAAM,WAAW;AAAA,MAClB,OAAO;AACN,SAAC,EAAE,OAAO,KAAK,OAAO,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAUA,MAAK;AAC9D,gBAAM,MAAMA,IAAG,IAAI;AAAA,QACpB,CAAC;AAAA,MACF;AAEA,UAAI,UAAU,CAAC;AAEf,eAAS,eAAeA,MAAK;AAC5B,eAAO,QAAQA,IAAG,EAAE,KAAK,SAAU,GAAG;AACrC,iBAAO,MAAM,MAAM,CAAC;AAAA,QACrB,CAAC;AAAA,MACF;AAEA,aAAO,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE,QAAQ,SAAUA,MAAK;AACpD,gBAAQA,IAAG,IAAI,CAAC,EAAE,OAAO,KAAK,MAAMA,IAAG,CAAC;AACxC,gBAAQA,IAAG,EAAE,QAAQ,SAAU,GAAG;AACjC,kBAAQ,CAAC,IAAI,CAACA,IAAG,EAAE,OAAO,QAAQA,IAAG,EAAE,OAAO,SAAU,GAAG;AAC1D,mBAAO,MAAM;AAAA,UACd,CAAC,CAAC;AAAA,QACH,CAAC;AAAA,MACF,CAAC;AAED,OAAC,EAAE,OAAO,KAAK,MAAM,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAUA,MAAK;AAC7D,cAAM,QAAQA,IAAG,IAAI;AACrB,YAAI,QAAQA,IAAG,GAAG;AACjB,WAAC,EAAE,OAAO,QAAQA,IAAG,CAAC,EAAE,QAAQ,SAAU,GAAG;AAC5C,kBAAM,QAAQ,CAAC,IAAI;AAAA,UACpB,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAED,UAAI,WAAW,KAAK,WAAW,CAAC;AAEhC,UAAIC,QAAO,EAAE,GAAG,CAAC,EAAE;AAEnB,eAAS,WAAWD,MAAKE,MAAK;AAC7B,eAAQ,MAAM,YAAa,YAAa,KAAKA,IAAG,KAC5C,MAAM,QAAQF,IAAG,KACjB,MAAM,MAAMA,IAAG,KACf,QAAQA,IAAG;AAAA,MAChB;AAEA,eAAS,OAAO,KAAK,MAAMG,QAAO;AACjC,YAAI,IAAI;AACR,iBAASC,KAAI,GAAGA,KAAI,KAAK,SAAS,GAAGA,MAAK;AACzC,cAAIJ,OAAM,KAAKI,EAAC;AAChB,cAAI,qBAAqB,GAAGJ,IAAG,GAAG;AAAE;AAAA,UAAQ;AAC5C,cAAI,EAAEA,IAAG,MAAM,QAAW;AAAE,cAAEA,IAAG,IAAI,CAAC;AAAA,UAAG;AACzC,cACC,EAAEA,IAAG,MAAM,OAAO,aACf,EAAEA,IAAG,MAAM,OAAO,aAClB,EAAEA,IAAG,MAAM,OAAO,WACpB;AACD,cAAEA,IAAG,IAAI,CAAC;AAAA,UACX;AACA,cAAI,EAAEA,IAAG,MAAM,MAAM,WAAW;AAAE,cAAEA,IAAG,IAAI,CAAC;AAAA,UAAG;AAC/C,cAAI,EAAEA,IAAG;AAAA,QACV;AAEA,YAAI,UAAU,KAAK,KAAK,SAAS,CAAC;AAClC,YAAI,qBAAqB,GAAG,OAAO,GAAG;AAAE;AAAA,QAAQ;AAChD,YACC,MAAM,OAAO,aACV,MAAM,OAAO,aACb,MAAM,OAAO,WACf;AACD,cAAI,CAAC;AAAA,QACN;AACA,YAAI,MAAM,MAAM,WAAW;AAAE,cAAI,CAAC;AAAA,QAAG;AACrC,YAAI,EAAE,OAAO,MAAM,UAAa,MAAM,MAAM,OAAO,KAAK,OAAO,EAAE,OAAO,MAAM,WAAW;AACxF,YAAE,OAAO,IAAIG;AAAA,QACd,WAAW,MAAM,QAAQ,EAAE,OAAO,CAAC,GAAG;AACrC,YAAE,OAAO,EAAE,KAAKA,MAAK;AAAA,QACtB,OAAO;AACN,YAAE,OAAO,IAAI,CAAC,EAAE,OAAO,GAAGA,MAAK;AAAA,QAChC;AAAA,MACD;AAEA,eAAS,OAAOH,MAAK,KAAKE,MAAK;AAC9B,YAAIA,QAAO,MAAM,aAAa,CAAC,WAAWF,MAAKE,IAAG,GAAG;AACpD,cAAI,MAAM,UAAUA,IAAG,MAAM,OAAO;AAAE;AAAA,UAAQ;AAAA,QAC/C;AAEA,YAAIC,SAAQ,CAAC,MAAM,QAAQH,IAAG,KAAK,SAAS,GAAG,IAC5C,OAAO,GAAG,IACV;AACH,eAAOC,OAAMD,KAAI,MAAM,GAAG,GAAGG,MAAK;AAElC,SAAC,QAAQH,IAAG,KAAK,CAAC,GAAG,QAAQ,SAAU,GAAG;AACzC,iBAAOC,OAAM,EAAE,MAAM,GAAG,GAAGE,MAAK;AAAA,QACjC,CAAC;AAAA,MACF;AAEA,aAAO,KAAK,MAAM,KAAK,EAAE,QAAQ,SAAUH,MAAK;AAC/C,eAAOA,MAAK,SAASA,IAAG,MAAM,SAAY,QAAQ,SAASA,IAAG,CAAC;AAAA,MAChE,CAAC;AAED,UAAI,WAAW,CAAC;AAEhB,UAAI,KAAK,QAAQ,IAAI,MAAM,IAAI;AAC9B,mBAAW,KAAK,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC;AAC5C,eAAO,KAAK,MAAM,GAAG,KAAK,QAAQ,IAAI,CAAC;AAAA,MACxC;AAEA,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,YAAI,MAAM,KAAK,CAAC;AAChB,YAAI;AACJ,YAAI;AAEJ,YAAK,SAAU,KAAK,GAAG,GAAG;AAIzB,cAAI,IAAI,IAAI,MAAM,uBAAuB;AACzC,gBAAM,EAAE,CAAC;AACT,cAAI,QAAQ,EAAE,CAAC;AACf,cAAI,MAAM,MAAM,GAAG,GAAG;AACrB,oBAAQ,UAAU;AAAA,UACnB;AACA,iBAAO,KAAK,OAAO,GAAG;AAAA,QACvB,WAAY,WAAY,KAAK,GAAG,GAAG;AAClC,gBAAM,IAAI,MAAM,YAAY,EAAE,CAAC;AAC/B,iBAAO,KAAK,OAAO,GAAG;AAAA,QACvB,WAAY,QAAS,KAAK,GAAG,GAAG;AAC/B,gBAAM,IAAI,MAAM,SAAS,EAAE,CAAC;AAC5B,iBAAO,KAAK,IAAI,CAAC;AACjB,cACC,SAAS,UACN,CAAE,cAAe,KAAK,IAAI,KAC1B,CAAC,MAAM,MAAM,GAAG,KAChB,CAAC,MAAM,aACN,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,OACzC;AACD,mBAAO,KAAK,MAAM,GAAG;AACrB,iBAAK;AAAA,UACN,WAAY,iBAAkB,KAAK,IAAI,GAAG;AACzC,mBAAO,KAAK,SAAS,QAAQ,GAAG;AAChC,iBAAK;AAAA,UACN,OAAO;AACN,mBAAO,KAAK,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,GAAG;AAAA,UAChD;AAAA,QACD,WAAY,UAAW,KAAK,GAAG,GAAG;AACjC,cAAI,UAAU,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE;AAEvC,cAAI,SAAS;AACb,mBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,mBAAO,IAAI,MAAM,IAAI,CAAC;AAEtB,gBAAI,SAAS,KAAK;AACjB,qBAAO,QAAQ,CAAC,GAAG,MAAM,GAAG;AAC5B;AAAA,YACD;AAEA,gBAAK,WAAY,KAAK,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK;AACrD,qBAAO,QAAQ,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,GAAG;AACrC,uBAAS;AACT;AAAA,YACD;AAEA,gBACE,WAAY,KAAK,QAAQ,CAAC,CAAC,KACxB,0BAA2B,KAAK,IAAI,GACvC;AACD,qBAAO,QAAQ,CAAC,GAAG,MAAM,GAAG;AAC5B,uBAAS;AACT;AAAA,YACD;AAEA,gBAAI,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG;AACjD,qBAAO,QAAQ,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,GAAG,GAAG;AACxC,uBAAS;AACT;AAAA,YACD,OAAO;AACN,qBAAO,QAAQ,CAAC,GAAG,MAAM,QAAQ,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,GAAG;AAAA,YAC9D;AAAA,UACD;AAEA,gBAAM,IAAI,MAAM,EAAE,EAAE,CAAC;AACrB,cAAI,CAAC,UAAU,QAAQ,KAAK;AAC3B,gBACC,KAAK,IAAI,CAAC,KACP,CAAE,cAAe,KAAK,KAAK,IAAI,CAAC,CAAC,KACjC,CAAC,MAAM,MAAM,GAAG,MACf,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,OACzC;AACD,qBAAO,KAAK,KAAK,IAAI,CAAC,GAAG,GAAG;AAC5B,mBAAK;AAAA,YACN,WAAW,KAAK,IAAI,CAAC,KAAM,iBAAkB,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG;AAC/D,qBAAO,KAAK,KAAK,IAAI,CAAC,MAAM,QAAQ,GAAG;AACvC,mBAAK;AAAA,YACN,OAAO;AACN,qBAAO,KAAK,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,GAAG;AAAA,YAChD;AAAA,UACD;AAAA,QACD,OAAO;AACN,cAAI,CAAC,MAAM,aAAa,MAAM,UAAU,GAAG,MAAM,OAAO;AACvD,YAAAC,MAAK,EAAE,KAAK,MAAM,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,UAClE;AACA,cAAI,KAAK,WAAW;AACnB,YAAAA,MAAK,EAAE,KAAK,MAAMA,MAAK,GAAG,KAAK,MAAM,IAAI,CAAC,CAAC;AAC3C;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,aAAO,KAAK,QAAQ,EAAE,QAAQ,SAAU,GAAG;AAC1C,YAAI,CAAC,OAAOA,OAAM,EAAE,MAAM,GAAG,CAAC,GAAG;AAChC,iBAAOA,OAAM,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC;AAEtC,WAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,SAAU,GAAG;AACvC,mBAAOA,OAAM,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC;AAAA,UACvC,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAED,UAAI,KAAK,IAAI,GAAG;AACf,QAAAA,MAAK,IAAI,IAAI,SAAS,MAAM;AAAA,MAC7B,OAAO;AACN,iBAAS,QAAQ,SAAU,GAAG;AAC7B,UAAAA,MAAK,EAAE,KAAK,CAAC;AAAA,QACd,CAAC;AAAA,MACF;AAEA,aAAOA;AAAA,IACR;AAAA;AAAA;;;ACtQA;AAAA;AAAA;AAAA,QAAI,IAAI,WAAW,CAAC;AAApB,QAAuBI,QAAO,EAAE,QAAQ,CAAC;AAAzC,QAA4C,MAAM,EAAE,OAAO,CAAC;AAC5D,QAAI,mBACH,EAAE,CAAC,CAAC,IAAI,YAAYA,MAAK,SAAS,YAAY,OAC7C,CAAC,CAAC,IAAI,eAAeA,MAAK,SAAS,SAAS,KAAK,EAAE,aAAa,YAAa,EAAE,UAAU,CAAC,GAAG,SAAS,IAAI,SAAS,UAAW,CAAC,CAAC,IAAI;AAEtI,QAAI,YAAY,CAAC,MAAM,OAAO,UAAU,SACvC,WAAS;AACR,UAAI,SAAS,KAAK,OAAO,QAAQ,OAAO,QAAQ,OAAO,KAAK,MAAM;AAClE,aAAO,CAAC,QAAQ,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,IAAI,QAAQ,OAAO,SAAS;AAAA,IAC9F;AAED,QAAI,eAAe,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrD,UAAI,SAAS,IAAI,SAAS;AAC1B,SAAG;AACF,kBAAU,OAAO,UAAU,QAAQ,KAAK,IAAI;AAC5C,iBAAS,QAAQ,MAAM;AACvB,gBAAQ,OAAO,QAAQ,OAAO,MAAM;AAAA,MACrC,SAAS,CAAC;AACV,aAAO,SAAS,OAAO,UAAU,MAAM;AAAA,IACxC;AAEA,QAAI,eAAe,CAAC,UAAU,qBAAqB;AAClD,UAAI,IAAI,UAAU,YAAY,MAAM;AACpC,aAAO;AAAA,QACN,kBAAkB;AAAA,QAClB,OAAO,EAAE,WAAW,SAAS;AAAA,QAC7B,MAAM,EAAE,WAAW,YAAY,iBAAiB;AAAA,QAChD,KAAK,EAAE,WAAW,YAAY,iBAAiB;AAAA,QAC/C,QAAQ,EAAE,WAAW,UAAU;AAAA,QAC/B,WAAW,EAAE,WAAW,UAAU;AAAA,QAClC,SAAS,EAAE,WAAW,UAAU;AAAA,QAChC,QAAQ,EAAE,WAAW,UAAU;AAAA,QAC/B,eAAe,EAAE,WAAW,UAAU;AAAA,QAEtC,OAAO,EAAE,YAAY,UAAU;AAAA,QAC/B,KAAK,EAAE,YAAY,UAAU;AAAA,QAC7B,OAAO,EAAE,YAAY,UAAU;AAAA,QAC/B,QAAQ,EAAE,YAAY,UAAU;AAAA,QAChC,MAAM,EAAE,YAAY,UAAU;AAAA,QAC9B,SAAS,EAAE,YAAY,UAAU;AAAA,QACjC,MAAM,EAAE,YAAY,UAAU;AAAA,QAC9B,OAAO,EAAE,YAAY,UAAU;AAAA,QAC/B,MAAM,EAAE,YAAY,UAAU;AAAA,QAE9B,SAAS,EAAE,YAAY,UAAU;AAAA,QACjC,OAAO,EAAE,YAAY,UAAU;AAAA,QAC/B,SAAS,EAAE,YAAY,UAAU;AAAA,QACjC,UAAU,EAAE,YAAY,UAAU;AAAA,QAClC,QAAQ,EAAE,YAAY,UAAU;AAAA,QAChC,WAAW,EAAE,YAAY,UAAU;AAAA,QACnC,QAAQ,EAAE,YAAY,UAAU;AAAA,QAChC,SAAS,EAAE,YAAY,UAAU;AAAA,QAEjC,aAAa,EAAE,YAAY,UAAU;AAAA,QACrC,WAAW,EAAE,YAAY,UAAU;AAAA,QACnC,aAAa,EAAE,YAAY,UAAU;AAAA,QACrC,cAAc,EAAE,YAAY,UAAU;AAAA,QACtC,YAAY,EAAE,YAAY,UAAU;AAAA,QACpC,eAAe,EAAE,YAAY,UAAU;AAAA,QACvC,YAAY,EAAE,YAAY,UAAU;AAAA,QACpC,aAAa,EAAE,YAAY,UAAU;AAAA,QAErC,eAAe,EAAE,aAAa,UAAU;AAAA,QACxC,aAAa,EAAE,aAAa,UAAU;AAAA,QACtC,eAAe,EAAE,aAAa,UAAU;AAAA,QACxC,gBAAgB,EAAE,aAAa,UAAU;AAAA,QACzC,cAAc,EAAE,aAAa,UAAU;AAAA,QACvC,iBAAiB,EAAE,aAAa,UAAU;AAAA,QAC1C,cAAc,EAAE,aAAa,UAAU;AAAA,QACvC,eAAe,EAAE,aAAa,UAAU;AAAA,MACzC;AAAA,IACD;AAEA,WAAO,UAAU,aAAa;AAC9B,WAAO,QAAQ,eAAe;AAAA;AAAA;;;AC1E9B;AAAA;AAAA;AAAA,WAAO,UAAU;AACjB,UAAM,OAAO;AAEb,QAAIC,MAAK,UAAQ,IAAI;AAErB,aAAS,aAAcC,OAAM,SAAS;AACpC,UAAI,UAAU,QAAQ,YAAY,SAChC,QAAQ,UAAU,QAAQ,IAAI;AAEhC,UAAI,CAAC,SAAS;AACZ,eAAO;AAAA,MACT;AAEA,gBAAU,QAAQ,MAAM,GAAG;AAC3B,UAAI,QAAQ,QAAQ,EAAE,MAAM,IAAI;AAC9B,eAAO;AAAA,MACT;AACA,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,YAAI,IAAI,QAAQ,CAAC,EAAE,YAAY;AAC/B,YAAI,KAAKA,MAAK,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,MAAM,GAAG;AACnD,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAEA,aAAS,UAAW,MAAMA,OAAM,SAAS;AACvC,UAAI,CAAC,KAAK,eAAe,KAAK,CAAC,KAAK,OAAO,GAAG;AAC5C,eAAO;AAAA,MACT;AACA,aAAO,aAAaA,OAAM,OAAO;AAAA,IACnC;AAEA,aAAS,MAAOA,OAAM,SAAS,IAAI;AACjC,MAAAD,IAAG,KAAKC,OAAM,SAAU,IAAI,MAAM;AAChC,WAAG,IAAI,KAAK,QAAQ,UAAU,MAAMA,OAAM,OAAO,CAAC;AAAA,MACpD,CAAC;AAAA,IACH;AAEA,aAAS,KAAMA,OAAM,SAAS;AAC5B,aAAO,UAAUD,IAAG,SAASC,KAAI,GAAGA,OAAM,OAAO;AAAA,IACnD;AAAA;AAAA;;;ACzCA;AAAA;AAAA;AAAA,WAAO,UAAU;AACjB,UAAM,OAAO;AAEb,QAAIC,MAAK,UAAQ,IAAI;AAErB,aAAS,MAAOC,OAAM,SAAS,IAAI;AACjC,MAAAD,IAAG,KAAKC,OAAM,SAAU,IAAI,MAAM;AAChC,WAAG,IAAI,KAAK,QAAQ,UAAU,MAAM,OAAO,CAAC;AAAA,MAC9C,CAAC;AAAA,IACH;AAEA,aAAS,KAAMA,OAAM,SAAS;AAC5B,aAAO,UAAUD,IAAG,SAASC,KAAI,GAAG,OAAO;AAAA,IAC7C;AAEA,aAAS,UAAW,MAAM,SAAS;AACjC,aAAO,KAAK,OAAO,KAAK,UAAU,MAAM,OAAO;AAAA,IACjD;AAEA,aAAS,UAAW,MAAM,SAAS;AACjC,UAAI,MAAM,KAAK;AACf,UAAI,MAAM,KAAK;AACf,UAAI,MAAM,KAAK;AAEf,UAAI,QAAQ,QAAQ,QAAQ,SAC1B,QAAQ,MAAM,QAAQ,UAAU,QAAQ,OAAO;AACjD,UAAI,QAAQ,QAAQ,QAAQ,SAC1B,QAAQ,MAAM,QAAQ,UAAU,QAAQ,OAAO;AAEjD,UAAI,IAAI,SAAS,OAAO,CAAC;AACzB,UAAI,IAAI,SAAS,OAAO,CAAC;AACzB,UAAI,IAAI,SAAS,OAAO,CAAC;AACzB,UAAI,KAAK,IAAI;AAEb,UAAI,MAAO,MAAM,KACd,MAAM,KAAM,QAAQ,SACpB,MAAM,KAAM,QAAQ,SACpB,MAAM,MAAO,UAAU;AAE1B,aAAO;AAAA,IACT;AAAA;AAAA;;;ACxCA;AAAA;AAAA;AAAA,QAAIC,MAAK,UAAQ,IAAI;AACrB,QAAI;AACJ,QAAI,QAAQ,aAAa,WAAW,OAAO,iBAAiB;AAC1D,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAEA,WAAO,UAAU;AACjB,UAAM,OAAO;AAEb,aAAS,MAAOC,OAAM,SAAS,IAAI;AACjC,UAAI,OAAO,YAAY,YAAY;AACjC,aAAK;AACL,kBAAU,CAAC;AAAA,MACb;AAEA,UAAI,CAAC,IAAI;AACP,YAAI,OAAO,YAAY,YAAY;AACjC,gBAAM,IAAI,UAAU,uBAAuB;AAAA,QAC7C;AAEA,eAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC5C,gBAAMA,OAAM,WAAW,CAAC,GAAG,SAAU,IAAI,IAAI;AAC3C,gBAAI,IAAI;AACN,qBAAO,EAAE;AAAA,YACX,OAAO;AACL,sBAAQ,EAAE;AAAA,YACZ;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAEA,WAAKA,OAAM,WAAW,CAAC,GAAG,SAAU,IAAI,IAAI;AAE1C,YAAI,IAAI;AACN,cAAI,GAAG,SAAS,YAAY,WAAW,QAAQ,cAAc;AAC3D,iBAAK;AACL,iBAAK;AAAA,UACP;AAAA,QACF;AACA,WAAG,IAAI,EAAE;AAAA,MACX,CAAC;AAAA,IACH;AAEA,aAAS,KAAMA,OAAM,SAAS;AAE5B,UAAI;AACF,eAAO,KAAK,KAAKA,OAAM,WAAW,CAAC,CAAC;AAAA,MACtC,SAAS,IAAI;AACX,YAAI,WAAW,QAAQ,gBAAgB,GAAG,SAAS,UAAU;AAC3D,iBAAO;AAAA,QACT,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACxDA;AAAA;AAAA;AAAA,QAAM,YAAY,QAAQ,aAAa,WACnC,QAAQ,IAAI,WAAW,YACvB,QAAQ,IAAI,WAAW;AAE3B,QAAMC,QAAO,UAAQ,MAAM;AAC3B,QAAM,QAAQ,YAAY,MAAM;AAChC,QAAM,QAAQ;AAEd,QAAM,mBAAmB,CAAC,QACxB,OAAO,OAAO,IAAI,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAElE,QAAM,cAAc,CAAC,KAAK,QAAQ;AAChC,YAAM,QAAQ,IAAI,SAAS;AAI3B,YAAM,UAAU,IAAI,MAAM,IAAI,KAAK,aAAa,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,IAEjE;AAAA;AAAA,QAEE,GAAI,YAAY,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC;AAAA,QACnC,IAAI,IAAI,QAAQ,QAAQ,IAAI;AAAA,QACe,IAAI,MAAM,KAAK;AAAA,MAC5D;AAEJ,YAAM,aAAa,YACf,IAAI,WAAW,QAAQ,IAAI,WAAW,wBACtC;AACJ,YAAM,UAAU,YAAY,WAAW,MAAM,KAAK,IAAI,CAAC,EAAE;AAEzD,UAAI,WAAW;AACb,YAAI,IAAI,QAAQ,GAAG,MAAM,MAAM,QAAQ,CAAC,MAAM;AAC5C,kBAAQ,QAAQ,EAAE;AAAA,MACtB;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,QAAM,QAAQ,CAAC,KAAK,KAAK,OAAO;AAC9B,UAAI,OAAO,QAAQ,YAAY;AAC7B,aAAK;AACL,cAAM,CAAC;AAAA,MACT;AACA,UAAI,CAAC;AACH,cAAM,CAAC;AAET,YAAM,EAAE,SAAS,SAAS,WAAW,IAAI,YAAY,KAAK,GAAG;AAC7D,YAAM,QAAQ,CAAC;AAEf,YAAM,OAAO,OAAK,IAAI,QAAQ,CAAC,SAAS,WAAW;AACjD,YAAI,MAAM,QAAQ;AAChB,iBAAO,IAAI,OAAO,MAAM,SAAS,QAAQ,KAAK,IAC1C,OAAO,iBAAiB,GAAG,CAAC;AAElC,cAAM,QAAQ,QAAQ,CAAC;AACvB,cAAM,WAAW,SAAS,KAAK,KAAK,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;AAE7D,cAAM,OAAOA,MAAK,KAAK,UAAU,GAAG;AACpC,cAAM,IAAI,CAAC,YAAY,YAAY,KAAK,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,OAC7D;AAEJ,gBAAQ,QAAQ,GAAG,GAAG,CAAC,CAAC;AAAA,MAC1B,CAAC;AAED,YAAM,UAAU,CAAC,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC7D,YAAI,OAAO,QAAQ;AACjB,iBAAO,QAAQ,KAAK,IAAI,CAAC,CAAC;AAC5B,cAAM,MAAM,QAAQ,EAAE;AACtB,cAAM,IAAI,KAAK,EAAE,SAAS,WAAW,GAAG,CAAC,IAAI,OAAO;AAClD,cAAI,CAAC,MAAM,IAAI;AACb,gBAAI,IAAI;AACN,oBAAM,KAAK,IAAI,GAAG;AAAA;AAElB,qBAAO,QAAQ,IAAI,GAAG;AAAA,UAC1B;AACA,iBAAO,QAAQ,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC;AAAA,QACtC,CAAC;AAAA,MACH,CAAC;AAED,aAAO,KAAK,KAAK,CAAC,EAAE,KAAK,SAAO,GAAG,MAAM,GAAG,GAAG,EAAE,IAAI,KAAK,CAAC;AAAA,IAC7D;AAEA,QAAM,YAAY,CAAC,KAAK,QAAQ;AAC9B,YAAM,OAAO,CAAC;AAEd,YAAM,EAAE,SAAS,SAAS,WAAW,IAAI,YAAY,KAAK,GAAG;AAC7D,YAAM,QAAQ,CAAC;AAEf,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAM;AACxC,cAAM,QAAQ,QAAQ,CAAC;AACvB,cAAM,WAAW,SAAS,KAAK,KAAK,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI;AAE7D,cAAM,OAAOA,MAAK,KAAK,UAAU,GAAG;AACpC,cAAM,IAAI,CAAC,YAAY,YAAY,KAAK,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,OAC7D;AAEJ,iBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAM;AACxC,gBAAM,MAAM,IAAI,QAAQ,CAAC;AACzB,cAAI;AACF,kBAAM,KAAK,MAAM,KAAK,KAAK,EAAE,SAAS,WAAW,CAAC;AAClD,gBAAI,IAAI;AACN,kBAAI,IAAI;AACN,sBAAM,KAAK,GAAG;AAAA;AAEd,uBAAO;AAAA,YACX;AAAA,UACF,SAAS,IAAI;AAAA,UAAC;AAAA,QAChB;AAAA,MACF;AAEA,UAAI,IAAI,OAAO,MAAM;AACnB,eAAO;AAET,UAAI,IAAI;AACN,eAAO;AAET,YAAM,iBAAiB,GAAG;AAAA,IAC5B;AAEA,WAAO,UAAU;AACjB,UAAM,OAAO;AAAA;AAAA;;;AC5Hb;AAAA;AAAA;AAEA,QAAM,UAAU,CAAC,UAAU,CAAC,MAAM;AACjC,YAAM,cAAc,QAAQ,OAAO,QAAQ;AAC3C,YAAM,WAAW,QAAQ,YAAY,QAAQ;AAE7C,UAAI,aAAa,SAAS;AACzB,eAAO;AAAA,MACR;AAEA,aAAO,OAAO,KAAK,WAAW,EAAE,QAAQ,EAAE,KAAK,SAAO,IAAI,YAAY,MAAM,MAAM,KAAK;AAAA,IACxF;AAEA,WAAO,UAAU;AAEjB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;ACfzB;AAAA;AAAA;AAEA,QAAMC,QAAO,UAAQ,MAAM;AAC3B,QAAM,QAAQ;AACd,QAAM,aAAa;AAEnB,aAAS,sBAAsB,QAAQ,gBAAgB;AACnD,YAAM,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAC1C,YAAM,MAAM,QAAQ,IAAI;AACxB,YAAM,eAAe,OAAO,QAAQ,OAAO;AAE3C,YAAM,kBAAkB,gBAAgB,QAAQ,UAAU,UAAa,CAAC,QAAQ,MAAM;AAItF,UAAI,iBAAiB;AACjB,YAAI;AACA,kBAAQ,MAAM,OAAO,QAAQ,GAAG;AAAA,QACpC,SAAS,KAAK;AAAA,QAEd;AAAA,MACJ;AAEA,UAAI;AAEJ,UAAI;AACA,mBAAW,MAAM,KAAK,OAAO,SAAS;AAAA,UAClC,MAAM,IAAI,WAAW,EAAE,IAAI,CAAC,CAAC;AAAA,UAC7B,SAAS,iBAAiBA,MAAK,YAAY;AAAA,QAC/C,CAAC;AAAA,MACL,SAAS,GAAG;AAAA,MAEZ,UAAE;AACE,YAAI,iBAAiB;AACjB,kBAAQ,MAAM,GAAG;AAAA,QACrB;AAAA,MACJ;AAIA,UAAI,UAAU;AACV,mBAAWA,MAAK,QAAQ,eAAe,OAAO,QAAQ,MAAM,IAAI,QAAQ;AAAA,MAC5E;AAEA,aAAO;AAAA,IACX;AAEA,aAAS,eAAe,QAAQ;AAC5B,aAAO,sBAAsB,MAAM,KAAK,sBAAsB,QAAQ,IAAI;AAAA,IAC9E;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACnDjB;AAAA;AAAA;AAGA,QAAM,kBAAkB;AAExB,aAAS,cAAc,KAAK;AAExB,YAAM,IAAI,QAAQ,iBAAiB,KAAK;AAExC,aAAO;AAAA,IACX;AAEA,aAAS,eAAe,KAAK,uBAAuB;AAEhD,YAAM,GAAG,GAAG;AAQZ,YAAM,IAAI,QAAQ,mBAAmB,SAAS;AAK9C,YAAM,IAAI,QAAQ,kBAAkB,MAAM;AAK1C,YAAM,IAAI,GAAG;AAGb,YAAM,IAAI,QAAQ,iBAAiB,KAAK;AAGxC,UAAI,uBAAuB;AACvB,cAAM,IAAI,QAAQ,iBAAiB,KAAK;AAAA,MAC5C;AAEA,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,UAAU;AACzB,WAAO,QAAQ,WAAW;AAAA;AAAA;;;AC9C1B;AAAA;AAAA;AACA,WAAO,UAAU;AAAA;AAAA;;;ACDjB;AAAA;AAAA;AACA,QAAM,eAAe;AAErB,WAAO,UAAU,CAAC,SAAS,OAAO;AACjC,YAAM,QAAQ,OAAO,MAAM,YAAY;AAEvC,UAAI,CAAC,OAAO;AACX,eAAO;AAAA,MACR;AAEA,YAAM,CAACC,OAAM,QAAQ,IAAI,MAAM,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE,MAAM,GAAG;AAC/D,YAAM,SAASA,MAAK,MAAM,GAAG,EAAE,IAAI;AAEnC,UAAI,WAAW,OAAO;AACrB,eAAO;AAAA,MACR;AAEA,aAAO,WAAW,GAAG,MAAM,IAAI,QAAQ,KAAK;AAAA,IAC7C;AAAA;AAAA;;;AClBA;AAAA;AAAA;AAEA,QAAMC,MAAK,UAAQ,IAAI;AACvB,QAAM,iBAAiB;AAEvB,aAAS,YAAY,SAAS;AAE1B,YAAM,OAAO;AACb,YAAM,SAAS,OAAO,MAAM,IAAI;AAEhC,UAAI;AAEJ,UAAI;AACA,aAAKA,IAAG,SAAS,SAAS,GAAG;AAC7B,QAAAA,IAAG,SAAS,IAAI,QAAQ,GAAG,MAAM,CAAC;AAClC,QAAAA,IAAG,UAAU,EAAE;AAAA,MACnB,SAAS,GAAG;AAAA,MAAc;AAG1B,aAAO,eAAe,OAAO,SAAS,CAAC;AAAA,IAC3C;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACtBjB;AAAA;AAAA;AAEA,QAAMC,QAAO,UAAQ,MAAM;AAC3B,QAAM,iBAAiB;AACvB,QAAM,SAAS;AACf,QAAM,cAAc;AAEpB,QAAM,QAAQ,QAAQ,aAAa;AACnC,QAAM,qBAAqB;AAC3B,QAAM,kBAAkB;AAExB,aAAS,cAAc,QAAQ;AAC3B,aAAO,OAAO,eAAe,MAAM;AAEnC,YAAM,UAAU,OAAO,QAAQ,YAAY,OAAO,IAAI;AAEtD,UAAI,SAAS;AACT,eAAO,KAAK,QAAQ,OAAO,IAAI;AAC/B,eAAO,UAAU;AAEjB,eAAO,eAAe,MAAM;AAAA,MAChC;AAEA,aAAO,OAAO;AAAA,IAClB;AAEA,aAAS,cAAc,QAAQ;AAC3B,UAAI,CAAC,OAAO;AACR,eAAO;AAAA,MACX;AAGA,YAAM,cAAc,cAAc,MAAM;AAGxC,YAAM,aAAa,CAAC,mBAAmB,KAAK,WAAW;AAIvD,UAAI,OAAO,QAAQ,cAAc,YAAY;AAKzC,cAAM,6BAA6B,gBAAgB,KAAK,WAAW;AAInE,eAAO,UAAUA,MAAK,UAAU,OAAO,OAAO;AAG9C,eAAO,UAAU,OAAO,QAAQ,OAAO,OAAO;AAC9C,eAAO,OAAO,OAAO,KAAK,IAAI,CAAC,QAAQ,OAAO,SAAS,KAAK,0BAA0B,CAAC;AAEvF,cAAM,eAAe,CAAC,OAAO,OAAO,EAAE,OAAO,OAAO,IAAI,EAAE,KAAK,GAAG;AAElE,eAAO,OAAO,CAAC,MAAM,MAAM,MAAM,IAAI,YAAY,GAAG;AACpD,eAAO,UAAU,QAAQ,IAAI,WAAW;AACxC,eAAO,QAAQ,2BAA2B;AAAA,MAC9C;AAEA,aAAO;AAAA,IACX;AAEA,aAASC,OAAM,SAAS,MAAM,SAAS;AAEnC,UAAI,QAAQ,CAAC,MAAM,QAAQ,IAAI,GAAG;AAC9B,kBAAU;AACV,eAAO;AAAA,MACX;AAEA,aAAO,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC;AAC/B,gBAAU,OAAO,OAAO,CAAC,GAAG,OAAO;AAGnC,YAAM,SAAS;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,UAAU;AAAA,UACN;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAGA,aAAO,QAAQ,QAAQ,SAAS,cAAc,MAAM;AAAA,IACxD;AAEA,WAAO,UAAUA;AAAA;AAAA;;;AC1FjB;AAAA;AAAA;AAEA,QAAM,QAAQ,QAAQ,aAAa;AAEnC,aAAS,cAAc,UAAU,SAAS;AACtC,aAAO,OAAO,OAAO,IAAI,MAAM,GAAG,OAAO,IAAI,SAAS,OAAO,SAAS,GAAG;AAAA,QACrE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,GAAG,OAAO,IAAI,SAAS,OAAO;AAAA,QACvC,MAAM,SAAS;AAAA,QACf,WAAW,SAAS;AAAA,MACxB,CAAC;AAAA,IACL;AAEA,aAAS,iBAAiB,IAAI,QAAQ;AAClC,UAAI,CAAC,OAAO;AACR;AAAA,MACJ;AAEA,YAAM,eAAe,GAAG;AAExB,SAAG,OAAO,SAAU,MAAM,MAAM;AAI5B,YAAI,SAAS,QAAQ;AACjB,gBAAM,MAAM,aAAa,MAAM,MAAM;AAErC,cAAI,KAAK;AACL,mBAAO,aAAa,KAAK,IAAI,SAAS,GAAG;AAAA,UAC7C;AAAA,QACJ;AAEA,eAAO,aAAa,MAAM,IAAI,SAAS;AAAA,MAC3C;AAAA,IACJ;AAEA,aAAS,aAAa,QAAQ,QAAQ;AAClC,UAAI,SAAS,WAAW,KAAK,CAAC,OAAO,MAAM;AACvC,eAAO,cAAc,OAAO,UAAU,OAAO;AAAA,MACjD;AAEA,aAAO;AAAA,IACX;AAEA,aAAS,iBAAiB,QAAQ,QAAQ;AACtC,UAAI,SAAS,WAAW,KAAK,CAAC,OAAO,MAAM;AACvC,eAAO,cAAc,OAAO,UAAU,WAAW;AAAA,MACrD;AAEA,aAAO;AAAA,IACX;AAEA,WAAO,UAAU;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA;AAAA;;;AC1DA;AAAA;AAAA;AAEA,QAAM,KAAK,UAAQ,eAAe;AAClC,QAAMC,SAAQ;AACd,QAAM,SAAS;AAEf,aAASC,OAAM,SAAS,MAAM,SAAS;AAEnC,YAAM,SAASD,OAAM,SAAS,MAAM,OAAO;AAG3C,YAAM,UAAU,GAAG,MAAM,OAAO,SAAS,OAAO,MAAM,OAAO,OAAO;AAIpE,aAAO,iBAAiB,SAAS,MAAM;AAEvC,aAAO;AAAA,IACX;AAEA,aAAS,UAAU,SAAS,MAAM,SAAS;AAEvC,YAAM,SAASA,OAAM,SAAS,MAAM,OAAO;AAG3C,YAAM,SAAS,GAAG,UAAU,OAAO,SAAS,OAAO,MAAM,OAAO,OAAO;AAGvE,aAAO,QAAQ,OAAO,SAAS,OAAO,iBAAiB,OAAO,QAAQ,MAAM;AAE5E,aAAO;AAAA,IACX;AAEA,WAAO,UAAUC;AACjB,WAAO,QAAQ,QAAQA;AACvB,WAAO,QAAQ,OAAO;AAEtB,WAAO,QAAQ,SAASD;AACxB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;ACtCzB,sBAAqB;AAErB,IAAAE,qBAAuB;AADvB,OAAOC,WAAU;;;ACDjB,SAAS,cAAc,qBAAqB;AAC5C,OAAO,UAAU;AAUV,IAAM,oBAAoB,MAAM;AACnC,MAAI,QAAQ,IAAI,uBAAuB;AACnC,UAAM,QAAQ,QAAQ,IAAI;AAC1B,QAAI,MAAM,WAAW,MAAM,EAAG,QAAO;AACrC,QAAI,MAAM,WAAW,KAAK,EAAG,QAAO;AACpC,QAAI,MAAM,WAAW,MAAM,EAAG,QAAO;AACrC,QAAI,MAAM,WAAW,KAAK,EAAG,QAAO;AAAA,EACxC;AAEA,SAAO;AACX;AAIO,IAAM,kBAAkB,OAC3B,YACA,QAIC;AACD,QAAM,kBAAkB,KAAK,KAAK,YAAY,cAAc;AAC5D,QAAM,cAAc,KAAK,MAAM,aAAa,iBAAiB,MAAM,CAAC;AACpE,QAAM,EAAE,cAAc,gBAAgB,IAAI,IAAI,WAAW;AAEzD,MAAI,mBAAmB,gBAAgB,SAAS,GAAG;AAC/C,QAAI,CAAC,YAAY,iBAAiB;AAC9B,kBAAY,kBAAkB,CAAC;AAAA,IACnC;AACA,eAAW,OAAO,iBAAiB;AAC/B,UAAI,MAAM,QAAQ,GAAG,GAAG;AACpB,oBAAY,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AAAA,MAC/C,OAAO;AACH,oBAAY,gBAAgB,GAAG,IAAI;AAAA,MACvC;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,CAAC,YAAY,cAAc;AAC3B,gBAAY,eAAe,CAAC;AAAA,EAChC;AACA,aAAW,OAAO,cAAc;AAC5B,QAAI,MAAM,QAAQ,GAAG,GAAG;AACpB,kBAAY,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AAAA,IAC5C,OAAO;AACH,kBAAY,aAAa,GAAG,IAAI;AAAA,IACpC;AAAA,EACJ;AAEA,gBAAc,iBAAiB,KAAK,UAAU,aAAa,MAAM,CAAC,IAAI,IAAI;AAC9E;AAEO,IAAM,kBAAkB,CAAC,cAC5B,WAAW,KAAK,EAAE,QAAQ,SAAS,EAAE;;;AChEzC,yBAAkB;AAIlB,wBAAuB;AAFvB,OAAOC,WAAU;AACjB,SAAS,gBAAAC,eAAc,iBAAAC,sBAAqB;AAGrC,IAAM,qBAAqB,OAAO,QAAmC;AACxE,QAAM,SAAS,MAAM,qBAAqB,GAAG;AAE7C,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,WAAW;AAC3D,YAAQ,IAAI,uBAAuB;AACnC,YAAQ,KAAK,CAAC;AAAA,EAClB;AACA,MAAI,OAAO,WAAW,GAAG;AACrB,YAAQ,MAAM,kBAAAC,QAAW,IAAI,+BAA+B,CAAC;AAC7D,YAAQ,KAAK,CAAC;AAAA,EAClB;AAEA,UAAQ,IAAI,kBAAAA,QAAW,MAAM,sCAAsC,CAAC;AACpE,UAAQ,IAAI,kBAAAA,QAAW,KAAK,oCAAoC,CAAC;AAEjE,QAAM,gBAAgB,IAAI,YAAY,OAAO;AAAA,IACzC,cAAc,CAAC,6BAA6B,qBAAqB;AAAA,IACjE,iBAAiB,CAAC,4BAA4B;AAAA,EAClD,EAAE;AAEF,UAAQ,IAAI,kBAAAA,QAAW,MAAM,8CAA8C,CAAC;AAC5E,UAAQ,IAAI,kBAAAA,QAAW,KAAK,8BAA8B,CAAC;AAE3D,QAAM,8BAA8B,GAAG;AAEvC,UAAQ,IAAI,kBAAAA,QAAW,MAAM,wCAAwC,CAAC;AAC1E;AAEA,IAAM,uBAAuB,OAAO,QAAmC;AACnE,QAAM,EAAE,WAAW,aAAa,eAAe,WAAW,IAAI;AAC9D,QAAM,aAAa,kBAAkB;AAErC,QAAM,qBAAqB,MAAM;AAC7B,UAAM,oBAAoB,cAAc,MAAM,MAAM;AACpD,YAAQ,YAAY;AAAA,MAChB,KAAK;AACD,eAAO,CAAC,UAAU,QAAQ,mBAAmB,cAAc,YAAY;AAAA,MAC3E,KAAK;AACD,eAAO,CAAC,UAAU,QAAQ,mBAAmB,cAAc,YAAY;AAAA,MAC3E,KAAK;AACD,eAAO,CAAC,UAAU,QAAQ,mBAAmB,cAAc,YAAY;AAAA,MAC3E;AAEI,eAAO;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,IACR;AAAA,EACJ,GAAG;AAEH,SAAO,mBAAAC,QAAM,KAAK,YAAY,mBAAmB,EAAE,OAAO,UAAU,CAAC;AACzE;AAEA,IAAM,gCAAgC,OAAO,QAAmC;AAC5E,QAAM,EAAE,YAAY,aAAa,IAAI;AACrC,QAAM,eAAe,iBAAiB;AACtC,QAAM,iBAAiBJ,MAAK,KAAK,YAAY,eAAe,mBAAmB,gBAAgB;AAC/F,MAAI,aAAaC,cAAa,gBAAgB,MAAM;AAGpD,eAAa;AAAA,EAA+D,UAAU;AAGtF,eAAa,WAAW,QAAQ,6BAA6B,CAAC,GAAG,mBAAmB;AAChF,UAAM,iBAAiB,eAAe,KAAK;AAC3C,UAAM,YAAY,iBAAiB,YAAY;AAC/C,WAAO,aAAa,cAAc,GAAG,SAAS;AAAA;AAAA,EAClD,CAAC;AAED,EAAAC,eAAc,gBAAgB,UAAU;AAC5C;;;AChFA,IAAAG,sBAAkB;AAGlB,IAAAC,qBAAuB;AADvB,OAAOC,WAAU;AAEjB,OAAO,QAAQ;AACf,YAAY,iBAAiB;AAEtB,IAAM,kBAAkB,OAAO,QAAmC;AACrE,UAAQ,IAAI,mBAAAC,QAAW,KAAK,wCAAwC,CAAC;AAErE,QAAM,SAAS,MAAM,UAAU,GAAG;AAClC,MAAI,CAAC,OAAQ;AACb,MAAI,QAAQ,WAAW,YAAY,QAAQ,WAAW,WAAW;AAC7D,YAAQ,IAAI,uBAAuB;AACnC,YAAQ,KAAK,CAAC;AAAA,EAClB;AACA,MAAI,UAAU,OAAO,WAAW,GAAG;AAC/B,YAAQ,MAAM,mBAAAA,QAAW,IAAI,+BAA+B,CAAC;AAC7D,YAAQ,KAAK,CAAC;AAAA,EAClB;AAEA,UAAQ,IAAI,mBAAAA,QAAW,MAAM,mCAAmC,CAAC;AACjE,UAAQ,IAAI,mBAAAA,QAAW,KAAK,4BAA4B,CAAC;AAEzD,QAAM,mBAAmB,GAAG;AAC5B,UAAQ,IAAI,mBAAAA,QAAW,MAAM,sCAAsC,CAAC;AAEpE,QAAM,YAAY,GAAG;AACrB,sBAAAC,QAAM,KAAK,OAAO,CAAC,MAAM,GAAG;AAAA,IACxB,OAAO;AAAA,IACP,KAAK,IAAI;AAAA,EACb,CAAC;AACL;AAEA,IAAM,YAAY,OAAO,QAAmC;AACxD,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,UAAU,GAAG,SAAS;AAG5B,QAAM,eAAe,gBAAgB;AACrC,MAAI,CAAC,cAAc;AACf,YAAQ,MAAM,mBAAAD,QAAW,IAAI,iCAAiC,CAAC;AAC/D;AAAA,EACJ;AAEA,QAAM,cAAc,oBAAAC,QAAM;AAAA,IACtB;AAAA,IACA;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,IACA,EAAE,OAAO,UAAU;AAAA,EACvB;AACA,MAAI,YAAY,WAAW,EAAG,QAAO;AAGrC,QAAM,eAAe,oBAAAA,QAAM,KAAK,OAAO,CAAC,mBAAmB,OAAO,qBAAqB,GAAG;AAAA,IACtF,OAAO;AAAA,IACP,KAAK;AAAA,EACT,CAAC;AACD,MAAI,aAAa,WAAW,EAAG,QAAO;AAGtC,QAAM,iBAAiB,oBAAAA,QAAM,KAAK,OAAO,CAAC,UAAU,GAAG;AAAA,IACnD,OAAO;AAAA,IACP,KAAK;AAAA,EACT,CAAC;AACD,MAAI,eAAe,WAAW,EAAG,QAAO;AAGxC,QAAM,gBAAgBF,MAAK,KAAK,SAAS,qBAAqB;AAC9D,QAAM,mBAAmBA,MAAK,KAAK,SAAS,6BAA6B;AAEzE,MAAI,CAAC,GAAG,WAAW,aAAa,GAAG;AAC/B,YAAQ,MAAM,mBAAAC,QAAW,IAAI;AAAA,oCAAuC,aAAa,EAAE,CAAC;AACpF;AAAA,EACJ;AAGA,KAAG,UAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAC3C,KAAG,OAAO,eAAe,WAAW,EAAE,WAAW,KAAK,CAAC;AAGvD,MAAI,GAAG,WAAW,gBAAgB,GAAG;AACjC,OAAG,aAAa,kBAAkBD,MAAK,KAAK,WAAW,oBAAoB,CAAC;AAAA,EAChF;AAEA,KAAG,OAAO,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AACnD,SAAO;AACX;AAEA,IAAM,qBAAqB,OAAO,QAAmC;AACjE,QAAM,EAAE,WAAW,IAAI;AAGvB,QAAM,gBAAgB,YAAY,CAAC,SAAS;AACxC,UAAM,uBAAuB,OAAO,KAAK,KAAK,YAAY,EAAE;AAAA,MAAO,CAAC,QAChE,IAAI,WAAW,iBAAiB;AAAA,IACpC;AACA,UAAM,0BAA0B,OAAO,KAAK,KAAK,eAAe,EAAE;AAAA,MAAO,CAAC,QACtE,IAAI,WAAW,iBAAiB;AAAA,IACpC;AACA,WAAO;AAAA,MACH,cAAc;AAAA,MACd,iBAAiB;AAAA,QACb,GAAG;AAAA;AAAA;AAAA,QAGH,CAAC,cAAc,OAAO;AAAA,MAC1B;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;AAEA,IAAM,cAAc,OAAO,QAAmC;AAC1D,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,eAAeA,MAAK,KAAK,YAAY,eAAe;AAE1D,MAAI,GAAG,WAAW,YAAY,GAAG;AAC7B,UAAM,kBAAkB,GAAG,aAAa,cAAc,MAAM;AAE5D,UAAM,WAAuB,kBAAM,eAAe;AAElD,QAAI,SAAS,YAAY,2BAA2B;AAEhD,YAAM,QAAoB,mBAAO,iBAAiB,CAAC,SAAS,GAAG,wBAAwB;AAAA,QACnF,mBAAmB,EAAE,SAAS,EAAE;AAAA,MACpC,CAAC;AAGD,YAAM,iBAA6B,uBAAW,iBAAiB,KAAK;AACpE,SAAG,cAAc,cAAc,cAAc;AAAA,IACjD;AAAA,EACJ;AACJ;AAEA,SAAS,kBAAiC;AACtC,QAAM,aAAa,oBAAAE,QAAM;AAAA,IACrB;AAAA,IACA,CAAC,aAAa,UAAU,+CAA+C,OAAO;AAAA,IAC9E,EAAE,UAAU,OAAO;AAAA,EACvB;AAEA,MAAI,WAAW,WAAW,KAAK,CAAC,WAAW,OAAQ,QAAO;AAE1D,QAAM,OAAO,WAAW,OACnB,MAAM,IAAI,EACV,OAAO,OAAO,EACd,IAAI,CAAC,SAAS;AACX,UAAM,CAAC,OAAO,GAAG,IAAI,KAAK,MAAM,GAAI;AACpC,UAAM,MAAM,IAAI,QAAQ,cAAc,EAAE,EAAE,QAAQ,SAAS,EAAE;AAG7D,UAAM,QAAQ,IAAI,MAAM,qCAAqC;AAC7D,QAAI,CAAC,MAAO,QAAO;AAEnB,WAAO;AAAA,MACH;AAAA,MACA,SAAS,CAAC,SAAS,MAAM,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC;AAAA,IACxE;AAAA,EACJ,CAAC,EACA;AAAA,IACG,CAAC,SACG,SAAS,QAAQ,MAAM,QAAQ,KAAK,OAAO,KAAK,KAAK,QAAQ,WAAW;AAAA,EAChF,EACC,KAAK,CAAC,GAAG,MAAM;AAEZ,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AACxB,UAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG;AAC/B,eAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;AAAA,MACrC;AAAA,IACJ;AACA,WAAO;AAAA,EACX,CAAC;AAEL,SAAO,KAAK,SAAS,IAAI,KAAK,CAAC,EAAE,MAAM;AAC3C;;;AHhLA,IAAM,WAAO,gBAAAC,SAGV,QAAQ,KAAK,MAAM,CAAC,GAAG;AAAA,EACtB,SAAS,EAAE,MAAM,OAAO,UAAU,aAAa;AAAA,EAC/C,OAAO,EAAE,GAAG,QAAQ,GAAG,WAAW;AAAA,EAClC,QAAQ,CAAC,GAAG;AAChB,CAAC;AAGD,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUlB,mBAAAC,QAAW,OAAW,wCAA0C,CAAC;AAAA;AAKnE,IAAM,QAAQ;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,YAAY;AAChB;AAEA,eAAe,OAAO;AAClB,QAAM,YAAY,gBAAgB,KAAK,EAAE,CAAC,CAAC,KAAK;AAChD,QAAM,cAAc,cAAc,MAAMC,MAAK,SAAS,QAAQ,IAAI,CAAC,IAAI;AACvE,QAAM,aAAa,cAAc,MAAM,QAAQ,IAAI,IAAIA,MAAK,KAAK,QAAQ,IAAI,GAAG,SAAS;AACzF,QAAM,aAAa,kBAAkB;AACrC,QAAM,WAAY,KAAK,YAAY,KAAK;AAExC,QAAM,OAAO,KAAK;AAClB,MAAI,MAAM;AACN,YAAQ,IAAI,WAAW;AACvB;AAAA,EACJ;AAEA,UAAQ,IAAI,mBAAAD,QAAW,KAAK;AAAA,yBAA4B,WAAW,KAAK,CAAC;AACzE,QAAM,MAAM,QAAQ,EAAE;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc,aAAa,eAAe,WAAW;AAAA,EACzD,CAAC;AACD,UAAQ,IAAI,mBAAAA,QAAW,MAAM,mBAAY,CAAC;AAC1C,UAAQ,IAAI,mBAAAA,QAAW,KAAK,mBAAmB,YAAY,SAAS,aAAa,UAAU,CAAC;AAC5F,UAAQ,IAAI,mBAAAA,QAAW,KAAK,iBAAiB,aAAa,MAAM,CAAC;AACrE;AAEA,KAAK,EAAE,MAAM,CAAC,MAAM;AAChB,UAAQ,MAAM,CAAC;AACf,UAAQ,KAAK,CAAC;AAClB,CAAC;","names":["key","argv","arg","value","i","argv","fs","path","fs","path","fs","path","path","path","path","fs","path","parse","parse","spawn","import_picocolors","path","path","readFileSync","writeFileSync","picocolors","spawn","import_cross_spawn","import_picocolors","path","picocolors","spawn","minimist","picocolors","path"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-towns-protocol-app",
3
- "version": "0.0.430",
3
+ "version": "0.0.432",
4
4
  "scripts": {
5
5
  "build": "tsup",
6
6
  "watch": "tsup --watch"
@@ -30,5 +30,5 @@
30
30
  "publishConfig": {
31
31
  "access": "public"
32
32
  },
33
- "gitHead": "200adfdd8222b53b62d2af9609ed04f3eb831584"
33
+ "gitHead": "aed1393cc61f669c852b2d244630e27ae27a5922"
34
34
  }