@omnifyjp/omnify 5.8.10 → 5.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omnifyjp/omnify",
|
|
3
|
-
"version": "5.8.
|
|
3
|
+
"version": "5.8.11",
|
|
4
4
|
"description": "Schema-driven code generation for Laravel, TypeScript, and SQL",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"zod": "^3.24.0"
|
|
37
37
|
},
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"@omnifyjp/omnify-darwin-arm64": "5.8.
|
|
40
|
-
"@omnifyjp/omnify-darwin-x64": "5.8.
|
|
41
|
-
"@omnifyjp/omnify-linux-x64": "5.8.
|
|
42
|
-
"@omnifyjp/omnify-linux-arm64": "5.8.
|
|
43
|
-
"@omnifyjp/omnify-win32-x64": "5.8.
|
|
39
|
+
"@omnifyjp/omnify-darwin-arm64": "5.8.11",
|
|
40
|
+
"@omnifyjp/omnify-darwin-x64": "5.8.11",
|
|
41
|
+
"@omnifyjp/omnify-linux-x64": "5.8.11",
|
|
42
|
+
"@omnifyjp/omnify-linux-arm64": "5.8.11",
|
|
43
|
+
"@omnifyjp/omnify-win32-x64": "5.8.11"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -42,7 +42,13 @@ function generateBaseController(name, schema, reader, config) {
|
|
|
42
42
|
const baseNs = config.structure === 'modular'
|
|
43
43
|
? resolveModularBaseNamespace(config, name, 'Controllers', config.controllers.baseNamespace)
|
|
44
44
|
: groupNestBase(config.controllers.baseNamespace);
|
|
45
|
-
|
|
45
|
+
// Issue #98 v5.8.11: controller base methods type-hint the
|
|
46
|
+
// USER-EDITABLE Model — same reasoning as the service-generator
|
|
47
|
+
// signature fix. Without this, the controller's `show` /
|
|
48
|
+
// `update` / `destroy` route bindings resolve as base instances
|
|
49
|
+
// and every project-owned service / policy that takes the
|
|
50
|
+
// editable type fails with TypeError.
|
|
51
|
+
const modelNs = groupNestEditable(config.models.userEditableNamespace, config.models);
|
|
46
52
|
const serviceBaseNs = config.structure === 'modular'
|
|
47
53
|
? resolveModularBaseNamespace(config, name, 'Services', config.services.baseNamespace)
|
|
48
54
|
: groupNestBase(config.services.baseNamespace);
|
|
@@ -510,15 +510,24 @@ function generateBaseService(name, schema, reader, config) {
|
|
|
510
510
|
const baseNs = config.structure === 'modular'
|
|
511
511
|
? resolveModularBaseNamespace(config, name, 'Services', config.services.baseNamespace)
|
|
512
512
|
: nestByGroup({ path: '', namespace: config.services.baseNamespace }, schema.group).namespace;
|
|
513
|
-
// Issue #98 v5.8.
|
|
514
|
-
//
|
|
515
|
-
//
|
|
516
|
-
//
|
|
517
|
-
//
|
|
518
|
-
//
|
|
513
|
+
// Issue #98 v5.8.11: service base methods type-hint the USER-EDITABLE
|
|
514
|
+
// Model class (`App\Models\Banner`), NOT the grouped base
|
|
515
|
+
// (`App\Omnify\Models\Cms\Banner`). PHP signature contravariance:
|
|
516
|
+
// when the user-editable child service overrides a base method,
|
|
517
|
+
// PHP requires the override's parameter type to be the SAME or
|
|
518
|
+
// WIDER than the parent's. The user-editable class is what app code
|
|
519
|
+
// type-hints against everywhere else (factory $model since v5.8.9,
|
|
520
|
+
// relations since v5.8.10, controllers, tests). Without this fix,
|
|
521
|
+
// every override of `find / create / update / delete` on every
|
|
522
|
+
// editable service blew up with a Fatal compile error.
|
|
523
|
+
// Modular structure: per-Schema isolation — base + editable share ns.
|
|
524
|
+
// Pivot schemas don't have services (kind:object only), so the only
|
|
525
|
+
// shape adjustment is `userEditableGroupByFolder` group nesting.
|
|
519
526
|
const modelNs = config.structure === 'modular'
|
|
520
527
|
? config.models.namespace
|
|
521
|
-
:
|
|
528
|
+
: (config.models.userEditableGroupByFolder
|
|
529
|
+
? nestByGroup({ path: '', namespace: config.models.userEditableNamespace }, schema.group).namespace
|
|
530
|
+
: config.models.userEditableNamespace);
|
|
522
531
|
// Build imports
|
|
523
532
|
const imports = [
|
|
524
533
|
`use ${modelNs}\\${modelName};`,
|