@batijs/cli 0.0.649 → 0.0.651
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/auth0/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/authjs/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/authjs/files/server/authjs-handler.ts +1 -1
- package/dist/boilerplates/@batijs/aws/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/aws/files/cdk/bin/infrastructure.ts +1 -1
- package/dist/boilerplates/@batijs/better-auth/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/better-auth/files/database/better-auth/migrate.ts +1 -3
- package/dist/boilerplates/@batijs/better-auth/files/database/drizzle/schema/auth.ts +5 -5
- package/dist/boilerplates/@batijs/better-auth/files/server/better-auth-handler.ts +2 -2
- package/dist/boilerplates/@batijs/better-auth/files/server/better-auth.ts +8 -8
- package/dist/boilerplates/@batijs/biome/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/cloudflare/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/cloudflare/files/$vite.config.ts.js +9 -9
- package/dist/boilerplates/@batijs/compiled/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/compiled/files/$vite.config.ts.js +9 -9
- package/dist/boilerplates/@batijs/d1/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/d1-kysely/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/d1-sqlite/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/docker-compose/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/docker-compose/files/$Dockerfile.js +5 -44
- package/dist/boilerplates/@batijs/docker-compose/files/docker-compose.yml +6 -6
- package/dist/boilerplates/@batijs/dokploy/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/drizzle/bati.config.mjs +6 -1
- package/dist/boilerplates/@batijs/drizzle/files/database/drizzle/db.ts +3 -3
- package/dist/boilerplates/@batijs/drizzle/files/database/drizzle/queries/todos.ts +10 -10
- package/dist/boilerplates/@batijs/drizzle/files/database/drizzle/schema/todos.ts +2 -2
- package/dist/boilerplates/@batijs/drizzle/files/drizzle.config.ts +3 -3
- package/dist/boilerplates/@batijs/drizzle/types/database/drizzle/queries/todos.d.mts +6 -6
- package/dist/boilerplates/@batijs/edgeone/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/edgeone/files/$vite.config.ts.js +7 -7
- package/dist/boilerplates/@batijs/elysia/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/elysia/files/+server.ts +1 -1
- package/dist/boilerplates/@batijs/elysia/files/server/elysia.ts +9 -9
- package/dist/boilerplates/@batijs/eslint/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/eslint/files/eslint.config.ts +14 -14
- package/dist/boilerplates/@batijs/express/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/express/files/+server.ts +10 -10
- package/dist/boilerplates/@batijs/fastify/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/fastify/files/+server.ts +10 -10
- package/dist/boilerplates/@batijs/google-analytics/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/hono/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/hono/files/+server.ts +2 -2
- package/dist/boilerplates/@batijs/hono/files/entry_aws_lambda.ts +1 -3
- package/dist/boilerplates/@batijs/hono/files/server/hono.ts +9 -9
- package/dist/boilerplates/@batijs/kysely/bati.config.mjs +2 -1
- package/dist/boilerplates/@batijs/kysely/files/$vite.config.ts.js +9 -12
- package/dist/boilerplates/@batijs/kysely/files/database/kysely/db.ts +5 -5
- package/dist/boilerplates/@batijs/kysely/files/database/kysely/migrate.ts +5 -6
- package/dist/boilerplates/@batijs/kysely/files/database/kysely/migrations/001_create_todos_table.ts +2 -3
- package/dist/boilerplates/@batijs/kysely/files/database/kysely/queries/todos.ts +8 -8
- package/dist/boilerplates/@batijs/kysely/files/vite-plugin-input.ts +1 -2
- package/dist/boilerplates/@batijs/kysely/types/database/kysely/queries/todos.d.mts +8 -8
- package/dist/boilerplates/@batijs/mantine/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/netlify/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/netlify/files/$vite.config.ts.js +8 -8
- package/dist/boilerplates/@batijs/oxlint/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/plausible.io/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/pnpm/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/postgres/bati.config.mjs +2 -1
- package/dist/boilerplates/@batijs/postgres/files/database/postgres/db.ts +1 -1
- package/dist/boilerplates/@batijs/postgres/files/database/postgres/schema/todos.ts +1 -1
- package/dist/boilerplates/@batijs/prettier/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/prisma/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/react/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/react/files/$vite.config.ts.js +7 -7
- package/dist/boilerplates/@batijs/react/files/pages/+Head.tsx +6 -6
- package/dist/boilerplates/@batijs/react/files/pages/+Layout.tsx +14 -14
- package/dist/boilerplates/@batijs/react/files/pages/+config.ts +3 -3
- package/dist/boilerplates/@batijs/react/files/pages/index/+Page.tsx +1 -1
- package/dist/boilerplates/@batijs/react/files/pages/index/Counter.tsx +3 -3
- package/dist/boilerplates/@batijs/react/files/pages/todo/TodoList.tsx +6 -6
- package/dist/boilerplates/@batijs/react-better-auth/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/react-better-auth/files/pages/account/+Page.tsx +1 -1
- package/dist/boilerplates/@batijs/react-better-auth/files/pages/login/+Page.tsx +4 -4
- package/dist/boilerplates/@batijs/react-better-auth/files/pages/signup/+Page.tsx +4 -4
- package/dist/boilerplates/@batijs/react-sentry/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/sentry/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/sentry/files/$vite.config.ts.js +10 -10
- package/dist/boilerplates/@batijs/sentry/files/pages/$+client.ts.js +12 -18
- package/dist/boilerplates/@batijs/shadcn-ui/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/shadcn-ui/files/$vite.config.ts.js +5 -27
- package/dist/boilerplates/@batijs/shared/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/shared/files/vite.config.ts +1 -1
- package/dist/boilerplates/@batijs/shared-db/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/shared-db/files/server/db-middleware.ts +21 -21
- package/dist/boilerplates/@batijs/shared-db/types/server/db-middleware.d.mts +10 -10
- package/dist/boilerplates/@batijs/shared-env/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/shared-env/files/server/env.ts +6 -4
- package/dist/boilerplates/@batijs/shared-env/files/server/load.ts +1 -1
- package/dist/boilerplates/@batijs/shared-env/types/server/env.d.mts +2 -2
- package/dist/boilerplates/@batijs/shared-server/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/shared-server/files/server/create-todo-handler.ts +16 -16
- package/dist/boilerplates/@batijs/shared-server/types/server/create-todo-handler.d.mts +10 -10
- package/dist/boilerplates/@batijs/shared-todo/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/shared-todo/files/global.d.ts +11 -11
- package/dist/boilerplates/@batijs/shared-todo/files/pages/todo/+config.ts +1 -4
- package/dist/boilerplates/@batijs/shared-todo/files/pages/todo/+data.ts +5 -5
- package/dist/boilerplates/@batijs/solid/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/solid/files/$vite.config.ts.js +7 -7
- package/dist/boilerplates/@batijs/solid/files/pages/+Head.tsx +3 -4
- package/dist/boilerplates/@batijs/solid/files/pages/+Layout.tsx +10 -10
- package/dist/boilerplates/@batijs/solid/files/pages/+config.ts +3 -3
- package/dist/boilerplates/@batijs/solid/files/pages/index/Counter.tsx +2 -2
- package/dist/boilerplates/@batijs/solid/files/pages/todo/TodoList.tsx +6 -6
- package/dist/boilerplates/@batijs/solid-better-auth/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/solid-better-auth/files/pages/account/+Page.tsx +1 -1
- package/dist/boilerplates/@batijs/solid-better-auth/files/pages/login/+Page.tsx +4 -4
- package/dist/boilerplates/@batijs/solid-better-auth/files/pages/signup/+Page.tsx +4 -4
- package/dist/boilerplates/@batijs/solid-sentry/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/sqlite/bati.config.mjs +2 -1
- package/dist/boilerplates/@batijs/sqlite/files/database/sqlite/db.ts +1 -1
- package/dist/boilerplates/@batijs/sqlite/files/database/sqlite/schema/todos.ts +1 -1
- package/dist/boilerplates/@batijs/storybook/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/tailwindcss/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/tailwindcss/files/$vite.config.ts.js +7 -7
- package/dist/boilerplates/@batijs/tailwindcss/files/pages/tailwind.css +2 -2
- package/dist/boilerplates/@batijs/telefunc/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/telefunc/files/$vite.config.ts.js +8 -8
- package/dist/boilerplates/@batijs/telefunc/files/global.d.ts +12 -12
- package/dist/boilerplates/@batijs/telefunc/files/pages/todo/TodoList.telefunc.ts +5 -5
- package/dist/boilerplates/@batijs/telefunc/files/server/telefunc-handler.ts +12 -12
- package/dist/boilerplates/@batijs/trpc/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/trpc/files/server/trpc-handler.ts +4 -4
- package/dist/boilerplates/@batijs/trpc/files/trpc/server.ts +15 -15
- package/dist/boilerplates/@batijs/ts-rest/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/ts-rest/files/server/ts-rest-handler.ts +15 -15
- package/dist/boilerplates/@batijs/universal-deploy/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/vercel/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/vercel/files/$vite.config.ts.js +8 -8
- package/dist/boilerplates/@batijs/vue/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/vue/files/$vite.config.ts.js +7 -7
- package/dist/boilerplates/@batijs/vue/files/components/Content.vue +2 -2
- package/dist/boilerplates/@batijs/vue/files/components/Counter.vue +3 -3
- package/dist/boilerplates/@batijs/vue/files/components/Logo.vue +2 -2
- package/dist/boilerplates/@batijs/vue/files/components/Sidebar.vue +2 -2
- package/dist/boilerplates/@batijs/vue/files/pages/+Head.vue +2 -3
- package/dist/boilerplates/@batijs/vue/files/pages/+Layout.vue +3 -3
- package/dist/boilerplates/@batijs/vue/files/pages/+config.ts +3 -3
- package/dist/boilerplates/@batijs/vue/files/pages/+onCreateApp.ts +1 -1
- package/dist/boilerplates/@batijs/vue/files/pages/todo/TodoList.vue +8 -8
- package/dist/boilerplates/@batijs/vue-better-auth/bati.config.mjs +1 -1
- package/dist/boilerplates/@batijs/vue-better-auth/files/pages/account/+Page.vue +1 -1
- package/dist/boilerplates/@batijs/vue-better-auth/files/pages/login/+Page.vue +3 -3
- package/dist/boilerplates/@batijs/vue-better-auth/files/pages/signup/+Page.vue +2 -2
- package/dist/boilerplates/@batijs/vue-sentry/bati.config.mjs +1 -1
- package/dist/index.js +49 -47
- package/package.json +5 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div id="page-container">
|
|
3
|
-
<!-- BATI.has("tailwindcss") -->
|
|
3
|
+
<!-- $$.BATI.has("tailwindcss") -->
|
|
4
4
|
<div id="page-content" class="p-5 pb-12 min-h-screen">
|
|
5
5
|
<slot />
|
|
6
6
|
</div>
|
|
7
|
-
<!--
|
|
7
|
+
<!-- !$$.BATI.has("tailwindcss") -->
|
|
8
8
|
<div id="page-content" style="padding: 20px; padding-bottom: 50px; min-height: 100vh">
|
|
9
9
|
<slot />
|
|
10
10
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<!-- BATI.has("daisyui") -->
|
|
2
|
+
<!-- $$.BATI.has("daisyui") -->
|
|
3
3
|
<button type="button" class="btn" @click="state.count++">Counter {{ state.count }}</button>
|
|
4
|
-
<!-- BATI.has("tailwindcss") &&
|
|
4
|
+
<!-- $$.BATI.has("tailwindcss") && !$$.BATI.has("daisyui") -->
|
|
5
5
|
<button
|
|
6
6
|
type="button"
|
|
7
7
|
class="inline-block border border-black rounded bg-gray-200 px-2 py-1 text-xs font-medium uppercase leading-normal"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
>
|
|
10
10
|
Counter {{ state.count }}
|
|
11
11
|
</button>
|
|
12
|
-
<!--
|
|
12
|
+
<!-- !$$.BATI.has("tailwindcss") -->
|
|
13
13
|
<button type="button" @click="state.count++">Counter {{ state.count }}</button>
|
|
14
14
|
</template>
|
|
15
15
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<!-- BATI.has("tailwindcss") -->
|
|
2
|
+
<!-- $$.BATI.has("tailwindcss") -->
|
|
3
3
|
<div class="p-5 mb-2">
|
|
4
4
|
<a href="/">
|
|
5
5
|
<img src="../assets/logo.svg" height="64" width="64" />
|
|
6
6
|
</a>
|
|
7
7
|
</div>
|
|
8
|
-
<!--
|
|
8
|
+
<!-- !$$.BATI.has("tailwindcss") -->
|
|
9
9
|
<div style="margin-top: 20px; margin-bottom: 10px">
|
|
10
10
|
<a href="/">
|
|
11
11
|
<img src="../assets/logo.svg" height="64" width="64" />
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<!-- BATI.has("tailwindcss") -->
|
|
2
|
+
<!-- $$.BATI.has("tailwindcss") -->
|
|
3
3
|
<div id="sidebar" class="p-5 flex flex-col shrink-0 border-r-2 border-r-gray-200">
|
|
4
4
|
<slot />
|
|
5
5
|
</div>
|
|
6
|
-
<!--
|
|
6
|
+
<!-- !$$.BATI.has("tailwindcss") -->
|
|
7
7
|
<div
|
|
8
8
|
id="sidebar"
|
|
9
9
|
style="
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
<template>
|
|
4
4
|
<link rel="icon" :href="logoUrl" />
|
|
5
|
-
|
|
6
|
-
<!-- BATI.has("plausible.io") -->
|
|
5
|
+
<!-- $$.BATI.has("plausible.io") -->
|
|
7
6
|
<!-- See https://plausible.io/docs/plausible-script -->
|
|
8
7
|
<!-- TODO: update data-domain -->
|
|
9
8
|
<component :is="'script'" defer data-domain="yourdomain.com" src="https://plausible.io/js/script.js" />
|
|
10
9
|
</template>
|
|
11
10
|
|
|
12
11
|
<script setup lang="ts">
|
|
13
|
-
|
|
12
|
+
// $$.BATI.has("tailwindcss")
|
|
14
13
|
import "@batijs/tailwindcss/pages/tailwind.css";
|
|
15
14
|
import logoUrl from "../assets/logo.svg";
|
|
16
15
|
</script>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<Link href="/"> Welcome </Link>
|
|
8
8
|
<Link href="/todo"> Todo </Link>
|
|
9
9
|
<Link href="/star-wars"> Data Fetching </Link>
|
|
10
|
-
<!-- BATI.has("better-auth") -->
|
|
10
|
+
<!-- $$.BATI.has("better-auth") -->
|
|
11
11
|
<AuthNav />
|
|
12
12
|
</Sidebar>
|
|
13
13
|
<Content><slot /></Content>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
</template>
|
|
16
16
|
|
|
17
17
|
<script lang="ts" setup>
|
|
18
|
-
|
|
18
|
+
// $$.BATI.has("better-auth")
|
|
19
19
|
import AuthNav from "../components/AuthNav.vue";
|
|
20
20
|
import Content from "../components/Content.vue";
|
|
21
21
|
import Link from "../components/Link.vue";
|
|
@@ -23,7 +23,7 @@ import Logo from "../components/Logo.vue";
|
|
|
23
23
|
import Sidebar from "../components/Sidebar.vue";
|
|
24
24
|
import { sentryBrowserConfig } from "../sentry.browser.config";
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
// $$.BATI.has("sentry")
|
|
27
27
|
sentryBrowserConfig();
|
|
28
28
|
</script>
|
|
29
29
|
|
|
@@ -9,14 +9,14 @@ const config: Config = {
|
|
|
9
9
|
title: "My Vike App",
|
|
10
10
|
description: "Demo showcasing Vike",
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
// $$.BATI.has("auth0") || $$.BATI.has("authjs") || $$.BATI.has("better-auth")
|
|
13
13
|
passToClient: ["user"],
|
|
14
14
|
extends: [vikeVue],
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
// $$.BATI.has("vercel")
|
|
17
17
|
prerender: true,
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
// $$.BATI.hasUD && !$$.BATI.hasServer
|
|
20
20
|
// https://vike.dev/server
|
|
21
21
|
server: true,
|
|
22
22
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { OnCreateAppSync } from "vike-vue/types";
|
|
2
2
|
import { createGtag } from "vue-gtag";
|
|
3
3
|
|
|
4
|
-
// BATI.has("google-analytics")
|
|
4
|
+
// $$.BATI.has("google-analytics")
|
|
5
5
|
export const onCreateApp: OnCreateAppSync = (pageContext): ReturnType<OnCreateAppSync> => {
|
|
6
6
|
const { app } = pageContext;
|
|
7
7
|
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
</li>
|
|
6
6
|
<li>
|
|
7
7
|
<form @submit.prevent="submitNewTodo()">
|
|
8
|
-
<!-- BATI.has("tailwindcss") -->
|
|
8
|
+
<!-- $$.BATI.has("tailwindcss") -->
|
|
9
9
|
<input v-model="newTodo" type="text" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 w-full sm:w-auto p-2 mr-1 mb-1" />
|
|
10
|
-
<!--
|
|
10
|
+
<!-- !$$.BATI.has("tailwindcss") -->
|
|
11
11
|
<input v-model="newTodo" type="text" />
|
|
12
|
-
<!-- BATI.has("tailwindcss") -->
|
|
12
|
+
<!-- $$.BATI.has("tailwindcss") -->
|
|
13
13
|
<button type="submit" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-2 focus:outline-hidden focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto p-2">Add to-do</button>
|
|
14
|
-
<!--
|
|
14
|
+
<!-- !$$.BATI.has("tailwindcss") -->
|
|
15
15
|
<button type="submit">Add to-do</button>
|
|
16
16
|
</form>
|
|
17
17
|
</li>
|
|
@@ -34,12 +34,12 @@ const submitNewTodo = async () => {
|
|
|
34
34
|
const text = newTodo.value;
|
|
35
35
|
todoItems.value.push({ text });
|
|
36
36
|
newTodo.value = "";
|
|
37
|
-
if (BATI.hasServer) {
|
|
38
|
-
if (BATI.has("telefunc")) {
|
|
37
|
+
if ($$.BATI.hasServer) {
|
|
38
|
+
if ($$.BATI.has("telefunc")) {
|
|
39
39
|
await onNewTodo({ text });
|
|
40
|
-
} else if (BATI.has("trpc")) {
|
|
40
|
+
} else if ($$.BATI.has("trpc")) {
|
|
41
41
|
await trpc.onNewTodo.mutate(text);
|
|
42
|
-
} else if (BATI.has("ts-rest")) {
|
|
42
|
+
} else if ($$.BATI.has("ts-rest")) {
|
|
43
43
|
await client.createTodo({ body: { text } });
|
|
44
44
|
} else {
|
|
45
45
|
const response = await fetch("/api/todo/create", {
|
|
@@ -3,7 +3,7 @@ function e(e, t) {
|
|
|
3
3
|
if (!e) throw Error(t);
|
|
4
4
|
}
|
|
5
5
|
function t(t) {
|
|
6
|
-
return `enforce` in t && e(t.enforce === `pre` || t.enforce === `post`, `'enforce' must be 'pre' or 'post', was ${t.enforce}`), `if` in t && e(typeof t.if == `function`, `'if' must be a function`), `nextSteps` in t && e(typeof t.nextSteps == `function`, `'nextSteps' must be a function`), `knip` in t && (e(typeof t.knip == `object` && t.knip !== null, `'knip' must be an object`), `entry` in t.knip && e(Array.isArray(t.knip.entry), `'knip.entry' must be an array`), `ignoreDependencies` in t.knip && e(Array.isArray(t.knip.ignoreDependencies), `'knip.ignoreDependencies' must be an array`), `ignore` in t.knip && e(Array.isArray(t.knip.ignore), `'knip.ignore' must be an array`), `vite` in t.knip && e(typeof t.knip.vite == `boolean`, `'knip.vite' must be a boolean`)), `env` in t && e(typeof t.env == `function`, `'env' must be a function of meta`), t;
|
|
6
|
+
return `enforce` in t && e(t.enforce === `pre` || t.enforce === `post`, `'enforce' must be 'pre' or 'post', was ${t.enforce}`), `if` in t && e(typeof t.if == `function`, `'if' must be a function`), `nextSteps` in t && e(typeof t.nextSteps == `function`, `'nextSteps' must be a function`), `knip` in t && (e(typeof t.knip == `object` && t.knip !== null, `'knip' must be an object`), `entry` in t.knip && e(Array.isArray(t.knip.entry), `'knip.entry' must be an array`), `ignoreDependencies` in t.knip && e(Array.isArray(t.knip.ignoreDependencies), `'knip.ignoreDependencies' must be an array`), `ignore` in t.knip && e(Array.isArray(t.knip.ignore), `'knip.ignore' must be an array`), `vite` in t.knip && e(typeof t.knip.vite == `boolean`, `'knip.vite' must be a boolean`)), `env` in t && e(typeof t.env == `function`, `'env' must be a function of meta`), `deploy` in t && e(Array.isArray(t.deploy) || typeof t.deploy == `function`, `'deploy' must be an array or a function of meta`), t;
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
//#region bati.config.ts
|
|
@@ -15,7 +15,7 @@ import { usePageContext } from "vike-vue/usePageContext";
|
|
|
15
15
|
const authClient = createAuthClient();
|
|
16
16
|
const pageContext = usePageContext();
|
|
17
17
|
|
|
18
|
-
const buttonClass = BATI.has("tailwindcss")
|
|
18
|
+
const buttonClass = $$.BATI.has("tailwindcss")
|
|
19
19
|
? "text-white bg-blue-700 hover:bg-blue-800 focus:ring-2 focus:outline-hidden focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto p-2"
|
|
20
20
|
: "";
|
|
21
21
|
|
|
@@ -39,13 +39,13 @@ const email = ref("");
|
|
|
39
39
|
const password = ref("");
|
|
40
40
|
const error = ref<string | null>(null);
|
|
41
41
|
|
|
42
|
-
const inputClass = BATI.has("tailwindcss")
|
|
42
|
+
const inputClass = $$.BATI.has("tailwindcss")
|
|
43
43
|
? "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 w-full sm:w-auto p-2 mr-1 mb-1"
|
|
44
44
|
: "";
|
|
45
|
-
const buttonClass = BATI.has("tailwindcss")
|
|
45
|
+
const buttonClass = $$.BATI.has("tailwindcss")
|
|
46
46
|
? "text-white bg-blue-700 hover:bg-blue-800 focus:ring-2 focus:outline-hidden focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto p-2"
|
|
47
47
|
: "";
|
|
48
|
-
const githubButtonClass = BATI.has("tailwindcss")
|
|
48
|
+
const githubButtonClass = $$.BATI.has("tailwindcss")
|
|
49
49
|
? "text-white bg-gray-800 hover:bg-gray-900 focus:ring-2 focus:outline-hidden focus:ring-gray-300 font-medium rounded-lg text-sm w-full sm:w-auto p-2"
|
|
50
50
|
: "";
|
|
51
51
|
|
|
@@ -35,10 +35,10 @@ const email = ref("");
|
|
|
35
35
|
const password = ref("");
|
|
36
36
|
const error = ref<string | null>(null);
|
|
37
37
|
|
|
38
|
-
const inputClass = BATI.has("tailwindcss")
|
|
38
|
+
const inputClass = $$.BATI.has("tailwindcss")
|
|
39
39
|
? "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 w-full sm:w-auto p-2 mr-1 mb-1"
|
|
40
40
|
: "";
|
|
41
|
-
const buttonClass = BATI.has("tailwindcss")
|
|
41
|
+
const buttonClass = $$.BATI.has("tailwindcss")
|
|
42
42
|
? "text-white bg-blue-700 hover:bg-blue-800 focus:ring-2 focus:outline-hidden focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto p-2"
|
|
43
43
|
: "";
|
|
44
44
|
|
|
@@ -3,7 +3,7 @@ function e(e, t) {
|
|
|
3
3
|
if (!e) throw Error(t);
|
|
4
4
|
}
|
|
5
5
|
function t(t) {
|
|
6
|
-
return `enforce` in t && e(t.enforce === `pre` || t.enforce === `post`, `'enforce' must be 'pre' or 'post', was ${t.enforce}`), `if` in t && e(typeof t.if == `function`, `'if' must be a function`), `nextSteps` in t && e(typeof t.nextSteps == `function`, `'nextSteps' must be a function`), `knip` in t && (e(typeof t.knip == `object` && t.knip !== null, `'knip' must be an object`), `entry` in t.knip && e(Array.isArray(t.knip.entry), `'knip.entry' must be an array`), `ignoreDependencies` in t.knip && e(Array.isArray(t.knip.ignoreDependencies), `'knip.ignoreDependencies' must be an array`), `ignore` in t.knip && e(Array.isArray(t.knip.ignore), `'knip.ignore' must be an array`), `vite` in t.knip && e(typeof t.knip.vite == `boolean`, `'knip.vite' must be a boolean`)), `env` in t && e(typeof t.env == `function`, `'env' must be a function of meta`), t;
|
|
6
|
+
return `enforce` in t && e(t.enforce === `pre` || t.enforce === `post`, `'enforce' must be 'pre' or 'post', was ${t.enforce}`), `if` in t && e(typeof t.if == `function`, `'if' must be a function`), `nextSteps` in t && e(typeof t.nextSteps == `function`, `'nextSteps' must be a function`), `knip` in t && (e(typeof t.knip == `object` && t.knip !== null, `'knip' must be an object`), `entry` in t.knip && e(Array.isArray(t.knip.entry), `'knip.entry' must be an array`), `ignoreDependencies` in t.knip && e(Array.isArray(t.knip.ignoreDependencies), `'knip.ignoreDependencies' must be an array`), `ignore` in t.knip && e(Array.isArray(t.knip.ignore), `'knip.ignore' must be an array`), `vite` in t.knip && e(typeof t.knip.vite == `boolean`, `'knip.vite' must be a boolean`)), `env` in t && e(typeof t.env == `function`, `'env' must be a function of meta`), `deploy` in t && e(Array.isArray(t.deploy) || typeof t.deploy == `function`, `'deploy' must be an array or a function of meta`), t;
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
//#region bati.config.ts
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { access, constants, lstat, mkdir, opendir, readFile, readdir, rm, rmdir,
|
|
|
7
7
|
import { tmpdir } from "node:os";
|
|
8
8
|
import path, { dirname, extname, join, normalize, parse, relative } from "node:path";
|
|
9
9
|
import { fileURLToPath } from "node:url";
|
|
10
|
-
import { formatCode, getVersion,
|
|
10
|
+
import { formatCode, getVersion, markEmptyExport, mergeDts, packageManager, transformAndFormat, which, withIcon } from "@batijs/core";
|
|
11
11
|
import { BatiSet, cliFlags, features } from "@batijs/features";
|
|
12
12
|
import { RulesMessage, execRules } from "@batijs/features/rules";
|
|
13
13
|
import { AsyncLocalStorage, AsyncResource } from "node:async_hooks";
|
|
@@ -49,39 +49,36 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
49
49
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
50
50
|
//#endregion
|
|
51
51
|
//#region ../build/dist/index.js
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return clearExports(
|
|
63
|
-
}
|
|
64
|
-
function clearExports(code, meta) {
|
|
52
|
+
let merger;
|
|
53
|
+
let emptyExportMarker;
|
|
54
|
+
/**
|
|
55
|
+
* Merge two already-`$$`-transformed `.d.ts` files into one: concatenate them and run the `mergeDts`
|
|
56
|
+
* codemod, which hoists/dedupes imports and folds same-named `declare global` / `declare module` /
|
|
57
|
+
* `namespace` / `interface` declarations together. Then tidy whitespace and strip a now-empty
|
|
58
|
+
* `export {}`.
|
|
59
|
+
*/
|
|
60
|
+
async function mergeDts$1({ fileContent, previousContent, filepath, meta }) {
|
|
61
|
+
merger ??= mergeDts.forTarget("tsx");
|
|
62
|
+
return clearExports(await formatCode((await merger).transform(`${previousContent}\n${fileContent}`, {}), { filepath }), meta);
|
|
63
|
+
}
|
|
64
|
+
async function clearExports(code, meta) {
|
|
65
65
|
if (code.trim() === "export {};") return;
|
|
66
|
-
if (meta.BATI.has("biome"))
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (index !== -1 && foundImport) return code.slice(0, index) + "\n// biome-ignore lint/complexity/noUselessEmptyExport: ensure that the file is considered as a module" + code.slice(index);
|
|
70
|
-
}
|
|
71
|
-
return code;
|
|
66
|
+
if (!meta.BATI.has("biome")) return code;
|
|
67
|
+
emptyExportMarker ??= markEmptyExport.forTarget("tsx");
|
|
68
|
+
return (await emptyExportMarker).transform(code, {});
|
|
72
69
|
}
|
|
73
70
|
async function executeOperationFile(op, { meta, previousOperationSameDestination }) {
|
|
74
71
|
const code = await readFile(op.sourceAbsolute, { encoding: "utf-8" });
|
|
75
72
|
const filepath = relative(op.source, op.sourceAbsolute);
|
|
76
73
|
const result = await transformAndFormat(code, meta, { filepath });
|
|
77
74
|
let fileContent = result.code;
|
|
78
|
-
if (op.sourceAbsolute.endsWith(".d.ts")) if (previousOperationSameDestination?.content) fileContent = await mergeDts({
|
|
75
|
+
if (op.sourceAbsolute.endsWith(".d.ts")) if (previousOperationSameDestination?.content) fileContent = await mergeDts$1({
|
|
79
76
|
fileContent,
|
|
80
77
|
previousContent: previousOperationSameDestination.content,
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
filepath,
|
|
79
|
+
meta
|
|
83
80
|
});
|
|
84
|
-
else fileContent = clearExports(fileContent, meta);
|
|
81
|
+
else fileContent = await clearExports(fileContent, meta);
|
|
85
82
|
return {
|
|
86
83
|
context: result.context,
|
|
87
84
|
content: fileContent ? fileContent.trimStart() : void 0
|
|
@@ -172,7 +169,7 @@ async function transformFileAfterExec(filepath, fileContent) {
|
|
|
172
169
|
async function importTransformer(p) {
|
|
173
170
|
return (await (isWin$1 ? import(`file://${p}`) : import(p))).default;
|
|
174
171
|
}
|
|
175
|
-
async function executeOperationTransform(op, { meta, previousOperationSameDestination, packageJson, env }) {
|
|
172
|
+
async function executeOperationTransform(op, { meta, previousOperationSameDestination, packageJson, env, deploy }) {
|
|
176
173
|
const transformer = await importTransformer(op.sourceAbsolute);
|
|
177
174
|
const previousContent = previousOperationSameDestination?.content;
|
|
178
175
|
const fileContent = await transformFileAfterExec(op.destination, await transformer({
|
|
@@ -181,20 +178,21 @@ async function executeOperationTransform(op, { meta, previousOperationSameDestin
|
|
|
181
178
|
source: op.source,
|
|
182
179
|
target: op.destination,
|
|
183
180
|
packageJson,
|
|
184
|
-
env
|
|
181
|
+
env,
|
|
182
|
+
deploy
|
|
185
183
|
}));
|
|
186
184
|
return { content: fileContent !== null ? fileContent : void 0 };
|
|
187
185
|
}
|
|
188
186
|
var RelationFile = class RelationFile {
|
|
189
187
|
pathAbsolute;
|
|
190
|
-
|
|
188
|
+
keepFileIfImported;
|
|
191
189
|
static allPathAbsolute = /* @__PURE__ */ new Map();
|
|
192
|
-
static
|
|
193
|
-
constructor(pathAbsolute,
|
|
190
|
+
static allKeepFileIfImported = [];
|
|
191
|
+
constructor(pathAbsolute, keepFileIfImported) {
|
|
194
192
|
this.pathAbsolute = pathAbsolute;
|
|
195
|
-
this.
|
|
193
|
+
this.keepFileIfImported = keepFileIfImported;
|
|
196
194
|
RelationFile.allPathAbsolute.set(pathAbsolute, this);
|
|
197
|
-
if (
|
|
195
|
+
if (keepFileIfImported) RelationFile.allKeepFileIfImported.push(this);
|
|
198
196
|
}
|
|
199
197
|
};
|
|
200
198
|
var RelationImport = class RelationImport {
|
|
@@ -213,10 +211,10 @@ var RelationImport = class RelationImport {
|
|
|
213
211
|
static computeUnimportedFiles() {
|
|
214
212
|
const unimportedFiles = [];
|
|
215
213
|
const importedByVolatileFile = [];
|
|
216
|
-
for (const file of RelationFile.
|
|
214
|
+
for (const file of RelationFile.allKeepFileIfImported) {
|
|
217
215
|
const importedFile = RelationImport.allImports.find((ai) => ai.importTargetRelationFile === file);
|
|
218
216
|
if (!importedFile) unimportedFiles.push(file);
|
|
219
|
-
else if (importedFile.source.
|
|
217
|
+
else if (importedFile.source.keepFileIfImported) importedByVolatileFile.push(importedFile);
|
|
220
218
|
}
|
|
221
219
|
return computeDeepUnimportedFiles(importedByVolatileFile, unimportedFiles);
|
|
222
220
|
}
|
|
@@ -288,8 +286,9 @@ async function* walk(dir) {
|
|
|
288
286
|
async function main(options, meta) {
|
|
289
287
|
const sources = Array.isArray(options.source) ? options.source : [options.source];
|
|
290
288
|
const env = options.env ?? [];
|
|
291
|
-
|
|
292
|
-
|
|
289
|
+
const deploy = options.deploy ?? [];
|
|
290
|
+
function updateAllImports(target, imports, keepFileIfImported) {
|
|
291
|
+
const rf = new RelationFile(target, keepFileIfImported);
|
|
293
292
|
if (!imports) return;
|
|
294
293
|
for (const imp of imports.values()) new RelationImport(rf, path.resolve(path.dirname(target), imp));
|
|
295
294
|
}
|
|
@@ -334,12 +333,13 @@ Please report this issue to https://github.com/vikejs/bati`);
|
|
|
334
333
|
meta,
|
|
335
334
|
previousOperationSameDestination: previousOp
|
|
336
335
|
});
|
|
337
|
-
updateAllImports(op.destinationAbsolute, report.context?.imports, Boolean(report.context?.flags.has("
|
|
336
|
+
updateAllImports(op.destinationAbsolute, report.context?.imports, Boolean(report.context?.flags.has("keep-file-if-imported")));
|
|
338
337
|
} else if (op.kind === "transform") report = await executeOperationTransform(op, {
|
|
339
338
|
meta,
|
|
340
339
|
previousOperationSameDestination: previousOp,
|
|
341
340
|
packageJson,
|
|
342
|
-
env
|
|
341
|
+
env,
|
|
342
|
+
deploy
|
|
343
343
|
});
|
|
344
344
|
if (report.content) {
|
|
345
345
|
await safeWriteFile(op.destination, report.content.trimStart());
|
|
@@ -2518,7 +2518,7 @@ var colorette_exports = /* @__PURE__ */ __exportAll({
|
|
|
2518
2518
|
underline: () => underline,
|
|
2519
2519
|
white: () => white,
|
|
2520
2520
|
whiteBright: () => whiteBright,
|
|
2521
|
-
yellow: () => yellow
|
|
2521
|
+
yellow: () => yellow,
|
|
2522
2522
|
yellowBright: () => yellowBright
|
|
2523
2523
|
});
|
|
2524
2524
|
const { env = {}, argv = [], platform = "" } = typeof process === "undefined" ? {} : process;
|
|
@@ -2580,7 +2580,7 @@ const createColors = ({ useColor = isColorSupported } = {}) => useColor ? colors
|
|
|
2580
2580
|
...colors,
|
|
2581
2581
|
[key]: String
|
|
2582
2582
|
}), {});
|
|
2583
|
-
const { reset, bold, dim, italic, underline, inverse, hidden, strikethrough, black, red, green, yellow
|
|
2583
|
+
const { reset, bold, dim, italic, underline, inverse, hidden, strikethrough, black, red, green, yellow, blue, magenta, cyan, white, gray, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, blackBright, redBright, greenBright, yellowBright, blueBright, magentaBright, cyanBright, whiteBright, bgBlackBright, bgRedBright, bgGreenBright, bgYellowBright, bgBlueBright, bgMagentaBright, bgCyanBright, bgWhiteBright } = createColors();
|
|
2584
2584
|
//#endregion
|
|
2585
2585
|
//#region ../../node_modules/.bun/scule@1.3.0/node_modules/scule/dist/index.mjs
|
|
2586
2586
|
const NUMBER_CHAR_RE = /\d/;
|
|
@@ -2638,7 +2638,7 @@ function kebabCase(str, joiner) {
|
|
|
2638
2638
|
//#endregion
|
|
2639
2639
|
//#region package.json
|
|
2640
2640
|
var name = "@batijs/cli";
|
|
2641
|
-
var version = "0.0.
|
|
2641
|
+
var version = "0.0.651";
|
|
2642
2642
|
var description = "Next-gen scaffolder. Get started with fully-functional apps, and choose any tool you want";
|
|
2643
2643
|
//#endregion
|
|
2644
2644
|
//#region rules.ts
|
|
@@ -2853,13 +2853,13 @@ async function checkArguments(args) {
|
|
|
2853
2853
|
newArgs.project = `my-app-${generateRandomFilename(5)}`;
|
|
2854
2854
|
return newArgs;
|
|
2855
2855
|
} else if (!stat.isDirectory()) {
|
|
2856
|
-
console.error(`${yellow
|
|
2856
|
+
console.error(`${yellow("⚠")} Target ${cyan(newArgs.project)} already exists but is not a directory. ${yellow("Aborting")}.`);
|
|
2857
2857
|
process.exit(2);
|
|
2858
2858
|
}
|
|
2859
2859
|
try {
|
|
2860
2860
|
await access(newArgs.project, constants.W_OK);
|
|
2861
2861
|
} catch {
|
|
2862
|
-
console.error(`${yellow
|
|
2862
|
+
console.error(`${yellow("⚠")} Target folder ${cyan(newArgs.project)} already exists but is not writable. ${yellow("Aborting")}.`);
|
|
2863
2863
|
process.exit(3);
|
|
2864
2864
|
}
|
|
2865
2865
|
if (!newArgs.force) {
|
|
@@ -2867,7 +2867,7 @@ async function checkArguments(args) {
|
|
|
2867
2867
|
newArgs.project = `my-app-${generateRandomFilename(5)}`;
|
|
2868
2868
|
return newArgs;
|
|
2869
2869
|
} else {
|
|
2870
|
-
console.error(`${yellow
|
|
2870
|
+
console.error(`${yellow("⚠")} Target folder ${cyan(newArgs.project)} already exists and is not empty.\n Continuing might erase existing files. ${yellow("Aborting")}.`);
|
|
2871
2871
|
process.exit(4);
|
|
2872
2872
|
}
|
|
2873
2873
|
}
|
|
@@ -2895,7 +2895,7 @@ async function checkFlagsIncludesUiFramework(flags) {
|
|
|
2895
2895
|
const flagsUi = features.filter((fs) => fs.category === "UI Framework").map((fs) => fs.flag);
|
|
2896
2896
|
const flagsHosting = features.filter((fs) => fs.category === "Hosting").map((fs) => fs.flag);
|
|
2897
2897
|
const flagsUiFound = flags.some((f) => flagsUi.includes(f));
|
|
2898
|
-
if (flags.filter((f) => !flagsUi.includes(f) && !flagsHosting.includes(f)).length === 0) console.warn(`${yellow
|
|
2898
|
+
if (flags.filter((f) => !flagsUi.includes(f) && !flagsHosting.includes(f)).length === 0) console.warn(`${yellow("🛈 Scaffolding a bare-bones app")} ➡️ Go to ${underline("https://vike.dev/new")} to scaffold full-fledged apps with Tailwind, authentication, database, deployment, and more.\n`);
|
|
2899
2899
|
if (!flagsUiFound) {
|
|
2900
2900
|
const ui = await dist_default({
|
|
2901
2901
|
theme: { style: { highlight(t) {
|
|
@@ -2934,7 +2934,7 @@ function checkRules(flags) {
|
|
|
2934
2934
|
}
|
|
2935
2935
|
if (warnings.length > 0) {
|
|
2936
2936
|
warnings.forEach((m) => {
|
|
2937
|
-
console.warn(yellow
|
|
2937
|
+
console.warn(yellow(`⚠ ${m.value}.`));
|
|
2938
2938
|
});
|
|
2939
2939
|
console.log("");
|
|
2940
2940
|
}
|
|
@@ -3001,7 +3001,7 @@ function gitInit(cwd) {
|
|
|
3001
3001
|
force: true
|
|
3002
3002
|
});
|
|
3003
3003
|
} catch {}
|
|
3004
|
-
console.warn(`${yellow
|
|
3004
|
+
console.warn(`${yellow("⚠")} failed to initialize a git repository in destination folder. Skipping.`);
|
|
3005
3005
|
}
|
|
3006
3006
|
}
|
|
3007
3007
|
async function run() {
|
|
@@ -3048,10 +3048,12 @@ async function run() {
|
|
|
3048
3048
|
}
|
|
3049
3049
|
const hooksMap = await retrieveHooks(hooks);
|
|
3050
3050
|
const env = filteredBoilerplates.flatMap((b) => b.config.env?.(meta) ?? []);
|
|
3051
|
+
const deploy = [...new Set(filteredBoilerplates.flatMap((b) => typeof b.config.deploy === "function" ? b.config.deploy(meta) : b.config.deploy ?? []))];
|
|
3051
3052
|
await main({
|
|
3052
3053
|
source: sources,
|
|
3053
3054
|
dist: args.project,
|
|
3054
|
-
env
|
|
3055
|
+
env,
|
|
3056
|
+
deploy
|
|
3055
3057
|
}, meta);
|
|
3056
3058
|
for (const onafter of hooksMap.get("after") ?? []) await onafter(args.project, meta);
|
|
3057
3059
|
if (args.knip) await generateKnipConfig(args.project, filteredBoilerplates);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@batijs/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.651",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"check-types": "tsc --noEmit",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"repository": "https://github.com/vikejs/bati",
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@batijs/build": "0.0.
|
|
17
|
-
"@batijs/compile": "0.0.
|
|
16
|
+
"@batijs/build": "0.0.651",
|
|
17
|
+
"@batijs/compile": "0.0.651",
|
|
18
18
|
"@inquirer/prompts": "^8.5.2",
|
|
19
19
|
"@types/node": "^20.19.37",
|
|
20
20
|
"@types/which": "^3.0.4",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"vite": "^8.0.16"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@batijs/core": "0.0.
|
|
34
|
-
"@batijs/features": "0.0.
|
|
33
|
+
"@batijs/core": "0.0.651",
|
|
34
|
+
"@batijs/features": "0.0.651"
|
|
35
35
|
},
|
|
36
36
|
"bin": "./cli.js",
|
|
37
37
|
"exports": {
|