Releases: ZenSoftware/zen
v15.0.0 - Nx v19, Angular v18, Angular Material v18 update
- Updated to Nx v19 and ran all migrations.
- Updated to Angular v18
- Updated to Angular Material v18. Updated the SASS (.scss) theme for this version of Angular Material that is now abiding by the major updates to Material v3. I generated two themes utilizing
ng generate @angular/material:m3-theme
and integrated a basic light and dark theme for the repo. The themes are directly importing the SASS styles and can be tweaked to your own taste under thetheme
folder. - Updated Prisma to v5.15.0
- Scrubbed out all deprecated packages and updated every dependency within the project.
- Implemented Prisma's new createMany and createManyAndReturn feature. Please delete your resolvers within
apps/api/src/app/graphql/resolvers/prisma
and regenerate them. You may keep theUser.ts
resolver file as it already has been regenerated for you. No other significant changes should be needed if you've managed to merge all the other changes successfully. - Refactored the code generation of GraphQL resolvers for Prisma models. There are now some minor efficiency gains that have been made.
- Went through all the feature branches and updated those as well. Recompiled and tested all of them to ensure that they are still in working order.
- @zen/grid now shows the refresh button by default.
- @zen/grid now defaults to
@Input() sortable: SortSettings = { mode: 'multiple' };
instead ofsingle
. - @zen/grid under the
kendo
branch now has working filtering for Prisma's Filter on "-to-one" relations. This will allow you to have columns within the grid that can now be filtered over with nested objects. As an example:
apps/api/prisma/schema.prisma
model User {
id String @id @default(uuid())
...
address Address? @relation(fields: [addressId], references: [id])
addressId String?
}
model Address {
id String @id @default(uuid())
country String?
...
User User[]
}
libs/graphql/src/lib/fields/User.gql.ts
import gql from 'graphql-tag';
import { AddressFields } from './Address.gql';
export const UserFields = gql`
fragment UserFields on User {
id
address {
...AddressFields
}
}
${AddressFields}
`;
libs/main/src/lib/zen-portal/zen-super/zen-user-manager/zen-user-grid/zen-user-grid.component.ts
const DEFAULT_SETTINGS: KendoGridSettings<UserFields> = {
columnsConfig: [
{
field: 'address.country',
title: 'Country',
filter: 'text',
custom: { nullable: true },
},
],
};
v14.0.0 Ultra Scientific CodeMiko Majestic Yuumei Touch My Dingbat Release
🧪🥽🪽
- Publicized the unity branch and will be committing to maintaining and improving it for the long term.
- Updated the
README.md
files for the project to describe what is included and provided instructions on how to get your development environment setup and compile the Unity WebGL project. - Updated all dependencies to the latest stable versions. Notably:
- Updated the repo to Nx v18 and ran all migrations
- Updated Prisma
- Updated Apollo
- Update Angular
- Update Angular Material
- Updated Nest
- Polish, polish, and more polish
This project is rock-solid with now more than 3 years of refinement. It combines the best libraries I could possibly find within the ecosystems that this project is utilizing. The starter kit is highly robust with hyper lean implementations. git merge
in whichever features you need for any particular project and git pull
in changes from this repo for your own git clone
to keep your own projects up to date.
Roadmap:
- Integrate a standard leg humping mechanic that is highly modular and robust
- Imbue the full might of #BlueDickLanguage into this repo
v13.0.0 Angular v17 Update
- Updated all dependencies. Including an update to Angular v17.
- Regenerated the Nx repo utilizing Nx v17
- Converted all
ngIf
andngFor
structural directives to Angular's new control flow syntax. - Introduced i18n branch with all text extracted into JSON files ready to be translated.
Breaking Changes
loggedIn
anduserRoles
fields withinAuthService
have been changed from Angular signals to rxjs observables. This change was necessary to update to Angular v17.
v12.0.0 Updated Prisma to v5.5.2
- Updated Prisma to v5.5.2
Breaking Changes
- There have been changes to the typings for Prisma
count
in their latest release. This requires deleting and regenerating the Nest GraphQL resolvers underapps/api/src/app/graphql/resolvers/prisma
. TheUser
GraphQL resolvers can be kept as the changes have been pushed to the repository.
v11.3.0 Nx v17 update
- Updated repo to Nx v17
- Updated dependencies
v11.2.0 Dependencies update
- Updated all dependencies
Breaking Changes
- 6de92f8 Updated @nestjs/throttler to v5.
apps/api/src/environments/environment.ts
andenvironment.prod.ts
have changed thethrottle
option to utilize the updatedThrottlerModuleOptions
.
v11.1.0 Prisma v5 update
Pal.Js v6.0.5 has resolved the issues that blocked us from upgrading to Prisma v5. The code generating templates have been updated. Resolvers under apps/api/src/app/graphql/resolvers/prisma
can be deleted and regenerated. Though, the User.ts
resolver can be kept as it has been regenerated and committed to the repo.
v11.0.0 Pal.Js v6 update
Updated all dependencies we are not blocked on. Notably the largest change is an upgrade to Pal.Js v6. Code generation scripts have been adapted to accommodate for the changes.
v10.0.0 Project structure updates and new defaults
🎉 This major release completes many large milestones. There has been a refactor across the project to consolidate code into fewer libraries and a new project structure that is more organized to enable better management of domain assets. There is much more clarity of where things belong and there is a better conceptual model for consumers of core libraries. The new default configurations that come out of the box should be sufficient for the majority of projects.
The starter kit is now in a pristine state and the solutions provided are feature complete. Nearly every line of code has been reviewed and rewrites have been done across the project for cleaner and leaner solutions.
Furthermore, debugging with VSCode works well for both the api
(Nest) and portal
(Angular) apps. There have been problems within the Nx community with not having breakpoints working. Fortunately, there are workarounds that this project implements to ensure everything is operating as expected.
Tech stack
The project dependencies have been updated to the latest version across the board. We are not blocked from updating to the latest version for almost any of our dependencies. We're riding on the bleeding edge of all solutions available.
Noteable updates for this version include:
- Nx updated to v16.3.2
- Angular updated to v16.0.5
- Prisma updated to v4.15.0
apollo-angular
updated to v5.0.0@graphql-codegen/cli
has been updated to v4.0.1
Documentation
- Better coverage of documenting project environment configurations.
Kendo branch
🎐 The kendo
branch has integrated new features.
- @zen/grid component is able to export data grid results to JSON.
- Updated to newest theme and packages.
Refactors
- GraphQL resolvers for the Prisma endpoints now have their code generated output to its own
prisma
subfolder within the GraphQLresolvers
folder. - Default auth scheme is now set to
RBAC
for the code generating script attools/generate.ts
. -
@casl/prisma
integration is marked as experimental but its integration is kept as the project's solution forABAC
and is still feature complete. - The Angular component has been moved from its own library
@zen/layout
to@zen/components
and@zen/layout
has been removed. -
@zen/auth
has had a major overhaul for all its Angular components to make everything more reusable.
v9.0.0 Angular v16 update and standalone component migration
- Updated to Angular v16
- Updated to Node v20
- Updated to Nx v16
- Updated to Apollo v4
- Migrated entire project from Angular NgModules to standalone components
- Refactored code to replace all Apollo reactive variables with Angular signals
Breaking changes
AuthService
userRoles
&loggedIn
fields are now Angular signals