Skip to content

Commit 74edcae

Browse files
Merge branch 'develop' into fix/user-employee-duplicate-issue-8465
2 parents 9aefa12 + 6a832fa commit 74edcae

File tree

880 files changed

+91661
-5622
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

880 files changed

+91661
-5622
lines changed

.circleci/config.yml

Lines changed: 205 additions & 83 deletions
Large diffs are not rendered by default.

.cspell.json

Lines changed: 84 additions & 16 deletions
Large diffs are not rendered by default.

.deploy/api/Dockerfile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ ARG REDIS_USER
105105
ARG REDIS_TLS
106106
ARG REDIS_URL
107107

108-
FROM node:20.18.1-alpine3.19 AS dependencies
108+
FROM node:24.12.0-alpine3.23 AS dependencies
109109

110110
LABEL maintainer="[email protected]"
111111
LABEL org.opencontainers.image.source="https://github.com/ever-co/ever-gauzy"
@@ -126,7 +126,7 @@ RUN apk --update add bash && npm i -g npm@9 \
126126
# Verify installed versions
127127
RUN node --version && npm --version && python3 --version
128128

129-
RUN npm install --quiet [email protected] -g && npm install yarn -g --force
129+
RUN npm install --quiet [email protected] -g && npm install yarn -g --force && npm install --quiet [email protected] -g
130130
RUN mkdir /srv/gauzy && chown -R node:node /srv/gauzy
131131

132132
COPY wait .deploy/api/entrypoint.prod.sh .deploy/api/entrypoint.compose.sh /
@@ -175,7 +175,7 @@ COPY --chown=node:node .scripts/postinstall.js ./.scripts/
175175

176176
RUN yarn install --network-timeout 1000000 --frozen-lockfile --ignore-scripts && yarn postinstall.manual && yarn cache clean
177177

178-
FROM node:20.18.1-alpine3.19 AS prodDependencies
178+
FROM node:24.12.0-alpine3.23 AS prodDependencies
179179

180180
ENV CI=true
181181

@@ -192,7 +192,7 @@ RUN apk --update add bash && npm i -g npm@9 \
192192
# Verify installed versions
193193
RUN node --version && npm --version && python3 --version
194194

195-
RUN npm install --quiet [email protected] -g && npm install yarn -g --force
195+
RUN npm install --quiet [email protected] -g && npm install yarn -g --force && npm install --quiet [email protected] -g
196196
RUN mkdir /srv/gauzy && chown -R node:node /srv/gauzy
197197

198198
USER node:node
@@ -245,7 +245,7 @@ RUN rm -r node_modules/@angular
245245
# those within custom webpack in apps/api/config/custom-webpack.config.js
246246
# RUN rm -r node_modules/@gauzy
247247

248-
FROM node:20.18.1-alpine3.19 AS development
248+
FROM node:24.12.0-alpine3.23 AS development
249249

250250
USER node:node
251251

@@ -255,7 +255,7 @@ COPY --chown=node:node --from=dependencies /wait /entrypoint.prod.sh /entrypoint
255255
COPY --chown=node:node --from=dependencies /srv/gauzy .
256256
COPY . .
257257

258-
FROM node:20.18.1-alpine3.19 AS build
258+
FROM node:24.12.0-alpine3.23 AS build
259259

260260
WORKDIR /srv/gauzy
261261

@@ -274,7 +274,7 @@ ARG NODE_ENV
274274
ARG DEMO
275275
ARG NODE_OPTIONS
276276

277-
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=60000"}
277+
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=30000"}
278278
ENV NODE_ENV=${NODE_ENV}
279279
ENV DEMO=${DEMO:-false}
280280

@@ -295,7 +295,7 @@ RUN yarn build:api:prod:docker
295295
# those within custom webpack in apps/api/config/custom-webpack.config.js
296296
# RUN rm -r dist/apps/api/node_modules/@gauzy
297297

298-
FROM node:20.18.1-alpine3.19 AS production
298+
FROM node:24.12.0-alpine3.23 AS production
299299

300300
WORKDIR /srv/gauzy
301301

.deploy/mcp-auth/Dockerfile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ ARG DB_SYNCHRONIZE
3737
ARG MCP_TRUSTED_PROXIES
3838

3939

40-
FROM node:20.18.1-alpine3.19 AS dependencies
40+
FROM node:24.12.0-alpine3.23 AS dependencies
4141

4242
LABEL maintainer="[email protected]"
4343
LABEL org.opencontainers.image.source="https://github.com/ever-co/ever-gauzy"
@@ -46,6 +46,7 @@ RUN apk add --no-cache python3 python3-dev py3-pip py3-setuptools build-base gcc
4646
&& npm install --quiet [email protected] -g \
4747
&& npm install yarn -g --force \
4848
&& npm install --quiet [email protected] -g
49+
4950
RUN mkdir /srv/gauzy-mcp-auth && chown -R node:node /srv/gauzy-mcp-auth
5051

5152
USER node:node
@@ -92,7 +93,7 @@ ARG NODE_OPTIONS
9293
ENV NX_NO_CLOUD=true
9394
ENV CI=true
9495

95-
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=60000"}
96+
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=30000"}
9697
ENV NODE_ENV=production
9798
ENV IS_DOCKER=true
9899

@@ -101,10 +102,11 @@ RUN rm -rf /srv/gauzy-mcp-auth/dist
101102
RUN yarn build:mcp-auth:prod
102103

103104
# Only prod dependencies
104-
FROM node:20.18.1-alpine3.19 AS proddependencies
105+
FROM node:24.12.0-alpine3.23 AS proddependencies
105106

106107
RUN apk add --no-cache python3 python3-dev py3-pip py3-setuptools build-base gcc g++ make autoconf automake git \
107108
&& npm install --quiet [email protected] -g \
109+
&& npm install yarn -g --force \
108110
&& npm install --quiet [email protected] -g
109111

110112
USER node:node

.deploy/mcp/Dockerfile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ ARG MCP_WS_SESSION_ENABLED
8383
ARG MCP_WS_SESSION_COOKIE_NAME
8484
ARG MCP_WS_TRUSTED_PROXIES
8585

86-
FROM node:20.18.1-alpine3.19 AS dependencies
86+
FROM node:24.12.0-alpine3.23 AS dependencies
8787

8888
LABEL maintainer="[email protected]"
8989
LABEL org.opencontainers.image.source="https://github.com/ever-co/ever-gauzy"
@@ -137,7 +137,7 @@ ARG NODE_OPTIONS
137137
ENV NX_NO_CLOUD=true
138138
ENV CI=true
139139

140-
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=60000"}
140+
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=30000"}
141141
ENV NODE_ENV=production
142142
ENV IS_DOCKER=true
143143

@@ -146,10 +146,11 @@ RUN rm -rf /srv/gauzy-mcp/dist
146146
RUN yarn build:mcp:prod
147147

148148
# Only prod dependencies
149-
FROM node:20.18.1-alpine3.19 AS proddependencies
149+
FROM node:24.12.0-alpine3.23 AS proddependencies
150150

151151
RUN apk add --no-cache python3 python3-dev py3-pip py3-setuptools build-base gcc g++ make autoconf automake git \
152152
&& npm install --quiet [email protected] -g \
153+
&& npm install yarn -g --force \
153154
&& npm install --quiet [email protected] -g
154155

155156
USER node:node

.deploy/webapp/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ ARG DESKTOP_APP_DOWNLOAD_LINK_LINUX
6161
ARG MOBILE_APP_DOWNLOAD_LINK
6262
ARG EXTENSION_DOWNLOAD_LINK
6363

64-
FROM node:20.18.1-alpine3.19 AS dependencies
64+
FROM node:24.12.0-alpine3.23 AS dependencies
6565

6666
LABEL maintainer="[email protected]"
6767
LABEL org.opencontainers.image.source="https://github.com/ever-co/ever-gauzy"
@@ -151,7 +151,7 @@ RUN yarn install --network-timeout 1000000 --frozen-lockfile --ignore-scripts
151151
RUN yarn postinstall.manual
152152
RUN yarn cache clean
153153

154-
FROM node:20.18.1-alpine3.19 AS development
154+
FROM node:24.12.0-alpine3.23 AS development
155155

156156
USER node:node
157157

@@ -161,7 +161,7 @@ COPY --chown=node:node --from=dependencies /wait /entrypoint.compose.sh /entrypo
161161
COPY --chown=node:node --from=dependencies /srv/gauzy .
162162
COPY . .
163163

164-
FROM node:20.18.1-alpine3.19 AS build
164+
FROM node:24.12.0-alpine3.23 AS build
165165

166166
WORKDIR /srv/gauzy
167167

@@ -176,7 +176,7 @@ ARG NODE_ENV
176176
ARG DEMO
177177
ARG NODE_OPTIONS
178178

179-
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=60000"}
179+
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=30000"}
180180
ENV NODE_ENV=${NODE_ENV:-production}
181181
ENV DEMO=${DEMO:-false}
182182

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
---
2+
applyTo: '**/*.component.ts, **/*.component.scss, **/*.component.html'
3+
---
4+
5+
# Persona
6+
7+
You are a dedicated Angular developer who thrives on leveraging the absolute latest features of the framework to build cutting-edge applications. You are currently immersed in Angular v20+, passionately adopting signals for reactive state management, embracing standalone components for streamlined architecture, and utilizing the new control flow for more intuitive template logic. Performance is paramount to you, who constantly seeks to optimize change detection and improve user experience through these modern Angular paradigms. When prompted, assume You are familiar with all the newest APIs and best practices, valuing clean, efficient, and maintainable code.
8+
9+
## Examples
10+
11+
These are modern examples of how to write an Angular 20 component with signals
12+
13+
```ts
14+
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
15+
16+
17+
@Component({
18+
selector: '{{tag-name}}-root',
19+
templateUrl: '{{tag-name}}.html',
20+
changeDetection: ChangeDetectionStrategy.OnPush,
21+
})
22+
export class {{ClassName}} {
23+
protected readonly isServerRunning = signal(true);
24+
toggleServerStatus() {
25+
this.isServerRunning.update(isServerRunning => !isServerRunning);
26+
}
27+
}
28+
```
29+
30+
```scss
31+
.container {
32+
display: flex;
33+
flex-direction: column;
34+
align-items: center;
35+
justify-content: center;
36+
height: 100vh;
37+
38+
button {
39+
margin-top: 10px;
40+
}
41+
}
42+
```
43+
44+
```html
45+
<section class="container">
46+
@if (isServerRunning()) {
47+
<span>Yes, the server is running</span>
48+
} @else {
49+
<span>No, the server is not running</span>
50+
}
51+
<button (click)="toggleServerStatus()">Toggle Server Status</button>
52+
</section>
53+
```
54+
55+
When you update a component, be sure to put the logic in the ts file, the styles in the css file and the html template in the html file.
56+
57+
## Resources
58+
59+
Here are some links to the essentials for building Angular applications. Use these to get an understanding of how some of the core functionality works
60+
<https://angular.dev/essentials/components>
61+
<https://angular.dev/essentials/signals>
62+
<https://angular.dev/essentials/templates>
63+
<https://angular.dev/essentials/dependency-injection>
64+
65+
## Best practices & Style guide
66+
67+
Here are the best practices and the style guide information.
68+
69+
### Coding Style guide
70+
71+
Here is a link to the most recent Angular style guide <https://angular.dev/style-guide>
72+
73+
### TypeScript Best Practices
74+
75+
- Use strict type checking
76+
- Prefer type inference when the type is obvious
77+
- Avoid the `any` type; use `unknown` when type is uncertain
78+
79+
### Angular Best Practices
80+
81+
- Always use standalone components over `NgModules`
82+
- Do NOT set `standalone: true` inside the `@Component`, `@Directive` and `@Pipe` decorators
83+
- Use signals for state management
84+
- Implement lazy loading for feature routes
85+
- Use `NgOptimizedImage` for all static images.
86+
- Do NOT use the `@HostBinding` and `@HostListener` decorators. Put host bindings inside the `host` object of the `@Component` or `@Directive` decorator instead
87+
88+
### Components
89+
90+
- Keep components small and focused on a single responsibility
91+
- Use `input()` signal instead of decorators, learn more here <https://angular.dev/guide/components/inputs>
92+
- Use `output()` function instead of decorators, learn more here <https://angular.dev/guide/components/outputs>
93+
- Use `computed()` for derived state learn more about signals here <https://angular.dev/guide/signals>.
94+
- Set `changeDetection: ChangeDetectionStrategy.OnPush` in `@Component` decorator
95+
- Prefer inline templates for small components
96+
- Prefer Reactive forms instead of Template-driven ones
97+
- Do NOT use `ngClass`, use `class` bindings instead, for context: <https://angular.dev/guide/templates/binding#css-class-and-style-property-bindings>
98+
- Do NOT use `ngStyle`, use `style` bindings instead, for context: <https://angular.dev/guide/templates/binding#css-class-and-style-property-bindings>
99+
100+
### State Management
101+
102+
- Use signals for local component state
103+
- Use `computed()` for derived state
104+
- Keep state transformations pure and predictable
105+
- Do NOT use `mutate` on signals, use `update` or `set` instead
106+
107+
### Templates
108+
109+
- Keep templates simple and avoid complex logic
110+
- Use native control flow (`@if`, `@for`, `@switch`) instead of `*ngIf`, `*ngFor`, `*ngSwitch`
111+
- Use the async pipe to handle observables
112+
- Use built-in pipes and import pipes when being used in a template, learn more <https://angular.dev/guide/templates/pipes#>
113+
114+
### Services
115+
116+
- Design services around a single responsibility
117+
- Use the `providedIn: 'root'` option for singleton services
118+
- Use the `inject()` function instead of constructor injection

0 commit comments

Comments
 (0)