@batijs/cli 0.0.196 → 0.0.198
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/dist/boilerplates/@batijs/biome/files/$package.json.js +1 -1
- package/dist/boilerplates/@batijs/compiled/files/$package.json.js +2 -2
- package/dist/boilerplates/@batijs/drizzle/files/$README.md.js +29 -0
- package/dist/boilerplates/@batijs/drizzle/files/$package.json.js +112 -0
- package/dist/boilerplates/@batijs/drizzle/files/database/db.ts +6 -0
- package/dist/boilerplates/@batijs/drizzle/files/database/schema.ts +11 -0
- package/dist/boilerplates/@batijs/drizzle/files/database/seed.ts +12 -0
- package/dist/boilerplates/@batijs/drizzle/files/drizzle.config.ts +10 -0
- package/dist/boilerplates/@batijs/drizzle/types/database/db.d.ts +2 -0
- package/dist/boilerplates/@batijs/drizzle/types/database/schema.d.ts +33 -0
- package/dist/boilerplates/@batijs/drizzle/types/database/seed.d.ts +1 -0
- package/dist/boilerplates/@batijs/drizzle/types/drizzle.config.d.ts +2 -0
- package/dist/boilerplates/@batijs/edgedb/files/$package.json.js +1 -1
- package/dist/boilerplates/@batijs/eslint/files/$package.json.js +2 -2
- package/dist/boilerplates/@batijs/express/files/$package.json.js +7 -5
- package/dist/boilerplates/@batijs/express/files/express-entry.ts +5 -0
- package/dist/boilerplates/@batijs/fastify/files/$package.json.js +7 -5
- package/dist/boilerplates/@batijs/fastify/files/fastify-entry.ts +5 -0
- package/dist/boilerplates/@batijs/firebase-auth/files/$package.json.js +3 -3
- package/dist/boilerplates/@batijs/h3/files/$package.json.js +7 -5
- package/dist/boilerplates/@batijs/h3/files/h3-entry.ts +5 -0
- package/dist/boilerplates/@batijs/hattip/files/$package.json.js +6 -4
- package/dist/boilerplates/@batijs/hattip/files/hattip-entry.ts +5 -0
- package/dist/boilerplates/@batijs/hono/files/$package.json.js +9 -7
- package/dist/boilerplates/@batijs/hono/files/hono-entry.ts +5 -0
- package/dist/boilerplates/@batijs/hono/types/hono-entry.d.ts +1 -1
- package/dist/boilerplates/@batijs/prettier/files/$package.json.js +1 -1
- package/dist/boilerplates/@batijs/prisma/files/$package.json.js +2 -2
- package/dist/boilerplates/@batijs/react/files/$README.md.js +9 -3
- package/dist/boilerplates/@batijs/react/files/$package.json.js +25 -9
- package/dist/boilerplates/@batijs/react/files/layouts/LayoutDefault.tsx +1 -2
- package/dist/boilerplates/@batijs/react/files/pages/todo/+Page.tsx +14 -0
- package/dist/boilerplates/@batijs/react/files/pages/todo/TodoList.tsx +51 -0
- package/dist/boilerplates/@batijs/react/types/pages/+config.d.ts +9 -6
- package/dist/boilerplates/@batijs/react/types/pages/todo/TodoList.d.ts +5 -0
- package/dist/boilerplates/@batijs/shared/files/package.json +3 -3
- package/dist/boilerplates/@batijs/shared-no-db/files/$package.json.js +91 -0
- package/dist/boilerplates/@batijs/shared-no-db/files/database/todoItems.ts +13 -0
- package/dist/boilerplates/@batijs/shared-no-db/types/database/todoItems.d.ts +9 -0
- package/dist/boilerplates/@batijs/shared-todo/files/pages/todo/+data.ts +15 -0
- package/dist/boilerplates/@batijs/shared-todo/files/server/create-todo-handler.ts +24 -0
- package/dist/boilerplates/@batijs/shared-todo/types/pages/todo/+data.d.ts +4 -0
- package/dist/boilerplates/@batijs/shared-todo/types/server/create-todo-handler.d.ts +2 -0
- package/dist/boilerplates/@batijs/solid/files/$README.md.js +9 -3
- package/dist/boilerplates/@batijs/solid/files/$package.json.js +19 -3
- package/dist/boilerplates/@batijs/solid/files/layouts/LayoutDefault.tsx +1 -2
- package/dist/boilerplates/@batijs/solid/files/pages/todo/+Page.tsx +13 -0
- package/dist/boilerplates/@batijs/solid/files/pages/todo/TodoList.tsx +49 -0
- package/dist/boilerplates/@batijs/solid/types/pages/todo/TodoList.d.ts +5 -0
- package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +4 -4
- package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +12 -3
- package/dist/boilerplates/@batijs/telefunc/files/pages/todo/TodoList.telefunc.ts +11 -0
- package/dist/boilerplates/@batijs/telefunc/types/pages/todo/TodoList.telefunc.d.ts +3 -0
- package/dist/boilerplates/@batijs/trpc/files/$package.json.js +4 -2
- package/dist/boilerplates/@batijs/trpc/files/trpc/server.ts +8 -3
- package/dist/boilerplates/@batijs/trpc/types/trpc/client.d.ts +1 -3
- package/dist/boilerplates/@batijs/trpc/types/trpc/server.d.ts +1 -3
- package/dist/boilerplates/@batijs/vercel/files/$package.json.js +2 -2
- package/dist/boilerplates/@batijs/vue/files/$README.md.js +9 -3
- package/dist/boilerplates/@batijs/vue/files/$package.json.js +9 -5
- package/dist/boilerplates/@batijs/vue/files/layouts/LayoutDefault.vue +1 -4
- package/dist/boilerplates/@batijs/vue/files/pages/todo/+Page.vue +14 -0
- package/dist/boilerplates/@batijs/vue/files/pages/todo/TodoList.vue +49 -0
- package/dist/boilerplates/@batijs/vue/types/pages/+config.d.ts +95 -2
- package/dist/boilerplates/boilerplates.json +23 -98
- package/dist/{chunk-5DE3DJHR.js → chunk-TGVSJ5SD.js} +1 -1
- package/dist/index.js +21 -30
- package/dist/{prompt-YMZWKECL.js → prompt-XFX2ZGRD.js} +27 -54
- package/package.json +8 -8
- package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+Page.tsx +0 -27
- package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+data.ts +0 -9
- package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.telefunc.ts +0 -6
- package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.tsx +0 -30
- package/dist/boilerplates/@batijs/react-telefunc/types/pages/todo/+data.d.ts +0 -2
- package/dist/boilerplates/@batijs/react-telefunc/types/pages/todo/TodoList.d.ts +0 -4
- package/dist/boilerplates/@batijs/react-telefunc/types/pages/todo/TodoList.telefunc.d.ts +0 -4
- package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/+Page.tsx +0 -27
- package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/+config.ts +0 -5
- package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/+data.ts +0 -9
- package/dist/boilerplates/@batijs/react-trpc/files/pages/todo-trpc/TodoList.tsx +0 -30
- package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/+Page.d.ts +0 -1
- package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/+config.d.ts +0 -4
- package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/+data.d.ts +0 -2
- package/dist/boilerplates/@batijs/react-trpc/types/pages/todo-trpc/TodoList.d.ts +0 -4
- package/dist/boilerplates/@batijs/shared-db/files/database/todoItems.ts +0 -12
- package/dist/boilerplates/@batijs/shared-db/types/database/todoItems.d.ts +0 -6
- package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+Page.tsx +0 -28
- package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+config.ts +0 -3
- package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+data.ts +0 -9
- package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.telefunc.ts +0 -8
- package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.tsx +0 -28
- package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/+config.d.ts +0 -4
- package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/+data.d.ts +0 -2
- package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/TodoList.d.ts +0 -4
- package/dist/boilerplates/@batijs/solid-telefunc/types/pages/todo/TodoList.telefunc.d.ts +0 -5
- package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/+Page.tsx +0 -28
- package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/+config.ts +0 -3
- package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/+data.ts +0 -9
- package/dist/boilerplates/@batijs/solid-trpc/files/pages/todo-trpc/TodoList.tsx +0 -28
- package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/+Page.d.ts +0 -1
- package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/+config.d.ts +0 -4
- package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/+data.d.ts +0 -2
- package/dist/boilerplates/@batijs/solid-trpc/types/pages/todo-trpc/TodoList.d.ts +0 -4
- package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.telefunc.ts +0 -8
- package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.vue +0 -33
- package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+Page.vue +0 -20
- package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+config.ts +0 -3
- package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+data.ts +0 -9
- package/dist/boilerplates/@batijs/vue-telefunc/types/components/TodoList.telefunc.d.ts +0 -5
- package/dist/boilerplates/@batijs/vue-telefunc/types/pages/todo/+config.d.ts +0 -4
- package/dist/boilerplates/@batijs/vue-telefunc/types/pages/todo/+data.d.ts +0 -2
- package/dist/boilerplates/@batijs/vue-trpc/files/components/TodoListTrpc.vue +0 -31
- package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+Page.vue +0 -20
- package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+config.ts +0 -3
- package/dist/boilerplates/@batijs/vue-trpc/files/pages/todo-trpc/+data.ts +0 -9
- package/dist/boilerplates/@batijs/vue-trpc/types/pages/todo-trpc/+config.d.ts +0 -4
- package/dist/boilerplates/@batijs/vue-trpc/types/pages/todo-trpc/+data.d.ts +0 -2
- /package/dist/boilerplates/@batijs/{react-telefunc → react}/types/pages/todo/+Page.d.ts +0 -0
- /package/dist/boilerplates/@batijs/{react-telefunc → shared-todo}/files/pages/todo/+config.ts +0 -0
- /package/dist/boilerplates/@batijs/{react-telefunc → shared-todo}/types/pages/todo/+config.d.ts +0 -0
- /package/dist/boilerplates/@batijs/{solid-telefunc → solid}/types/pages/todo/+Page.d.ts +0 -0
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
colors,
|
|
4
4
|
getDefaultExportFromCjs,
|
|
5
5
|
isUnicodeSupported
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TGVSJ5SD.js";
|
|
7
7
|
|
|
8
8
|
// ../../node_modules/.pnpm/consola@3.2.3/node_modules/consola/dist/chunks/prompt.mjs
|
|
9
9
|
import { stdin, stdout } from "process";
|
|
@@ -15,20 +15,15 @@ var CSI = `${ESC}[`;
|
|
|
15
15
|
var beep = "\x07";
|
|
16
16
|
var cursor = {
|
|
17
17
|
to(x, y) {
|
|
18
|
-
if (!y)
|
|
19
|
-
return `${CSI}${x + 1}G`;
|
|
18
|
+
if (!y) return `${CSI}${x + 1}G`;
|
|
20
19
|
return `${CSI}${y + 1};${x + 1}H`;
|
|
21
20
|
},
|
|
22
21
|
move(x, y) {
|
|
23
22
|
let ret = "";
|
|
24
|
-
if (x < 0)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (y < 0)
|
|
29
|
-
ret += `${CSI}${-y}A`;
|
|
30
|
-
else if (y > 0)
|
|
31
|
-
ret += `${CSI}${y}B`;
|
|
23
|
+
if (x < 0) ret += `${CSI}${-x}D`;
|
|
24
|
+
else if (x > 0) ret += `${CSI}${x}C`;
|
|
25
|
+
if (y < 0) ret += `${CSI}${-y}A`;
|
|
26
|
+
else if (y > 0) ret += `${CSI}${y}B`;
|
|
32
27
|
return ret;
|
|
33
28
|
},
|
|
34
29
|
up: (count = 1) => `${CSI}${count}A`,
|
|
@@ -115,8 +110,7 @@ function z({ onlyFirst: t = false } = {}) {
|
|
|
115
110
|
return new RegExp(u, t ? void 0 : "g");
|
|
116
111
|
}
|
|
117
112
|
function $(t) {
|
|
118
|
-
if (typeof t != "string")
|
|
119
|
-
throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);
|
|
113
|
+
if (typeof t != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);
|
|
120
114
|
return t.replace(z(), "");
|
|
121
115
|
}
|
|
122
116
|
var m = {};
|
|
@@ -138,18 +132,14 @@ var G = { get exports() {
|
|
|
138
132
|
return e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || [];
|
|
139
133
|
}
|
|
140
134
|
u.length = function(e) {
|
|
141
|
-
for (var s2 = F(e), C = 0, D = 0; D < s2.length; D++)
|
|
142
|
-
C = C + this.characterLength(s2[D]);
|
|
135
|
+
for (var s2 = F(e), C = 0, D = 0; D < s2.length; D++) C = C + this.characterLength(s2[D]);
|
|
143
136
|
return C;
|
|
144
137
|
}, u.slice = function(e, s2, C) {
|
|
145
138
|
textLen = u.length(e), s2 = s2 || 0, C = C || 1, s2 < 0 && (s2 = textLen + s2), C < 0 && (C = textLen + C);
|
|
146
139
|
for (var D = "", i = 0, o = F(e), E = 0; E < o.length; E++) {
|
|
147
140
|
var a = o[E], n = u.length(a);
|
|
148
|
-
if (i >= s2 - (n == 2 ? 1 : 0))
|
|
149
|
-
|
|
150
|
-
D += a;
|
|
151
|
-
else
|
|
152
|
-
break;
|
|
141
|
+
if (i >= s2 - (n == 2 ? 1 : 0)) if (i + n <= C) D += a;
|
|
142
|
+
else break;
|
|
153
143
|
i += n;
|
|
154
144
|
}
|
|
155
145
|
return D;
|
|
@@ -160,15 +150,13 @@ var Y = function() {
|
|
|
160
150
|
return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
|
|
161
151
|
};
|
|
162
152
|
function c(t, u = {}) {
|
|
163
|
-
if (typeof t != "string" || t.length === 0 || (u = { ambiguousIsNarrow: true, ...u }, t = $(t), t.length === 0))
|
|
164
|
-
return 0;
|
|
153
|
+
if (typeof t != "string" || t.length === 0 || (u = { ambiguousIsNarrow: true, ...u }, t = $(t), t.length === 0)) return 0;
|
|
165
154
|
t = t.replace(Y(), " ");
|
|
166
155
|
const F = u.ambiguousIsNarrow ? 1 : 2;
|
|
167
156
|
let e = 0;
|
|
168
157
|
for (const s2 of t) {
|
|
169
158
|
const C = s2.codePointAt(0);
|
|
170
|
-
if (C <= 31 || C >= 127 && C <= 159 || C >= 768 && C <= 879)
|
|
171
|
-
continue;
|
|
159
|
+
if (C <= 31 || C >= 127 && C <= 159 || C >= 768 && C <= 879) continue;
|
|
172
160
|
switch (K.eastAsianWidth(s2)) {
|
|
173
161
|
case "F":
|
|
174
162
|
case "W":
|
|
@@ -195,34 +183,28 @@ var H = Object.keys(r.bgColor);
|
|
|
195
183
|
function U() {
|
|
196
184
|
const t = /* @__PURE__ */ new Map();
|
|
197
185
|
for (const [u, F] of Object.entries(r)) {
|
|
198
|
-
for (const [e, s2] of Object.entries(F))
|
|
199
|
-
r[e] = { open: `\x1B[${s2[0]}m`, close: `\x1B[${s2[1]}m` }, F[e] = r[e], t.set(s2[0], s2[1]);
|
|
186
|
+
for (const [e, s2] of Object.entries(F)) r[e] = { open: `\x1B[${s2[0]}m`, close: `\x1B[${s2[1]}m` }, F[e] = r[e], t.set(s2[0], s2[1]);
|
|
200
187
|
Object.defineProperty(r, u, { value: F, enumerable: false });
|
|
201
188
|
}
|
|
202
189
|
return Object.defineProperty(r, "codes", { value: t, enumerable: false }), r.color.close = "\x1B[39m", r.bgColor.close = "\x1B[49m", r.color.ansi = L(), r.color.ansi256 = M(), r.color.ansi16m = T(), r.bgColor.ansi = L(v), r.bgColor.ansi256 = M(v), r.bgColor.ansi16m = T(v), Object.defineProperties(r, { rgbToAnsi256: { value: (u, F, e) => u === F && F === e ? u < 8 ? 16 : u > 248 ? 231 : Math.round((u - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(u / 255 * 5) + 6 * Math.round(F / 255 * 5) + Math.round(e / 255 * 5), enumerable: false }, hexToRgb: { value: (u) => {
|
|
203
190
|
const F = /[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));
|
|
204
|
-
if (!F)
|
|
205
|
-
return [0, 0, 0];
|
|
191
|
+
if (!F) return [0, 0, 0];
|
|
206
192
|
let [e] = F;
|
|
207
193
|
e.length === 3 && (e = [...e].map((C) => C + C).join(""));
|
|
208
194
|
const s2 = Number.parseInt(e, 16);
|
|
209
195
|
return [s2 >> 16 & 255, s2 >> 8 & 255, s2 & 255];
|
|
210
196
|
}, enumerable: false }, hexToAnsi256: { value: (u) => r.rgbToAnsi256(...r.hexToRgb(u)), enumerable: false }, ansi256ToAnsi: { value: (u) => {
|
|
211
|
-
if (u < 8)
|
|
212
|
-
|
|
213
|
-
if (u < 16)
|
|
214
|
-
return 90 + (u - 8);
|
|
197
|
+
if (u < 8) return 30 + u;
|
|
198
|
+
if (u < 16) return 90 + (u - 8);
|
|
215
199
|
let F, e, s2;
|
|
216
|
-
if (u >= 232)
|
|
217
|
-
F = ((u - 232) * 10 + 8) / 255, e = F, s2 = F;
|
|
200
|
+
if (u >= 232) F = ((u - 232) * 10 + 8) / 255, e = F, s2 = F;
|
|
218
201
|
else {
|
|
219
202
|
u -= 16;
|
|
220
203
|
const i = u % 36;
|
|
221
204
|
F = Math.floor(u / 36) / 5, e = Math.floor(i / 6) / 5, s2 = i % 6 / 5;
|
|
222
205
|
}
|
|
223
206
|
const C = Math.max(F, e, s2) * 2;
|
|
224
|
-
if (C === 0)
|
|
225
|
-
return 30;
|
|
207
|
+
if (C === 0) return 30;
|
|
226
208
|
let D = 30 + (Math.round(s2) << 2 | Math.round(e) << 1 | Math.round(F));
|
|
227
209
|
return C === 2 && (D += 60), D;
|
|
228
210
|
}, enumerable: false }, rgbToAnsi: { value: (u, F, e) => r.ansi256ToAnsi(r.rgbToAnsi256(u, F, e)), enumerable: false }, hexToAnsi: { value: (u) => r.ansi256ToAnsi(r.hexToAnsi256(u)), enumerable: false } }), r;
|
|
@@ -254,13 +236,11 @@ var _ = (t, u, F) => {
|
|
|
254
236
|
var DD = (t) => {
|
|
255
237
|
const u = t.split(" ");
|
|
256
238
|
let F = u.length;
|
|
257
|
-
for (; F > 0 && !(c(u[F - 1]) > 0); )
|
|
258
|
-
F--;
|
|
239
|
+
for (; F > 0 && !(c(u[F - 1]) > 0); ) F--;
|
|
259
240
|
return F === u.length ? t : u.slice(0, F).join(" ") + u.slice(F).join("");
|
|
260
241
|
};
|
|
261
242
|
var uD = (t, u, F = {}) => {
|
|
262
|
-
if (F.trim !== false && t.trim() === "")
|
|
263
|
-
return "";
|
|
243
|
+
if (F.trim !== false && t.trim() === "") return "";
|
|
264
244
|
let e = "", s2, C;
|
|
265
245
|
const D = X(t);
|
|
266
246
|
let i = [""];
|
|
@@ -294,8 +274,7 @@ var uD = (t, u, F = {}) => {
|
|
|
294
274
|
if (B.code !== void 0) {
|
|
295
275
|
const A = Number.parseFloat(B.code);
|
|
296
276
|
s2 = A === J ? void 0 : A;
|
|
297
|
-
} else
|
|
298
|
-
B.uri !== void 0 && (C = B.uri.length === 0 ? void 0 : B.uri);
|
|
277
|
+
} else B.uri !== void 0 && (C = B.uri.length === 0 ? void 0 : B.uri);
|
|
299
278
|
}
|
|
300
279
|
const n = q.codes.get(Number(s2));
|
|
301
280
|
o[E + 1] === `
|
|
@@ -311,13 +290,11 @@ function P(t, u, F) {
|
|
|
311
290
|
`);
|
|
312
291
|
}
|
|
313
292
|
function FD(t, u) {
|
|
314
|
-
if (t === u)
|
|
315
|
-
return;
|
|
293
|
+
if (t === u) return;
|
|
316
294
|
const F = t.split(`
|
|
317
295
|
`), e = u.split(`
|
|
318
296
|
`), s2 = [];
|
|
319
|
-
for (let C = 0; C < Math.max(F.length, e.length); C++)
|
|
320
|
-
F[C] !== e[C] && s2.push(C);
|
|
297
|
+
for (let C = 0; C < Math.max(F.length, e.length); C++) F[C] !== e[C] && s2.push(C);
|
|
321
298
|
return s2;
|
|
322
299
|
}
|
|
323
300
|
var R = Symbol("clack:cancel");
|
|
@@ -352,10 +329,8 @@ var h = class {
|
|
|
352
329
|
}
|
|
353
330
|
emit(u, ...F) {
|
|
354
331
|
const e = this.subscribers.get(u) ?? [], s2 = [];
|
|
355
|
-
for (const C of e)
|
|
356
|
-
|
|
357
|
-
for (const C of s2)
|
|
358
|
-
C();
|
|
332
|
+
for (const C of e) C.cb(...F), C.once && s2.push(() => e.splice(e.indexOf(C), 1));
|
|
333
|
+
for (const C of s2) C();
|
|
359
334
|
}
|
|
360
335
|
unsubscribe() {
|
|
361
336
|
this.subscribers.clear();
|
|
@@ -382,8 +357,7 @@ var h = class {
|
|
|
382
357
|
render() {
|
|
383
358
|
const u = P(this._render(this) ?? "", process.stdout.columns, { hard: true });
|
|
384
359
|
if (u !== this._prevFrame) {
|
|
385
|
-
if (this.state === "initial")
|
|
386
|
-
this.output.write(src.cursor.hide);
|
|
360
|
+
if (this.state === "initial") this.output.write(src.cursor.hide);
|
|
387
361
|
else {
|
|
388
362
|
const F = FD(this._prevFrame, u);
|
|
389
363
|
if (this.restoreCursor(), F && F?.length === 1) {
|
|
@@ -485,8 +459,7 @@ var oD = class extends h {
|
|
|
485
459
|
super(u), this.valueWithCursor = "", this.on("finalize", () => {
|
|
486
460
|
this.value || (this.value = u.defaultValue), this.valueWithCursor = this.value;
|
|
487
461
|
}), this.on("value", () => {
|
|
488
|
-
if (this.cursor >= this.value.length)
|
|
489
|
-
this.valueWithCursor = `${this.value}${l.inverse(l.hidden("_"))}`;
|
|
462
|
+
if (this.cursor >= this.value.length) this.valueWithCursor = `${this.value}${l.inverse(l.hidden("_"))}`;
|
|
490
463
|
else {
|
|
491
464
|
const F = this.value.slice(0, this.cursor), e = this.value.slice(this.cursor);
|
|
492
465
|
this.valueWithCursor = `${F}${l.inverse(e[0])}${e.slice(1)}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@batijs/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.198",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"description": "Next-gen scaffolder. Get started with fully-functional apps, and choose any tool you want",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@types/node": "^18.19.14",
|
|
12
|
-
"@types/which": "^3.0.
|
|
12
|
+
"@types/which": "^3.0.4",
|
|
13
13
|
"@types/which-pm-runs": "^1.0.2",
|
|
14
14
|
"citty": "^0.1.6",
|
|
15
15
|
"colorette": "^2.0.20",
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
"execa": "^9.1.0",
|
|
18
18
|
"rimraf": "^5.0.7",
|
|
19
19
|
"sift": "^17.1.3",
|
|
20
|
-
"tsup": "^8.0
|
|
20
|
+
"tsup": "^8.1.0",
|
|
21
21
|
"typescript": "^5.4.5",
|
|
22
|
-
"vite": "^5.2.
|
|
22
|
+
"vite": "^5.2.12",
|
|
23
23
|
"which-pm-runs": "^1.1.0",
|
|
24
|
-
"@batijs/
|
|
25
|
-
"@batijs/
|
|
24
|
+
"@batijs/compile": "0.0.198",
|
|
25
|
+
"@batijs/build": "0.0.198"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@batijs/core": "0.0.
|
|
29
|
-
"@batijs/features": "0.0.
|
|
28
|
+
"@batijs/core": "0.0.198",
|
|
29
|
+
"@batijs/features": "0.0.198"
|
|
30
30
|
},
|
|
31
31
|
"bin": "./dist/index.js",
|
|
32
32
|
"exports": {
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { useData } from "vike-react/useData";
|
|
3
|
-
import type { Data } from "./+data.js";
|
|
4
|
-
import { TodoList } from "./TodoList.js";
|
|
5
|
-
|
|
6
|
-
export default function Page() {
|
|
7
|
-
const todoItemsInitial = useData<Data>();
|
|
8
|
-
return (
|
|
9
|
-
<>
|
|
10
|
-
<h1>To-do List</h1>
|
|
11
|
-
<TodoList todoItemsInitial={todoItemsInitial} />
|
|
12
|
-
<Counter />
|
|
13
|
-
</>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function Counter() {
|
|
18
|
-
const [count, setCount] = useState(0);
|
|
19
|
-
return (
|
|
20
|
-
<div>
|
|
21
|
-
This page is interactive:
|
|
22
|
-
<button type="button" onClick={() => setCount((count) => count + 1)}>
|
|
23
|
-
Counter {count}
|
|
24
|
-
</button>
|
|
25
|
-
</div>
|
|
26
|
-
);
|
|
27
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { TodoItem } from "@batijs/shared-db/database/todoItems";
|
|
2
|
-
import React, { useState } from "react";
|
|
3
|
-
import { onNewTodo } from "./TodoList.telefunc.js";
|
|
4
|
-
|
|
5
|
-
export function TodoList({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
|
|
6
|
-
const [todoItems, setTodoItems] = useState(todoItemsInitial);
|
|
7
|
-
const [newTodo, setNewTodo] = useState("");
|
|
8
|
-
return (
|
|
9
|
-
<>
|
|
10
|
-
<ul>
|
|
11
|
-
{todoItems.map((todoItem, i) => (
|
|
12
|
-
<li key={i}>{todoItem.text}</li>
|
|
13
|
-
))}
|
|
14
|
-
<li>
|
|
15
|
-
<form
|
|
16
|
-
onSubmit={async (ev) => {
|
|
17
|
-
ev.preventDefault();
|
|
18
|
-
const { todoItems } = await onNewTodo({ text: newTodo });
|
|
19
|
-
setNewTodo("");
|
|
20
|
-
setTodoItems(todoItems);
|
|
21
|
-
}}
|
|
22
|
-
>
|
|
23
|
-
<input type="text" onChange={(ev) => setNewTodo(ev.target.value)} value={newTodo} />{" "}
|
|
24
|
-
<button type="submit">Add to-do</button>
|
|
25
|
-
</form>
|
|
26
|
-
</li>
|
|
27
|
-
</ul>
|
|
28
|
-
</>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { useData } from "vike-react/useData";
|
|
3
|
-
import type { Data } from "./+data.js";
|
|
4
|
-
import { TodoList } from "./TodoList.js";
|
|
5
|
-
|
|
6
|
-
export default function Page() {
|
|
7
|
-
const todoItemsInitial = useData<Data>();
|
|
8
|
-
return (
|
|
9
|
-
<>
|
|
10
|
-
<h1>To-do List</h1>
|
|
11
|
-
<TodoList todoItemsInitial={todoItemsInitial} />
|
|
12
|
-
<Counter />
|
|
13
|
-
</>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function Counter() {
|
|
18
|
-
const [count, setCount] = useState(0);
|
|
19
|
-
return (
|
|
20
|
-
<div>
|
|
21
|
-
This page is interactive:
|
|
22
|
-
<button type="button" onClick={() => setCount((count) => count + 1)}>
|
|
23
|
-
Counter {count}
|
|
24
|
-
</button>
|
|
25
|
-
</div>
|
|
26
|
-
);
|
|
27
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { TodoItem } from "@batijs/shared-db/database/todoItems";
|
|
2
|
-
import { trpc } from "@batijs/trpc/trpc/client";
|
|
3
|
-
import React, { useState } from "react";
|
|
4
|
-
|
|
5
|
-
export function TodoList({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
|
|
6
|
-
const [todoItems, setTodoItems] = useState(todoItemsInitial);
|
|
7
|
-
const [draft, setDraft] = useState("");
|
|
8
|
-
return (
|
|
9
|
-
<>
|
|
10
|
-
<ul>
|
|
11
|
-
{todoItems.map((todoItem, i) => (
|
|
12
|
-
<li key={i}>{todoItem.text}</li>
|
|
13
|
-
))}
|
|
14
|
-
<li>
|
|
15
|
-
<form
|
|
16
|
-
onSubmit={async (ev) => {
|
|
17
|
-
ev.preventDefault();
|
|
18
|
-
const { todoItems } = await trpc.onNewTodo.mutate(draft);
|
|
19
|
-
setDraft("");
|
|
20
|
-
setTodoItems(todoItems);
|
|
21
|
-
}}
|
|
22
|
-
>
|
|
23
|
-
<input type="text" onChange={(ev) => setDraft(ev.target.value)} value={draft} />{" "}
|
|
24
|
-
<button type="submit">Add to-do</button>
|
|
25
|
-
</form>
|
|
26
|
-
</li>
|
|
27
|
-
</ul>
|
|
28
|
-
</>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function Page(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
type TodoItem = { text: string };
|
|
2
|
-
const todoItems: TodoItem[] = [];
|
|
3
|
-
init();
|
|
4
|
-
|
|
5
|
-
// Initial data
|
|
6
|
-
function init() {
|
|
7
|
-
todoItems.push({ text: "Buy milk" });
|
|
8
|
-
todoItems.push({ text: "Buy strawberries" });
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export { todoItems };
|
|
12
|
-
export type { TodoItem };
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { createSignal } from "solid-js";
|
|
2
|
-
import { useData } from "vike-solid/useData";
|
|
3
|
-
import type { Data } from "./+data.js";
|
|
4
|
-
import { TodoList } from "./TodoList.js";
|
|
5
|
-
|
|
6
|
-
export default function Page() {
|
|
7
|
-
const initialTodoItems = useData<Data>();
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<>
|
|
11
|
-
<h1>To-do List</h1>
|
|
12
|
-
<TodoList initialTodoItems={initialTodoItems} />
|
|
13
|
-
<Counter />
|
|
14
|
-
</>
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function Counter() {
|
|
19
|
-
const [count, setCount] = createSignal(0);
|
|
20
|
-
return (
|
|
21
|
-
<div>
|
|
22
|
-
This page is interactive:
|
|
23
|
-
<button type="button" onClick={() => setCount((count) => count + 1)}>
|
|
24
|
-
Counter {count()}
|
|
25
|
-
</button>
|
|
26
|
-
</div>
|
|
27
|
-
);
|
|
28
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { TodoItem } from "@batijs/shared-db/database/todoItems";
|
|
2
|
-
import { createSignal, For, untrack } from "solid-js";
|
|
3
|
-
import { onNewTodo } from "./TodoList.telefunc.js";
|
|
4
|
-
|
|
5
|
-
export function TodoList(props: { initialTodoItems: TodoItem[] }) {
|
|
6
|
-
const [todoItems, setTodoItems] = createSignal(props.initialTodoItems);
|
|
7
|
-
const [newTodo, setNewTodo] = createSignal("");
|
|
8
|
-
return (
|
|
9
|
-
<>
|
|
10
|
-
<ul>
|
|
11
|
-
<For each={todoItems()}>{(todoItem) => <li>{todoItem.text}</li>}</For>
|
|
12
|
-
<li>
|
|
13
|
-
<form
|
|
14
|
-
onSubmit={async (ev) => {
|
|
15
|
-
ev.preventDefault();
|
|
16
|
-
const { todoItems } = await onNewTodo({ text: untrack(newTodo) });
|
|
17
|
-
setNewTodo("");
|
|
18
|
-
setTodoItems(todoItems);
|
|
19
|
-
}}
|
|
20
|
-
>
|
|
21
|
-
<input type="text" onChange={(ev) => setNewTodo(ev.target.value)} value={newTodo()} />{" "}
|
|
22
|
-
<button type="submit">Add to-do</button>
|
|
23
|
-
</form>
|
|
24
|
-
</li>
|
|
25
|
-
</ul>
|
|
26
|
-
</>
|
|
27
|
-
);
|
|
28
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { createSignal } from "solid-js";
|
|
2
|
-
import { useData } from "vike-solid/useData";
|
|
3
|
-
import type { Data } from "./+data.js";
|
|
4
|
-
import { TodoList } from "./TodoList.js";
|
|
5
|
-
|
|
6
|
-
export default function Page() {
|
|
7
|
-
const initialTodoItems = useData<Data>();
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<>
|
|
11
|
-
<h1>To-do List</h1>
|
|
12
|
-
<TodoList initialTodoItems={initialTodoItems} />
|
|
13
|
-
<Counter />
|
|
14
|
-
</>
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function Counter() {
|
|
19
|
-
const [count, setCount] = createSignal(0);
|
|
20
|
-
return (
|
|
21
|
-
<div>
|
|
22
|
-
This page is interactive:
|
|
23
|
-
<button type="button" onClick={() => setCount((count) => count + 1)}>
|
|
24
|
-
Counter {count()}
|
|
25
|
-
</button>
|
|
26
|
-
</div>
|
|
27
|
-
);
|
|
28
|
-
}
|