@carlonicora/nextjs-jsonapi 1.2.0 → 1.3.1
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/dist/{BlockNoteEditor-CNXQ3WL3.js → BlockNoteEditor-7WYPN34K.js} +17 -17
- package/dist/{BlockNoteEditor-CNXQ3WL3.js.map → BlockNoteEditor-7WYPN34K.js.map} +1 -1
- package/dist/{BlockNoteEditor-DC33K4IF.mjs → BlockNoteEditor-V625C23O.mjs} +7 -7
- package/dist/{JsonApiRequest-O7BGUMFO.mjs → JsonApiRequest-6UR7DIAR.mjs} +4 -2
- package/dist/JsonApiRequest-UJ7FGIVI.js +25 -0
- package/dist/JsonApiRequest-UJ7FGIVI.js.map +1 -0
- package/dist/{chunk-EZK3H6EJ.js → chunk-5IET37O4.js} +206 -206
- package/dist/{chunk-EZK3H6EJ.js.map → chunk-5IET37O4.js.map} +1 -1
- package/dist/{chunk-Y4XI3AZR.mjs → chunk-5QC7A6BL.mjs} +32 -20
- package/dist/chunk-5QC7A6BL.mjs.map +1 -0
- package/dist/{chunk-LJRD4SRV.js → chunk-DEYKTLA3.js} +6 -6
- package/dist/{chunk-LJRD4SRV.js.map → chunk-DEYKTLA3.js.map} +1 -1
- package/dist/{chunk-NPPQNSXN.mjs → chunk-FMBQZAIP.mjs} +3 -3
- package/dist/{chunk-MHVXFWZY.mjs → chunk-HTLEKZND.mjs} +3 -3
- package/dist/{chunk-74F6BBHH.mjs → chunk-IKBA4AHN.mjs} +2 -1
- package/dist/chunk-IKBA4AHN.mjs.map +1 -0
- package/dist/{chunk-JLN6UWII.mjs → chunk-JGFWIT2E.mjs} +2 -2
- package/dist/{chunk-KDFDGXCX.js → chunk-K2ANOT66.js} +576 -564
- package/dist/chunk-K2ANOT66.js.map +1 -0
- package/dist/{chunk-X53MF5ZN.mjs → chunk-P2F54I7Q.mjs} +2 -2
- package/dist/{chunk-5ZEADNNP.js → chunk-PMXG5WBC.js} +3 -2
- package/dist/chunk-PMXG5WBC.js.map +1 -0
- package/dist/{chunk-L6LH7WA4.js → chunk-PO5Q3H5I.js} +190 -190
- package/dist/{chunk-L6LH7WA4.js.map → chunk-PO5Q3H5I.js.map} +1 -1
- package/dist/{chunk-WZJDLITG.js → chunk-Q4FXESVT.js} +3 -3
- package/dist/{chunk-WZJDLITG.js.map → chunk-Q4FXESVT.js.map} +1 -1
- package/dist/client/index.js +7 -7
- package/dist/client/index.mjs +6 -6
- package/dist/components/index.js +7 -7
- package/dist/components/index.mjs +6 -6
- package/dist/contexts/index.js +7 -7
- package/dist/contexts/index.mjs +6 -6
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/features/index.js +4 -4
- package/dist/features/index.mjs +3 -3
- package/dist/hooks/index.js +7 -7
- package/dist/hooks/index.mjs +6 -6
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -2
- package/dist/scripts/generate-web-module/generator.d.ts +15 -0
- package/dist/scripts/generate-web-module/generator.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/generator.js +320 -0
- package/dist/scripts/generate-web-module/generator.js.map +1 -0
- package/dist/scripts/generate-web-module/index.d.ts +16 -0
- package/dist/scripts/generate-web-module/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/index.js +80 -0
- package/dist/scripts/generate-web-module/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.js +124 -0
- package/dist/scripts/generate-web-module/templates/components/container.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.d.ts +15 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.js +39 -0
- package/dist/scripts/generate-web-module/templates/components/content.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.js +51 -0
- package/dist/scripts/generate-web-module/templates/components/deleter.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.js +109 -0
- package/dist/scripts/generate-web-module/templates/components/details.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.js +459 -0
- package/dist/scripts/generate-web-module/templates/components/editor.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/index.d.ts +15 -0
- package/dist/scripts/generate-web-module/templates/components/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/index.js +29 -0
- package/dist/scripts/generate-web-module/templates/components/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.js +30 -0
- package/dist/scripts/generate-web-module/templates/components/list-container.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.js +84 -0
- package/dist/scripts/generate-web-module/templates/components/list.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.js +184 -0
- package/dist/scripts/generate-web-module/templates/components/multi-selector.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.js +199 -0
- package/dist/scripts/generate-web-module/templates/components/selector.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/context.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/context.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/context.template.js +121 -0
- package/dist/scripts/generate-web-module/templates/context.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.js +55 -0
- package/dist/scripts/generate-web-module/templates/data/fields.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/index.d.ts +10 -0
- package/dist/scripts/generate-web-module/templates/data/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/index.js +26 -0
- package/dist/scripts/generate-web-module/templates/data/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.js +116 -0
- package/dist/scripts/generate-web-module/templates/data/interface.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.js +274 -0
- package/dist/scripts/generate-web-module/templates/data/model.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.js +168 -0
- package/dist/scripts/generate-web-module/templates/data/service.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/index.d.ts +12 -0
- package/dist/scripts/generate-web-module/templates/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/index.js +37 -0
- package/dist/scripts/generate-web-module/templates/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/module.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/module.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/module.template.js +64 -0
- package/dist/scripts/generate-web-module/templates/module.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.js +65 -0
- package/dist/scripts/generate-web-module/templates/pages/detail-page.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/index.d.ts +8 -0
- package/dist/scripts/generate-web-module/templates/pages/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/index.js +13 -0
- package/dist/scripts/generate-web-module/templates/pages/index.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.js +37 -0
- package/dist/scripts/generate-web-module/templates/pages/list-page.template.js.map +1 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.d.ts +14 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.js +174 -0
- package/dist/scripts/generate-web-module/templates/table-hook.template.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.d.ts +55 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.js +179 -0
- package/dist/scripts/generate-web-module/transformers/field-mapper.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.d.ts +78 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.js +182 -0
- package/dist/scripts/generate-web-module/transformers/i18n-generator.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.d.ts +106 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.js +193 -0
- package/dist/scripts/generate-web-module/transformers/import-resolver.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/index.d.ts +12 -0
- package/dist/scripts/generate-web-module/transformers/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/index.js +28 -0
- package/dist/scripts/generate-web-module/transformers/index.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.d.ts +60 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.js +115 -0
- package/dist/scripts/generate-web-module/transformers/name-transformer.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.d.ts +57 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.js +88 -0
- package/dist/scripts/generate-web-module/transformers/parent-detector.js.map +1 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.d.ts +68 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.js +219 -0
- package/dist/scripts/generate-web-module/transformers/relationship-resolver.js.map +1 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.d.ts +68 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.js +129 -0
- package/dist/scripts/generate-web-module/types/field-mapping.types.js.map +1 -0
- package/dist/scripts/generate-web-module/types/index.d.ts +9 -0
- package/dist/scripts/generate-web-module/types/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/index.js +25 -0
- package/dist/scripts/generate-web-module/types/index.js.map +1 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.d.ts +40 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.js +10 -0
- package/dist/scripts/generate-web-module/types/json-schema.interface.js.map +1 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.d.ts +128 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.js +9 -0
- package/dist/scripts/generate-web-module/types/template-data.interface.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.d.ts +29 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.js +153 -0
- package/dist/scripts/generate-web-module/utils/bootstrapper-updater.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/file-writer.d.ts +38 -0
- package/dist/scripts/generate-web-module/utils/file-writer.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/file-writer.js +126 -0
- package/dist/scripts/generate-web-module/utils/file-writer.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.d.ts +28 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.js +122 -0
- package/dist/scripts/generate-web-module/utils/i18n-updater.js.map +1 -0
- package/dist/scripts/generate-web-module/utils/index.d.ts +9 -0
- package/dist/scripts/generate-web-module/utils/index.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/utils/index.js +20 -0
- package/dist/scripts/generate-web-module/utils/index.js.map +1 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.d.ts +46 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.d.ts.map +1 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.js +265 -0
- package/dist/scripts/generate-web-module/validators/json-schema-validator.js.map +1 -0
- package/dist/shadcnui/index.js +4 -4
- package/dist/shadcnui/index.mjs +3 -3
- package/dist/utils/index.js +3 -3
- package/dist/utils/index.mjs +2 -2
- package/package.json +27 -21
- package/scripts/generate-web-module/generator.ts +363 -0
- package/scripts/generate-web-module/index.ts +49 -0
- package/scripts/generate-web-module/templates/components/container.template.ts +129 -0
- package/scripts/generate-web-module/templates/components/content.template.ts +40 -0
- package/scripts/generate-web-module/templates/components/deleter.template.ts +51 -0
- package/scripts/generate-web-module/templates/components/details.template.ts +115 -0
- package/scripts/generate-web-module/templates/components/editor.template.ts +495 -0
- package/scripts/generate-web-module/templates/components/index.ts +18 -0
- package/scripts/generate-web-module/templates/components/list-container.template.ts +30 -0
- package/scripts/generate-web-module/templates/components/list.template.ts +91 -0
- package/scripts/generate-web-module/templates/components/multi-selector.template.ts +184 -0
- package/scripts/generate-web-module/templates/components/selector.template.ts +199 -0
- package/scripts/generate-web-module/templates/context.template.ts +121 -0
- package/scripts/generate-web-module/templates/data/fields.template.ts +64 -0
- package/scripts/generate-web-module/templates/data/index.ts +10 -0
- package/scripts/generate-web-module/templates/data/interface.template.ts +136 -0
- package/scripts/generate-web-module/templates/data/model.template.ts +327 -0
- package/scripts/generate-web-module/templates/data/service.template.ts +185 -0
- package/scripts/generate-web-module/templates/index.ts +34 -0
- package/scripts/generate-web-module/templates/module.template.ts +69 -0
- package/scripts/generate-web-module/templates/pages/detail-page.template.ts +65 -0
- package/scripts/generate-web-module/templates/pages/index.ts +8 -0
- package/scripts/generate-web-module/templates/pages/list-page.template.ts +37 -0
- package/scripts/generate-web-module/templates/table-hook.template.ts +182 -0
- package/scripts/generate-web-module/transformers/field-mapper.ts +201 -0
- package/scripts/generate-web-module/transformers/i18n-generator.ts +199 -0
- package/scripts/generate-web-module/transformers/import-resolver.ts +250 -0
- package/scripts/generate-web-module/transformers/index.ts +12 -0
- package/scripts/generate-web-module/transformers/name-transformer.ts +115 -0
- package/scripts/generate-web-module/transformers/parent-detector.ts +87 -0
- package/scripts/generate-web-module/transformers/relationship-resolver.ts +221 -0
- package/scripts/generate-web-module/tsconfig.json +24 -0
- package/scripts/generate-web-module/types/field-mapping.types.ts +141 -0
- package/scripts/generate-web-module/types/index.ts +9 -0
- package/scripts/generate-web-module/types/json-schema.interface.ts +42 -0
- package/scripts/generate-web-module/types/template-data.interface.ts +164 -0
- package/scripts/generate-web-module/utils/bootstrapper-updater.ts +145 -0
- package/scripts/generate-web-module/utils/file-writer.ts +115 -0
- package/scripts/generate-web-module/utils/i18n-updater.ts +108 -0
- package/scripts/generate-web-module/utils/index.ts +9 -0
- package/scripts/generate-web-module/validators/json-schema-validator.ts +306 -0
- package/src/components/errors/ErrorDetails.tsx +2 -2
- package/src/features/auth/components/containers/AuthContainer.tsx +1 -1
- package/src/features/auth/components/details/LandingComponent.tsx +20 -1
- package/src/features/auth/components/forms/AcceptInvitation.tsx +1 -1
- package/src/features/auth/components/forms/ActivateAccount.tsx +1 -1
- package/src/features/auth/components/forms/ForgotPassword.tsx +1 -1
- package/src/features/auth/components/forms/Login.tsx +1 -1
- package/src/features/auth/components/forms/Register.tsx +1 -1
- package/src/features/auth/components/forms/ResetPassword.tsx +1 -1
- package/src/features/company/components/forms/CompanyLicense.tsx +1 -8
- package/src/unified/JsonApiRequest.ts +2 -2
- package/dist/JsonApiRequest-VARLNKAF.js +0 -23
- package/dist/JsonApiRequest-VARLNKAF.js.map +0 -1
- package/dist/chunk-5ZEADNNP.js.map +0 -1
- package/dist/chunk-74F6BBHH.mjs.map +0 -1
- package/dist/chunk-KDFDGXCX.js.map +0 -1
- package/dist/chunk-Y4XI3AZR.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-DC33K4IF.mjs.map → BlockNoteEditor-V625C23O.mjs.map} +0 -0
- /package/dist/{JsonApiRequest-O7BGUMFO.mjs.map → JsonApiRequest-6UR7DIAR.mjs.map} +0 -0
- /package/dist/{chunk-NPPQNSXN.mjs.map → chunk-FMBQZAIP.mjs.map} +0 -0
- /package/dist/{chunk-MHVXFWZY.mjs.map → chunk-HTLEKZND.mjs.map} +0 -0
- /package/dist/{chunk-JLN6UWII.mjs.map → chunk-JGFWIT2E.mjs.map} +0 -0
- /package/dist/{chunk-X53MF5ZN.mjs.map → chunk-P2F54I7Q.mjs.map} +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* File Writer Utility
|
|
4
|
+
*
|
|
5
|
+
* Handles file writing with conflict detection and directory creation.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.writeFile = writeFile;
|
|
42
|
+
exports.writeFiles = writeFiles;
|
|
43
|
+
exports.printResults = printResults;
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
/**
|
|
47
|
+
* Write a single file to disk
|
|
48
|
+
*
|
|
49
|
+
* @param file - Generated file data
|
|
50
|
+
* @param options - Write options
|
|
51
|
+
* @returns Write result
|
|
52
|
+
*/
|
|
53
|
+
function writeFile(file, options = {}) {
|
|
54
|
+
const { dryRun = false, force = false } = options;
|
|
55
|
+
const existed = fs.existsSync(file.path);
|
|
56
|
+
if (dryRun) {
|
|
57
|
+
return {
|
|
58
|
+
path: file.path,
|
|
59
|
+
status: "dry-run",
|
|
60
|
+
existed,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Check if file exists and we're not forcing
|
|
64
|
+
if (existed && !force) {
|
|
65
|
+
return {
|
|
66
|
+
path: file.path,
|
|
67
|
+
status: "skipped",
|
|
68
|
+
existed: true,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Create directory if needed
|
|
72
|
+
const dir = path.dirname(file.path);
|
|
73
|
+
if (!fs.existsSync(dir)) {
|
|
74
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
75
|
+
}
|
|
76
|
+
// Write the file
|
|
77
|
+
fs.writeFileSync(file.path, file.content, "utf-8");
|
|
78
|
+
return {
|
|
79
|
+
path: file.path,
|
|
80
|
+
status: existed ? "updated" : "created",
|
|
81
|
+
existed,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Write multiple files to disk
|
|
86
|
+
*
|
|
87
|
+
* @param files - Array of generated files
|
|
88
|
+
* @param options - Write options
|
|
89
|
+
* @returns Array of write results
|
|
90
|
+
*/
|
|
91
|
+
function writeFiles(files, options = {}) {
|
|
92
|
+
return files.map((file) => writeFile(file, options));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Print write results to console
|
|
96
|
+
*
|
|
97
|
+
* @param results - Array of write results
|
|
98
|
+
*/
|
|
99
|
+
function printResults(results) {
|
|
100
|
+
const grouped = {
|
|
101
|
+
created: results.filter((r) => r.status === "created"),
|
|
102
|
+
updated: results.filter((r) => r.status === "updated"),
|
|
103
|
+
skipped: results.filter((r) => r.status === "skipped"),
|
|
104
|
+
dryRun: results.filter((r) => r.status === "dry-run"),
|
|
105
|
+
};
|
|
106
|
+
if (grouped.dryRun.length > 0) {
|
|
107
|
+
console.log("\n📋 DRY RUN - Files that would be created:");
|
|
108
|
+
grouped.dryRun.forEach((r) => {
|
|
109
|
+
console.log(` ${r.existed ? "🔄" : "✨"} ${r.path}`);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
if (grouped.created.length > 0) {
|
|
113
|
+
console.log("\n✨ Created files:");
|
|
114
|
+
grouped.created.forEach((r) => console.log(` ${r.path}`));
|
|
115
|
+
}
|
|
116
|
+
if (grouped.updated.length > 0) {
|
|
117
|
+
console.log("\n🔄 Updated files:");
|
|
118
|
+
grouped.updated.forEach((r) => console.log(` ${r.path}`));
|
|
119
|
+
}
|
|
120
|
+
if (grouped.skipped.length > 0) {
|
|
121
|
+
console.log("\n⏭️ Skipped (already exist, use --force to overwrite):");
|
|
122
|
+
grouped.skipped.forEach((r) => console.log(` ${r.path}`));
|
|
123
|
+
}
|
|
124
|
+
console.log(`\nTotal: ${results.length} files (${grouped.created.length} created, ${grouped.updated.length} updated, ${grouped.skipped.length} skipped)`);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=file-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-writer.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/file-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n Updater
|
|
3
|
+
*
|
|
4
|
+
* Updates the messages/en.json file with new module translations.
|
|
5
|
+
*/
|
|
6
|
+
import { FrontendTemplateData } from "../types/template-data.interface";
|
|
7
|
+
export interface I18nUpdateResult {
|
|
8
|
+
success: boolean;
|
|
9
|
+
message: string;
|
|
10
|
+
alreadyExists?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Update messages/en.json with new module translations
|
|
14
|
+
*
|
|
15
|
+
* @param data - Frontend template data
|
|
16
|
+
* @param webBasePath - Base path to web app
|
|
17
|
+
* @param dryRun - Whether to perform a dry run
|
|
18
|
+
* @returns Update result
|
|
19
|
+
*/
|
|
20
|
+
export declare function updateI18n(data: FrontendTemplateData, webBasePath: string, dryRun?: boolean): I18nUpdateResult;
|
|
21
|
+
/**
|
|
22
|
+
* Preview the i18n messages that would be added
|
|
23
|
+
*
|
|
24
|
+
* @param data - Frontend template data
|
|
25
|
+
* @returns Preview of messages
|
|
26
|
+
*/
|
|
27
|
+
export declare function previewI18nMessages(data: FrontendTemplateData): string;
|
|
28
|
+
//# sourceMappingURL=i18n-updater.d.ts.map
|
|
@@ -0,0 +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;AAKxE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,oBAAoB,EAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,OAAe,GACtB,gBAAgB,CAkElB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAGtE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* i18n Updater
|
|
4
|
+
*
|
|
5
|
+
* Updates the messages/en.json file with new module translations.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.updateI18n = updateI18n;
|
|
42
|
+
exports.previewI18nMessages = previewI18nMessages;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const i18n_generator_1 = require("../transformers/i18n-generator");
|
|
45
|
+
const MESSAGES_PATH = "apps/web/messages/en.json";
|
|
46
|
+
/**
|
|
47
|
+
* Update messages/en.json with new module translations
|
|
48
|
+
*
|
|
49
|
+
* @param data - Frontend template data
|
|
50
|
+
* @param webBasePath - Base path to web app
|
|
51
|
+
* @param dryRun - Whether to perform a dry run
|
|
52
|
+
* @returns Update result
|
|
53
|
+
*/
|
|
54
|
+
function updateI18n(data, webBasePath, dryRun = false) {
|
|
55
|
+
const { names, i18nKeys } = data;
|
|
56
|
+
const messagesPath = `${webBasePath}/${MESSAGES_PATH}`;
|
|
57
|
+
// Check if file exists
|
|
58
|
+
if (!fs.existsSync(messagesPath)) {
|
|
59
|
+
return {
|
|
60
|
+
success: false,
|
|
61
|
+
message: `Messages file not found at ${messagesPath}`,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const content = fs.readFileSync(messagesPath, "utf-8");
|
|
65
|
+
let messages;
|
|
66
|
+
try {
|
|
67
|
+
messages = JSON.parse(content);
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
return {
|
|
71
|
+
success: false,
|
|
72
|
+
message: `Failed to parse messages/en.json: ${e}`,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// Check if module already exists in features
|
|
76
|
+
if (messages.features && messages.features[names.camelCase]) {
|
|
77
|
+
return {
|
|
78
|
+
success: true,
|
|
79
|
+
message: `Module ${names.camelCase} already exists in messages/en.json`,
|
|
80
|
+
alreadyExists: true,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
// Build the i18n messages for this module
|
|
84
|
+
const moduleMessages = (0, i18n_generator_1.buildI18nMessages)(i18nKeys);
|
|
85
|
+
// Add to features section
|
|
86
|
+
if (!messages.features) {
|
|
87
|
+
messages.features = {};
|
|
88
|
+
}
|
|
89
|
+
messages.features[names.camelCase] = moduleMessages.features[i18nKeys.moduleName];
|
|
90
|
+
// Add to types section (if not exists)
|
|
91
|
+
if (!messages.types) {
|
|
92
|
+
messages.types = {};
|
|
93
|
+
}
|
|
94
|
+
const typesKey = Object.keys(moduleMessages.types)[0];
|
|
95
|
+
if (typesKey && !messages.types[names.pluralCamel]) {
|
|
96
|
+
messages.types[names.pluralCamel] = moduleMessages.types[typesKey];
|
|
97
|
+
}
|
|
98
|
+
if (dryRun) {
|
|
99
|
+
return {
|
|
100
|
+
success: true,
|
|
101
|
+
message: `[DRY RUN] Would update messages/en.json with ${names.camelCase} translations`,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// Write updated content with proper formatting
|
|
105
|
+
const updatedContent = JSON.stringify(messages, null, 2);
|
|
106
|
+
fs.writeFileSync(messagesPath, updatedContent, "utf-8");
|
|
107
|
+
return {
|
|
108
|
+
success: true,
|
|
109
|
+
message: `Updated messages/en.json with ${names.camelCase} translations`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Preview the i18n messages that would be added
|
|
114
|
+
*
|
|
115
|
+
* @param data - Frontend template data
|
|
116
|
+
* @returns Preview of messages
|
|
117
|
+
*/
|
|
118
|
+
function previewI18nMessages(data) {
|
|
119
|
+
const moduleMessages = (0, i18n_generator_1.buildI18nMessages)(data.i18nKeys);
|
|
120
|
+
return JSON.stringify(moduleMessages, null, 2);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=i18n-updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-updater.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/i18n-updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utils Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all utility functions.
|
|
5
|
+
*/
|
|
6
|
+
export { writeFile, writeFiles, printResults, type WriteOptions, type WriteResult } from "./file-writer";
|
|
7
|
+
export { updateBootstrapper, generateImportStatement, generateModuleEntry, type BootstrapperUpdateResult } from "./bootstrapper-updater";
|
|
8
|
+
export { updateI18n, previewI18nMessages, type I18nUpdateResult } from "./i18n-updater";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACzI,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utils Index
|
|
4
|
+
*
|
|
5
|
+
* Exports all utility functions.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.previewI18nMessages = exports.updateI18n = exports.generateModuleEntry = exports.generateImportStatement = exports.updateBootstrapper = exports.printResults = exports.writeFiles = exports.writeFile = void 0;
|
|
9
|
+
var file_writer_1 = require("./file-writer");
|
|
10
|
+
Object.defineProperty(exports, "writeFile", { enumerable: true, get: function () { return file_writer_1.writeFile; } });
|
|
11
|
+
Object.defineProperty(exports, "writeFiles", { enumerable: true, get: function () { return file_writer_1.writeFiles; } });
|
|
12
|
+
Object.defineProperty(exports, "printResults", { enumerable: true, get: function () { return file_writer_1.printResults; } });
|
|
13
|
+
var bootstrapper_updater_1 = require("./bootstrapper-updater");
|
|
14
|
+
Object.defineProperty(exports, "updateBootstrapper", { enumerable: true, get: function () { return bootstrapper_updater_1.updateBootstrapper; } });
|
|
15
|
+
Object.defineProperty(exports, "generateImportStatement", { enumerable: true, get: function () { return bootstrapper_updater_1.generateImportStatement; } });
|
|
16
|
+
Object.defineProperty(exports, "generateModuleEntry", { enumerable: true, get: function () { return bootstrapper_updater_1.generateModuleEntry; } });
|
|
17
|
+
var i18n_updater_1 = require("./i18n-updater");
|
|
18
|
+
Object.defineProperty(exports, "updateI18n", { enumerable: true, get: function () { return i18n_updater_1.updateI18n; } });
|
|
19
|
+
Object.defineProperty(exports, "previewI18nMessages", { enumerable: true, get: function () { return i18n_updater_1.previewI18nMessages; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../scripts/generate-web-module/utils/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAAyG;AAAhG,wGAAA,SAAS,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,2GAAA,YAAY,OAAA;AAC5C,+DAAyI;AAAhI,0HAAA,kBAAkB,OAAA;AAAE,+HAAA,uBAAuB,OAAA;AAAE,2HAAA,mBAAmB,OAAA;AACzE,+CAAwF;AAA/E,0GAAA,UAAU,OAAA;AAAE,mHAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates JSON module definition files for the frontend generator.
|
|
5
|
+
* Note: Backend-specific fields (toNode, relationshipName) are warnings, not errors.
|
|
6
|
+
*/
|
|
7
|
+
import { JsonModuleDefinition } from "../types/json-schema.interface";
|
|
8
|
+
export interface ValidationError {
|
|
9
|
+
field: string;
|
|
10
|
+
message: string;
|
|
11
|
+
severity: "error" | "warning";
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Validate JSON module definition for frontend generation
|
|
15
|
+
*
|
|
16
|
+
* @param schema - JSON module definition
|
|
17
|
+
* @returns Array of validation errors (empty if valid)
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateJsonSchema(schema: any): ValidationError[];
|
|
20
|
+
/**
|
|
21
|
+
* Format validation errors for display
|
|
22
|
+
*
|
|
23
|
+
* @param errors - Validation errors
|
|
24
|
+
* @returns Formatted error message
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatValidationErrors(errors: ValidationError[]): string;
|
|
27
|
+
/**
|
|
28
|
+
* Validation result interface
|
|
29
|
+
*/
|
|
30
|
+
export interface ValidationResult {
|
|
31
|
+
data: JsonModuleDefinition | null;
|
|
32
|
+
errors: string[];
|
|
33
|
+
warnings: string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validate and parse JSON file from path
|
|
37
|
+
*
|
|
38
|
+
* @param filePath - Path to JSON file
|
|
39
|
+
* @returns Validation result with data, errors, and warnings
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseAndValidate(filePath: string): ValidationResult;
|
|
42
|
+
/**
|
|
43
|
+
* Check if validation result passed (no errors)
|
|
44
|
+
*/
|
|
45
|
+
export declare function validationPassed(result: ValidationResult): boolean;
|
|
46
|
+
//# sourceMappingURL=json-schema-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema-validator.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-web-module/validators/json-schema-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAgKjE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CA6BxE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA+DnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAElE"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JSON Schema Validator
|
|
4
|
+
*
|
|
5
|
+
* Validates JSON module definition files for the frontend generator.
|
|
6
|
+
* Note: Backend-specific fields (toNode, relationshipName) are warnings, not errors.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.validateJsonSchema = validateJsonSchema;
|
|
10
|
+
exports.formatValidationErrors = formatValidationErrors;
|
|
11
|
+
exports.parseAndValidate = parseAndValidate;
|
|
12
|
+
exports.validationPassed = validationPassed;
|
|
13
|
+
/**
|
|
14
|
+
* Validate JSON module definition for frontend generation
|
|
15
|
+
*
|
|
16
|
+
* @param schema - JSON module definition
|
|
17
|
+
* @returns Array of validation errors (empty if valid)
|
|
18
|
+
*/
|
|
19
|
+
function validateJsonSchema(schema) {
|
|
20
|
+
const errors = [];
|
|
21
|
+
// Required fields
|
|
22
|
+
const required = ["moduleName", "endpointName", "targetDir"];
|
|
23
|
+
for (const field of required) {
|
|
24
|
+
if (!schema[field]) {
|
|
25
|
+
errors.push({
|
|
26
|
+
field,
|
|
27
|
+
message: `${field} is required`,
|
|
28
|
+
severity: "error",
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Module name format (PascalCase)
|
|
33
|
+
if (schema.moduleName && !/^[A-Z][a-zA-Z0-9]*$/.test(schema.moduleName)) {
|
|
34
|
+
errors.push({
|
|
35
|
+
field: "moduleName",
|
|
36
|
+
message: 'Must be PascalCase (e.g., "Comment", "Discussion")',
|
|
37
|
+
severity: "error",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// Endpoint format (kebab-case plural)
|
|
41
|
+
if (schema.endpointName && !/^[a-z][a-z0-9-]*$/.test(schema.endpointName)) {
|
|
42
|
+
errors.push({
|
|
43
|
+
field: "endpointName",
|
|
44
|
+
message: 'Must be kebab-case (e.g., "comments", "discussions")',
|
|
45
|
+
severity: "error",
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Target directory validation
|
|
49
|
+
if (schema.targetDir && !["features", "foundations"].includes(schema.targetDir)) {
|
|
50
|
+
errors.push({
|
|
51
|
+
field: "targetDir",
|
|
52
|
+
message: 'Must be either "features" or "foundations"',
|
|
53
|
+
severity: "error",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Module ID validation (required for frontend)
|
|
57
|
+
if (!schema.moduleId) {
|
|
58
|
+
errors.push({
|
|
59
|
+
field: "moduleId",
|
|
60
|
+
message: "moduleId is required for frontend module registration",
|
|
61
|
+
severity: "error",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else if (!/^[a-f0-9-]{36}$/i.test(schema.moduleId)) {
|
|
65
|
+
errors.push({
|
|
66
|
+
field: "moduleId",
|
|
67
|
+
message: "moduleId must be a valid UUID",
|
|
68
|
+
severity: "warning",
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// Fields validation
|
|
72
|
+
if (schema.fields && Array.isArray(schema.fields)) {
|
|
73
|
+
schema.fields.forEach((field, index) => {
|
|
74
|
+
if (!field.name) {
|
|
75
|
+
errors.push({
|
|
76
|
+
field: `fields[${index}].name`,
|
|
77
|
+
message: "Field name is required",
|
|
78
|
+
severity: "error",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (!field.type) {
|
|
82
|
+
errors.push({
|
|
83
|
+
field: `fields[${index}].type`,
|
|
84
|
+
message: "Field type is required",
|
|
85
|
+
severity: "error",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (field.nullable === undefined) {
|
|
89
|
+
errors.push({
|
|
90
|
+
field: `fields[${index}].nullable`,
|
|
91
|
+
message: "Field nullable flag is required",
|
|
92
|
+
severity: "error",
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// Validate known types
|
|
96
|
+
const validTypes = ["string", "number", "boolean", "date", "any"];
|
|
97
|
+
if (field.type && !validTypes.includes(field.type)) {
|
|
98
|
+
errors.push({
|
|
99
|
+
field: `fields[${index}].type`,
|
|
100
|
+
message: `Unknown type "${field.type}". Valid types: ${validTypes.join(", ")}`,
|
|
101
|
+
severity: "warning",
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// Relationships validation
|
|
107
|
+
if (schema.relationships && Array.isArray(schema.relationships)) {
|
|
108
|
+
schema.relationships.forEach((rel, index) => {
|
|
109
|
+
if (!rel.name) {
|
|
110
|
+
errors.push({
|
|
111
|
+
field: `relationships[${index}].name`,
|
|
112
|
+
message: "Relationship name is required",
|
|
113
|
+
severity: "error",
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (!rel.directory) {
|
|
117
|
+
errors.push({
|
|
118
|
+
field: `relationships[${index}].directory`,
|
|
119
|
+
message: "Relationship directory is required",
|
|
120
|
+
severity: "error",
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
// Directory should be features or foundations
|
|
124
|
+
if (rel.directory && !["features", "foundations"].includes(rel.directory)) {
|
|
125
|
+
errors.push({
|
|
126
|
+
field: `relationships[${index}].directory`,
|
|
127
|
+
message: 'Relationship directory should be "features" or "foundations"',
|
|
128
|
+
severity: "warning",
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
if (rel.single === undefined) {
|
|
132
|
+
errors.push({
|
|
133
|
+
field: `relationships[${index}].single`,
|
|
134
|
+
message: "Relationship single flag is required",
|
|
135
|
+
severity: "error",
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
if (rel.nullable === undefined) {
|
|
139
|
+
errors.push({
|
|
140
|
+
field: `relationships[${index}].nullable`,
|
|
141
|
+
message: "Relationship nullable flag is required",
|
|
142
|
+
severity: "error",
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
// Backend-specific fields are warnings only (not used in frontend)
|
|
146
|
+
if (!rel.relationshipName) {
|
|
147
|
+
errors.push({
|
|
148
|
+
field: `relationships[${index}].relationshipName`,
|
|
149
|
+
message: "relationshipName missing (backend-specific, not used in frontend)",
|
|
150
|
+
severity: "warning",
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (rel.toNode === undefined) {
|
|
154
|
+
errors.push({
|
|
155
|
+
field: `relationships[${index}].toNode`,
|
|
156
|
+
message: "toNode missing (backend-specific, not used in frontend)",
|
|
157
|
+
severity: "warning",
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return errors;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Format validation errors for display
|
|
166
|
+
*
|
|
167
|
+
* @param errors - Validation errors
|
|
168
|
+
* @returns Formatted error message
|
|
169
|
+
*/
|
|
170
|
+
function formatValidationErrors(errors) {
|
|
171
|
+
if (errors.length === 0) {
|
|
172
|
+
return "No validation errors";
|
|
173
|
+
}
|
|
174
|
+
const errorCount = errors.filter((e) => e.severity === "error").length;
|
|
175
|
+
const warningCount = errors.filter((e) => e.severity === "warning").length;
|
|
176
|
+
const lines = [];
|
|
177
|
+
if (errorCount > 0) {
|
|
178
|
+
lines.push(`\n❌ ${errorCount} error(s):`);
|
|
179
|
+
errors
|
|
180
|
+
.filter((e) => e.severity === "error")
|
|
181
|
+
.forEach((error) => {
|
|
182
|
+
lines.push(` • ${error.field}: ${error.message}`);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (warningCount > 0) {
|
|
186
|
+
lines.push(`\n⚠️ ${warningCount} warning(s):`);
|
|
187
|
+
errors
|
|
188
|
+
.filter((e) => e.severity === "warning")
|
|
189
|
+
.forEach((error) => {
|
|
190
|
+
lines.push(` • ${error.field}: ${error.message}`);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return lines.join("\n");
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Validate and parse JSON file from path
|
|
197
|
+
*
|
|
198
|
+
* @param filePath - Path to JSON file
|
|
199
|
+
* @returns Validation result with data, errors, and warnings
|
|
200
|
+
*/
|
|
201
|
+
function parseAndValidate(filePath) {
|
|
202
|
+
const result = {
|
|
203
|
+
data: null,
|
|
204
|
+
errors: [],
|
|
205
|
+
warnings: [],
|
|
206
|
+
};
|
|
207
|
+
// Read file
|
|
208
|
+
let content;
|
|
209
|
+
try {
|
|
210
|
+
const fs = require("fs");
|
|
211
|
+
if (!fs.existsSync(filePath)) {
|
|
212
|
+
result.errors.push(`File not found: ${filePath}`);
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
content = fs.readFileSync(filePath, "utf-8");
|
|
216
|
+
}
|
|
217
|
+
catch (e) {
|
|
218
|
+
result.errors.push(`Failed to read file: ${e.message}`);
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
// Parse JSON
|
|
222
|
+
let schema;
|
|
223
|
+
try {
|
|
224
|
+
schema = JSON.parse(content);
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
result.errors.push(`Invalid JSON: ${e.message}`);
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
// Handle array format (for bulk import compatibility)
|
|
231
|
+
if (Array.isArray(schema)) {
|
|
232
|
+
if (schema.length === 0) {
|
|
233
|
+
result.errors.push("JSON array is empty");
|
|
234
|
+
return result;
|
|
235
|
+
}
|
|
236
|
+
if (schema.length > 1) {
|
|
237
|
+
result.warnings.push(`JSON file contains ${schema.length} definitions. Only processing the first one.`);
|
|
238
|
+
}
|
|
239
|
+
schema = schema[0];
|
|
240
|
+
}
|
|
241
|
+
// Validate
|
|
242
|
+
const validationErrors = validateJsonSchema(schema);
|
|
243
|
+
// Separate errors and warnings
|
|
244
|
+
validationErrors.forEach((ve) => {
|
|
245
|
+
const msg = `${ve.field}: ${ve.message}`;
|
|
246
|
+
if (ve.severity === "error") {
|
|
247
|
+
result.errors.push(msg);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
result.warnings.push(msg);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
// Only set data if validation passed
|
|
254
|
+
if (result.errors.length === 0) {
|
|
255
|
+
result.data = schema;
|
|
256
|
+
}
|
|
257
|
+
return result;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Check if validation result passed (no errors)
|
|
261
|
+
*/
|
|
262
|
+
function validationPassed(result) {
|
|
263
|
+
return result.errors.length === 0 && result.data !== null;
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=json-schema-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|