@carlonicora/nextjs-jsonapi 1.4.0 → 1.5.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/README.md +208 -127
- package/dist/AuthComponent-B_Ps2Vb9.d.ts +78 -0
- package/dist/AuthComponent-CxnGgvoh.d.mts +78 -0
- package/dist/{BlockNoteEditor-U2IHUVUF.mjs → BlockNoteEditor-AIEEQM6A.mjs} +3 -5
- package/dist/{BlockNoteEditor-U2IHUVUF.mjs.map → BlockNoteEditor-AIEEQM6A.mjs.map} +1 -1
- package/dist/{BlockNoteEditor-QV6ESIQA.js → BlockNoteEditor-G6AK2NWA.js} +7 -9
- package/dist/BlockNoteEditor-G6AK2NWA.js.map +1 -0
- package/dist/{chunk-R2ONK22M.mjs → chunk-J7YDGYSW.mjs} +2654 -1307
- package/dist/chunk-J7YDGYSW.mjs.map +1 -0
- package/dist/{chunk-E2HRC2OG.js → chunk-VET55IZO.js} +1846 -499
- package/dist/chunk-VET55IZO.js.map +1 -0
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +2 -3
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +1 -2
- package/dist/components/index.d.mts +6 -69
- package/dist/components/index.d.ts +6 -69
- package/dist/components/index.js +2 -3
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +1 -2
- package/dist/{content.interface-C_PGZMuy.d.ts → content.interface-CR2aBeAW.d.ts} +1 -1
- package/dist/{content.interface-D_WS6CrB.d.mts → content.interface-FpLfsaRm.d.mts} +1 -1
- package/dist/contexts/index.d.mts +3 -3
- package/dist/contexts/index.d.ts +3 -3
- package/dist/contexts/index.js +2 -3
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/index.mjs +1 -2
- package/dist/features/index.d.mts +50 -49
- package/dist/features/index.d.ts +50 -49
- package/dist/features/index.js +23 -2
- package/dist/features/index.js.map +1 -1
- package/dist/features/index.mjs +22 -1
- package/dist/hooks/index.d.mts +3 -3
- package/dist/hooks/index.d.ts +3 -3
- package/dist/hooks/index.js +2 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +1 -2
- package/dist/{notification.interface-BBgMUdLR.d.mts → notification.interface-B2BrLoDA.d.mts} +1 -1
- package/dist/{notification.interface-gyvT-Z2F.d.ts → notification.interface-DlZLnAfg.d.ts} +1 -1
- package/dist/scripts/generate-web-module/generator.d.ts.map +1 -1
- package/dist/scripts/generate-web-module/generator.js +8 -5
- package/dist/scripts/generate-web-module/generator.js.map +1 -1
- package/dist/scripts/generate-web-module/index.js +1 -1
- package/dist/scripts/generate-web-module/index.js.map +1 -1
- package/dist/scripts/generate-web-module/templates/components/editor.template.js +8 -1
- package/dist/scripts/generate-web-module/templates/components/editor.template.js.map +1 -1
- package/dist/scripts/generate-web-module/transformers/parent-detector.d.ts +4 -3
- package/dist/scripts/generate-web-module/transformers/parent-detector.d.ts.map +1 -1
- package/dist/scripts/generate-web-module/transformers/parent-detector.js +9 -3
- package/dist/scripts/generate-web-module/transformers/parent-detector.js.map +1 -1
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.d.ts +11 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.d.ts.map +1 -1
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.js +36 -9
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.js.map +1 -1
- package/dist/scripts/generate-web-module/types/json-schema.interface.d.ts +2 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.d.ts.map +1 -1
- package/dist/scripts/generate-web-module/types/template-data.interface.d.ts +1 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.d.ts.map +1 -1
- package/dist/scripts/generate-web-module/utils/i18n-updater.d.ts +4 -3
- package/dist/scripts/generate-web-module/utils/i18n-updater.d.ts.map +1 -1
- package/dist/scripts/generate-web-module/utils/i18n-updater.js +9 -9
- package/dist/scripts/generate-web-module/utils/i18n-updater.js.map +1 -1
- package/dist/scripts/generate-web-module/validators/json-schema-validator.js +3 -3
- package/dist/scripts/generate-web-module/validators/json-schema-validator.js.map +1 -1
- package/dist/{useSocket-DzMKRKCA.d.ts → useSocket-BV6yMdWS.d.ts} +1 -1
- package/dist/{useSocket-Cn7fB_B1.d.mts → useSocket-L-An7_Mr.d.mts} +1 -1
- package/dist/{user.interface-CAsTIbuQ.d.mts → user.interface-CooB1R79.d.mts} +13 -13
- package/dist/{user.interface-CbWqMaaU.d.ts → user.interface-KnIT9pVY.d.ts} +13 -13
- package/package.json +1 -1
- package/scripts/generate-web-module/generator.ts +8 -5
- package/scripts/generate-web-module/index.ts +1 -1
- package/scripts/generate-web-module/templates/components/editor.template.ts +7 -2
- package/scripts/generate-web-module/transformers/parent-detector.ts +10 -3
- package/scripts/generate-web-module/transformers/relationship-resolver.ts +36 -9
- package/scripts/generate-web-module/types/json-schema.interface.ts +2 -0
- package/scripts/generate-web-module/types/template-data.interface.ts +1 -0
- package/scripts/generate-web-module/utils/i18n-updater.ts +9 -9
- package/scripts/generate-web-module/validators/json-schema-validator.ts +3 -3
- package/src/features/user/index.ts +1 -0
- package/dist/AuthComponent-hxOPs9o8.d.mts +0 -11
- package/dist/AuthComponent-hxOPs9o8.d.ts +0 -11
- package/dist/BlockNoteEditor-QV6ESIQA.js.map +0 -1
- package/dist/chunk-E2HRC2OG.js.map +0 -1
- package/dist/chunk-HTLEKZND.mjs +0 -1375
- package/dist/chunk-HTLEKZND.mjs.map +0 -1
- package/dist/chunk-PO5Q3H5I.js +0 -1375
- package/dist/chunk-PO5Q3H5I.js.map +0 -1
- package/dist/chunk-R2ONK22M.mjs.map +0 -1
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* including form fields, imports, and service methods.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.FOUNDATION_PACKAGE = void 0;
|
|
10
|
+
exports.isFoundationImport = isFoundationImport;
|
|
9
11
|
exports.resolveRelationship = resolveRelationship;
|
|
10
12
|
exports.resolveRelationships = resolveRelationships;
|
|
11
13
|
exports.mapDirectoryToWebPath = mapDirectoryToWebPath;
|
|
@@ -16,6 +18,19 @@ exports.getDefaultValueExpression = getDefaultValueExpression;
|
|
|
16
18
|
exports.getPayloadMapping = getPayloadMapping;
|
|
17
19
|
const field_mapping_types_1 = require("../types/field-mapping.types");
|
|
18
20
|
const name_transformer_1 = require("./name-transformer");
|
|
21
|
+
/**
|
|
22
|
+
* Foundation package name constant for web imports
|
|
23
|
+
*/
|
|
24
|
+
exports.FOUNDATION_PACKAGE = "@carlonicora/nextjs-jsonapi/features";
|
|
25
|
+
/**
|
|
26
|
+
* Check if a directory represents a foundation import (from the package)
|
|
27
|
+
*
|
|
28
|
+
* @param directory - The directory string from relationship definition
|
|
29
|
+
* @returns True if this should import from the foundation package
|
|
30
|
+
*/
|
|
31
|
+
function isFoundationImport(directory) {
|
|
32
|
+
return directory === "@foundation" || directory.startsWith("@foundation/");
|
|
33
|
+
}
|
|
19
34
|
/**
|
|
20
35
|
* Resolve a JSON relationship to frontend representation
|
|
21
36
|
*
|
|
@@ -61,17 +76,30 @@ function resolveRelationship(rel) {
|
|
|
61
76
|
else {
|
|
62
77
|
zodSchema = rel.nullable ? `z.array(${field_mapping_types_1.ENTITY_ZOD_SCHEMA}).optional()` : `z.array(${field_mapping_types_1.ENTITY_ZOD_SCHEMA})`;
|
|
63
78
|
}
|
|
64
|
-
// Import paths -
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
79
|
+
// Import paths - check for foundation imports
|
|
80
|
+
let importPath;
|
|
81
|
+
let interfaceImportPath;
|
|
82
|
+
let serviceImportPath;
|
|
83
|
+
if (isFoundationImport(rel.directory)) {
|
|
84
|
+
// Foundation entities import from the package
|
|
85
|
+
importPath = exports.FOUNDATION_PACKAGE;
|
|
86
|
+
interfaceImportPath = exports.FOUNDATION_PACKAGE;
|
|
87
|
+
serviceImportPath = exports.FOUNDATION_PACKAGE;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Feature entities use local paths
|
|
91
|
+
const webDirectory = mapDirectoryToWebPath(rel.directory);
|
|
92
|
+
importPath = `@/features/${webDirectory}/${modelKebab}/components/forms/${selectorComponent}`;
|
|
93
|
+
interfaceImportPath = `@/features/${webDirectory}/${modelKebab}/data/${rel.name}Interface`;
|
|
94
|
+
serviceImportPath = `@/features/${webDirectory}/${modelKebab}/data/${rel.name}Service`;
|
|
95
|
+
}
|
|
69
96
|
return {
|
|
70
97
|
name: rel.name,
|
|
71
98
|
variant: rel.variant,
|
|
72
99
|
directory: rel.directory,
|
|
73
100
|
single: rel.single,
|
|
74
101
|
nullable: rel.nullable,
|
|
102
|
+
isFoundation: isFoundationImport(rel.directory),
|
|
75
103
|
formFieldId,
|
|
76
104
|
formFieldIdPlural,
|
|
77
105
|
payloadFieldId,
|
|
@@ -130,10 +158,9 @@ function generateServiceMethods(relationships) {
|
|
|
130
158
|
function getSelectorImports(relationships) {
|
|
131
159
|
const imports = new Set();
|
|
132
160
|
relationships.forEach((rel) => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
imports.add(`import { UserSelector } from "@/features/foundations/user/components/forms/UserSelector";`);
|
|
161
|
+
if (isFoundationImport(rel.directory)) {
|
|
162
|
+
// Foundation entities use named imports from the package
|
|
163
|
+
imports.add(`import { ${rel.selectorComponent} } from "${exports.FOUNDATION_PACKAGE}";`);
|
|
137
164
|
}
|
|
138
165
|
else {
|
|
139
166
|
imports.add(`import ${rel.selectorComponent} from "${rel.importPath}";`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-resolver.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/relationship-resolver.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"relationship-resolver.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/transformers/relationship-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,5 +36,7 @@ export interface JsonModuleDefinition {
|
|
|
36
36
|
languages: string[];
|
|
37
37
|
fields: JsonFieldDefinition[];
|
|
38
38
|
relationships: JsonRelationshipDefinition[];
|
|
39
|
+
/** Explicitly set whether this module extends Content. If not set, auto-detects based on fields. */
|
|
40
|
+
extendsContent?: boolean;
|
|
39
41
|
}
|
|
40
42
|
//# sourceMappingURL=json-schema.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/types/json-schema.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,aAAa,EAAE,0BAA0B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"json-schema.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/types/json-schema.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,aAAa,EAAE,0BAA0B,EAAE,CAAC;IAC5C,oGAAoG;IACpG,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-data.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/types/template-data.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEjI;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"template-data.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/types/template-data.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* i18n Updater
|
|
3
3
|
*
|
|
4
|
-
* Updates the messages/
|
|
4
|
+
* Updates the messages/{language}.json files with new module translations.
|
|
5
5
|
*/
|
|
6
6
|
import { FrontendTemplateData } from "../types/template-data.interface";
|
|
7
7
|
export interface I18nUpdateResult {
|
|
@@ -10,14 +10,15 @@ export interface I18nUpdateResult {
|
|
|
10
10
|
alreadyExists?: boolean;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Update messages/
|
|
13
|
+
* Update messages/{language}.json with new module translations
|
|
14
14
|
*
|
|
15
15
|
* @param data - Frontend template data
|
|
16
16
|
* @param webBasePath - Base path to web app
|
|
17
|
+
* @param language - Language code (e.g., "en", "es", "fr")
|
|
17
18
|
* @param dryRun - Whether to perform a dry run
|
|
18
19
|
* @returns Update result
|
|
19
20
|
*/
|
|
20
|
-
export declare function updateI18n(data: FrontendTemplateData, webBasePath: string, dryRun?: boolean): I18nUpdateResult;
|
|
21
|
+
export declare function updateI18n(data: FrontendTemplateData, webBasePath: string, language?: string, dryRun?: boolean): I18nUpdateResult;
|
|
21
22
|
/**
|
|
22
23
|
* Preview the i18n messages that would be added
|
|
23
24
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-updater.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/i18n-updater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n-updater.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/i18n-updater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,oBAAoB,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAa,EACvB,MAAM,GAAE,OAAe,GACtB,gBAAgB,CAkElB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAGtE"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* i18n Updater
|
|
4
4
|
*
|
|
5
|
-
* Updates the messages/
|
|
5
|
+
* Updates the messages/{language}.json files with new module translations.
|
|
6
6
|
*/
|
|
7
7
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
8
|
if (k2 === undefined) k2 = k;
|
|
@@ -42,18 +42,18 @@ exports.updateI18n = updateI18n;
|
|
|
42
42
|
exports.previewI18nMessages = previewI18nMessages;
|
|
43
43
|
const fs = __importStar(require("fs"));
|
|
44
44
|
const i18n_generator_1 = require("../transformers/i18n-generator");
|
|
45
|
-
const MESSAGES_PATH = "apps/web/messages/en.json";
|
|
46
45
|
/**
|
|
47
|
-
* Update messages/
|
|
46
|
+
* Update messages/{language}.json with new module translations
|
|
48
47
|
*
|
|
49
48
|
* @param data - Frontend template data
|
|
50
49
|
* @param webBasePath - Base path to web app
|
|
50
|
+
* @param language - Language code (e.g., "en", "es", "fr")
|
|
51
51
|
* @param dryRun - Whether to perform a dry run
|
|
52
52
|
* @returns Update result
|
|
53
53
|
*/
|
|
54
|
-
function updateI18n(data, webBasePath, dryRun = false) {
|
|
54
|
+
function updateI18n(data, webBasePath, language = "en", dryRun = false) {
|
|
55
55
|
const { names, i18nKeys } = data;
|
|
56
|
-
const messagesPath = `${webBasePath}/${
|
|
56
|
+
const messagesPath = `${webBasePath}/apps/web/messages/${language}.json`;
|
|
57
57
|
// Check if file exists
|
|
58
58
|
if (!fs.existsSync(messagesPath)) {
|
|
59
59
|
return {
|
|
@@ -69,14 +69,14 @@ function updateI18n(data, webBasePath, dryRun = false) {
|
|
|
69
69
|
catch (e) {
|
|
70
70
|
return {
|
|
71
71
|
success: false,
|
|
72
|
-
message: `Failed to parse messages
|
|
72
|
+
message: `Failed to parse messages/${language}.json: ${e}`,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
// Check if module already exists in features
|
|
76
76
|
if (messages.features && messages.features[names.camelCase]) {
|
|
77
77
|
return {
|
|
78
78
|
success: true,
|
|
79
|
-
message: `Module ${names.camelCase} already exists in messages
|
|
79
|
+
message: `Module ${names.camelCase} already exists in messages/${language}.json`,
|
|
80
80
|
alreadyExists: true,
|
|
81
81
|
};
|
|
82
82
|
}
|
|
@@ -98,7 +98,7 @@ function updateI18n(data, webBasePath, dryRun = false) {
|
|
|
98
98
|
if (dryRun) {
|
|
99
99
|
return {
|
|
100
100
|
success: true,
|
|
101
|
-
message: `[DRY RUN] Would update messages
|
|
101
|
+
message: `[DRY RUN] Would update messages/${language}.json with ${names.camelCase} translations`,
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
104
|
// Write updated content with proper formatting
|
|
@@ -106,7 +106,7 @@ function updateI18n(data, webBasePath, dryRun = false) {
|
|
|
106
106
|
fs.writeFileSync(messagesPath, updatedContent, "utf-8");
|
|
107
107
|
return {
|
|
108
108
|
success: true,
|
|
109
|
-
message: `Updated messages
|
|
109
|
+
message: `Updated messages/${language}.json with ${names.camelCase} translations`,
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-updater.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/i18n-updater.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"i18n-updater.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/i18n-updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,11 +120,11 @@ function validateJsonSchema(schema) {
|
|
|
120
120
|
severity: "error",
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
-
// Directory should be features or
|
|
124
|
-
if (rel.directory && !["features", "foundations"].includes(rel.directory)) {
|
|
123
|
+
// Directory should be features, foundations, or @foundation (for package imports)
|
|
124
|
+
if (rel.directory && !["features", "foundations", "@foundation"].includes(rel.directory) && !rel.directory.startsWith("@foundation/")) {
|
|
125
125
|
errors.push({
|
|
126
126
|
field: `relationships[${index}].directory`,
|
|
127
|
-
message: 'Relationship directory should be "features" or "
|
|
127
|
+
message: 'Relationship directory should be "features", "foundations", or "@foundation"',
|
|
128
128
|
severity: "warning",
|
|
129
129
|
});
|
|
130
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-validator.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/validators/json-schema-validator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgBH,gDAgKC;AAQD,wDA6BC;AAiBD,4CA+DC;AAKD,4CAEC;AAlSD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAAW;IAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,kBAAkB;IAClB,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,OAAO,EAAE,GAAG,KAAK,cAAc;gBAC/B,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,oDAAoD;YAC7D,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,sDAAsD;YAC/D,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,4CAA4C;YACrD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,uDAAuD;YAChE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,+BAA+B;YACxC,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE;YAClD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,UAAU,KAAK,QAAQ;oBAC9B,OAAO,EAAE,wBAAwB;oBACjC,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,UAAU,KAAK,QAAQ;oBAC9B,OAAO,EAAE,wBAAwB;oBACjC,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,UAAU,KAAK,YAAY;oBAClC,OAAO,EAAE,iCAAiC;oBAC1C,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,uBAAuB;YACvB,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,UAAU,KAAK,QAAQ;oBAC9B,OAAO,EAAE,iBAAiB,KAAK,CAAC,IAAI,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC9E,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;YACvD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,iBAAiB,KAAK,QAAQ;oBACrC,OAAO,EAAE,+BAA+B;oBACxC,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,iBAAiB,KAAK,aAAa;oBAC1C,OAAO,EAAE,oCAAoC;oBAC7C,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"json-schema-validator.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/validators/json-schema-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,18 @@ interface FeatureInterface extends ApiDataInterface {
|
|
|
17
17
|
get modules(): ModuleInterface[];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
type RoleInput = {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
};
|
|
25
|
+
interface RoleInterface extends ApiDataInterface {
|
|
26
|
+
get name(): string;
|
|
27
|
+
get description(): string;
|
|
28
|
+
get isSelectable(): boolean;
|
|
29
|
+
get requiredFeature(): FeatureInterface | undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
20
32
|
type CompanyInput = {
|
|
21
33
|
id: string;
|
|
22
34
|
name?: string;
|
|
@@ -37,18 +49,6 @@ interface CompanyInterface extends ApiDataInterface {
|
|
|
37
49
|
get modules(): ModuleInterface[];
|
|
38
50
|
}
|
|
39
51
|
|
|
40
|
-
type RoleInput = {
|
|
41
|
-
id: string;
|
|
42
|
-
name: string;
|
|
43
|
-
description?: string;
|
|
44
|
-
};
|
|
45
|
-
interface RoleInterface extends ApiDataInterface {
|
|
46
|
-
get name(): string;
|
|
47
|
-
get description(): string;
|
|
48
|
-
get isSelectable(): boolean;
|
|
49
|
-
get requiredFeature(): FeatureInterface | undefined;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
52
|
type UserInput = {
|
|
53
53
|
id: string;
|
|
54
54
|
email?: string | undefined | null;
|
|
@@ -82,4 +82,4 @@ interface UserInterface extends ApiDataInterface {
|
|
|
82
82
|
get modules(): ModuleInterface[];
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
export type { CompanyInterface as C, FeatureInterface as F, ModuleInterface as M, RoleInterface as R, UserInterface as U,
|
|
85
|
+
export type { CompanyInterface as C, FeatureInterface as F, ModuleInterface as M, RoleInterface as R, UserInterface as U, RoleInput as a, CompanyInput as b, UserInput as c };
|
|
@@ -17,6 +17,18 @@ interface FeatureInterface extends ApiDataInterface {
|
|
|
17
17
|
get modules(): ModuleInterface[];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
type RoleInput = {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
};
|
|
25
|
+
interface RoleInterface extends ApiDataInterface {
|
|
26
|
+
get name(): string;
|
|
27
|
+
get description(): string;
|
|
28
|
+
get isSelectable(): boolean;
|
|
29
|
+
get requiredFeature(): FeatureInterface | undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
20
32
|
type CompanyInput = {
|
|
21
33
|
id: string;
|
|
22
34
|
name?: string;
|
|
@@ -37,18 +49,6 @@ interface CompanyInterface extends ApiDataInterface {
|
|
|
37
49
|
get modules(): ModuleInterface[];
|
|
38
50
|
}
|
|
39
51
|
|
|
40
|
-
type RoleInput = {
|
|
41
|
-
id: string;
|
|
42
|
-
name: string;
|
|
43
|
-
description?: string;
|
|
44
|
-
};
|
|
45
|
-
interface RoleInterface extends ApiDataInterface {
|
|
46
|
-
get name(): string;
|
|
47
|
-
get description(): string;
|
|
48
|
-
get isSelectable(): boolean;
|
|
49
|
-
get requiredFeature(): FeatureInterface | undefined;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
52
|
type UserInput = {
|
|
53
53
|
id: string;
|
|
54
54
|
email?: string | undefined | null;
|
|
@@ -82,4 +82,4 @@ interface UserInterface extends ApiDataInterface {
|
|
|
82
82
|
get modules(): ModuleInterface[];
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
export type { CompanyInterface as C, FeatureInterface as F, ModuleInterface as M, RoleInterface as R, UserInterface as U,
|
|
85
|
+
export type { CompanyInterface as C, FeatureInterface as F, ModuleInterface as M, RoleInterface as R, UserInterface as U, RoleInput as a, CompanyInput as b, UserInput as c };
|
package/package.json
CHANGED
|
@@ -108,11 +108,14 @@ export async function generateWebModule(options: GenerateWebModuleOptions): Prom
|
|
|
108
108
|
console.log(` ${bootstrapResult.success ? "✅" : "❌"} ${bootstrapResult.message}`);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
// Step 7: Update i18n (unless --no-register)
|
|
111
|
+
// Step 7: Update i18n for all languages (unless --no-register)
|
|
112
112
|
if (!noRegister) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
const languages = schema.languages || ["en"];
|
|
114
|
+
console.log(`\n🌐 Updating i18n for ${languages.length} language(s)...`);
|
|
115
|
+
for (const language of languages) {
|
|
116
|
+
const i18nResult = updateI18n(templateData, webBasePath, language, dryRun);
|
|
117
|
+
console.log(` ${i18nResult.success ? "✅" : "❌"} ${i18nResult.message}`);
|
|
118
|
+
}
|
|
116
119
|
}
|
|
117
120
|
|
|
118
121
|
console.log("\n✅ Generation complete!");
|
|
@@ -131,7 +134,7 @@ export async function generateWebModule(options: GenerateWebModuleOptions): Prom
|
|
|
131
134
|
function buildTemplateData(schema: JsonModuleDefinition): FrontendTemplateData {
|
|
132
135
|
const names = transformNames(schema.moduleName, schema.endpointName);
|
|
133
136
|
const targetDir = schema.targetDir as "features" | "foundations";
|
|
134
|
-
const extendsContent = detectExtendsContent(schema.fields);
|
|
137
|
+
const extendsContent = detectExtendsContent(schema.fields, schema.extendsContent);
|
|
135
138
|
|
|
136
139
|
// Map fields
|
|
137
140
|
const allFields = mapFields(schema.fields, names.camelCase);
|
|
@@ -26,7 +26,7 @@ program
|
|
|
26
26
|
.argument("<json-path>", "Path to JSON schema file (relative or absolute)")
|
|
27
27
|
.option("-d, --dry-run", "Preview files without writing them", false)
|
|
28
28
|
.option("-f, --force", "Overwrite existing files", false)
|
|
29
|
-
.option("-n, --no-register", "Skip Bootstrapper.ts and i18n updates"
|
|
29
|
+
.option("-n, --no-register", "Skip Bootstrapper.ts and i18n updates")
|
|
30
30
|
.action(async (jsonPath: string, options: { dryRun: boolean; force: boolean; register: boolean }) => {
|
|
31
31
|
// Resolve path
|
|
32
32
|
const resolvedPath = path.isAbsolute(jsonPath) ? jsonPath : path.resolve(process.cwd(), jsonPath);
|
|
@@ -8,7 +8,7 @@ import { FrontendTemplateData, FrontendField, FrontendRelationship } from "../..
|
|
|
8
8
|
import { toCamelCase, pluralize, toPascalCase } from "../../transformers/name-transformer";
|
|
9
9
|
import { AUTHOR_VARIANT } from "../../types/field-mapping.types";
|
|
10
10
|
import { getFormFieldJsx } from "../../transformers/field-mapper";
|
|
11
|
-
import { getRelationshipFormJsx, getDefaultValueExpression, getPayloadMapping } from "../../transformers/relationship-resolver";
|
|
11
|
+
import { getRelationshipFormJsx, getDefaultValueExpression, getPayloadMapping, isFoundationImport, FOUNDATION_PACKAGE } from "../../transformers/relationship-resolver";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Generate the editor component file content
|
|
@@ -154,7 +154,12 @@ function generateImports(data: FrontendTemplateData): string {
|
|
|
154
154
|
imports.push(`import { UserInterface } from "@/features/foundations/user/data/UserInterface";`);
|
|
155
155
|
} else {
|
|
156
156
|
const componentName = rel.single ? `${rel.name}Selector` : `${rel.name}MultiSelector`;
|
|
157
|
-
|
|
157
|
+
if (rel.isFoundation) {
|
|
158
|
+
// Foundation entities use named imports from the package
|
|
159
|
+
imports.push(`import { ${componentName} } from "${FOUNDATION_PACKAGE}";`);
|
|
160
|
+
} else {
|
|
161
|
+
imports.push(`import ${componentName} from "${rel.importPath}";`);
|
|
162
|
+
}
|
|
158
163
|
}
|
|
159
164
|
});
|
|
160
165
|
|
|
@@ -2,19 +2,26 @@
|
|
|
2
2
|
* Parent Class Detector
|
|
3
3
|
*
|
|
4
4
|
* Determines whether a module should extend Content or AbstractApiData
|
|
5
|
-
* based on the presence of Content-specific fields.
|
|
5
|
+
* based on the presence of Content-specific fields or explicit configuration.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { JsonFieldDefinition } from "../types/json-schema.interface";
|
|
9
9
|
import { CONTENT_INDICATOR_FIELDS } from "../types/field-mapping.types";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Check if a module should extend Content
|
|
12
|
+
* Check if a module should extend Content
|
|
13
13
|
*
|
|
14
14
|
* @param fields - Array of field definitions from JSON schema
|
|
15
|
+
* @param explicitValue - Optional explicit value from JSON schema
|
|
15
16
|
* @returns true if the module should extend Content
|
|
16
17
|
*/
|
|
17
|
-
export function detectExtendsContent(fields: JsonFieldDefinition[]): boolean {
|
|
18
|
+
export function detectExtendsContent(fields: JsonFieldDefinition[], explicitValue?: boolean): boolean {
|
|
19
|
+
// If explicitly set in JSON schema, use that value
|
|
20
|
+
if (explicitValue !== undefined) {
|
|
21
|
+
return explicitValue;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Otherwise, auto-detect based on fields
|
|
18
25
|
const fieldNames = fields.map((f) => f.name);
|
|
19
26
|
return CONTENT_INDICATOR_FIELDS.some((indicator) => fieldNames.includes(indicator));
|
|
20
27
|
}
|
|
@@ -10,6 +10,21 @@ import { FrontendRelationship, RelationshipServiceMethod } from "../types/templa
|
|
|
10
10
|
import { AUTHOR_VARIANT, AUTHOR_ZOD_SCHEMA, ENTITY_ZOD_SCHEMA } from "../types/field-mapping.types";
|
|
11
11
|
import { toCamelCase, toKebabCase, pluralize, toPascalCase } from "./name-transformer";
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Foundation package name constant for web imports
|
|
15
|
+
*/
|
|
16
|
+
export const FOUNDATION_PACKAGE = "@carlonicora/nextjs-jsonapi/features";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Check if a directory represents a foundation import (from the package)
|
|
20
|
+
*
|
|
21
|
+
* @param directory - The directory string from relationship definition
|
|
22
|
+
* @returns True if this should import from the foundation package
|
|
23
|
+
*/
|
|
24
|
+
export function isFoundationImport(directory: string): boolean {
|
|
25
|
+
return directory === "@foundation" || directory.startsWith("@foundation/");
|
|
26
|
+
}
|
|
27
|
+
|
|
13
28
|
/**
|
|
14
29
|
* Resolve a JSON relationship to frontend representation
|
|
15
30
|
*
|
|
@@ -56,11 +71,23 @@ export function resolveRelationship(rel: JsonRelationshipDefinition): FrontendRe
|
|
|
56
71
|
zodSchema = rel.nullable ? `z.array(${ENTITY_ZOD_SCHEMA}).optional()` : `z.array(${ENTITY_ZOD_SCHEMA})`;
|
|
57
72
|
}
|
|
58
73
|
|
|
59
|
-
// Import paths -
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
74
|
+
// Import paths - check for foundation imports
|
|
75
|
+
let importPath: string;
|
|
76
|
+
let interfaceImportPath: string;
|
|
77
|
+
let serviceImportPath: string;
|
|
78
|
+
|
|
79
|
+
if (isFoundationImport(rel.directory)) {
|
|
80
|
+
// Foundation entities import from the package
|
|
81
|
+
importPath = FOUNDATION_PACKAGE;
|
|
82
|
+
interfaceImportPath = FOUNDATION_PACKAGE;
|
|
83
|
+
serviceImportPath = FOUNDATION_PACKAGE;
|
|
84
|
+
} else {
|
|
85
|
+
// Feature entities use local paths
|
|
86
|
+
const webDirectory = mapDirectoryToWebPath(rel.directory);
|
|
87
|
+
importPath = `@/features/${webDirectory}/${modelKebab}/components/forms/${selectorComponent}`;
|
|
88
|
+
interfaceImportPath = `@/features/${webDirectory}/${modelKebab}/data/${rel.name}Interface`;
|
|
89
|
+
serviceImportPath = `@/features/${webDirectory}/${modelKebab}/data/${rel.name}Service`;
|
|
90
|
+
}
|
|
64
91
|
|
|
65
92
|
return {
|
|
66
93
|
name: rel.name,
|
|
@@ -68,6 +95,7 @@ export function resolveRelationship(rel: JsonRelationshipDefinition): FrontendRe
|
|
|
68
95
|
directory: rel.directory,
|
|
69
96
|
single: rel.single,
|
|
70
97
|
nullable: rel.nullable,
|
|
98
|
+
isFoundation: isFoundationImport(rel.directory),
|
|
71
99
|
formFieldId,
|
|
72
100
|
formFieldIdPlural,
|
|
73
101
|
payloadFieldId,
|
|
@@ -131,10 +159,9 @@ export function getSelectorImports(relationships: FrontendRelationship[]): strin
|
|
|
131
159
|
const imports = new Set<string>();
|
|
132
160
|
|
|
133
161
|
relationships.forEach((rel) => {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
imports.add(`import { UserSelector } from "@/features/foundations/user/components/forms/UserSelector";`);
|
|
162
|
+
if (isFoundationImport(rel.directory)) {
|
|
163
|
+
// Foundation entities use named imports from the package
|
|
164
|
+
imports.add(`import { ${rel.selectorComponent} } from "${FOUNDATION_PACKAGE}";`);
|
|
138
165
|
} else {
|
|
139
166
|
imports.add(`import ${rel.selectorComponent} from "${rel.importPath}";`);
|
|
140
167
|
}
|
|
@@ -39,4 +39,6 @@ export interface JsonModuleDefinition {
|
|
|
39
39
|
languages: string[];
|
|
40
40
|
fields: JsonFieldDefinition[];
|
|
41
41
|
relationships: JsonRelationshipDefinition[];
|
|
42
|
+
/** Explicitly set whether this module extends Content. If not set, auto-detects based on fields. */
|
|
43
|
+
extendsContent?: boolean;
|
|
42
44
|
}
|
|
@@ -46,6 +46,7 @@ export interface FrontendRelationship {
|
|
|
46
46
|
directory: string; // e.g., "foundations"
|
|
47
47
|
single: boolean;
|
|
48
48
|
nullable: boolean;
|
|
49
|
+
isFoundation: boolean; // true if importing from @carlonicora/nextjs-jsonapi/features
|
|
49
50
|
// Derived properties
|
|
50
51
|
formFieldId: string; // e.g., "author" (lowercase variant) or "user"
|
|
51
52
|
formFieldIdPlural: string; // e.g., "topics" for multi-select
|