create-carlonicora-app 1.1.0 → 1.3.2
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/package.json +1 -1
- package/template/apps/api/package.json +1 -1
- package/template/apps/web/package.json +1 -1
- package/template/apps/web/src/app/[locale]/(admin)/administration/companies/[id]/page.tsx +1 -3
- package/template/apps/web/src/app/[locale]/(admin)/layout.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(auth)/activation/[code]/page.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(auth)/auth/page.tsx +1 -1
- package/template/apps/web/src/app/[locale]/(auth)/invitation/[code]/page.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(auth)/login/page.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(auth)/register/page.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(auth)/reset/[code]/page.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(main)/(foundations)/roles/[id]/page.tsx +1 -3
- package/template/apps/web/src/app/[locale]/(main)/(foundations)/users/[id]/loading.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(main)/(foundations)/users/[id]/page.tsx +1 -3
- package/template/apps/web/src/app/[locale]/(main)/(foundations)/users/page.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(main)/error.tsx +1 -2
- package/template/apps/web/src/app/[locale]/(main)/layout.tsx +1 -3
- package/template/apps/web/src/app/[locale]/(main)/page.tsx +2 -2
- package/template/apps/web/src/app/[locale]/layout.tsx +2 -3
- package/template/apps/web/src/config/Bootstrapper.ts +6 -6
- package/template/apps/web/src/config/env.ts +2 -1
- package/template/apps/web/src/features/common/components/details/LayoutDetails.tsx +2 -2
- package/template/apps/web/src/features/common/components/navigations/CommonSidebar.tsx +4 -5
- package/template/apps/web/src/features/common/components/navigations/CreationDropDown.tsx +3 -3
- package/template/apps/web/src/features/common/components/navigations/UserSidebarFooter.tsx +8 -6
- package/template/package.json +4 -2
- package/template/scripts/apply-production-versions.js +37 -0
package/package.json
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@hello-pangea/dnd": "^18.0.1",
|
|
33
33
|
"@hookform/resolvers": "^5.2.2",
|
|
34
34
|
"@next/third-parties": "16.0.10",
|
|
35
|
-
"@carlonicora/nextjs-jsonapi": "
|
|
35
|
+
"@carlonicora/nextjs-jsonapi": "workspace:*",
|
|
36
36
|
"@{{name}}/shared": "workspace:*",
|
|
37
37
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
38
38
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { generateSpecificMetadata } from "@/utils/metadata";
|
|
2
2
|
import { AdminCompanyContainer, PageContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
3
|
import { CompanyProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
4
|
-
import { Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
5
|
-
import { CompanyInterface, CompanyService } from "@carlonicora/nextjs-jsonapi/features";
|
|
6
|
-
import { Action } from "@carlonicora/nextjs-jsonapi/permissions";
|
|
4
|
+
import { Action, CompanyInterface, CompanyService, Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
7
5
|
import { ServerSession } from "@carlonicora/nextjs-jsonapi/server";
|
|
8
6
|
import { RoleId } from "@{{name}}/shared";
|
|
9
7
|
import { Metadata } from "next";
|
|
@@ -3,9 +3,8 @@ import "react-horizontal-scrolling-menu/dist/styles.css";
|
|
|
3
3
|
|
|
4
4
|
import LayoutDetails from "@/features/common/components/details/LayoutDetails";
|
|
5
5
|
import { routing } from "@/i18n/routing";
|
|
6
|
-
import { PushNotificationProvider, RefreshUser } from "@carlonicora/nextjs-jsonapi/components";
|
|
6
|
+
import { PushNotificationProvider, RefreshUser, SidebarProvider } from "@carlonicora/nextjs-jsonapi/components";
|
|
7
7
|
import { NotificationContextProvider, SocketProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
8
|
-
import { SidebarProvider } from "@carlonicora/nextjs-jsonapi/shadcnui";
|
|
9
8
|
import { hasLocale } from "next-intl";
|
|
10
9
|
import { getMessages, setRequestLocale } from "next-intl/server";
|
|
11
10
|
import { Inter } from "next/font/google";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { generateSpecificMetadata } from "@/utils/metadata";
|
|
2
|
-
import { AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
|
-
import { AuthComponent } from "@carlonicora/nextjs-jsonapi/features";
|
|
2
|
+
import { AuthComponent, AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
4
3
|
import { Metadata } from "next";
|
|
5
4
|
|
|
6
5
|
export async function generateMetadata(): Promise<Metadata> {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cookies } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
|
-
import { AuthInterface, AuthService } from "@carlonicora/nextjs-jsonapi/
|
|
2
|
+
import { AuthInterface, AuthService } from "@carlonicora/nextjs-jsonapi/core";
|
|
3
3
|
|
|
4
4
|
export default async function AuthPage(props: { searchParams: Promise<{ code: string }> }) {
|
|
5
5
|
const searchParams = await props.searchParams;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
|
-
import { AuthComponent } from "@carlonicora/nextjs-jsonapi/features";
|
|
1
|
+
import { AuthComponent, AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
2
|
|
|
4
3
|
export default async function InvitationPage(props: { params: Promise<{ code: string }> }) {
|
|
5
4
|
const params = await props.params;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
|
-
import { AuthComponent } from "@carlonicora/nextjs-jsonapi/features";
|
|
1
|
+
import { AuthComponent, AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
2
|
|
|
4
3
|
export default async function LoginPage() {
|
|
5
4
|
return <AuthContainer componentType={AuthComponent.Login} />;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
|
-
import { AuthComponent } from "@carlonicora/nextjs-jsonapi/features";
|
|
1
|
+
import { AuthComponent, AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
2
|
|
|
4
3
|
export default async function RegisterPage() {
|
|
5
4
|
return <AuthContainer componentType={AuthComponent.Register} />;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
|
-
import { AuthComponent } from "@carlonicora/nextjs-jsonapi/features";
|
|
1
|
+
import { AuthComponent, AuthContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
2
|
|
|
4
3
|
export default async function ResetPage(props: { params: Promise<{ code: string }> }) {
|
|
5
4
|
const params = await props.params;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { PageContainer, RoleContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
2
|
import { RoleProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
3
|
-
import { Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
4
|
-
import { RoleInterface, RoleService } from "@carlonicora/nextjs-jsonapi/features";
|
|
5
|
-
import { Action } from "@carlonicora/nextjs-jsonapi/permissions";
|
|
3
|
+
import { Action, Modules, RoleInterface, RoleService } from "@carlonicora/nextjs-jsonapi/core";
|
|
6
4
|
import { ServerSession } from "@carlonicora/nextjs-jsonapi/server";
|
|
7
5
|
|
|
8
6
|
export default async function RolePage(props: { params: Promise<{ id: string }> }) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use server";
|
|
2
2
|
|
|
3
|
-
import { PageContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
|
+
import { PageContainer, Skeleton } from "@carlonicora/nextjs-jsonapi/components";
|
|
4
4
|
import { UserProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
5
|
-
import { Skeleton } from "@carlonicora/nextjs-jsonapi/shadcnui";
|
|
6
5
|
|
|
7
6
|
export default async function Loading() {
|
|
8
7
|
return (
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { generateSpecificMetadata } from "@/utils/metadata";
|
|
2
2
|
import { PageContainer, UserContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
3
|
import { CompanyProvider, UserProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
4
|
-
import { Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
5
|
-
import { UserInterface, UserService } from "@carlonicora/nextjs-jsonapi/features";
|
|
6
|
-
import { Action } from "@carlonicora/nextjs-jsonapi/permissions";
|
|
4
|
+
import { Action, Modules, UserInterface, UserService } from "@carlonicora/nextjs-jsonapi/core";
|
|
7
5
|
import { ServerSession } from "@carlonicora/nextjs-jsonapi/server";
|
|
8
6
|
import { Metadata } from "next";
|
|
9
7
|
import { getTranslations } from "next-intl/server";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { PageContainer, UsersListContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
2
2
|
import { UserProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
3
|
-
import { Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
4
|
-
import { Action } from "@carlonicora/nextjs-jsonapi/permissions";
|
|
3
|
+
import { Action, Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
5
4
|
import { ServerSession } from "@carlonicora/nextjs-jsonapi/server";
|
|
6
5
|
|
|
7
6
|
export default async function UsersListPage() {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { ErrorDetails, Logout } from "@carlonicora/nextjs-jsonapi/components";
|
|
4
|
-
import { Button } from "@carlonicora/nextjs-jsonapi/shadcnui";
|
|
3
|
+
import { Button, ErrorDetails, Logout } from "@carlonicora/nextjs-jsonapi/components";
|
|
5
4
|
import { useMessages } from "next-intl";
|
|
6
5
|
import { useEffect } from "react";
|
|
7
6
|
|
|
@@ -2,10 +2,8 @@ import { ServerSession } from "@carlonicora/nextjs-jsonapi/server";
|
|
|
2
2
|
import "react-horizontal-scrolling-menu/dist/styles.css";
|
|
3
3
|
|
|
4
4
|
import LayoutDetails from "@/features/common/components/details/LayoutDetails";
|
|
5
|
-
import { AuthContainer, PushNotificationProvider, RefreshUser } from "@carlonicora/nextjs-jsonapi/components";
|
|
5
|
+
import { AuthComponent, AuthContainer, PushNotificationProvider, RefreshUser, SidebarProvider } from "@carlonicora/nextjs-jsonapi/components";
|
|
6
6
|
import { NotificationContextProvider, SocketProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
7
|
-
import { AuthComponent } from "@carlonicora/nextjs-jsonapi/features";
|
|
8
|
-
import { SidebarProvider } from "@carlonicora/nextjs-jsonapi/shadcnui";
|
|
9
7
|
import { cookies } from "next/headers";
|
|
10
8
|
|
|
11
9
|
export default async function MainLayout(props: { children: React.ReactNode; params: Promise<{ locale: string }> }) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import IndexContainer from "@/features/common/components/containers/IndexContainer";
|
|
2
2
|
import { generateSpecificMetadata } from "@/utils/metadata";
|
|
3
|
-
import { AuthContainer, CompaniesList, PageContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
|
+
import { AuthComponent, AuthContainer, CompaniesList, PageContainer } from "@carlonicora/nextjs-jsonapi/components";
|
|
4
4
|
import { CommonProvider, CompanyProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
5
|
-
import {
|
|
5
|
+
import { ContentInterface, ContentService } from "@carlonicora/nextjs-jsonapi/core";
|
|
6
6
|
import { ServerSession } from "@carlonicora/nextjs-jsonapi/server";
|
|
7
7
|
import { RoleId } from "@{{name}}/shared";
|
|
8
8
|
import { Metadata } from "next";
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { BootstrapProvider } from "@/config/BootstrapProvider";
|
|
2
2
|
import "@/config/env"; // Server-side bootstrap
|
|
3
|
+
import { TooltipProvider } from "@carlonicora/nextjs-jsonapi/components";
|
|
3
4
|
import { CurrentUserProvider } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
5
|
+
import { cn } from "@carlonicora/nextjs-jsonapi/core";
|
|
4
6
|
import { Provider } from "jotai";
|
|
5
7
|
import "react-horizontal-scrolling-menu/dist/styles.css";
|
|
6
8
|
|
|
7
9
|
import { routing } from "@/i18n/routing";
|
|
8
|
-
// import { cn } from "@/lib/utils";
|
|
9
|
-
import { TooltipProvider } from "@carlonicora/nextjs-jsonapi/shadcnui";
|
|
10
|
-
import { cn } from "@carlonicora/nextjs-jsonapi/utils";
|
|
11
10
|
import { hasLocale, NextIntlClientProvider } from "next-intl";
|
|
12
11
|
import { getMessages, setRequestLocale } from "next-intl/server";
|
|
13
12
|
import { ThemeProvider } from "next-themes";
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { FeatureIds } from "@/enums/feature.ids";
|
|
2
|
-
import { DataClassRegistry, FieldSelector, ModuleRegistry } from "@carlonicora/nextjs-jsonapi/core";
|
|
3
|
-
import { ModuleWithPermissions } from "@carlonicora/nextjs-jsonapi/permissions";
|
|
4
|
-
import { LucideIcon } from "lucide-react";
|
|
5
|
-
|
|
6
|
-
// Foundation module imports (from app - code stays in app)
|
|
7
2
|
import {
|
|
8
3
|
AuthModule,
|
|
9
4
|
AuthorModule,
|
|
10
5
|
CompanyModule,
|
|
11
6
|
ContentModule,
|
|
7
|
+
DataClassRegistry,
|
|
12
8
|
FeatureModule,
|
|
9
|
+
FieldSelector,
|
|
13
10
|
ModuleModule,
|
|
11
|
+
ModuleRegistry,
|
|
12
|
+
ModuleWithPermissions,
|
|
14
13
|
NotificationModule,
|
|
15
14
|
PushModule,
|
|
16
15
|
RoleModule,
|
|
17
16
|
S3Module,
|
|
18
17
|
UserModule,
|
|
19
|
-
} from "@carlonicora/nextjs-jsonapi/
|
|
18
|
+
} from "@carlonicora/nextjs-jsonapi/core";
|
|
19
|
+
import { LucideIcon } from "lucide-react";
|
|
20
20
|
|
|
21
21
|
// Feature module imports
|
|
22
22
|
|
|
@@ -3,7 +3,8 @@ import { ENV } from "@/config/middleware-env";
|
|
|
3
3
|
import { Link, usePathname, useRouter } from "@/i18n/routing";
|
|
4
4
|
import { useDateFnsLocale } from "@/i18n/useDateFnsLocale";
|
|
5
5
|
import { removeToken, updateToken } from "@/server-actions/auth-cookies";
|
|
6
|
-
import { configureAuth, configureI18n, configureJsonApi, configureRoles
|
|
6
|
+
import { configureAuth, configureI18n, configureJsonApi, configureRoles } from "@carlonicora/nextjs-jsonapi";
|
|
7
|
+
import { Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
7
8
|
import { RoleId } from "@{{name}}/shared";
|
|
8
9
|
import { useLocale, useTranslations } from "next-intl";
|
|
9
10
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import CommonSidebar from "@/features/common/components/navigations/CommonSidebar";
|
|
4
|
+
import { useNotificationSync, usePageTracker } from "@carlonicora/nextjs-jsonapi/client";
|
|
4
5
|
import { useCurrentUserContext, useNotificationContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
5
|
-
import { RoleInterface, UserInterface } from "@carlonicora/nextjs-jsonapi/
|
|
6
|
-
import { useNotificationSync, usePageTracker } from "@carlonicora/nextjs-jsonapi/hooks";
|
|
6
|
+
import { RoleInterface, UserInterface } from "@carlonicora/nextjs-jsonapi/core";
|
|
7
7
|
import { RoleId } from "@{{name}}/shared";
|
|
8
8
|
import { useEffect } from "react";
|
|
9
9
|
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import CreationDropDown from "@/features/common/components/navigations/CreationDropDown";
|
|
4
4
|
import { useRouter } from "@/i18n/routing";
|
|
5
|
-
import {
|
|
6
|
-
import { RecentPagesNavigator } from "@carlonicora/nextjs-jsonapi/components";
|
|
7
|
-
import { useCurrentUserContext, useNotificationContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
8
|
-
import { usePageUrlGenerator } from "@carlonicora/nextjs-jsonapi/hooks";
|
|
5
|
+
import { usePageUrlGenerator } from "@carlonicora/nextjs-jsonapi/client";
|
|
9
6
|
import {
|
|
10
7
|
Link,
|
|
8
|
+
RecentPagesNavigator,
|
|
11
9
|
Sidebar,
|
|
12
10
|
SidebarContent,
|
|
13
11
|
SidebarFooter,
|
|
@@ -21,7 +19,8 @@ import {
|
|
|
21
19
|
TooltipContent,
|
|
22
20
|
TooltipTrigger,
|
|
23
21
|
useSidebar,
|
|
24
|
-
} from "@carlonicora/nextjs-jsonapi/
|
|
22
|
+
} from "@carlonicora/nextjs-jsonapi/components";
|
|
23
|
+
import { recentPagesAtom, useCurrentUserContext, useNotificationContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
25
24
|
|
|
26
25
|
import { UserSidebarFooter } from "@/features/common/components/navigations/UserSidebarFooter";
|
|
27
26
|
import { useAtomValue } from "jotai";
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useCurrentUserContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
4
|
-
import { UserInterface } from "@carlonicora/nextjs-jsonapi/features";
|
|
5
3
|
import {
|
|
6
4
|
Button,
|
|
7
5
|
DropdownMenu,
|
|
@@ -10,7 +8,9 @@ import {
|
|
|
10
8
|
DropdownMenuSeparator,
|
|
11
9
|
DropdownMenuTrigger,
|
|
12
10
|
useSidebar,
|
|
13
|
-
} from "@carlonicora/nextjs-jsonapi/
|
|
11
|
+
} from "@carlonicora/nextjs-jsonapi/components";
|
|
12
|
+
import { useCurrentUserContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
13
|
+
import { UserInterface } from "@carlonicora/nextjs-jsonapi/core";
|
|
14
14
|
import { PlusCircleIcon } from "lucide-react";
|
|
15
15
|
import { useTranslations } from "next-intl";
|
|
16
16
|
import { useState } from "react";
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import VersionDisplay from "@/features/common/components/navigations/VersionDisplay";
|
|
4
|
-
import { Modules } from "@carlonicora/nextjs-jsonapi";
|
|
5
|
-
import {
|
|
6
|
-
import { useCurrentUserContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
7
|
-
import { UserInterface } from "@carlonicora/nextjs-jsonapi/features";
|
|
8
|
-
import { usePageUrlGenerator } from "@carlonicora/nextjs-jsonapi/hooks";
|
|
4
|
+
import { Modules } from "@carlonicora/nextjs-jsonapi/core";
|
|
5
|
+
import { usePageUrlGenerator } from "@carlonicora/nextjs-jsonapi/client";
|
|
9
6
|
import {
|
|
10
7
|
DropdownMenu,
|
|
11
8
|
DropdownMenuContent,
|
|
@@ -15,11 +12,16 @@ import {
|
|
|
15
12
|
DropdownMenuSeparator,
|
|
16
13
|
DropdownMenuTrigger,
|
|
17
14
|
Link,
|
|
15
|
+
ModeToggleSwitch,
|
|
16
|
+
NotificationModal,
|
|
18
17
|
SidebarMenu,
|
|
19
18
|
SidebarMenuButton,
|
|
20
19
|
SidebarMenuItem,
|
|
20
|
+
UserAvatar,
|
|
21
21
|
useSidebar,
|
|
22
|
-
} from "@carlonicora/nextjs-jsonapi/
|
|
22
|
+
} from "@carlonicora/nextjs-jsonapi/components";
|
|
23
|
+
import { useCurrentUserContext } from "@carlonicora/nextjs-jsonapi/contexts";
|
|
24
|
+
import { UserInterface } from "@carlonicora/nextjs-jsonapi/core";
|
|
23
25
|
import { RoleId } from "@{{name}}/shared";
|
|
24
26
|
import { ChevronsUpDown, LogOut, SettingsIcon, UserIcon } from "lucide-react";
|
|
25
27
|
import { useTranslations } from "next-intl";
|
package/template/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "{{name}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"private": true,
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=22.0.0",
|
|
8
8
|
"pnpm": ">=10.0.0"
|
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
"structure": "bash scripts/import-structure.sh",
|
|
30
30
|
"prepare": "husky",
|
|
31
31
|
"preinstall": "npx only-allow pnpm",
|
|
32
|
-
"neo4jsonapi-migrate": "node ./packages/nestjs-neo4jsonapi/dist/tools/migrate-entity/index.js"
|
|
32
|
+
"neo4jsonapi-migrate": "node ./packages/nestjs-neo4jsonapi/dist/tools/migrate-entity/index.js",
|
|
33
|
+
"generate-module": "node ./packages/nestjs-neo4jsonapi/dist/scripts/generate-module/index.js",
|
|
34
|
+
"generate-web-module": "node ./packages/nextjs-jsonapi/dist/scripts/generate-web-module/index.js"
|
|
33
35
|
},
|
|
34
36
|
"dependencies": {
|
|
35
37
|
"dotenv-cli": "^11.0.0",
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Replaces workspace:* dependencies with pinned npm versions
|
|
4
|
+
* for production Docker builds.
|
|
5
|
+
*/
|
|
6
|
+
const fs = require('fs');
|
|
7
|
+
const path = require('path');
|
|
8
|
+
|
|
9
|
+
const versionsFile = path.join(__dirname, '..', 'versions.production.json');
|
|
10
|
+
const versions = JSON.parse(fs.readFileSync(versionsFile, 'utf8'));
|
|
11
|
+
|
|
12
|
+
const packageFiles = [
|
|
13
|
+
'apps/api/package.json',
|
|
14
|
+
'apps/web/package.json',
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
for (const file of packageFiles) {
|
|
18
|
+
const filePath = path.join(__dirname, '..', file);
|
|
19
|
+
if (!fs.existsSync(filePath)) continue;
|
|
20
|
+
|
|
21
|
+
const pkg = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
22
|
+
let modified = false;
|
|
23
|
+
|
|
24
|
+
for (const [dep, version] of Object.entries(versions)) {
|
|
25
|
+
if (pkg.dependencies?.[dep] === 'workspace:*') {
|
|
26
|
+
pkg.dependencies[dep] = version;
|
|
27
|
+
modified = true;
|
|
28
|
+
console.log(`${file}: ${dep} → ${version}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (modified) {
|
|
33
|
+
fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
console.log('Production versions applied.');
|