@nanoforge-dev/schematics 2.2.1-beta.88f48da → 2.3.0
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/CHANGELOG.md +472 -0
- package/README.md +12 -15
- package/dist/collection.json +8 -23
- package/dist/index.cjs +21 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +19 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +19 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/libs/component/component.factory.d.ts +1 -3
- package/dist/libs/component/component.factory.d.ts.map +1 -1
- package/dist/libs/component/component.factory.js +2 -1
- package/dist/libs/component/component.factory.js.map +1 -1
- package/dist/libs/project/files/js/.dockerignore +5 -0
- package/dist/libs/project/files/js/Dockerfile +36 -0
- package/dist/libs/project/files/js/README.md +53 -0
- package/dist/libs/project/files/js/assets/__dot__gitkeep +0 -0
- package/dist/libs/project/files/js/jsconfig.json +36 -0
- package/dist/libs/project/files/js/nanoforge.config.js +10 -0
- package/dist/libs/project/files/js/package.json.template +24 -0
- package/dist/libs/project/files/js/pnpm-workspace.yaml.template +3 -0
- package/dist/libs/project/files/js/src/components/drawable-circle-2d.component.js +404 -0
- package/dist/libs/project/files/js/src/components/position-2d.component.js +42 -0
- package/dist/libs/project/files/js/src/main.js +43 -0
- package/dist/libs/project/files/js/src/systems/draw-2d.system.js +33 -0
- package/dist/libs/project/files/js/src/systems/move-2d.system.js +34 -0
- package/dist/libs/project/files/js/src/systems/position-sync.system.js +35 -0
- package/dist/libs/project/files/ts/.dockerignore +5 -0
- package/dist/libs/project/files/ts/Dockerfile +36 -0
- package/dist/libs/project/files/ts/README.md +53 -0
- package/dist/libs/project/files/ts/assets/__dot__gitkeep +0 -0
- package/dist/libs/project/files/ts/nanoforge.config.ts +5 -0
- package/dist/libs/project/files/ts/package.json.template +24 -0
- package/dist/libs/project/files/ts/pnpm-workspace.yaml.template +3 -0
- package/dist/libs/project/files/ts/src/components/drawable-circle-2d.component.ts +367 -0
- package/dist/libs/project/files/ts/src/components/position-2d.component.ts +35 -0
- package/dist/libs/project/files/ts/src/main.ts +39 -0
- package/dist/libs/project/files/ts/src/systems/draw-2d.system.ts +25 -0
- package/dist/libs/project/files/ts/src/systems/move-2d.system.ts +26 -0
- package/dist/libs/project/files/ts/src/systems/position-sync.system.ts +27 -0
- package/dist/libs/project/files/ts/tsconfig.json +42 -0
- package/dist/libs/project/project.factory.d.ts +64 -0
- package/dist/libs/project/project.factory.d.ts.map +1 -0
- package/dist/libs/project/project.factory.js +122 -0
- package/dist/libs/project/project.factory.js.map +1 -0
- package/dist/libs/project/schema.json +83 -0
- package/dist/libs/system/system.factory.d.ts +1 -3
- package/dist/libs/system/system.factory.d.ts.map +1 -1
- package/dist/libs/system/system.factory.js +2 -1
- package/dist/libs/system/system.factory.js.map +1 -1
- package/dist/libs/workspace/files/js/.dockerignore +5 -0
- package/dist/libs/workspace/files/js/Dockerfile +36 -0
- package/dist/libs/workspace/files/js/README.md +51 -0
- package/dist/libs/workspace/files/js/__dot__gitignore +137 -0
- package/dist/libs/{application → workspace}/files/js/jsconfig.json +1 -2
- package/dist/libs/workspace/files/js/nanoforge.config.js +6 -0
- package/dist/libs/workspace/files/js/package.json.template +19 -0
- package/dist/libs/workspace/files/js/pnpm-workspace.yaml.template +6 -0
- package/dist/libs/workspace/files/ts/.dockerignore +5 -0
- package/dist/libs/workspace/files/ts/Dockerfile +36 -0
- package/dist/libs/workspace/files/ts/README.md +51 -0
- package/dist/libs/workspace/files/ts/__dot__gitignore +134 -0
- package/dist/libs/workspace/files/ts/nanoforge.config.ts +6 -0
- package/dist/libs/workspace/files/ts/package.json.template +20 -0
- package/dist/libs/workspace/files/ts/pnpm-workspace.yaml.template +6 -0
- package/dist/libs/{application → workspace}/files/ts/tsconfig.json +1 -2
- package/dist/libs/workspace/schema.json +45 -0
- package/dist/libs/workspace/workspace.factory.d.ts +42 -0
- package/dist/libs/workspace/workspace.factory.d.ts.map +1 -0
- package/dist/libs/workspace/workspace.factory.js +116 -0
- package/dist/libs/workspace/workspace.factory.js.map +1 -0
- package/package.json +23 -21
- package/dist/libs/application/application.factory.d.ts +0 -59
- package/dist/libs/application/application.factory.d.ts.map +0 -1
- package/dist/libs/application/application.factory.js +0 -57
- package/dist/libs/application/application.factory.js.map +0 -1
- package/dist/libs/application/files/js/.prettierignore +0 -8
- package/dist/libs/application/files/js/README.md +0 -166
- package/dist/libs/application/files/js/eslint.config.js +0 -11
- package/dist/libs/application/files/js/package.json.template +0 -48
- package/dist/libs/application/files/js/pnpm-workspace.yaml.template +0 -3
- package/dist/libs/application/files/js/prettier.config.js +0 -6
- package/dist/libs/application/files/ts/.prettierignore +0 -8
- package/dist/libs/application/files/ts/README.md +0 -166
- package/dist/libs/application/files/ts/eslint.config.js +0 -15
- package/dist/libs/application/files/ts/package.json.template +0 -52
- package/dist/libs/application/files/ts/pnpm-workspace.yaml.template +0 -3
- package/dist/libs/application/files/ts/prettier.config.js +0 -6
- package/dist/libs/application/schema.json +0 -70
- package/dist/libs/configuration/configuration.factory.d.ts +0 -31
- package/dist/libs/configuration/configuration.factory.d.ts.map +0 -1
- package/dist/libs/configuration/configuration.factory.js +0 -97
- package/dist/libs/configuration/configuration.factory.js.map +0 -1
- package/dist/libs/configuration/files/nanoforge.config.json +0 -1
- package/dist/libs/configuration/schema.json +0 -34
- package/dist/libs/docker/docker.factory.d.ts +0 -19
- package/dist/libs/docker/docker.factory.d.ts.map +0 -1
- package/dist/libs/docker/docker.factory.js +0 -20
- package/dist/libs/docker/docker.factory.js.map +0 -1
- package/dist/libs/docker/files/.dockerignore +0 -1
- package/dist/libs/docker/files/Dockerfile +0 -25
- package/dist/libs/docker/schema.json +0 -19
- package/dist/libs/part-base/files/js/__nanoforgeFolder__/client.save.json +0 -77
- package/dist/libs/part-base/files/js/__nanoforgeFolder__/server.save.json +0 -49
- package/dist/libs/part-base/files/js/__part__/components/example.component.js +0 -72
- package/dist/libs/part-base/files/js/__part__/init/after-init.js +0 -12
- package/dist/libs/part-base/files/js/__part__/init/after-registry-init.js +0 -14
- package/dist/libs/part-base/files/js/__part__/init/after-run.js +0 -12
- package/dist/libs/part-base/files/js/__part__/init/before-init.js +0 -13
- package/dist/libs/part-base/files/js/__part__/init/before-registry-init.js +0 -14
- package/dist/libs/part-base/files/js/__part__/init/before-run.js +0 -12
- package/dist/libs/part-base/files/js/__part__/systems/example.system.js +0 -44
- package/dist/libs/part-base/files/ts/__nanoforgeFolder__/client.save.json +0 -77
- package/dist/libs/part-base/files/ts/__nanoforgeFolder__/server.save.json +0 -49
- package/dist/libs/part-base/files/ts/__part__/components/example.component.ts +0 -55
- package/dist/libs/part-base/files/ts/__part__/init/after-init.ts +0 -5
- package/dist/libs/part-base/files/ts/__part__/init/after-registry-init.ts +0 -6
- package/dist/libs/part-base/files/ts/__part__/init/after-run.ts +0 -5
- package/dist/libs/part-base/files/ts/__part__/init/before-init.ts +0 -5
- package/dist/libs/part-base/files/ts/__part__/init/before-registry-init.ts +0 -6
- package/dist/libs/part-base/files/ts/__part__/init/before-run.ts +0 -5
- package/dist/libs/part-base/files/ts/__part__/systems/example.system.ts +0 -31
- package/dist/libs/part-base/part-base.factory.d.ts +0 -31
- package/dist/libs/part-base/part-base.factory.d.ts.map +0 -1
- package/dist/libs/part-base/part-base.factory.js +0 -33
- package/dist/libs/part-base/part-base.factory.js.map +0 -1
- package/dist/libs/part-base/schema.json +0 -35
- package/dist/libs/part-main/part-main.factory.d.ts +0 -39
- package/dist/libs/part-main/part-main.factory.d.ts.map +0 -1
- package/dist/libs/part-main/part-main.factory.js +0 -252
- package/dist/libs/part-main/part-main.factory.js.map +0 -1
- package/dist/libs/part-main/schema.json +0 -43
- /package/dist/libs/{application → project}/files/js/__dot__gitignore +0 -0
- /package/dist/libs/{application → project}/files/ts/__dot__gitignore +0 -0
- /package/dist/libs/{application → workspace}/files/js/__dot__env +0 -0
- /package/dist/libs/{application → workspace}/files/ts/__dot__env +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
# [2.3.0](https://github.com/NanoForge-dev/CLI/compare/1.6.2...2.3.0) - (2026-09-24)
|
|
6
|
+
|
|
7
|
+
> `@nanoforge-dev/schematics` now lives in the CLI monorepo (`libs/schematics`) and is released
|
|
8
|
+
> together with `@nanoforge-dev/cli` and `@nanoforge-dev/config`. In this release the
|
|
9
|
+
> collection was rewritten for the NanoForge v2 game architecture. The generated game changed
|
|
10
|
+
> shape, and entry files are no longer regenerated from save files.
|
|
11
|
+
|
|
12
|
+
## Why 2.3.0
|
|
13
|
+
|
|
14
|
+
`@nanoforge-dev/cli`, `@nanoforge-dev/config` and `@nanoforge-dev/schematics` now share **one
|
|
15
|
+
version number** and are released together. The shared version must be higher than the latest
|
|
16
|
+
published version of every package. Schematics had the highest number of the three: **2.2.1**,
|
|
17
|
+
its last release from the old `NanoForge-dev/schematics` repository. So every package is
|
|
18
|
+
aligned on the schematics line, and this release is the next minor version, **2.3.0**.
|
|
19
|
+
|
|
20
|
+
For schematics, this is the normal next release after 2.2.1. The other packages jump to catch
|
|
21
|
+
up: CLI 1.6.2 → 2.3.0, config 1.4.2 → 2.3.0. From now on, the three packages always have the
|
|
22
|
+
same version.
|
|
23
|
+
|
|
24
|
+
## The generated game: v1 vs v2
|
|
25
|
+
|
|
26
|
+
### v1: one app, two parts, entry files built from save files
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
my-game/
|
|
30
|
+
├── nanoforge.config.json # one config for client + server
|
|
31
|
+
├── .nanoforge/
|
|
32
|
+
│ ├── client.save.json # libraries / components / systems / entities
|
|
33
|
+
│ ├── server.save.json
|
|
34
|
+
│ └── editor/<part>/main.ts # generated editor entry
|
|
35
|
+
├── client/
|
|
36
|
+
│ ├── main.ts # GENERATED from client.save.json (part-main)
|
|
37
|
+
│ ├── init/ # before-/after- init, registry-init and run hooks
|
|
38
|
+
│ ├── components/example.component.ts
|
|
39
|
+
│ └── systems/example.system.ts
|
|
40
|
+
└── server/ # same layout, only with a server
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
It took five schematics to build this: `application` → `configuration` → `part-base` →
|
|
44
|
+
`part-main` → `docker`. `part-main` read `.nanoforge/<part>.save.json` and wrote `main.ts`
|
|
45
|
+
again every time `nf generate` ran.
|
|
46
|
+
|
|
47
|
+
### v2: standalone projects, grouped by a workspace
|
|
48
|
+
|
|
49
|
+
A single-player game is **one `client` project**:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
my-game/
|
|
53
|
+
├── nanoforge.config.ts # { type: "client" }
|
|
54
|
+
├── package.json # nf dev / nf build / nf start
|
|
55
|
+
├── tsconfig.json | jsconfig.json
|
|
56
|
+
├── assets/
|
|
57
|
+
└── src/
|
|
58
|
+
├── main.ts # scaffolded once, then yours
|
|
59
|
+
├── components/ position-2d, drawable-circle-2d
|
|
60
|
+
└── systems/ draw-2d
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
A multiplayer game is a **workspace** plus one project per app:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
my-game/
|
|
67
|
+
├── nanoforge.config.ts # { type: "workspace", packages: ["apps/*"] }
|
|
68
|
+
├── package.json # workspace root
|
|
69
|
+
├── pnpm-workspace.yaml # pnpm only
|
|
70
|
+
├── .env # client ↔ server networking
|
|
71
|
+
├── Dockerfile / .dockerignore # optional: one image for every app
|
|
72
|
+
└── apps/
|
|
73
|
+
├── client/ # { type: "client" }: draw-2d + position-sync
|
|
74
|
+
└── server/ # { type: "server" }: move-2d
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
| Concern | v1 | v2 |
|
|
78
|
+
| ------------------ | ----------------------------------------------- | --------------------------------------------------------------- |
|
|
79
|
+
| Unit of generation | One app with `client/` and `server/` parts | A `workspace` and independent `project`s (`part: client/server`) |
|
|
80
|
+
| Config | One `nanoforge.config.json` | One `nanoforge.config.ts/.js` per workspace and per project |
|
|
81
|
+
| Entry file | Regenerated from `.nanoforge/*.save.json` | Scaffolded once, then owned by the developer |
|
|
82
|
+
| Lifecycle hooks | `init/*.ts` files (`initFunctions`) | Removed. Write the code in `main.ts` around `init()` / `run()` |
|
|
83
|
+
| Dependencies | One `package.json` | One per project, each with only the libraries it needs |
|
|
84
|
+
| Docker | `docker` schematic | `docker` option on `workspace` or on a standalone `project` |
|
|
85
|
+
|
|
86
|
+
## Collection
|
|
87
|
+
|
|
88
|
+
| Schematic | Status | Purpose |
|
|
89
|
+
| ----------- | ----------- | ------------------------------------------------------------------------------------------- |
|
|
90
|
+
| `workspace` | **New** | Monorepo root: config, `package.json`, TS/JS config, `.env`, `.gitignore`, README, Docker |
|
|
91
|
+
| `project` | **New** | A `client` or `server` project: config, `package.json`, `src/main`, demo game, Docker |
|
|
92
|
+
| `component` | Kept | A single ECS component with its editor manifest |
|
|
93
|
+
| `system` | Kept | A single ECS system with its editor manifest |
|
|
94
|
+
| `application`, `configuration`, `part-base`, `part-main`, `docker` | **Removed** | Replaced by `workspace` + `project` |
|
|
95
|
+
|
|
96
|
+
With `part-main` gone, the save-file format, the save → `main.ts` code generator, the editor
|
|
97
|
+
entry variant (`Graphics2DEditorLibrary`) and the `init/` hook templates are all removed too.
|
|
98
|
+
|
|
99
|
+
## `workspace` schematic
|
|
100
|
+
|
|
101
|
+
- Options: `name`, `directory` (defaults to `name`), `language`, `strict`, `packageManager`,
|
|
102
|
+
`allowBuilds`, `docker`.
|
|
103
|
+
- Writes a root `nanoforge.config` with `{ type: "workspace", packages: ["apps/*"] }`, and
|
|
104
|
+
workspace wiring for the chosen package manager: `pnpm-workspace.yaml` for pnpm,
|
|
105
|
+
`"workspaces": ["apps/*"]` for the others.
|
|
106
|
+
- Root `devDependencies`: `@nanoforge-dev/cli`, `nanoforge`, `typescript` (limited to major 6).
|
|
107
|
+
- `bun` is always allowed to run its install script, because `@nanoforge-dev/cli` depends on
|
|
108
|
+
it. The allow-list goes into `allowBuilds` (pnpm), `allowScripts` (npm) or
|
|
109
|
+
`trustedDependencies` (bun).
|
|
110
|
+
- `.env` sets the default networking values:
|
|
111
|
+
`NANOFORGE_CLIENT_SERVER_{TCP,UDP}_PORT=4444/4445`, `NANOFORGE_CLIENT_SERVER_ADDRESS=127.0.0.1`
|
|
112
|
+
and `NANOFORGE_SERVER_LISTENING_{TCP,UDP}_PORT=4444/4445`.
|
|
113
|
+
- With `docker`, it writes one multi-stage `Dockerfile` that builds every app, tuned for each
|
|
114
|
+
package manager: `pnpm fetch` + offline install, `npm ci`, or a Bun image. Node 26,
|
|
115
|
+
port 3000.
|
|
116
|
+
|
|
117
|
+
## `project` schematic
|
|
118
|
+
|
|
119
|
+
- Options:
|
|
120
|
+
- `part` (`client` | `server`, required)
|
|
121
|
+
- `name` / `workspaceName`: the package name becomes `<workspace>-<name>`, or just `<name>`
|
|
122
|
+
for a standalone project
|
|
123
|
+
- `directory`: the full destination path, with nothing appended
|
|
124
|
+
- `workspace`, `hasServer`, `docker`, `strict`, `language`, `packageManager`
|
|
125
|
+
- `editor`: for now it only adds an `nf editor` section to the README
|
|
126
|
+
- `docker` is ignored inside a workspace, because the workspace's own Dockerfile builds the
|
|
127
|
+
project.
|
|
128
|
+
|
|
129
|
+
### Generated entry file
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
import { NanoforgeFactory, type ClientRunOptions } from "nanoforge";
|
|
133
|
+
import { EcsLibrary } from "@nanoforge-dev/ecs/client";
|
|
134
|
+
import { Graphics2DLibrary } from "@nanoforge-dev/graphics-2d";
|
|
135
|
+
import { InputLibrary } from "@nanoforge-dev/input";
|
|
136
|
+
import { NetworkClientLibrary } from "@nanoforge-dev/network/client";
|
|
137
|
+
|
|
138
|
+
export const main = async (options: ClientRunOptions): Promise<void> => {
|
|
139
|
+
const app = NanoforgeFactory.createClient({ tickRate: 60 });
|
|
140
|
+
|
|
141
|
+
const ecs = new EcsLibrary();
|
|
142
|
+
app.use(ecs);
|
|
143
|
+
app.use(new Graphics2DLibrary());
|
|
144
|
+
app.use(new InputLibrary());
|
|
145
|
+
app.use(new NetworkClientLibrary());
|
|
146
|
+
|
|
147
|
+
await app.init(options);
|
|
148
|
+
// spawn entities, add systems…
|
|
149
|
+
await app.run();
|
|
150
|
+
};
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
- It targets the **engine v2 API**: the `nanoforge` meta-package with `NanoforgeFactory`,
|
|
154
|
+
run-option types and `Context`, and libraries added with `app.use(...)`.
|
|
155
|
+
- Client/server variants now use **subpath exports**: `@nanoforge-dev/ecs/<part>` and
|
|
156
|
+
`@nanoforge-dev/network/<part>`, instead of `@nanoforge-dev/ecs-client` / `ecs-server`.
|
|
157
|
+
- `Registry` and the editor manifest types come from `@nanoforge-dev/ecs`. `Context` comes from
|
|
158
|
+
`nanoforge`, no longer from `@nanoforge-dev/common`.
|
|
159
|
+
- Default libraries: the client gets ECS, Graphics 2D, Input and Network. The server gets ECS
|
|
160
|
+
and Network. The v1 default save also included AssetManager and Music.
|
|
161
|
+
|
|
162
|
+
### Demo game: the server owns the state
|
|
163
|
+
|
|
164
|
+
The v1 placeholder (`ExampleComponent` / `exampleSystem`, which stopped the app after a
|
|
165
|
+
countdown) is replaced by a small multiplayer loop:
|
|
166
|
+
|
|
167
|
+
| Project | Components | Systems |
|
|
168
|
+
| ------- | --------------------------------- | ---------------------------------------------------------------------------------- |
|
|
169
|
+
| client | `Position2D`, `DrawableCircle2D` | `draw2D`: draws every drawable at its position |
|
|
170
|
+
| client | — | `positionSync` (only with `hasServer`): applies positions received over TCP |
|
|
171
|
+
| server | `Position2D` | `move2D`: moves the entity and broadcasts `{x, y}` with `network.tcp.sendToEverybody` |
|
|
172
|
+
|
|
173
|
+
Components and systems still export an editor manifest and a default export of their name,
|
|
174
|
+
the same as in v1.
|
|
175
|
+
|
|
176
|
+
### Dependencies
|
|
177
|
+
|
|
178
|
+
- client `devDependencies`: `nanoforge`, `@nanoforge-dev/ecs`, `@nanoforge-dev/graphics-2d`,
|
|
179
|
+
`@nanoforge-dev/input`, `@nanoforge-dev/network`.
|
|
180
|
+
- server: `@nanoforge-dev/network` is a runtime **`dependency`** (#226). `nanoforge` and
|
|
181
|
+
`@nanoforge-dev/ecs` are `devDependencies`.
|
|
182
|
+
- **Version lookup at generation time** (`fetchTrustedVersion(s)`): the npm registry is
|
|
183
|
+
queried, and only stable versions published **at least 48 hours ago** are picked (the same
|
|
184
|
+
idea as pnpm's `minimumReleaseAge`). Lookups time out after 3 s. If a lookup fails, engine
|
|
185
|
+
packages fall back to `^2`, the CLI to `latest` and TypeScript to `6.0.3`.
|
|
186
|
+
|
|
187
|
+
## Breaking changes
|
|
188
|
+
|
|
189
|
+
- The `application`, `configuration`, `part-base`, `part-main` and `docker` schematics are
|
|
190
|
+
removed. Use `workspace` + `project`.
|
|
191
|
+
- Save files (`.nanoforge/*.save.json`) are no longer generated or read. Entry files are
|
|
192
|
+
scaffolded once.
|
|
193
|
+
- `init/` hook files and the `initFunctions` behaviour are removed.
|
|
194
|
+
- Generated configs are `nanoforge.config.ts` / `.js` (`@nanoforge-dev/config` format), no
|
|
195
|
+
longer `nanoforge.config.json`.
|
|
196
|
+
- Generated code targets the engine v2 packages.
|
|
197
|
+
|
|
198
|
+
## Tests & docs
|
|
199
|
+
|
|
200
|
+
- E2E suites for `workspace`, `project`, `component` and `system`, and unit tests for the
|
|
201
|
+
registry, naming, formatting and object helpers.
|
|
202
|
+
- New docs section *Schematics*: overview, workspace, project, component, system.
|
|
203
|
+
- Built with tsdown and part of the Turborepo pipeline. Requires Node 26.
|
|
204
|
+
|
|
205
|
+
## Known issues
|
|
206
|
+
|
|
207
|
+
- **`component` / `system` templates still use v1 imports:** `@nanoforge-dev/ecs-<part>` and
|
|
208
|
+
`@nanoforge-dev/common`. The system template also imports `../components/example.component`,
|
|
209
|
+
which v2 projects don't have. Code generated by `nf create` in a v2 project won't compile.
|
|
210
|
+
- **The workspace `package.json` scripts run `nf dev -r`, `nf build -r` and `nf start -r`,**
|
|
211
|
+
but the CLI has no `-r` option.
|
|
212
|
+
- **`project` declares options it ignores:** `libs`, `allowBuilds` (hardcoded to
|
|
213
|
+
`workspace ? [] : ["bun"]`) and `initFunctions`, which is left over from v1.
|
|
214
|
+
- Generated configs import `defineConfig` from `nanoforge/config`, and the entry file imports
|
|
215
|
+
the engine v2 packages. Neither is published yet.
|
|
216
|
+
|
|
217
|
+
## Commits
|
|
218
|
+
|
|
219
|
+
### Features
|
|
220
|
+
|
|
221
|
+
- Put network lib in dependencies (#226) ([e2dde26](https://github.com/NanoForge-dev/CLI/commit/e2dde2607736949caf85a057135c23fed8408861)) by @Exeloo
|
|
222
|
+
- Add new project and workspace schematics and remove old ones (#216) ([f551392](https://github.com/NanoForge-dev/CLI/commit/f551392a843d592b1efc70cf4613f98f616999b0)) by @Exeloo
|
|
223
|
+
- Add schematics (#200) ([330b9be](https://github.com/NanoForge-dev/CLI/commit/330b9bee1084c911aad8291c25aa591f0eb0d340)) by @Exeloo
|
|
224
|
+
|
|
225
|
+
### Refactor
|
|
226
|
+
|
|
227
|
+
- **cli:** Change create command to fit the new architecture (#222) ([3afb463](https://github.com/NanoForge-dev/CLI/commit/3afb463c96d7e511e492a6c8cbe82b686d837a08)) by @Exeloo
|
|
228
|
+
- **cli:** Change start command to fit the new architecture (#220) ([3acb4a1](https://github.com/NanoForge-dev/CLI/commit/3acb4a1e214426a1f5e953774859eba38ca49ffa)) by @Exeloo
|
|
229
|
+
- Change build cmd to new archi (#219) ([6700f71](https://github.com/NanoForge-dev/CLI/commit/6700f71e9d500efea0eb80aaad655623415f489b)) by @Exeloo
|
|
230
|
+
- **cli:** Change new cmd to new archi (#218) ([a2e0d1f](https://github.com/NanoForge-dev/CLI/commit/a2e0d1ffe60063d3f5ae22ed78718e7592fe0f72)) by @Exeloo
|
|
231
|
+
|
|
232
|
+
# [2.2.0](https://github.com/NanoForge-dev/schematics/compare/2.1.4...2.2.0) - (2026-06-30)
|
|
233
|
+
|
|
234
|
+
## Features
|
|
235
|
+
|
|
236
|
+
- Add pnpm workspace in app schematic (#155) ([5e0924d](https://github.com/NanoForge-dev/schematics/commit/5e0924d217c6ca62e322627f4adee79470c7bf2f)) by @Exeloo
|
|
237
|
+
- Add assets to entity generation (#153) ([a008fc6](https://github.com/NanoForge-dev/schematics/commit/a008fc6784cc4d15f3f09fc41efd9a0ea658c3a5)) by @Exeloo
|
|
238
|
+
- Graphics 2d editor generation (#154) ([89059f7](https://github.com/NanoForge-dev/schematics/commit/89059f7fbb5a505f3669bc691acbf377abd51fa6)) by @Exeloo
|
|
239
|
+
|
|
240
|
+
# [2.1.4](https://github.com/NanoForge-dev/schematics/compare/1.0.2...2.1.4) - (2026-06-29)
|
|
241
|
+
|
|
242
|
+
## Bug Fixes
|
|
243
|
+
|
|
244
|
+
- Issues (#139) ([131e794](https://github.com/NanoForge-dev/schematics/commit/131e794601b9fdcb583ac52eab9ca44a1cf8531f)) by @Exeloo
|
|
245
|
+
- **synchronize-docs:** Use actions key to have the rights (#127) ([f73464d](https://github.com/NanoForge-dev/schematics/commit/f73464d09f08f14f2c82960fe9cef2dfde7c00dc)) by @MartinFillon
|
|
246
|
+
- Give package json path (#124) ([a31e265](https://github.com/NanoForge-dev/schematics/commit/a31e26522078c9b60a63d3d91f1eccda96dadac7)) by @MartinFillon
|
|
247
|
+
- **template:** New format (#113) ([1e89de7](https://github.com/NanoForge-dev/schematics/commit/1e89de7a536f75783c260cf1a0f0b05f99ffcf97)) by @Tchips46
|
|
248
|
+
- Remove name formatting on app (#110) ([9478843](https://github.com/NanoForge-dev/schematics/commit/9478843b45a97714070babc6a7d41b8a9a6f2f65)) by @Exeloo
|
|
249
|
+
- Change save format in part base schematic (#105) ([6eaffe8](https://github.com/NanoForge-dev/schematics/commit/6eaffe8d94ce99727a8c27e1f7d5e3fa39a787ca)) by @Exeloo
|
|
250
|
+
- **docker:** Change base image as alpine doesnt have the right libs (#102) ([3b8c2b2](https://github.com/NanoForge-dev/schematics/commit/3b8c2b2476210b3df6a08415bb5f18b7cbdaf970)) by @MartinFillon
|
|
251
|
+
- Remove ts types in js example system in part base (#93) ([89555b4](https://github.com/NanoForge-dev/schematics/commit/89555b46ffa8f3a4e2f157ecd9fabb2202de1cd7)) by @Exeloo
|
|
252
|
+
- Fields does not replace on application (#86) ([d252953](https://github.com/NanoForge-dev/schematics/commit/d252953d4aef98a3ea505bb7bd45701f139d5599)) by @Exeloo
|
|
253
|
+
- Use of directory variable and js issues (#84) ([9d98d1a](https://github.com/NanoForge-dev/schematics/commit/9d98d1ae977e69cfc07b4e9131bde2ea2b34964f)) by @Exeloo
|
|
254
|
+
|
|
255
|
+
## Documentation
|
|
256
|
+
|
|
257
|
+
- Fix docs path (#140) ([fead8fd](https://github.com/NanoForge-dev/schematics/commit/fead8fd1e12ff872a5056f791dcaa7013bd135db)) by @Exeloo
|
|
258
|
+
- Add schematics docs (#61) ([7735324](https://github.com/NanoForge-dev/schematics/commit/7735324bcb5438929a24481e157677cc25f7457c)) by @Exeloo
|
|
259
|
+
- Fix contribution (#47) ([b6ad53e](https://github.com/NanoForge-dev/schematics/commit/b6ad53e9f77b6f6619b5090f08e9d3fb94e90a74)) by @Exeloo
|
|
260
|
+
- Add contributing docs and actions (#41) ([91eea94](https://github.com/NanoForge-dev/schematics/commit/91eea949ea785a03ca66d3a6e07d30d8e24df815)) by @Exeloo
|
|
261
|
+
|
|
262
|
+
## Features
|
|
263
|
+
|
|
264
|
+
- Add new release workflow (#137) ([af6c1e0](https://github.com/NanoForge-dev/schematics/commit/af6c1e0a9d49cb0cf46bbe6edde02ccfde04bc89)) by @Exeloo
|
|
265
|
+
- Use new docs actions to synchronize config (#123) ([fa3f4ec](https://github.com/NanoForge-dev/schematics/commit/fa3f4ece55b281bb37771b2f1fe5580ff5f707fc)) by @MartinFillon
|
|
266
|
+
- Add dom to application schema tsconfig (#111) ([368fa7c](https://github.com/NanoForge-dev/schematics/commit/368fa7cdd94027fa9b8cc23516654bd6bb3a0beb)) by @Exeloo
|
|
267
|
+
- Add component and system schematics (#103) ([38c90df](https://github.com/NanoForge-dev/schematics/commit/38c90df9bbe971da83aaa0338f39f875695083cf)) by @Exeloo
|
|
268
|
+
- **editor:** Add component holding entity id (#100) ([433c648](https://github.com/NanoForge-dev/schematics/commit/433c64851faafaf4198ac56801d09b47cce150c4)) by @Tchips46
|
|
269
|
+
- **save:** Allow partial saves component values as record string any (#98) ([9280349](https://github.com/NanoForge-dev/schematics/commit/9280349d9028d99028ab529e3c477cfd11d14606)) by @Tchips46
|
|
270
|
+
- Set save params types to any (#96) ([7a29579](https://github.com/NanoForge-dev/schematics/commit/7a29579e03fc1c4ca2ebc7794b4b3dd60167f741)) by @Exeloo
|
|
271
|
+
- Add core editor to dependencies (#90) ([29cfa08](https://github.com/NanoForge-dev/schematics/commit/29cfa0864ee4a84fdc5aed5e790da454334dd2d5)) by @Exeloo
|
|
272
|
+
- Add better handling of path option (#89) ([1e0c469](https://github.com/NanoForge-dev/schematics/commit/1e0c469f98aac91d81e21d20e36a7d9e7a94df8b)) by @Exeloo
|
|
273
|
+
- **BREAKING CHANGE:** Old schemas doesn't work anymore and config is changed
|
|
274
|
+
- Add editor option to part main schematic (#88) ([c59ed27](https://github.com/NanoForge-dev/schematics/commit/c59ed2710e2db2bcd3e5c553be9c80f5ad54b732)) by @Exeloo
|
|
275
|
+
- Add lint param handling on application (#79) ([96c2128](https://github.com/NanoForge-dev/schematics/commit/96c212817d763fc2677d28cd57f3d196c6a45f6d)) by @Exeloo
|
|
276
|
+
- Setup docker schema (#75) ([cf7ead5](https://github.com/NanoForge-dev/schematics/commit/cf7ead5c49164a85e3beb65be3c73c842cd14e58)) by @MartinFillon
|
|
277
|
+
- Add network and fix versions in app base (#70) ([6d5963a](https://github.com/NanoForge-dev/schematics/commit/6d5963a954e7a27c442377ecb70716a43e479717)) by @Exeloo
|
|
278
|
+
- Update and add pre-release (#48) ([49422f7](https://github.com/NanoForge-dev/schematics/commit/49422f7ad9e0595378cf6e8b44dc7711d09b8cfa)) by @Exeloo
|
|
279
|
+
|
|
280
|
+
## Testing
|
|
281
|
+
|
|
282
|
+
- Add unit tests and e2e tests (#67) ([8eef6b5](https://github.com/NanoForge-dev/schematics/commit/8eef6b51984d1187d3f0b936d670e362ad0224c6)) by @Exeloo
|
|
283
|
+
|
|
284
|
+
### New Contributors
|
|
285
|
+
|
|
286
|
+
- @MartinFillon made their first contribution in #151
|
|
287
|
+
- @github-actions[bot] made their first contribution in #150
|
|
288
|
+
- @dependabot[bot] made their first contribution in #143
|
|
289
|
+
- @Tchips46 made their first contribution in #113
|
|
290
|
+
|
|
291
|
+
# [2.1.4](https://github.com/NanoForge-dev/schematics/compare/1.0.2...2.1.4) - (2026-06-29)
|
|
292
|
+
|
|
293
|
+
## Bug Fixes
|
|
294
|
+
|
|
295
|
+
- Issues (#139) ([131e794](https://github.com/NanoForge-dev/schematics/commit/131e794601b9fdcb583ac52eab9ca44a1cf8531f)) by @Exeloo
|
|
296
|
+
- **synchronize-docs:** Use actions key to have the rights (#127) ([f73464d](https://github.com/NanoForge-dev/schematics/commit/f73464d09f08f14f2c82960fe9cef2dfde7c00dc)) by @MartinFillon
|
|
297
|
+
- Give package json path (#124) ([a31e265](https://github.com/NanoForge-dev/schematics/commit/a31e26522078c9b60a63d3d91f1eccda96dadac7)) by @MartinFillon
|
|
298
|
+
- **template:** New format (#113) ([1e89de7](https://github.com/NanoForge-dev/schematics/commit/1e89de7a536f75783c260cf1a0f0b05f99ffcf97)) by @Tchips46
|
|
299
|
+
- Remove name formatting on app (#110) ([9478843](https://github.com/NanoForge-dev/schematics/commit/9478843b45a97714070babc6a7d41b8a9a6f2f65)) by @Exeloo
|
|
300
|
+
- Change save format in part base schematic (#105) ([6eaffe8](https://github.com/NanoForge-dev/schematics/commit/6eaffe8d94ce99727a8c27e1f7d5e3fa39a787ca)) by @Exeloo
|
|
301
|
+
- **docker:** Change base image as alpine doesnt have the right libs (#102) ([3b8c2b2](https://github.com/NanoForge-dev/schematics/commit/3b8c2b2476210b3df6a08415bb5f18b7cbdaf970)) by @MartinFillon
|
|
302
|
+
- Remove ts types in js example system in part base (#93) ([89555b4](https://github.com/NanoForge-dev/schematics/commit/89555b46ffa8f3a4e2f157ecd9fabb2202de1cd7)) by @Exeloo
|
|
303
|
+
- Fields does not replace on application (#86) ([d252953](https://github.com/NanoForge-dev/schematics/commit/d252953d4aef98a3ea505bb7bd45701f139d5599)) by @Exeloo
|
|
304
|
+
- Use of directory variable and js issues (#84) ([9d98d1a](https://github.com/NanoForge-dev/schematics/commit/9d98d1ae977e69cfc07b4e9131bde2ea2b34964f)) by @Exeloo
|
|
305
|
+
|
|
306
|
+
## Documentation
|
|
307
|
+
|
|
308
|
+
- Fix docs path (#140) ([fead8fd](https://github.com/NanoForge-dev/schematics/commit/fead8fd1e12ff872a5056f791dcaa7013bd135db)) by @Exeloo
|
|
309
|
+
- Add schematics docs (#61) ([7735324](https://github.com/NanoForge-dev/schematics/commit/7735324bcb5438929a24481e157677cc25f7457c)) by @Exeloo
|
|
310
|
+
- Fix contribution (#47) ([b6ad53e](https://github.com/NanoForge-dev/schematics/commit/b6ad53e9f77b6f6619b5090f08e9d3fb94e90a74)) by @Exeloo
|
|
311
|
+
- Add contributing docs and actions (#41) ([91eea94](https://github.com/NanoForge-dev/schematics/commit/91eea949ea785a03ca66d3a6e07d30d8e24df815)) by @Exeloo
|
|
312
|
+
|
|
313
|
+
## Features
|
|
314
|
+
|
|
315
|
+
- Add new release workflow (#137) ([af6c1e0](https://github.com/NanoForge-dev/schematics/commit/af6c1e0a9d49cb0cf46bbe6edde02ccfde04bc89)) by @Exeloo
|
|
316
|
+
- Use new docs actions to synchronize config (#123) ([fa3f4ec](https://github.com/NanoForge-dev/schematics/commit/fa3f4ece55b281bb37771b2f1fe5580ff5f707fc)) by @MartinFillon
|
|
317
|
+
- Add dom to application schema tsconfig (#111) ([368fa7c](https://github.com/NanoForge-dev/schematics/commit/368fa7cdd94027fa9b8cc23516654bd6bb3a0beb)) by @Exeloo
|
|
318
|
+
- Add component and system schematics (#103) ([38c90df](https://github.com/NanoForge-dev/schematics/commit/38c90df9bbe971da83aaa0338f39f875695083cf)) by @Exeloo
|
|
319
|
+
- **editor:** Add component holding entity id (#100) ([433c648](https://github.com/NanoForge-dev/schematics/commit/433c64851faafaf4198ac56801d09b47cce150c4)) by @Tchips46
|
|
320
|
+
- **save:** Allow partial saves component values as record string any (#98) ([9280349](https://github.com/NanoForge-dev/schematics/commit/9280349d9028d99028ab529e3c477cfd11d14606)) by @Tchips46
|
|
321
|
+
- Set save params types to any (#96) ([7a29579](https://github.com/NanoForge-dev/schematics/commit/7a29579e03fc1c4ca2ebc7794b4b3dd60167f741)) by @Exeloo
|
|
322
|
+
- Add core editor to dependencies (#90) ([29cfa08](https://github.com/NanoForge-dev/schematics/commit/29cfa0864ee4a84fdc5aed5e790da454334dd2d5)) by @Exeloo
|
|
323
|
+
- Add better handling of path option (#89) ([1e0c469](https://github.com/NanoForge-dev/schematics/commit/1e0c469f98aac91d81e21d20e36a7d9e7a94df8b)) by @Exeloo
|
|
324
|
+
- **BREAKING CHANGE:** Old schemas doesn't work anymore and config is changed
|
|
325
|
+
- Add editor option to part main schematic (#88) ([c59ed27](https://github.com/NanoForge-dev/schematics/commit/c59ed2710e2db2bcd3e5c553be9c80f5ad54b732)) by @Exeloo
|
|
326
|
+
- Add lint param handling on application (#79) ([96c2128](https://github.com/NanoForge-dev/schematics/commit/96c212817d763fc2677d28cd57f3d196c6a45f6d)) by @Exeloo
|
|
327
|
+
- Setup docker schema (#75) ([cf7ead5](https://github.com/NanoForge-dev/schematics/commit/cf7ead5c49164a85e3beb65be3c73c842cd14e58)) by @MartinFillon
|
|
328
|
+
- Add network and fix versions in app base (#70) ([6d5963a](https://github.com/NanoForge-dev/schematics/commit/6d5963a954e7a27c442377ecb70716a43e479717)) by @Exeloo
|
|
329
|
+
- Update and add pre-release (#48) ([49422f7](https://github.com/NanoForge-dev/schematics/commit/49422f7ad9e0595378cf6e8b44dc7711d09b8cfa)) by @Exeloo
|
|
330
|
+
|
|
331
|
+
## Testing
|
|
332
|
+
|
|
333
|
+
- Add unit tests and e2e tests (#67) ([8eef6b5](https://github.com/NanoForge-dev/schematics/commit/8eef6b51984d1187d3f0b936d670e362ad0224c6)) by @Exeloo
|
|
334
|
+
|
|
335
|
+
### New Contributors
|
|
336
|
+
|
|
337
|
+
- @MartinFillon made their first contribution in #149
|
|
338
|
+
- @dependabot[bot] made their first contribution in #143
|
|
339
|
+
- @github-actions[bot] made their first contribution in #114
|
|
340
|
+
- @Tchips46 made their first contribution in #113
|
|
341
|
+
|
|
342
|
+
# [@nanoforge-dev/schematics@2.1.3](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@2.1.2...@nanoforge-dev/schematics@2.1.3) - (2026-04-19)
|
|
343
|
+
|
|
344
|
+
## Bug Fixes
|
|
345
|
+
|
|
346
|
+
- **template:** New format (#113) ([1e89de7](https://github.com/NanoForge-dev/schematics/commit/1e89de7a536f75783c260cf1a0f0b05f99ffcf97)) by @Tchips46
|
|
347
|
+
|
|
348
|
+
# [@nanoforge-dev/schematics@2.1.2](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@2.1.1...@nanoforge-dev/schematics@2.1.2) - (2026-04-17)
|
|
349
|
+
|
|
350
|
+
## Bug Fixes
|
|
351
|
+
|
|
352
|
+
- Remove name formatting on app (#110) ([9478843](https://github.com/NanoForge-dev/schematics/commit/9478843b45a97714070babc6a7d41b8a9a6f2f65)) by @Exeloo
|
|
353
|
+
|
|
354
|
+
## Features
|
|
355
|
+
|
|
356
|
+
- Add dom to application schema tsconfig (#111) ([368fa7c](https://github.com/NanoForge-dev/schematics/commit/368fa7cdd94027fa9b8cc23516654bd6bb3a0beb)) by @Exeloo
|
|
357
|
+
|
|
358
|
+
# [@nanoforge-dev/schematics@2.1.1](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@2.1.0...@nanoforge-dev/schematics@2.1.1) - (2026-04-02)
|
|
359
|
+
|
|
360
|
+
## Bug Fixes
|
|
361
|
+
|
|
362
|
+
- Change save format in part base schematic (#105) ([6eaffe8](https://github.com/NanoForge-dev/schematics/commit/6eaffe8d94ce99727a8c27e1f7d5e3fa39a787ca)) by @Exeloo
|
|
363
|
+
|
|
364
|
+
# [@nanoforge-dev/schematics@2.1.0](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@2.0.0...@nanoforge-dev/schematics@2.1.0) - (2026-04-02)
|
|
365
|
+
|
|
366
|
+
## Bug Fixes
|
|
367
|
+
|
|
368
|
+
- **docker:** Change base image as alpine doesnt have the right libs (#102) ([3b8c2b2](https://github.com/NanoForge-dev/schematics/commit/3b8c2b2476210b3df6a08415bb5f18b7cbdaf970)) by @MartinFillon
|
|
369
|
+
- Remove ts types in js example system in part base (#93) ([89555b4](https://github.com/NanoForge-dev/schematics/commit/89555b46ffa8f3a4e2f157ecd9fabb2202de1cd7)) by @Exeloo
|
|
370
|
+
|
|
371
|
+
## Features
|
|
372
|
+
|
|
373
|
+
- Add component and system schematics (#103) ([38c90df](https://github.com/NanoForge-dev/schematics/commit/38c90df9bbe971da83aaa0338f39f875695083cf)) by @Exeloo
|
|
374
|
+
- **editor:** Add component holding entity id (#100) ([433c648](https://github.com/NanoForge-dev/schematics/commit/433c64851faafaf4198ac56801d09b47cce150c4)) by @Tchips46
|
|
375
|
+
- **save:** Allow partial saves component values as record string any (#98) ([9280349](https://github.com/NanoForge-dev/schematics/commit/9280349d9028d99028ab529e3c477cfd11d14606)) by @Tchips46
|
|
376
|
+
- Set save params types to any (#96) ([7a29579](https://github.com/NanoForge-dev/schematics/commit/7a29579e03fc1c4ca2ebc7794b4b3dd60167f741)) by @Exeloo
|
|
377
|
+
|
|
378
|
+
### New Contributors
|
|
379
|
+
|
|
380
|
+
- @Tchips46 made their first contribution in #100
|
|
381
|
+
|
|
382
|
+
# [@nanoforge-dev/schematics@2.0.0](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@1.2.2...@nanoforge-dev/schematics@2.0.0) - (2026-03-17)
|
|
383
|
+
|
|
384
|
+
## Features
|
|
385
|
+
|
|
386
|
+
- Add core editor to dependencies (#90) ([29cfa08](https://github.com/NanoForge-dev/schematics/commit/29cfa0864ee4a84fdc5aed5e790da454334dd2d5)) by @Exeloo
|
|
387
|
+
- Add better handling of path option (#89) ([1e0c469](https://github.com/NanoForge-dev/schematics/commit/1e0c469f98aac91d81e21d20e36a7d9e7a94df8b)) by @Exeloo
|
|
388
|
+
- **BREAKING CHANGE:** Old schemas doesn't work anymore and config is changed
|
|
389
|
+
- Add editor option to part main schematic (#88) ([c59ed27](https://github.com/NanoForge-dev/schematics/commit/c59ed2710e2db2bcd3e5c553be9c80f5ad54b732)) by @Exeloo
|
|
390
|
+
|
|
391
|
+
# [@nanoforge-dev/schematics@1.2.2](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@1.2.1...@nanoforge-dev/schematics@1.2.2) - (2026-03-15)
|
|
392
|
+
|
|
393
|
+
## Bug Fixes
|
|
394
|
+
|
|
395
|
+
- Fields does not replace on application (#86) ([d252953](https://github.com/NanoForge-dev/schematics/commit/d252953d4aef98a3ea505bb7bd45701f139d5599)) by @Exeloo
|
|
396
|
+
|
|
397
|
+
# [@nanoforge-dev/schematics@1.2.1](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@1.2.0...@nanoforge-dev/schematics@1.2.1) - (2026-03-15)
|
|
398
|
+
|
|
399
|
+
## Bug Fixes
|
|
400
|
+
|
|
401
|
+
- Use of directory variable and js issues (#84) ([9d98d1a](https://github.com/NanoForge-dev/schematics/commit/9d98d1ae977e69cfc07b4e9131bde2ea2b34964f)) by @Exeloo
|
|
402
|
+
|
|
403
|
+
## Features
|
|
404
|
+
|
|
405
|
+
- Add lint param handling on application (#79) ([96c2128](https://github.com/NanoForge-dev/schematics/commit/96c212817d763fc2677d28cd57f3d196c6a45f6d)) by @Exeloo
|
|
406
|
+
|
|
407
|
+
# [@nanoforge-dev/schematics@1.2.0](https://github.com/NanoForge-dev/schematics/compare/@nanoforge-dev/schematics@1.1.0...@nanoforge-dev/schematics@1.2.0) - (2026-02-27)
|
|
408
|
+
|
|
409
|
+
## Features
|
|
410
|
+
|
|
411
|
+
- Setup docker schema (#75) ([cf7ead5](https://github.com/NanoForge-dev/schematics/commit/cf7ead5c49164a85e3beb65be3c73c842cd14e58)) by @MartinFillon
|
|
412
|
+
|
|
413
|
+
### New Contributors
|
|
414
|
+
|
|
415
|
+
- @MartinFillon made their first contribution in #75
|
|
416
|
+
- @dependabot[bot] made their first contribution in #76
|
|
417
|
+
|
|
418
|
+
# [@nanoforge-dev/schematics@1.1.0](https://github.com/NanoForge-dev/schematics/tree/@nanoforge-dev/schematics@1.1.0) - (2026-02-19)
|
|
419
|
+
|
|
420
|
+
## Documentation
|
|
421
|
+
|
|
422
|
+
- Add schematics docs (#61) ([7735324](https://github.com/NanoForge-dev/schematics/commit/7735324bcb5438929a24481e157677cc25f7457c)) by @Exeloo
|
|
423
|
+
- Fix contribution (#47) ([b6ad53e](https://github.com/NanoForge-dev/schematics/commit/b6ad53e9f77b6f6619b5090f08e9d3fb94e90a74)) by @Exeloo
|
|
424
|
+
- Add contributing docs and actions (#41) ([91eea94](https://github.com/NanoForge-dev/schematics/commit/91eea949ea785a03ca66d3a6e07d30d8e24df815)) by @Exeloo
|
|
425
|
+
|
|
426
|
+
## Features
|
|
427
|
+
|
|
428
|
+
- Add network and fix versions in app base (#70) ([6d5963a](https://github.com/NanoForge-dev/schematics/commit/6d5963a954e7a27c442377ecb70716a43e479717)) by @Exeloo
|
|
429
|
+
- Update and add pre-release (#48) ([49422f7](https://github.com/NanoForge-dev/schematics/commit/49422f7ad9e0595378cf6e8b44dc7711d09b8cfa)) by @Exeloo
|
|
430
|
+
|
|
431
|
+
## Testing
|
|
432
|
+
|
|
433
|
+
- Add unit tests and e2e tests (#67) ([8eef6b5](https://github.com/NanoForge-dev/schematics/commit/8eef6b51984d1187d3f0b936d670e362ad0224c6)) by @Exeloo
|
|
434
|
+
|
|
435
|
+
# [1.0.2](https://github.com/NanoForge-dev/schematics/compare/1.0.1...1.0.2) - (2025-12-06)
|
|
436
|
+
|
|
437
|
+
## Bug Fixes
|
|
438
|
+
|
|
439
|
+
- Split ecs between client and server (#38) ([086d42f](https://github.com/NanoForge-dev/schematics/commit/086d42f1639cc764fb6f21c6ce8d9426ec2581e7)) by @Exeloo
|
|
440
|
+
|
|
441
|
+
# [1.0.1](https://github.com/NanoForge-dev/schematics/compare/1.0.0...1.0.1) - (2025-12-04)
|
|
442
|
+
|
|
443
|
+
## Bug Fixes
|
|
444
|
+
|
|
445
|
+
- **configuration:** Simplify schema and change defaults (#34) ([af29b00](https://github.com/NanoForge-dev/schematics/commit/af29b0011ae078dc75c9625e8f470f8506a7c7cb)) by @Exeloo
|
|
446
|
+
|
|
447
|
+
# [1.0.0](https://github.com/NanoForge-dev/schematics/compare/0.0.1...1.0.0) - (2025-11-30)
|
|
448
|
+
|
|
449
|
+
## Bug Fixes
|
|
450
|
+
|
|
451
|
+
- Change exports in package json and update schema paths (#17) ([b78b72a](https://github.com/NanoForge-dev/schematics/commit/b78b72a40b2287d841a3cac90adb0d37b4493d4e)) by @Exeloo
|
|
452
|
+
|
|
453
|
+
## Features
|
|
454
|
+
|
|
455
|
+
- **schematics:** Add part-main schematics for generating client/server main files (#29) ([6f34c1c](https://github.com/NanoForge-dev/schematics/commit/6f34c1c0f70d67eb78645108a665f7c5ebab8086)) by @Exeloo
|
|
456
|
+
- **schematics:** Replace client by base-part schematics to handle server (#20) ([c5ad539](https://github.com/NanoForge-dev/schematics/commit/c5ad539d7ac524de724c49dfa6b0e7b310700a44)) by @Exeloo
|
|
457
|
+
- **schematics:** Add client base schematics (#19) ([f02b26d](https://github.com/NanoForge-dev/schematics/commit/f02b26db6be9226857fbf3fe0ffe1abf6de31024)) by @Exeloo
|
|
458
|
+
|
|
459
|
+
### New Contributors
|
|
460
|
+
|
|
461
|
+
- @renovate[bot] made their first contribution in #27
|
|
462
|
+
|
|
463
|
+
# [0.0.1](https://github.com/NanoForge-dev/schematics/tree/0.0.1) - (2025-11-28)
|
|
464
|
+
|
|
465
|
+
## Features
|
|
466
|
+
|
|
467
|
+
- Add base application and configuration schematics (#12) ([d881653](https://github.com/NanoForge-dev/schematics/commit/d881653dd57a886f12e18b9acf0d48d31d3686e6))
|
|
468
|
+
- Init schematics project (#11) ([3fb0e61](https://github.com/NanoForge-dev/schematics/commit/3fb0e61075cf8094309765a0f685d2411c7f8aa8)) by @Exeloo
|
|
469
|
+
|
|
470
|
+
### New Contributors
|
|
471
|
+
|
|
472
|
+
- @Exeloo made their first contribution in #11
|
package/README.md
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<br />
|
|
3
3
|
<p>
|
|
4
|
-
<a href="https://github.com/NanoForge-dev"><img src="https://github.com/NanoForge-dev/
|
|
4
|
+
<a href="https://github.com/NanoForge-dev"><img src="https://github.com/NanoForge-dev/CLI/blob/main/.github/logo.png" width="546" alt="NanoForge" /></a>
|
|
5
5
|
</p>
|
|
6
6
|
<br />
|
|
7
7
|
<p>
|
|
8
8
|
<a href="https://www.npmjs.com/package/@nanoforge-dev/schematics"><img src="https://img.shields.io/npm/v/@nanoforge-dev/schematics.svg?maxAge=3600" alt="npm version" /></a>
|
|
9
9
|
<a href="https://www.npmjs.com/package/@nanoforge-dev/schematics"><img src="https://img.shields.io/npm/dt/@nanoforge-dev/schematics.svg?maxAge=3600" alt="npm downloads" /></a>
|
|
10
|
-
<a href="https://github.com/NanoForge-dev/
|
|
11
|
-
<a href="https://github.com/NanoForge-dev/
|
|
12
|
-
<a href="https://github.com/NanoForge-dev/
|
|
13
|
-
<a href="https://github.com/NanoForge-dev/
|
|
10
|
+
<a href="https://github.com/NanoForge-dev/CLI/actions/workflows/tests.yml"><img src="https://github.com/NanoForge-dev/CLI/actions/workflows/tests.yml/badge.svg" alt="Tests status" /></a>
|
|
11
|
+
<a href="https://github.com/NanoForge-dev/CLI/actions/workflows/release.yml"><img src="https://github.com/NanoForge-dev/CLI/actions/workflows/release.yml/badge.svg" alt="Release status" /></a>
|
|
12
|
+
<a href="https://github.com/NanoForge-dev/CLI/commits/main"><img src="https://img.shields.io/github/last-commit/NanoForge-dev/CLI.svg?logo=github&logoColor=ffffff" alt="Last commit" /></a>
|
|
13
|
+
<a href="https://github.com/NanoForge-dev/CLI/graphs/contributors"><img src="https://img.shields.io/github/contributors/NanoForge-dev/CLI.svg?maxAge=3600&logo=github&logoColor=fff&color=00c7be" alt="Contributors" /></a>
|
|
14
14
|
</p>
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
17
|
## About
|
|
18
18
|
|
|
19
|
-
This
|
|
19
|
+
This package contains the Schematics of NanoForge, used by the [CLI][cli-source] to generate project files. Check [releases][github-releases] to see versions of the Schematics. Nanoforge is a powerful game engine for web browser.
|
|
20
20
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
@@ -38,13 +38,10 @@ nf new
|
|
|
38
38
|
|
|
39
39
|
This repository provide multiples schematics, usable with Angular Devkit schematics.
|
|
40
40
|
|
|
41
|
-
- `
|
|
42
|
-
- `
|
|
43
|
-
- `part-base` : Base of Nanoforge client or server
|
|
44
|
-
- `part-main` : Client or server `main.ts` from a config
|
|
41
|
+
- `workspace` : Root of a NanoForge monorepo (`nanoforge.config.ts`, `package.json`, tooling)
|
|
42
|
+
- `project` : Client or server project under `apps/<part>`, including `main.ts`, example component/system, and an optional Dockerfile
|
|
45
43
|
- `component` : ECS component class for a client or server part
|
|
46
44
|
- `system` : ECS system function for a client or server part
|
|
47
|
-
- `docker` : Dockerfile and `.dockerignore` tailored to your package manager
|
|
48
45
|
|
|
49
46
|
## Contributing
|
|
50
47
|
|
|
@@ -54,8 +51,8 @@ Please read through our [contribution guidelines][contributing] before starting
|
|
|
54
51
|
|
|
55
52
|
If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please ask on [Discussions][discussions].
|
|
56
53
|
|
|
57
|
-
[contributing]: https://github.com/NanoForge-dev/
|
|
58
|
-
[discussions]: https://github.com/NanoForge-dev/
|
|
54
|
+
[contributing]: https://github.com/NanoForge-dev/CLI/blob/main/.github/CONTRIBUTING.md
|
|
55
|
+
[discussions]: https://github.com/NanoForge-dev/CLI/discussions
|
|
59
56
|
[cli-source]: https://github.com/NanoForge-dev/CLI
|
|
60
|
-
[github-releases]: https://github.com/NanoForge-dev/
|
|
61
|
-
[good-first-issue]: https://github.com/NanoForge-dev/
|
|
57
|
+
[github-releases]: https://github.com/NanoForge-dev/CLI/releases
|
|
58
|
+
[good-first-issue]: https://github.com/NanoForge-dev/CLI/contribute
|
package/dist/collection.json
CHANGED
|
@@ -1,30 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
|
|
3
3
|
"schematics": {
|
|
4
|
-
"
|
|
5
|
-
"factory": "./libs/
|
|
6
|
-
"description": "Create a NanoForge
|
|
7
|
-
"schema": "./libs/
|
|
4
|
+
"workspace": {
|
|
5
|
+
"factory": "./libs/workspace/workspace.factory#main",
|
|
6
|
+
"description": "Create a NanoForge workspace (monorepo root: config, tooling, package manifest).",
|
|
7
|
+
"schema": "./libs/workspace/schema.json"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
10
|
-
"factory": "./libs/
|
|
11
|
-
"description": "Create a NanoForge
|
|
12
|
-
"schema": "./libs/
|
|
13
|
-
},
|
|
14
|
-
"part-base": {
|
|
15
|
-
"factory": "./libs/part-base/part-base.factory#main",
|
|
16
|
-
"description": "Create a NanoForge Base for client or server.",
|
|
17
|
-
"schema": "./libs/part-base/schema.json"
|
|
18
|
-
},
|
|
19
|
-
"part-main": {
|
|
20
|
-
"factory": "./libs/part-main/part-main.factory#main",
|
|
21
|
-
"description": "Create a Main file for client or server.",
|
|
22
|
-
"schema": "./libs/part-main/schema.json"
|
|
23
|
-
},
|
|
24
|
-
"docker": {
|
|
25
|
-
"factory": "./libs/docker/docker.factory#main",
|
|
26
|
-
"description": "Create a Dockerfile for the application.",
|
|
27
|
-
"schema": "./libs/docker/schema.json"
|
|
9
|
+
"project": {
|
|
10
|
+
"factory": "./libs/project/project.factory#main",
|
|
11
|
+
"description": "Create a NanoForge client or server project under apps/<part>.",
|
|
12
|
+
"schema": "./libs/project/schema.json"
|
|
28
13
|
},
|
|
29
14
|
"component": {
|
|
30
15
|
"factory": "./libs/component/component.factory#main",
|
package/dist/index.cjs
CHANGED
|
@@ -1,17 +1,32 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
//#region src/defaults.ts
|
|
3
3
|
const DEFAULT_APP_NAME = "nanoforge-app";
|
|
4
|
-
const DEFAULT_VERSION = "0.0.0";
|
|
5
|
-
const DEFAULT_AUTHOR = "";
|
|
6
|
-
const DEFAULT_DESCRIPTION = "";
|
|
7
4
|
const DEFAULT_LANGUAGE = "ts";
|
|
8
5
|
const DEFAULT_PACKAGE_MANAGER = "npm";
|
|
6
|
+
const DEFAULT_NANOFORGE_DEPENDENCY_VERSION = "^2";
|
|
7
|
+
const DEFAULT_ENGINE_VERSION = "^2";
|
|
8
|
+
/** Fallback used when the registry lookup for `@nanoforge-dev/cli` fails. */
|
|
9
|
+
const DEFAULT_CLI_DEPENDENCY_VERSION = "latest";
|
|
10
|
+
/**
|
|
11
|
+
* Fallback used when the registry lookup for `typescript` fails. A specific
|
|
12
|
+
* version, not a range — non-nanoforge packages are pinned exactly.
|
|
13
|
+
*/
|
|
14
|
+
const DEFAULT_TYPESCRIPT_VERSION = "6.0.3";
|
|
15
|
+
/**
|
|
16
|
+
* Mirrors pnpm's own `minimumReleaseAge` supply-chain protection: when
|
|
17
|
+
* resolving a pinned dependency version at generation time, only consider
|
|
18
|
+
* versions published at least this long ago, so a freshly (and potentially
|
|
19
|
+
* maliciously) published release isn't picked up immediately.
|
|
20
|
+
*/
|
|
21
|
+
const MIN_RELEASE_AGE_HOURS = 48;
|
|
9
22
|
//#endregion
|
|
10
23
|
exports.DEFAULT_APP_NAME = DEFAULT_APP_NAME;
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
24
|
+
exports.DEFAULT_CLI_DEPENDENCY_VERSION = DEFAULT_CLI_DEPENDENCY_VERSION;
|
|
25
|
+
exports.DEFAULT_ENGINE_VERSION = DEFAULT_ENGINE_VERSION;
|
|
13
26
|
exports.DEFAULT_LANGUAGE = DEFAULT_LANGUAGE;
|
|
27
|
+
exports.DEFAULT_NANOFORGE_DEPENDENCY_VERSION = DEFAULT_NANOFORGE_DEPENDENCY_VERSION;
|
|
14
28
|
exports.DEFAULT_PACKAGE_MANAGER = DEFAULT_PACKAGE_MANAGER;
|
|
15
|
-
exports.
|
|
29
|
+
exports.DEFAULT_TYPESCRIPT_VERSION = DEFAULT_TYPESCRIPT_VERSION;
|
|
30
|
+
exports.MIN_RELEASE_AGE_HOURS = MIN_RELEASE_AGE_HOURS;
|
|
16
31
|
|
|
17
32
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../src/defaults.ts"],"sourcesContent":["export const DEFAULT_APP_NAME = \"nanoforge-app\";\nexport const
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../src/defaults.ts"],"sourcesContent":["export const DEFAULT_APP_NAME = \"nanoforge-app\";\nexport const DEFAULT_LANGUAGE = \"ts\";\nexport const DEFAULT_PACKAGE_MANAGER = \"npm\";\nexport const DEFAULT_NANOFORGE_DEPENDENCY_VERSION = \"^2\";\nexport const DEFAULT_ENGINE_VERSION = \"^2\";\n\n/** Fallback used when the registry lookup for `@nanoforge-dev/cli` fails. */\nexport const DEFAULT_CLI_DEPENDENCY_VERSION = \"latest\";\n\n/**\n * Fallback used when the registry lookup for `typescript` fails. A specific\n * version, not a range — non-nanoforge packages are pinned exactly.\n */\nexport const DEFAULT_TYPESCRIPT_VERSION = \"6.0.3\";\n\n/**\n * Mirrors pnpm's own `minimumReleaseAge` supply-chain protection: when\n * resolving a pinned dependency version at generation time, only consider\n * versions published at least this long ago, so a freshly (and potentially\n * maliciously) published release isn't picked up immediately.\n */\nexport const MIN_RELEASE_AGE_HOURS = 48;\n"],"mappings":";;AAAA,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,0BAA0B;AACvC,MAAa,uCAAuC;AACpD,MAAa,yBAAyB;;AAGtC,MAAa,iCAAiC;;;;;AAM9C,MAAa,6BAA6B;;;;;;;AAQ1C,MAAa,wBAAwB"}
|