@omnifyjp/omnify 5.8.11 → 5.8.12

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.11",
3
+ "version": "5.8.12",
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.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"
39
+ "@omnifyjp/omnify-darwin-arm64": "5.8.12",
40
+ "@omnifyjp/omnify-darwin-x64": "5.8.12",
41
+ "@omnifyjp/omnify-linux-x64": "5.8.12",
42
+ "@omnifyjp/omnify-linux-arm64": "5.8.12",
43
+ "@omnifyjp/omnify-win32-x64": "5.8.12"
44
44
  }
45
45
  }
@@ -198,7 +198,24 @@ function addAssociationFields(propName, prop, fields, resourceNamespace, modelNa
198
198
  const target = prop['target'] ?? '';
199
199
  const methodName = toCamelCase(propName);
200
200
  // Resolve resource namespace for the target (null if package without resource ns)
201
- const targetResNs = target ? reader.resolveResourceNamespace(target, resourceNamespace) : resourceNamespace;
201
+ // Issue #98 v5.8.12: nest the resource FQCN by the TARGET schema's
202
+ // group folder so the inline `new \<ns>\<Name>Resource(...)` ref
203
+ // matches where the target Resource file actually lives. Pre-fix
204
+ // every cross-resource ref emitted FLAT (`use App\Omnify\Resources\PaymentProviderResource`)
205
+ // while the file lived at `App\Omnify\Resources\Payments\PaymentProviderResource` —
206
+ // PHP autoload failed at runtime on every base resource that
207
+ // referenced a sibling resource (whenLoaded relation).
208
+ const rawTargetResNs = target ? reader.resolveResourceNamespace(target, resourceNamespace) : resourceNamespace;
209
+ let targetResNs = rawTargetResNs;
210
+ if (rawTargetResNs && rawTargetResNs === resourceNamespace) {
211
+ // Project-owned target: nest by the target's group so the FQCN
212
+ // matches the grouped base resource. Package targets keep their
213
+ // own namespace.
214
+ const targetSchema = target ? reader.getSchema(target) : undefined;
215
+ if (targetSchema?.group) {
216
+ targetResNs = `${rawTargetResNs}\\${toPascalCase(targetSchema.group)}`;
217
+ }
218
+ }
202
219
  // If target is a package schema without a resource namespace, use simple whenLoaded
203
220
  if (!targetResNs && relation !== 'MorphTo') {
204
221
  if (relation === 'ManyToOne') {