create-warlock 5.31.0 → 5.33.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 +24 -0
- package/README.md +78 -25
- package/esm/commands/create-new-app/index.mjs +2 -2
- package/esm/commands/create-new-app/index.mjs.map +1 -1
- package/esm/commands/create-new-app/types.d.mts +14 -9
- package/esm/commands/create-warlock-app/index.mjs +1 -1
- package/esm/commands/create-warlock-app/index.mjs.map +1 -1
- package/esm/features/agent-kit-targets.mjs +1 -1
- package/esm/features/agent-kit-targets.mjs.map +1 -1
- package/esm/features/database-drivers.mjs +1 -1
- package/esm/features/features-map.mjs +1 -1
- package/esm/flags/assert-package-manager.mjs +1 -1
- package/esm/flags/definitions.mjs +3 -3
- package/esm/flags/definitions.mjs.map +1 -1
- package/esm/flags/seed-from-flags.mjs +2 -2
- package/esm/flags/seed-from-flags.mjs.map +1 -1
- package/esm/helpers/app.mjs +34 -12
- package/esm/helpers/app.mjs.map +1 -1
- package/esm/helpers/exec.mjs +1 -1
- package/esm/helpers/insert-import.mjs +1 -1
- package/esm/helpers/insert-import.mjs.map +1 -1
- package/esm/helpers/paths.mjs.map +1 -1
- package/esm/helpers/warlock-versions.mjs +1 -1
- package/esm/index.d.mts +3 -5
- package/esm/index.mjs +1 -3
- package/esm/index.mjs.map +1 -1
- package/esm/prompts/ask-lint-toolchain.mjs +2 -2
- package/esm/prompts/ask-lint-toolchain.mjs.map +1 -1
- package/esm/summary.mjs +2 -2
- package/esm/summary.mjs.map +1 -1
- package/esm/ui/banner.mjs +1 -1
- package/llms-full.txt +79 -10
- package/package.json +2 -2
- package/skills/create-a-warlock-project/SKILL.md +79 -10
- package/templates/toolchains/oxc/.oxfmtignore +2 -0
- package/templates/toolchains/oxc/.oxfmtrc.json +4 -1
- package/templates/warlock/.prettierrc.json +3 -1
- package/templates/warlock/README.md +13 -0
- package/templates/warlock/package.json +4 -4
- package/templates/warlock/skills/code-standards/SKILL.md +1 -1
- package/templates/warlock/src/app/auth/controllers/login.controller.ts +1 -1
- package/templates/warlock/src/app/contact/controllers/contact.controller.ts +1 -1
- package/templates/warlock/src/app/locale/controllers/locale.controller.ts +1 -1
- package/templates/warlock/src/app/posts/controllers/create-new-post.controller.ts +1 -1
- package/templates/warlock/src/app/posts/controllers/update-post.controller.ts +1 -1
- package/templates/warlock/src/app/posts/models/post/post.model.ts +1 -1
- package/templates/warlock/src/app/posts/schema/create-post.schema.ts +1 -1
- package/templates/warlock/src/app/posts/schema/update-post.schema.ts +1 -1
- package/templates/warlock/src/app/users/controllers/create-new-user.controller.ts +1 -1
- package/templates/warlock/src/app/users/controllers/list-users.controller.ts +1 -1
- package/templates/warlock/src/app/users/models/user/user.model.ts +1 -1
- package/templates/warlock/src/app/users/schema/create-user.schema.ts +1 -1
- package/templates/warlock/src/app/users/schema/list-users.schema.ts +1 -1
- package/templates/warlock/src/config/storage.ts +1 -1
- package/templates/warlock/src/web/assets.d.ts +2 -0
- package/templates/warlock/src/web/home/components/contact-form-controls.tsx +1 -1
- package/templates/warlock/src/web/home/components/hero-section.tsx +1 -0
- package/templates/warlock/tsconfig.json +1 -1
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@clack/prompts": "^0.8.2",
|
|
15
15
|
"@mongez/copper": "^2.1.3",
|
|
16
|
-
"@warlock.js/fs": "5.
|
|
16
|
+
"@warlock.js/fs": "5.33.0",
|
|
17
17
|
"@mongez/reinforcements": "^4.0.2",
|
|
18
18
|
"cross-spawn": "^7.0.3",
|
|
19
19
|
"rimraf": "^6.0.1",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">=22.15"
|
|
24
24
|
},
|
|
25
|
-
"version": "5.
|
|
25
|
+
"version": "5.33.0",
|
|
26
26
|
"type": "module",
|
|
27
27
|
"main": "./esm/index.mjs",
|
|
28
28
|
"module": "./esm/index.mjs",
|
|
@@ -55,7 +55,7 @@ Because almost every choice defaults silently, `create-warlock` prints what it
|
|
|
55
55
|
decided right after scaffolding, e.g.:
|
|
56
56
|
|
|
57
57
|
```
|
|
58
|
-
Using npm · database: none · lint:
|
|
58
|
+
Using npm · database: none · lint: oxc · agent-kit targets: claude
|
|
59
59
|
Features: none
|
|
60
60
|
change these — package manager: --pm, database: --db/--no-db, agents: --agents,
|
|
61
61
|
features: --features, ai: --ai, lint: --lint, git: --git/--no-git, jwt: --jwt/--no-jwt — or
|
|
@@ -72,7 +72,7 @@ Features: none
|
|
|
72
72
|
| `--no-db` | no | — | Opt out of a database — shorthand for `--db=none`. |
|
|
73
73
|
| `--pm` | yes | inferred (`npm_config_user_agent` / system) | Package manager — must be one of `npm` / `yarn` / `pnpm` / `bun`; anything else is rejected before scaffolding starts. |
|
|
74
74
|
| `--features` | yes (CSV) | none, or `["web"]` when `--stack=web` and `--features` is not given | Comma-separated optional feature keys. An explicit `--features` always wins over the `--stack` default. |
|
|
75
|
-
| `--lint` | yes | `
|
|
75
|
+
| `--lint` | yes | `oxc` | `oxc` (Oxlint/Oxfmt) or `eslint` (ESLint/Prettier, deprecated); unknown or missing values fail before writes. |
|
|
76
76
|
| `--ai` | yes (CSV) | none | Comma-separated AI provider keys (auto-pulls `@warlock.js/ai`). |
|
|
77
77
|
| `--agents` | yes (CSV) | `claude` | Comma-separated `agent-kit` targets — see below. |
|
|
78
78
|
| `--git` / `--no-git` | no | off | Initialize a Git repo (`git init` + `main` branch + initial commit). |
|
|
@@ -201,13 +201,18 @@ a total count; the success screen shows the complete list.
|
|
|
201
201
|
|
|
202
202
|
## Choose the linter and formatter
|
|
203
203
|
|
|
204
|
-
`--lint=
|
|
204
|
+
`--lint=oxc` is the default. It also accepts `--lint oxc` and installs exact
|
|
205
205
|
`oxlint@1.88.0` and `oxfmt@0.73.0` versions, emits `.oxlintrc.json` and
|
|
206
206
|
`.oxfmtrc.json`, and removes the template's ESLint/Prettier configs and dependencies.
|
|
207
|
-
|
|
207
|
+
Pass `--lint=eslint` to opt in to ESLint/Prettier. The custom wizard prompts for
|
|
208
|
+
the same choice; a flag preselects it.
|
|
208
209
|
|
|
209
210
|
```bash
|
|
210
|
-
|
|
211
|
+
# Default: Oxlint + Oxfmt, TypeScript 7.0.2
|
|
212
|
+
npm create warlock@latest my-app -- --yes
|
|
213
|
+
|
|
214
|
+
# Explicit opt-in: ESLint + Prettier, TypeScript 6.0.3
|
|
215
|
+
npm create warlock@latest my-eslint-app -- --lint=eslint --yes
|
|
211
216
|
```
|
|
212
217
|
|
|
213
218
|
Both choices provide `lint`/`format` and non-mutating `lint:check`/`format:check`
|
|
@@ -218,13 +223,77 @@ Oxc config enables `devServer.healthCheckers: { eslint: false, oxlint: true }` a
|
|
|
218
223
|
leaves TypeScript health checks enabled. Style matches the template's 100-column,
|
|
219
224
|
double-quote, semicolon and trailing-comma settings. Import sorting is on in
|
|
220
225
|
`.oxfmtrc.json`, kept to one block like the ESLint toolchain's
|
|
221
|
-
|
|
226
|
+
`@ianvs/prettier-plugin-sort-imports`:
|
|
222
227
|
|
|
223
228
|
```json
|
|
224
|
-
{ "sortImports": { "newlinesBetween": false } }
|
|
229
|
+
{ "sortImports": { "newlinesBetween": false, "internalPattern": ["app/", "web/", "@shared/"] } }
|
|
225
230
|
```
|
|
226
231
|
|
|
227
|
-
`format` (`
|
|
228
|
-
imports.
|
|
229
|
-
`no-unused-
|
|
232
|
+
`format` (`npm run format`) orders built-ins, packages, internal aliases,
|
|
233
|
+
then relative imports. Neither formatter deletes unused imports. ESLint reports
|
|
234
|
+
them through `unused-imports/no-unused-imports`; Oxlint uses `no-unused-vars`.
|
|
235
|
+
Scripts in both toolchains call local binaries
|
|
230
236
|
(`eslint --fix ./src --max-warnings=0`, `tsc --noEmit`), never `npx`.
|
|
237
|
+
|
|
238
|
+
## TypeScript 7 in 5.32
|
|
239
|
+
|
|
240
|
+
Default Oxlint/Oxfmt projects pin `typescript` to `7.0.2`; `tsc` is the native Go compiler.
|
|
241
|
+
The template uses `module: "ESNext"`, `moduleResolution: "bundler"`, explicit
|
|
242
|
+
Node types, and `paths` relative to its tsconfig, without `baseUrl`.
|
|
243
|
+
Existing apps must remove `baseUrl`, rebase alias targets, and replace
|
|
244
|
+
`moduleResolution: "node"` / `"node10"` before typechecking.
|
|
245
|
+
|
|
246
|
+
Explicit `--lint=eslint` projects pin `typescript` to **6.0.3**, the newest version
|
|
247
|
+
supported by typescript-eslint. Its parser requires the JavaScript compiler API
|
|
248
|
+
removed in TypeScript 7, and its declared peer range is `>=4.8.4 <6.1.0`
|
|
249
|
+
([parser package metadata](https://registry.npmjs.org/@typescript-eslint/parser/8.71.2)).
|
|
250
|
+
Both modes use the same tsconfig settings above, which are valid in TypeScript 6.
|
|
251
|
+
ESLint mode prints a deprecation warning naming removal in 5.34.0 and the Oxc migration command. Both modes install with every supported package manager.
|
|
252
|
+
|
|
253
|
+
### Prettier import order in ESLint mode
|
|
254
|
+
|
|
255
|
+
The ESLint scaffold’s `@ianvs/prettier-plugin-sort-imports` uses Babel instead of
|
|
256
|
+
the compiler API. Keep these options in `.prettierrc.json`:
|
|
257
|
+
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"plugins": ["@ianvs/prettier-plugin-sort-imports"],
|
|
261
|
+
"importOrder": ["<BUILTIN_MODULES>", "<THIRD_PARTY_MODULES>", "^(app|web|@shared)/", "^[.]"],
|
|
262
|
+
"importOrderParserPlugins": ["typescript", "jsx", "decorators"]
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Leave `importOrderTypeScriptVersion` at its default to keep type and value imports
|
|
267
|
+
separate. Run `npm run format`, then `npm run lint:check`; formatting preserves
|
|
268
|
+
unused imports, and `npm run lint` can apply ESLint’s unused-import fixes.
|
|
269
|
+
|
|
270
|
+
## Migrate to Oxlint and Oxfmt in 5.33
|
|
271
|
+
|
|
272
|
+
ESLint + Prettier are deprecated in 5.33.0 and will be removed in **5.34.0**.
|
|
273
|
+
New apps should use `--lint=oxc`. To migrate an existing app, install the new
|
|
274
|
+
core release and `ts-morph`, then run:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
npx warlock upgrade --from 5.32 --to 5.33.0 --dry-run
|
|
278
|
+
npx warlock upgrade --from 5.32 --to 5.33.0
|
|
279
|
+
npm install
|
|
280
|
+
npm run format
|
|
281
|
+
npm run lint:check
|
|
282
|
+
npx warlock check
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Review every reported `file:line`: customized configs are preserved and need
|
|
286
|
+
manual translation before removal. The codemod installs the template's Oxlint
|
|
287
|
+
and Oxfmt versions and pins TypeScript to 7.0.2. It replaces standard lint/format
|
|
288
|
+
scripts, removes legacy dependencies, and deletes only recognized generated
|
|
289
|
+
configs. A generated `.prettierignore` becomes `.oxfmtignore`. Existing Oxc
|
|
290
|
+
configs are preserved. `--dry-run --json` reports the same planned changes
|
|
291
|
+
without writing files.
|
|
292
|
+
|
|
293
|
+
Explicit deprecated ESLint scaffolds set `devServer.healthCheckers.eslint: true`;
|
|
294
|
+
existing apps must set this themselves to retain background ESLint checking.
|
|
295
|
+
|
|
296
|
+
Oxc formatting scripts explicitly read `.gitignore` and `.oxfmtignore`. Oxfmt
|
|
297
|
+
0.73 otherwise defaults to `.prettierignore` (`oxfmt --help`); the explicit
|
|
298
|
+
paths make migrated ignore rules effective. The package template format gate
|
|
299
|
+
also defaults to Oxfmt; `--lint=eslint` is its deprecated compatibility mode.
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
"arrowParens": "always",
|
|
8
8
|
"trailingComma": "all",
|
|
9
9
|
"endOfLine": "lf",
|
|
10
|
-
"sortImports": {
|
|
10
|
+
"sortImports": {
|
|
11
|
+
"newlinesBetween": false,
|
|
12
|
+
"internalPattern": ["app/", "web/", "@shared/"]
|
|
13
|
+
},
|
|
11
14
|
"ignorePatterns": ["node_modules/", "dist/"]
|
|
12
15
|
}
|
|
@@ -6,5 +6,7 @@
|
|
|
6
6
|
"arrowParens": "always",
|
|
7
7
|
"trailingComma": "all",
|
|
8
8
|
"endOfLine": "lf",
|
|
9
|
-
"plugins": ["prettier-plugin-
|
|
9
|
+
"plugins": ["@ianvs/prettier-plugin-sort-imports"],
|
|
10
|
+
"importOrder": ["<BUILTIN_MODULES>", "<THIRD_PARTY_MODULES>", "^(app|web|@shared)/", "^[.]"],
|
|
11
|
+
"importOrderParserPlugins": ["typescript", "jsx", "decorators"]
|
|
10
12
|
}
|
|
@@ -148,3 +148,16 @@ This project ships instructions and skills for AI coding agents:
|
|
|
148
148
|
|
|
149
149
|
- [Documentation](https://warlock.js.org)
|
|
150
150
|
- [Changelog](https://warlock.js.org/changelog)
|
|
151
|
+
|
|
152
|
+
## TypeScript 7 in 5.32
|
|
153
|
+
|
|
154
|
+
New projects pin `typescript` to `7.0.2`; `tsc` is the native Go compiler.
|
|
155
|
+
The template uses `module: "ESNext"`, `moduleResolution: "bundler"`, explicit
|
|
156
|
+
Node types, and `paths` relative to its tsconfig, without `baseUrl`.
|
|
157
|
+
Existing apps must remove `baseUrl`, rebase alias targets, and replace
|
|
158
|
+
`moduleResolution: "node"` / `"node10"` before typechecking.
|
|
159
|
+
|
|
160
|
+
Use the Oxlint/Oxfmt lint mode with TS7. The optional ESLint scaffold is retained,
|
|
161
|
+
but typescript-eslint's parser requires the removed JavaScript compiler API and
|
|
162
|
+
does not support TS7. ESLint mode is scheduled for deprecation in 5.33 and removal
|
|
163
|
+
in 5.34. A parser's bundled older TypeScript is separate from the app's native `tsc`.
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"gen.r": "warlock generate.repository",
|
|
21
21
|
"gen.rs": "warlock generate.resource",
|
|
22
22
|
"lint": "eslint --fix ./src --max-warnings=0",
|
|
23
|
-
"format": "prettier --write \"./src/**/*.{js,jsx,ts,tsx,css,md,json}\" --config ./.prettierrc.json",
|
|
23
|
+
"format": "node -e \"console.warn('Deprecated: Prettier support is removed in 5.34.0; migrate with npx warlock upgrade --from 5.32 --to 5.33.0.')\" && prettier --write \"./src/**/*.{js,jsx,ts,tsx,css,md,json}\" --config ./.prettierrc.json",
|
|
24
24
|
"tsc": "warlock generate.typings && tsc --noEmit",
|
|
25
25
|
"postinstall": "agent-kit init && agent-kit sync || echo \"warning: AI agent skills were NOT synced, so coding agents will not see the @warlock.js skills. Run the skills:sync script.\"",
|
|
26
26
|
"skills:sync": "agent-kit sync",
|
|
27
27
|
"skills:watch": "agent-kit watch",
|
|
28
28
|
"lint:check": "eslint ./src --max-warnings=0",
|
|
29
|
-
"format:check": "prettier --check \"./src/**/*.{js,jsx,ts,tsx,css,md,json}\" --config ./.prettierrc.json"
|
|
29
|
+
"format:check": "node -e \"console.warn('Deprecated: Prettier support is removed in 5.34.0; migrate with npx warlock upgrade --from 5.32 --to 5.33.0.')\" && prettier --check \"./src/**/*.{js,jsx,ts,tsx,css,md,json}\" --config ./.prettierrc.json"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@mongez/reinforcements": "^4.0.2",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"dayjs": "^1.11.19"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
+
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
|
|
46
47
|
"@mongez/agent-kit": "^1.3.1",
|
|
47
48
|
"@types/node": "^25.0.3",
|
|
48
49
|
"@types/prettier": "^3.0.0",
|
|
@@ -53,8 +54,7 @@
|
|
|
53
54
|
"eslint-plugin-prettier": "^5.5.4",
|
|
54
55
|
"eslint-plugin-unused-imports": "^4.3.0",
|
|
55
56
|
"prettier": "^3.7.4",
|
|
56
|
-
"
|
|
57
|
-
"typescript": "^5.9.3",
|
|
57
|
+
"typescript": "7.0.2",
|
|
58
58
|
"vitest": "4.0.5"
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -574,7 +574,7 @@ For ESLint, consider enabling these additional rules:
|
|
|
574
574
|
- `curly` — enforces braces (§ 4.4)
|
|
575
575
|
- `no-console` — enforces § 8
|
|
576
576
|
|
|
577
|
-
Match the selected formatter config: `.prettierrc.json` or `.oxfmtrc.json`. Both use 100 columns, double quotes, semicolons and trailing commas.
|
|
577
|
+
Match the selected formatter config: `.prettierrc.json` or `.oxfmtrc.json`. Both use 100 columns, double quotes, semicolons and trailing commas. Prettier uses `@ianvs/prettier-plugin-sort-imports` (Babel, independent of TypeScript); it sorts built-ins, packages, aliases (`app/*`, `web/*`, `@shared/*`) and relatives in one block while preserving separate type imports. Oxfmt sorts imports through its own configuration. Both retain unused imports: ESLint reports them through `unused-imports/no-unused-imports`, and Oxlint through `no-unused-vars`. Run the formatter, then the linter.
|
|
578
578
|
|
|
579
579
|
---
|
|
580
580
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Request, type RequestHandler } from "@warlock.js/core";
|
|
2
|
-
import { type LoginSchema
|
|
2
|
+
import { loginSchema, type LoginSchema } from "../schema/login.schema";
|
|
3
3
|
import { loginService } from "../services/auth.service";
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { contactSchema } from "@shared/contact.schema";
|
|
2
1
|
import { type Request, type RequestHandler } from "@warlock.js/core";
|
|
3
2
|
import { type Infer } from "@warlock.js/seal";
|
|
3
|
+
import { contactSchema } from "@shared/contact.schema";
|
|
4
4
|
|
|
5
5
|
export type ContactSchema = Infer.Output<typeof contactSchema>;
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { localeSchema, type LocaleSchema } from "@shared/locale.schema";
|
|
2
1
|
import { type Request, type RequestHandler } from "@warlock.js/core";
|
|
2
|
+
import { localeSchema, type LocaleSchema } from "@shared/locale.schema";
|
|
3
3
|
|
|
4
4
|
/** POST /api/locale — persists the visitor's locale preference in a cookie. */
|
|
5
5
|
export const localeController: RequestHandler<Request<LocaleSchema>> = async ({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GuardedRequestHandler } from "app/auth/requests/guarded.request";
|
|
2
2
|
import { Post } from "../models/post/post.model";
|
|
3
|
-
import { type CreatePostSchema
|
|
3
|
+
import { createPostSchema, type CreatePostSchema } from "../schema/create-post.schema";
|
|
4
4
|
|
|
5
5
|
export const createNewPostController: GuardedRequestHandler<CreatePostSchema> = async ({
|
|
6
6
|
request,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GuardedRequestHandler } from "app/auth/requests/guarded.request";
|
|
2
2
|
import { Post } from "../models/post/post.model";
|
|
3
|
-
import { type UpdatePostSchema
|
|
3
|
+
import { updatePostSchema, type UpdatePostSchema } from "../schema/update-post.schema";
|
|
4
4
|
|
|
5
5
|
export const updatePostController: GuardedRequestHandler<UpdatePostSchema> = async ({
|
|
6
6
|
request,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Model, RegisterModel } from "@warlock.js/cascade";
|
|
2
2
|
import { useComputedSlug } from "@warlock.js/core";
|
|
3
|
-
import { type Infer
|
|
3
|
+
import { v, type Infer } from "@warlock.js/seal";
|
|
4
4
|
import { PostResource } from "app/posts/resources/post.resource";
|
|
5
5
|
|
|
6
6
|
export const postSchema = v.object({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GuardedRequestHandler } from "app/auth/requests/guarded.request";
|
|
2
2
|
import { User } from "../models/user";
|
|
3
|
-
import { type CreateUserSchema
|
|
3
|
+
import { createUserSchema, type CreateUserSchema } from "../schema/create-user.schema";
|
|
4
4
|
|
|
5
5
|
export const createNewUserController: GuardedRequestHandler<CreateUserSchema> = async ({
|
|
6
6
|
request,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GuardedRequestHandler } from "app/auth/requests/guarded.request";
|
|
2
2
|
import { usersRepository } from "../repositories/users.repository";
|
|
3
|
-
import { type ListUsersSchema
|
|
3
|
+
import { listUsersSchema, type ListUsersSchema } from "../schema/list-users.schema";
|
|
4
4
|
|
|
5
5
|
export const listUsersController: GuardedRequestHandler<ListUsersSchema> = async ({
|
|
6
6
|
request,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Auth } from "@warlock.js/auth";
|
|
2
2
|
import { RegisterModel } from "@warlock.js/cascade";
|
|
3
3
|
import { useHashedPassword } from "@warlock.js/core";
|
|
4
|
-
import { type Infer
|
|
4
|
+
import { v, type Infer } from "@warlock.js/seal";
|
|
5
5
|
import { UserResource } from "app/users/resources/user.resource";
|
|
6
6
|
|
|
7
7
|
export const userSchema = v.object({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useFormControl, useSubmitButton, type FormControlProps } from "@mongez/react-form";
|
|
2
2
|
import { type ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
type ContactFieldProps = FormControlProps & {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
+
"types": ["node"],
|
|
3
4
|
"target": "ESNext",
|
|
4
5
|
"lib": ["esnext", "dom"],
|
|
5
6
|
"allowJs": false,
|
|
@@ -7,7 +8,6 @@
|
|
|
7
8
|
"experimentalDecorators": false,
|
|
8
9
|
"esModuleInterop": true,
|
|
9
10
|
"allowSyntheticDefaultImports": true,
|
|
10
|
-
"downlevelIteration": true,
|
|
11
11
|
"strict": true,
|
|
12
12
|
"forceConsistentCasingInFileNames": true,
|
|
13
13
|
"noFallthroughCasesInSwitch": true,
|