@solidxai/core 0.1.11-beta.1 → 0.1.11-beta.2
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/.claude/settings.local.json +15 -0
- package/CLAUDE.md +26 -0
- package/dist/controllers/service.controller.d.ts +1 -0
- package/dist/controllers/service.controller.d.ts.map +1 -1
- package/dist/controllers/service.controller.js +2 -2
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/helpers/field-crud-managers/IntFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/IntFieldCrudManager.js +4 -1
- package/dist/helpers/field-crud-managers/IntFieldCrudManager.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +2 -1
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +5 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +61 -3
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +7 -0
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +6 -5
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/locale.service.d.ts +14 -0
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +83 -0
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +1 -0
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +23 -2
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +4 -7
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +2 -0
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +25 -6
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +1 -0
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/service.controller.ts +3 -2
- package/src/helpers/field-crud-managers/IntFieldCrudManager.ts +4 -1
- package/src/helpers/solid-registry.ts +7 -1
- package/src/seeders/module-metadata-seeder.service.ts +72 -2
- package/src/seeders/seed-data/solid-core-metadata.json +7 -0
- package/src/services/1.js +6 -0
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +10 -5
- package/src/services/locale.service.ts +111 -3
- package/src/services/role-metadata.service.ts +26 -2
- package/src/services/view-metadata.service.ts +4 -8
- package/src/subscribers/audit.subscriber.ts +34 -14
- package/src/subscribers/computed-entity-field.subscriber.ts +1 -0
- package/src/subscribers/created-by-updated-by.subscriber.ts +3 -0
- package/src/subscribers/field-metadata.subscriber.ts +3 -0
- package/dist-tests/api/authenticate.spec.js +0 -119
- package/dist-tests/api/authenticate.spec.js.map +0 -1
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
- package/dist-tests/api/ping.spec.js +0 -21
- package/dist-tests/api/ping.spec.js.map +0 -1
- package/dist-tests/helpers/auth.js +0 -41
- package/dist-tests/helpers/auth.js.map +0 -1
- package/dist-tests/helpers/env.js +0 -11
- package/dist-tests/helpers/env.js.map +0 -1
- package/docs/agent-hub-grooming.md +0 -301
- package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
- package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
- package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
- package/docs/datasource-introspection-ddl-analysis.md +0 -326
- package/docs/datasource-introspection-implementation-plan.md +0 -306
- package/docs/grouping-enhancements.md +0 -89
- package/docs/java-spring/README.md +0 -3
- package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
- package/docs/module-package-import-handoff.md +0 -691
- package/docs/seed-changes.md +0 -65
- package/docs/test-data-workflow.md +0 -200
- package/docs/type-declaration-import-issue.md +0 -24
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(node -e:*)",
|
|
5
|
+
"WebFetch(domain:docs.solidxai.com)",
|
|
6
|
+
"WebFetch(domain:github.com)",
|
|
7
|
+
"Read(//Users/oswald/projects/Solid_Starters/solidctl/**)",
|
|
8
|
+
"Read(//Users/oswald/projects/Solid_Starters/**)",
|
|
9
|
+
"Bash(find /Users/oswald/projects/Solid_Starters/solid-core-module -type d -name migration* -o -name *database*)"
|
|
10
|
+
],
|
|
11
|
+
"additionalDirectories": [
|
|
12
|
+
"/Users/oswald/projects/Solid_Starters/solidctl"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# This is the SolidX API project.
|
|
2
|
+
This is included as a dependency in consuming projects.
|
|
3
|
+
|
|
4
|
+
# SolidX UI
|
|
5
|
+
# The corresponding UI project is at the below path:
|
|
6
|
+
/Users/oswald/projects/Solid_Starters/solid-core-ui
|
|
7
|
+
|
|
8
|
+
# SolidX Docs
|
|
9
|
+
# The documentation project is at the below path:
|
|
10
|
+
/Users/oswald/projects/solidxai-docs
|
|
11
|
+
|
|
12
|
+
# SolidX Agent
|
|
13
|
+
# The agent project which has the skills for helping users configure, build and use SolidX is at the below path:
|
|
14
|
+
/Users/oswald/projects/Solid_Starters/agent
|
|
15
|
+
|
|
16
|
+
# SolidX Control Plane Commands
|
|
17
|
+
# The control plane commands for managing SolidX instances are in the below path:
|
|
18
|
+
/Users/oswald/projects/Solid_Starters/solidctl
|
|
19
|
+
|
|
20
|
+
# Testing reference project
|
|
21
|
+
# This is the reference library management project that is used for testing and development of SolidX features. It is located at the below path:
|
|
22
|
+
/Users/oswald/projects/Solid_Starters/solid-library-management
|
|
23
|
+
|
|
24
|
+
# Code Builder project
|
|
25
|
+
# This is the project that contains the code builder which generates code based on user input and templates. It is located at the below path:
|
|
26
|
+
/Users/oswald/projects/Solid_Starters/solid-code-builder
|
|
@@ -4,6 +4,7 @@ import { SolidRegistry } from '../helpers/solid-registry';
|
|
|
4
4
|
export interface PostProcessCodeGenConfig {
|
|
5
5
|
runModuleMetadataSeeder?: boolean;
|
|
6
6
|
runSolidIngestion?: boolean;
|
|
7
|
+
modulesToSeed?: string[];
|
|
7
8
|
}
|
|
8
9
|
export declare class ServiceController {
|
|
9
10
|
private readonly solidRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"service.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AACD,qBAIa,iBAAiB;IAItB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IALhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAGxC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,kBAAkB;IAKpD,QAAQ;;;IA+DF,QAAQ,CAAS,QAAQ,EAAE,GAAG;;;IAkB9B,yBAAyB,CAAS,MAAM,EAAE,wBAAwB;CAmD3E"}
|
|
@@ -43,7 +43,7 @@ let ServiceController = ServiceController_1 = class ServiceController {
|
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
this.logger.log(`Running the seed() method for seeder :${seeder.constructor.name}`);
|
|
46
|
-
await seeder.seed();
|
|
46
|
+
await seeder.seed({ modulesToSeed: seedData?.modulesToSeed });
|
|
47
47
|
return { message: `seed data for ${seederName}` };
|
|
48
48
|
}
|
|
49
49
|
async postProcessCodeGeneration(config) {
|
|
@@ -60,7 +60,7 @@ let ServiceController = ServiceController_1 = class ServiceController {
|
|
|
60
60
|
this.logger.error(`Seeder service ModuleMetadataSeederService not found. Does your service have a seed() method?`);
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
|
-
await seeder.seed();
|
|
63
|
+
await seeder.seed({ modulesToSeed: config.modulesToSeed });
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.controller.js","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,6CAAyD;AAEzD,qEAAyD;AACzD,0EAAsE;AAEtE,uEAAmE;AACnE,8DAA0D;
|
|
1
|
+
{"version":3,"file":"service.controller.js","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Get, Logger, Post } from '@nestjs/common';\nimport { ApiBearerAuth, ApiTags } from '@nestjs/swagger';\nimport { ActiveUser } from 'src/decorators/active-user.decorator';\nimport { Public } from 'src/decorators/public.decorator';\nimport { ErrorMapperService } from 'src/helpers/error-mapper.service';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { MqMessageService } from 'src/services/mq-message.service';\nimport { SolidRegistry } from '../helpers/solid-registry';\n\nexport interface PostProcessCodeGenConfig {\n runModuleMetadataSeeder?: boolean; // If true, regenerate module metadata\n runSolidIngestion?: boolean; // If true, run solid ingestion command\n modulesToSeed?: string[]; // If provided, only seed these specific modules\n}\n@Controller('')\n@ApiTags(\"Solid Core\")\n// @UseGuards(ThrottlerGuard)\n// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) // Skip all\nexport class ServiceController {\n private readonly logger = new Logger(ServiceController.name);\n\n constructor(\n private readonly solidRegistry: SolidRegistry,\n private readonly mqMessageService: MqMessageService,\n private readonly errorMapper: ErrorMapperService,\n ) { }\n\n @Public()\n @Get('ping')\n pingPong() {\n return { pong: 'v1.0.2' };\n }\n\n // @ApiBearerAuth(\"jwt\")\n // @Get('mcp/ping')\n // async mcpPingPong(@ActiveUser() activeUser: ActiveUserData) {\n // // TODO: do a MCP client invocation, wait for response and return.\n // // If failure then decide shape to return.\n\n // const threadId = `pingPongTxn-${activeUser.sub}`;\n // const dto = { prompt: \"Can you do 1 + 1\", moduleName: \"solidCoreModule\" }\n // const { queueMessageId, aiInteractionId } = await this.aiInteractionService.triggerMcpClientJob(\n // dto,\n // activeUser.sub,\n // true,\n // threadId\n // );\n\n // this.logger.debug(`mcp ping pong job triggered: queueMessageId=${queueMessageId}, aiInteractionId=${aiInteractionId}`);\n\n // // Wait up to 2 minutes, start at 500ms poll, back off to max 2s, throw if failed:\n // const result = await this.mqMessageService.waitForTerminalStatus(queueMessageId, {\n // timeoutMs: 2 * 60 * 1000,\n // intervalMs: 500,\n // maxIntervalMs: 2000,\n // throwOnFailure: false,\n // });\n\n // this.logger.debug(`mcp ping pong job finished with stage=${result.stage}`)\n\n // this.logger.debug(`mcp ping pong trying to find genai (child) interaction for aiInteraction for id=${aiInteractionId}`)\n\n // // @ts-ignore\n // const genAiInteractions = await this.aiInteractionService.find({\n // filters: {\n // parentInteraction: {\n // id: {\n // $eq: aiInteractionId\n // }\n // }\n // }\n // });\n\n // const genAiInteraction = genAiInteractions['records'][0];\n // this.logger.debug(genAiInteraction.message);\n\n // this.logger.debug(`identified gen-ai interaction with id=${genAiInteraction.id}`);\n // this.logger.debug(`proceeding with applying the gen-ai interaction`)\n\n // return {\n // mcpPong: 'v1.0.2',\n // genAiInteraction: {\n // status: genAiInteraction.status,\n // errorCode: genAiInteraction.status === 'failed' ? this.errorMapper.mapMessage(genAiInteraction.errorMessage, genAiInteraction.metadata) : '',\n // errorMessage: genAiInteraction.errorMessage,\n // }\n // };\n // }\n\n // @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only\n @ApiBearerAuth(\"jwt\")\n @Post('seed')\n async seedData(@Body() seedData: any) {\n const seederName = seedData?.seeder ?? 'ModuleMetadataSeederService';\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === seederName)\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ${seederName} not found. Does your service have a seed() method?`);\n return;\n }\n this.logger.log(`Running the seed() method for seeder :${seeder.constructor.name}`);\n await seeder.seed({ modulesToSeed: seedData?.modulesToSeed });\n return { message: `seed data for ${seederName}` };\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('code-generation/post-process')\n async postProcessCodeGeneration(@Body() config: PostProcessCodeGenConfig) {\n // Set defaults if not provided\n config.runModuleMetadataSeeder = config.runModuleMetadataSeeder ?? true;\n config.runSolidIngestion = config.runSolidIngestion ?? true;\n\n // Run the Module Metadata Seeder Service\n if (config.runModuleMetadataSeeder) {\n this.logger.debug(`Running the Module Metadata Seeder Service as part of post-process code generation`);\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === 'ModuleMetadataSeederService')\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ModuleMetadataSeederService not found. Does your service have a seed() method?`);\n } else {\n await seeder.seed({ modulesToSeed: config.modulesToSeed });\n }\n } else {\n this.logger.debug(`Skipping the Module Metadata Seeder Service as part of post-process code generation`);\n }\n\n // Run the Solid ingestion command\n if (config.runSolidIngestion) {\n this.logger.debug(`Running the Solid ingestion command as part of post-process code generation`);\n\n // TODO: disabled this till we figure out a way to make this stable...\n // This keeps failing for a variety of reasons... \n // await this.ingestMetadataService.ingest();\n }\n }\n\n\n // @Public()\n // @Get('play')\n // play() {\n // return this.solidRegistry.getControllers();\n // }\n\n // //This method identifies a provider as a seeder if it has a seed method i.e duck typing\n // private isSeeder(provider: InstanceWrapper) {\n // const { instance } = provider;\n // if (!instance) return false;\n\n // const seedMethod = this.metadataScanner\n // .getAllMethodNames(Object.getPrototypeOf(instance))\n // .find((methodName) => methodName === 'seed');\n // if (!seedMethod) return false;\n // return true;\n // }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/IntFieldCrudManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAoB,YAAW,gBAAgB;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGrD,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,eAAe,EAAE;
|
|
1
|
+
{"version":3,"file":"IntFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/IntFieldCrudManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAoB,YAAW,gBAAgB;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGrD,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,eAAe,EAAE;IAQ3C,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,sBAAsB;IAQ9B,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG;IAKvC,OAAO,CAAC,oBAAoB;IAG5B,OAAO,CAAC,oBAAoB;IAG5B,OAAO,CAAC,yBAAyB;CAGpC"}
|
|
@@ -8,7 +8,10 @@ class IntFieldCrudManager {
|
|
|
8
8
|
}
|
|
9
9
|
validate(createDto) {
|
|
10
10
|
const fieldValue = createDto[this.options.fieldName];
|
|
11
|
-
|
|
11
|
+
if (typeof fieldValue === 'string' && /^\d+$/.test(fieldValue.trim())) {
|
|
12
|
+
createDto[this.options.fieldName] = Number.parseInt(fieldValue, 10);
|
|
13
|
+
}
|
|
14
|
+
return this.applyValidations(createDto[this.options.fieldName]);
|
|
12
15
|
}
|
|
13
16
|
applyValidations(fieldValue) {
|
|
14
17
|
const errors = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/IntFieldCrudManager.ts"],"names":[],"mappings":";;;AAAA,qDAAuE;AAUvE,MAAa,mBAAmB;IAE5B,YAA6B,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IACrD,CAAC;IAED,QAAQ,CAAC,SAAc;QACnB,MAAM,UAAU,GAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"IntFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/IntFieldCrudManager.ts"],"names":[],"mappings":";;;AAAA,qDAAuE;AAUvE,MAAa,mBAAmB;IAE5B,YAA6B,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IACrD,CAAC;IAED,QAAQ,CAAC,SAAc;QACnB,MAAM,UAAU,GAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,gBAAgB,CAAC,UAAe;QACpC,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAA,yBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9K,IAAI,IAAA,4BAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,sBAAsB,CAAC,UAAe;QAC1C,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,CAAC,IAAA,uBAAK,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAChH,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAA,qBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAA,CAAC,CAAC,WAAW,CAAC;QACxL,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAA,qBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC3L,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,SAAc;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAGO,oBAAoB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAChC,CAAC;IACO,oBAAoB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAChC,CAAC;IACO,yBAAyB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;CACJ;AA5CD,kDA4CC","sourcesContent":["import { isEmpty, isInt, isNotEmpty, max, min } from \"class-validator\";\nimport { FieldCrudManager, ValidationError } from \"src/interfaces\";\n\nexport interface IntFieldOptions {\n min: number | undefined | null;\n max: number | undefined | null;\n required: boolean | undefined | null;\n fieldName: string;\n}\n\nexport class IntFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: IntFieldOptions) {\n }\n\n validate(createDto: any): ValidationError[] {\n const fieldValue: any = createDto[this.options.fieldName];\n if (typeof fieldValue === 'string' && /^\\d+$/.test(fieldValue.trim())) {\n createDto[this.options.fieldName] = Number.parseInt(fieldValue, 10);\n }\n return this.applyValidations(createDto[this.options.fieldName]);\n }\n\n private applyValidations(fieldValue: any): ValidationError[] {\n const errors: ValidationError[] = [];\n this.isApplyRequiredValidation() && isEmpty(fieldValue) ? errors.push({ field: this.options.fieldName, error: `Field: ${this.options.fieldName} is required` }) : \"no errors\";\n if (isNotEmpty(fieldValue)) {\n errors.push(...this.applyFormatValidations(fieldValue));\n }\n return errors;\n }\n\n private applyFormatValidations(fieldValue: any): ValidationError[] {\n const errors: ValidationError[] = [];\n !isInt(fieldValue) ? errors.push({ field: this.options.fieldName, error: 'Field is not an int' }) : \"no errors\";\n (this.isApplyMinValidation() && !min(fieldValue, this.options.min)) ? errors.push({ field: this.options.fieldName, error: 'Field value is lesser than minimum required' }): \"no errors\"; \n (this.isApplyMaxValidation() && !max(fieldValue, this.options.max)) ? errors.push({ field: this.options.fieldName, error: 'Field value is greater than maximum required' }) : \"no errors\";\n return errors;\n }\n\n transformForCreate(createDto: any): any {\n return createDto;\n }\n\n // Validation to be applied\n private isApplyMinValidation(): boolean {\n return this.options.min > 0;\n }\n private isApplyMaxValidation(): boolean {\n return this.options.max > 0;\n }\n private isApplyRequiredValidation(): boolean {\n return this.options.required;\n }\n}\n"]}
|
|
@@ -7,7 +7,7 @@ import { Locale } from '../entities/locale.entity';
|
|
|
7
7
|
import { SecurityRule } from '../entities/security-rule.entity';
|
|
8
8
|
import { IScheduledJob } from '../services/scheduled-jobs/scheduled-job.interface';
|
|
9
9
|
import { IDashboardWidgetDataProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
|
|
10
|
-
import { ObjectLiteral } from 'typeorm';
|
|
10
|
+
import { EntityManager, ObjectLiteral } from 'typeorm';
|
|
11
11
|
type ControllerMetadata = {
|
|
12
12
|
name: string;
|
|
13
13
|
methods: string[];
|
|
@@ -45,6 +45,7 @@ export interface TypeOrmEventContext {
|
|
|
45
45
|
metadataName?: string;
|
|
46
46
|
updatedColumns?: string[];
|
|
47
47
|
updatedRelations?: string[];
|
|
48
|
+
manager?: EntityManager;
|
|
48
49
|
}
|
|
49
50
|
export interface ComputedFieldMetadata<TContext = any> {
|
|
50
51
|
moduleName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-registry.d.ts","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACnL,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"solid-registry.d.ts","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-registry.js","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';\nimport { IExtensionUserCreationProvider } from 'src/interfaces';\nimport { User } from 'src/entities/user.entity';\nimport { ComputedFieldTriggerConfig, ComputedFieldValueType } from 'src/dtos/create-field-metadata.dto';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { Locale } from 'src/entities/locale.entity';\nimport { SecurityRule } from 'src/entities/security-rule.entity';\nimport { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';\nimport { IDashboardWidgetDataProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from \"../interfaces\";\nimport { ObjectLiteral } from 'typeorm';\n\ntype ControllerMetadata = {\n name: string;\n methods: string[];\n};\n\nexport enum RESERVED_SOLID_KEYWORDS {\n moduleMetadata = \"moduleMetadata\",\n modelMetadata = \"modelMetadata\",\n fieldMetadata = \"fieldMetadata\",\n dataSource = \"dataSource\",\n repository = \"repository\",\n entityManager = \"entityManager\",\n actionMetadata = \"actionMetadata\",\n emailAttachment = \"emailAttachment\",\n emailTemplate = \"emailTemplate\",\n listOfValues = \"listOfValues\",\n mediaStorageProvider = \"mediaStorageProvider\",\n media = \"media\",\n menuItemMetadata = \"menuItemMetadata\",\n mqMessageQueue = \"mqMessageQueue\",\n mqMessage = \"mqMessage\",\n permissionMetadata = \"permissionMetadata\",\n roleMetadata = \"roleMetadata\",\n securityRule = \"securityRule\",\n setting = \"setting\",\n smsTemplate = \"smsTemplate\",\n userMetadata = \"userMetadata\",\n user = \"user\",\n locale = \"locale\"\n}\n\nexport interface TypeOrmEventContext {\n eventType?: string;\n entity?: ObjectLiteral | undefined;\n databaseEntity?: any;\n entityId?: any;\n metadataName?: string;\n updatedColumns?: string[];\n updatedRelations?: string[];\n}\n\nexport interface ComputedFieldMetadata<TContext = any> {\n moduleName: string; // Name of the module where the computed field is defined\n modelName: string; // Name of the model where the computed field is defined\n fieldName: string; // Name of the field that is computed\n computedFieldValueType: ComputedFieldValueType; // Type of the computed field value (e.g., string, number, etc.)\n computedFieldTriggerConfig: ComputedFieldTriggerConfig[]; // JSON stringified object containing the trigger configuration\n // Example: '{\"models\": [\"User\", \"Product\"], \"operations\": [\"create\", \"update\"]}'\n computedFieldValueProviderName: string; // Name of the provider that computes the field value\n // Example: '{\"contextKey\": \"contextValue\"}'\n computedFieldValueProviderCtxt: TContext; // Context for the computed field value\n eventContext: TypeOrmEventContext;\n}\n\n@Injectable()\nexport class SolidRegistry {\n private readonly logger = new Logger(SolidRegistry.name);\n private extensionUserCreationProvider: InstanceWrapper | null = null;\n private seeders: Set<InstanceWrapper> = new Set();\n private scheduledJobProviders: Set<InstanceWrapper> = new Set();\n private selectionProviders: Set<InstanceWrapper> = new Set();\n private dashboardWidgetDataProviders: Set<InstanceWrapper> = new Set();\n private computedFieldProviders: Set<InstanceWrapper> = new Set();\n private solidDatabaseModules: Set<InstanceWrapper> = new Set();\n private controllers: Set<ControllerMetadata> = new Set();\n private modules: Set<InstanceWrapper> = new Set();\n private securityRules: SecurityRule[] = [];\n private locales: Locale[] = [];\n private computedFieldMetadata: ComputedFieldMetadata[] = [];\n private mailProviders: Set<InstanceWrapper> = new Set();\n private whatsappProviders: Set<InstanceWrapper> = new Set();\n private smsProviders: Set<InstanceWrapper> = new Set();\n private securityRuleConfigProviders: Set<InstanceWrapper> = new Set();\n private errorCodeProviders: Set<InstanceWrapper> = new Set();\n private settingsProviders: Set<InstanceWrapper> = new Set();\n private auditableModels: Set<string> = new Set();\n\n registerExtensionUserCreationProvider(provider: InstanceWrapper): void {\n if (this.extensionUserCreationProvider) {\n this.logger.warn(\n `ExtensionUserCreationProvider already registered by ${this.extensionUserCreationProvider.name}; ignoring ${provider.name}`,\n );\n return;\n }\n this.extensionUserCreationProvider = provider;\n }\n\n getExtensionUserCreationProvider<T extends User = User>(): IExtensionUserCreationProvider<T, any> | null {\n return (this.extensionUserCreationProvider?.instance as IExtensionUserCreationProvider<T, any>) ?? null;\n }\n\n registerErrorCodeProvider(errorCodeProvider: InstanceWrapper): void {\n this.errorCodeProviders.add(errorCodeProvider);\n }\n\n registerWhatsappProvider(whatsappProvider: InstanceWrapper): void {\n this.whatsappProviders.add(whatsappProvider);\n }\n\n registerSmsProvider(smsProvider: InstanceWrapper): void {\n this.smsProviders.add(smsProvider);\n }\n\n registerSecurityRuleConfigProvider(securityRuleConfigProvider: InstanceWrapper): void {\n this.securityRuleConfigProviders.add(securityRuleConfigProvider);\n }\n\n registerMailProvider(mailProvider: InstanceWrapper): void {\n this.mailProviders.add(mailProvider);\n }\n\n registerController(name: string, methodNames: string[]): void {\n this.controllers.add({ name: name, methods: methodNames });\n }\n\n registerControllers(controllers: Set<ControllerMetadata>): void {\n this.controllers = controllers;\n }\n\n registerSeeder(seeder: InstanceWrapper): void {\n this.seeders.add(seeder);\n }\n\n registerSelectionProvider(selectionProvider: InstanceWrapper): void {\n this.selectionProviders.add(selectionProvider);\n }\n\n registerDashboardWidgetDataProvider(provider: InstanceWrapper): void {\n this.dashboardWidgetDataProviders.add(provider);\n }\n\n registerComputedFieldProvider(computedFieldProvider: InstanceWrapper): void {\n this.computedFieldProviders.add(computedFieldProvider);\n }\n\n registerScheduledJobProvider(scheduledJobProvider: InstanceWrapper): void {\n this.scheduledJobProviders.add(scheduledJobProvider);\n }\n\n registerSolidDatabaseModule(solidDatabaseModule: InstanceWrapper): void {\n this.solidDatabaseModules.add(solidDatabaseModule);\n }\n\n registerModules(modules: InstanceWrapper[]): void {\n this.modules = new Set(modules);\n }\n\n registerSettingsProvider(provider: InstanceWrapper) {\n this.settingsProviders.add(provider);\n }\n\n registerSecurityRules(securityRules: SecurityRule[]) {\n this.securityRules = securityRules;\n }\n\n registerlocales(locales: Locale[]) {\n this.locales = locales;\n }\n\n registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {\n this.computedFieldMetadata = computedFieldMetadata;\n }\n\n getSettingsProviders(): InstanceWrapper[] {\n return Array.from(this.settingsProviders);\n }\n\n getSettingsProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {\n const settingsProviders = this.getSettingsProviders();\n\n for (let i = 0; i < settingsProviders.length; i++) {\n const settingsProvider = settingsProviders[i];\n if (settingsProvider.instance.name() === name) {\n return settingsProvider.instance;\n }\n }\n }\n\n getMailProviders(): Array<InstanceWrapper> {\n return Array.from(this.mailProviders);\n }\n\n getWhatsappProviders(): Array<InstanceWrapper> {\n return Array.from(this.whatsappProviders);\n }\n\n getSmsProviders(): Array<InstanceWrapper> {\n return Array.from(this.smsProviders);\n }\n\n getSecurityRuleConfigProviders(): Array<InstanceWrapper> {\n return Array.from(this.securityRuleConfigProviders);\n }\n\n getSecurityRuleConfigProviderInstance(name: string): ISecurityRuleConfigProvider {\n const securityRuleConfigProviders = this.getSecurityRuleConfigProviders();\n\n for (let i = 0; i < securityRuleConfigProviders.length; i++) {\n const securityRuleConfigProvider = securityRuleConfigProviders[i];\n if (securityRuleConfigProvider.name === name) {\n return securityRuleConfigProvider.instance;\n }\n }\n }\n\n getSeeders(): Array<InstanceWrapper> {\n return Array.from(this.seeders);\n }\n\n getControllers(): ControllerMetadata[] {\n return Array.from(this.controllers);\n }\n\n getSelectionProviders(): Array<InstanceWrapper> {\n return Array.from(this.selectionProviders);\n }\n\n getDashboardWidgetDataProviders(): Array<InstanceWrapper> {\n return Array.from(this.dashboardWidgetDataProviders);\n }\n\n getSelectionProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {\n const selectionProviders = this.getSelectionProviders();\n\n for (let i = 0; i < selectionProviders.length; i++) {\n const selectionProvider = selectionProviders[i];\n if (selectionProvider.instance.name() === name) {\n return selectionProvider.instance;\n }\n }\n }\n\n getDashboardWidgetDataProviderInstance(name: string): IDashboardWidgetDataProvider | undefined {\n const providers = this.getDashboardWidgetDataProviders();\n for (let i = 0; i < providers.length; i++) {\n const provider = providers[i];\n if (provider?.instance?.name?.() === name || provider?.name === name) {\n return provider.instance as IDashboardWidgetDataProvider;\n }\n }\n return undefined;\n }\n\n getErrorCodeProviders(): Array<InstanceWrapper> {\n return Array.from(this.errorCodeProviders);\n }\n\n getErrorCodeProviderInstance(name: string): IErrorCodeProvider | undefined {\n const providers = this.getErrorCodeProviders();\n for (let i = 0; i < providers.length; i++) {\n const p = providers[i];\n if (p.instance?.name?.() === name) return p.instance as IErrorCodeProvider;\n }\n return undefined;\n }\n\n getComputedFieldProviders(): Array<InstanceWrapper> {\n return Array.from(this.computedFieldProviders);\n }\n\n getScheduledJobProviders(): Array<InstanceWrapper> {\n return Array.from(this.scheduledJobProviders);\n }\n\n getScheduledJobProviderInstance(name: string): IScheduledJob {\n const scheduledJobProviders = this.getScheduledJobProviders();\n\n for (let i = 0; i < scheduledJobProviders.length; i++) {\n const scheduledJobProvider = scheduledJobProviders[i];\n if (scheduledJobProvider.name === name) {\n return scheduledJobProvider.instance;\n }\n }\n }\n\n getComputedFieldProvider(name: string): InstanceWrapper {\n const provider = this.getComputedFieldProviders().filter((provider) => provider.name === name).pop();\n if (!provider) {\n throw new Error(`Computed Field Provider with name ${name} not found`);\n }\n return provider\n }\n\n getSolidDatabaseModules(): Array<InstanceWrapper> {\n return Array.from(this.solidDatabaseModules);\n }\n\n getDefaultSolidDatabaseModule(): ISolidDatabaseModule {\n const solidDatabaseModulesAsArray = Array.from(this.solidDatabaseModules);\n for (let i = 0; i < solidDatabaseModulesAsArray.length; i++) {\n const solidDatabaseModule = solidDatabaseModulesAsArray[i];\n const solidDatabaseModuleInstance: ISolidDatabaseModule = solidDatabaseModule.instance;\n if (solidDatabaseModuleInstance.name() === 'default') {\n return solidDatabaseModuleInstance;\n }\n }\n }\n\n getModules(): Array<InstanceWrapper> {\n return Array.from(this.modules);\n }\n\n getModule(name: string): InstanceWrapper {\n const module = this.getModules().filter((module) => module.name === name).pop();\n return module\n }\n\n getComputedFieldMetadata(): ComputedFieldMetadata[] {\n return this.computedFieldMetadata;\n }\n\n //TODO:getlocales from locale model and return default locale where isDefault:true \n getDefaultLocale(): Locale | null {\n return this.locales.find(locale => locale.isDefault === true) || null;\n }\n\n getSecurityRules(modelSingularName: string, roleNames: string[] = []): SecurityRule[] {\n // If no role is provided, return all security rules for the model\n if (roleNames.length === 0) {\n return this.securityRules.filter((rule) => rule.modelMetadata.singularName === modelSingularName);\n }\n // If roles are provided, filter the security rules by model and roles\n return this.securityRules.filter((rule) => {\n return rule.modelMetadata.singularName === modelSingularName && roleNames.includes(rule.role.name);\n });\n }\n\n registerAuditableModels(models: Set<string>): void {\n this.auditableModels = models;\n }\n\n isAuditableModel(modelSingularName: string): boolean {\n return this.auditableModels.has(modelSingularName.toLowerCase());\n }\n\n getCommonEntityKeys(): (keyof CommonEntity | 'createdBy' | 'updatedBy')[] {\n return ['id', 'createdAt', 'updatedAt', 'deletedAt', 'createdBy', 'updatedBy', 'deletedTracker', 'localeName', 'defaultEntityLocaleId', 'publishedAt'];\n // return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];\n }\n\n\n getAllSettingsProviderInstance<T extends ISelectionProviderContext>(): ISelectionProvider<T> {\n const settingsProviders = this.getSettingsProviders();\n\n for (let i = 0; i < settingsProviders.length; i++) {\n const settingsProvider = settingsProviders[i];\n return settingsProvider.instance;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"solid-registry.js","sourceRoot":"","sources":["../../src/helpers/solid-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';\nimport { IExtensionUserCreationProvider } from 'src/interfaces';\nimport { User } from 'src/entities/user.entity';\nimport { ComputedFieldTriggerConfig, ComputedFieldValueType } from 'src/dtos/create-field-metadata.dto';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { Locale } from 'src/entities/locale.entity';\nimport { SecurityRule } from 'src/entities/security-rule.entity';\nimport { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';\nimport { IDashboardWidgetDataProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from \"../interfaces\";\nimport { EntityManager, ObjectLiteral } from 'typeorm';\n\ntype ControllerMetadata = {\n name: string;\n methods: string[];\n};\n\nexport enum RESERVED_SOLID_KEYWORDS {\n moduleMetadata = \"moduleMetadata\",\n modelMetadata = \"modelMetadata\",\n fieldMetadata = \"fieldMetadata\",\n dataSource = \"dataSource\",\n repository = \"repository\",\n entityManager = \"entityManager\",\n actionMetadata = \"actionMetadata\",\n emailAttachment = \"emailAttachment\",\n emailTemplate = \"emailTemplate\",\n listOfValues = \"listOfValues\",\n mediaStorageProvider = \"mediaStorageProvider\",\n media = \"media\",\n menuItemMetadata = \"menuItemMetadata\",\n mqMessageQueue = \"mqMessageQueue\",\n mqMessage = \"mqMessage\",\n permissionMetadata = \"permissionMetadata\",\n roleMetadata = \"roleMetadata\",\n securityRule = \"securityRule\",\n setting = \"setting\",\n smsTemplate = \"smsTemplate\",\n userMetadata = \"userMetadata\",\n user = \"user\",\n locale = \"locale\"\n}\n\nexport interface TypeOrmEventContext {\n eventType?: string;\n entity?: ObjectLiteral | undefined;\n databaseEntity?: any;\n entityId?: any;\n metadataName?: string;\n updatedColumns?: string[];\n updatedRelations?: string[];\n // Transaction-bound EntityManager from the originating TypeORM event. Providers that\n // need to query the DB during a pre-compute hook must use this (not an injected\n // DataSource/EntityManager) so the query runs on the active transaction's connection.\n // On single-threaded embedded engines (PGlite), a second connection mid-transaction\n // can deadlock.\n manager?: EntityManager;\n}\n\nexport interface ComputedFieldMetadata<TContext = any> {\n moduleName: string; // Name of the module where the computed field is defined\n modelName: string; // Name of the model where the computed field is defined\n fieldName: string; // Name of the field that is computed\n computedFieldValueType: ComputedFieldValueType; // Type of the computed field value (e.g., string, number, etc.)\n computedFieldTriggerConfig: ComputedFieldTriggerConfig[]; // JSON stringified object containing the trigger configuration\n // Example: '{\"models\": [\"User\", \"Product\"], \"operations\": [\"create\", \"update\"]}'\n computedFieldValueProviderName: string; // Name of the provider that computes the field value\n // Example: '{\"contextKey\": \"contextValue\"}'\n computedFieldValueProviderCtxt: TContext; // Context for the computed field value\n eventContext: TypeOrmEventContext;\n}\n\n@Injectable()\nexport class SolidRegistry {\n private readonly logger = new Logger(SolidRegistry.name);\n private extensionUserCreationProvider: InstanceWrapper | null = null;\n private seeders: Set<InstanceWrapper> = new Set();\n private scheduledJobProviders: Set<InstanceWrapper> = new Set();\n private selectionProviders: Set<InstanceWrapper> = new Set();\n private dashboardWidgetDataProviders: Set<InstanceWrapper> = new Set();\n private computedFieldProviders: Set<InstanceWrapper> = new Set();\n private solidDatabaseModules: Set<InstanceWrapper> = new Set();\n private controllers: Set<ControllerMetadata> = new Set();\n private modules: Set<InstanceWrapper> = new Set();\n private securityRules: SecurityRule[] = [];\n private locales: Locale[] = [];\n private computedFieldMetadata: ComputedFieldMetadata[] = [];\n private mailProviders: Set<InstanceWrapper> = new Set();\n private whatsappProviders: Set<InstanceWrapper> = new Set();\n private smsProviders: Set<InstanceWrapper> = new Set();\n private securityRuleConfigProviders: Set<InstanceWrapper> = new Set();\n private errorCodeProviders: Set<InstanceWrapper> = new Set();\n private settingsProviders: Set<InstanceWrapper> = new Set();\n private auditableModels: Set<string> = new Set();\n\n registerExtensionUserCreationProvider(provider: InstanceWrapper): void {\n if (this.extensionUserCreationProvider) {\n this.logger.warn(\n `ExtensionUserCreationProvider already registered by ${this.extensionUserCreationProvider.name}; ignoring ${provider.name}`,\n );\n return;\n }\n this.extensionUserCreationProvider = provider;\n }\n\n getExtensionUserCreationProvider<T extends User = User>(): IExtensionUserCreationProvider<T, any> | null {\n return (this.extensionUserCreationProvider?.instance as IExtensionUserCreationProvider<T, any>) ?? null;\n }\n\n registerErrorCodeProvider(errorCodeProvider: InstanceWrapper): void {\n this.errorCodeProviders.add(errorCodeProvider);\n }\n\n registerWhatsappProvider(whatsappProvider: InstanceWrapper): void {\n this.whatsappProviders.add(whatsappProvider);\n }\n\n registerSmsProvider(smsProvider: InstanceWrapper): void {\n this.smsProviders.add(smsProvider);\n }\n\n registerSecurityRuleConfigProvider(securityRuleConfigProvider: InstanceWrapper): void {\n this.securityRuleConfigProviders.add(securityRuleConfigProvider);\n }\n\n registerMailProvider(mailProvider: InstanceWrapper): void {\n this.mailProviders.add(mailProvider);\n }\n\n registerController(name: string, methodNames: string[]): void {\n this.controllers.add({ name: name, methods: methodNames });\n }\n\n registerControllers(controllers: Set<ControllerMetadata>): void {\n this.controllers = controllers;\n }\n\n registerSeeder(seeder: InstanceWrapper): void {\n this.seeders.add(seeder);\n }\n\n registerSelectionProvider(selectionProvider: InstanceWrapper): void {\n this.selectionProviders.add(selectionProvider);\n }\n\n registerDashboardWidgetDataProvider(provider: InstanceWrapper): void {\n this.dashboardWidgetDataProviders.add(provider);\n }\n\n registerComputedFieldProvider(computedFieldProvider: InstanceWrapper): void {\n this.computedFieldProviders.add(computedFieldProvider);\n }\n\n registerScheduledJobProvider(scheduledJobProvider: InstanceWrapper): void {\n this.scheduledJobProviders.add(scheduledJobProvider);\n }\n\n registerSolidDatabaseModule(solidDatabaseModule: InstanceWrapper): void {\n this.solidDatabaseModules.add(solidDatabaseModule);\n }\n\n registerModules(modules: InstanceWrapper[]): void {\n this.modules = new Set(modules);\n }\n\n registerSettingsProvider(provider: InstanceWrapper) {\n this.settingsProviders.add(provider);\n }\n\n registerSecurityRules(securityRules: SecurityRule[]) {\n this.securityRules = securityRules;\n }\n\n registerlocales(locales: Locale[]) {\n this.locales = locales;\n }\n\n registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {\n this.computedFieldMetadata = computedFieldMetadata;\n }\n\n getSettingsProviders(): InstanceWrapper[] {\n return Array.from(this.settingsProviders);\n }\n\n getSettingsProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {\n const settingsProviders = this.getSettingsProviders();\n\n for (let i = 0; i < settingsProviders.length; i++) {\n const settingsProvider = settingsProviders[i];\n if (settingsProvider.instance.name() === name) {\n return settingsProvider.instance;\n }\n }\n }\n\n getMailProviders(): Array<InstanceWrapper> {\n return Array.from(this.mailProviders);\n }\n\n getWhatsappProviders(): Array<InstanceWrapper> {\n return Array.from(this.whatsappProviders);\n }\n\n getSmsProviders(): Array<InstanceWrapper> {\n return Array.from(this.smsProviders);\n }\n\n getSecurityRuleConfigProviders(): Array<InstanceWrapper> {\n return Array.from(this.securityRuleConfigProviders);\n }\n\n getSecurityRuleConfigProviderInstance(name: string): ISecurityRuleConfigProvider {\n const securityRuleConfigProviders = this.getSecurityRuleConfigProviders();\n\n for (let i = 0; i < securityRuleConfigProviders.length; i++) {\n const securityRuleConfigProvider = securityRuleConfigProviders[i];\n if (securityRuleConfigProvider.name === name) {\n return securityRuleConfigProvider.instance;\n }\n }\n }\n\n getSeeders(): Array<InstanceWrapper> {\n return Array.from(this.seeders);\n }\n\n getControllers(): ControllerMetadata[] {\n return Array.from(this.controllers);\n }\n\n getSelectionProviders(): Array<InstanceWrapper> {\n return Array.from(this.selectionProviders);\n }\n\n getDashboardWidgetDataProviders(): Array<InstanceWrapper> {\n return Array.from(this.dashboardWidgetDataProviders);\n }\n\n getSelectionProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {\n const selectionProviders = this.getSelectionProviders();\n\n for (let i = 0; i < selectionProviders.length; i++) {\n const selectionProvider = selectionProviders[i];\n if (selectionProvider.instance.name() === name) {\n return selectionProvider.instance;\n }\n }\n }\n\n getDashboardWidgetDataProviderInstance(name: string): IDashboardWidgetDataProvider | undefined {\n const providers = this.getDashboardWidgetDataProviders();\n for (let i = 0; i < providers.length; i++) {\n const provider = providers[i];\n if (provider?.instance?.name?.() === name || provider?.name === name) {\n return provider.instance as IDashboardWidgetDataProvider;\n }\n }\n return undefined;\n }\n\n getErrorCodeProviders(): Array<InstanceWrapper> {\n return Array.from(this.errorCodeProviders);\n }\n\n getErrorCodeProviderInstance(name: string): IErrorCodeProvider | undefined {\n const providers = this.getErrorCodeProviders();\n for (let i = 0; i < providers.length; i++) {\n const p = providers[i];\n if (p.instance?.name?.() === name) return p.instance as IErrorCodeProvider;\n }\n return undefined;\n }\n\n getComputedFieldProviders(): Array<InstanceWrapper> {\n return Array.from(this.computedFieldProviders);\n }\n\n getScheduledJobProviders(): Array<InstanceWrapper> {\n return Array.from(this.scheduledJobProviders);\n }\n\n getScheduledJobProviderInstance(name: string): IScheduledJob {\n const scheduledJobProviders = this.getScheduledJobProviders();\n\n for (let i = 0; i < scheduledJobProviders.length; i++) {\n const scheduledJobProvider = scheduledJobProviders[i];\n if (scheduledJobProvider.name === name) {\n return scheduledJobProvider.instance;\n }\n }\n }\n\n getComputedFieldProvider(name: string): InstanceWrapper {\n const provider = this.getComputedFieldProviders().filter((provider) => provider.name === name).pop();\n if (!provider) {\n throw new Error(`Computed Field Provider with name ${name} not found`);\n }\n return provider\n }\n\n getSolidDatabaseModules(): Array<InstanceWrapper> {\n return Array.from(this.solidDatabaseModules);\n }\n\n getDefaultSolidDatabaseModule(): ISolidDatabaseModule {\n const solidDatabaseModulesAsArray = Array.from(this.solidDatabaseModules);\n for (let i = 0; i < solidDatabaseModulesAsArray.length; i++) {\n const solidDatabaseModule = solidDatabaseModulesAsArray[i];\n const solidDatabaseModuleInstance: ISolidDatabaseModule = solidDatabaseModule.instance;\n if (solidDatabaseModuleInstance.name() === 'default') {\n return solidDatabaseModuleInstance;\n }\n }\n }\n\n getModules(): Array<InstanceWrapper> {\n return Array.from(this.modules);\n }\n\n getModule(name: string): InstanceWrapper {\n const module = this.getModules().filter((module) => module.name === name).pop();\n return module\n }\n\n getComputedFieldMetadata(): ComputedFieldMetadata[] {\n return this.computedFieldMetadata;\n }\n\n //TODO:getlocales from locale model and return default locale where isDefault:true \n getDefaultLocale(): Locale | null {\n return this.locales.find(locale => locale.isDefault === true) || null;\n }\n\n getSecurityRules(modelSingularName: string, roleNames: string[] = []): SecurityRule[] {\n // If no role is provided, return all security rules for the model\n if (roleNames.length === 0) {\n return this.securityRules.filter((rule) => rule.modelMetadata.singularName === modelSingularName);\n }\n // If roles are provided, filter the security rules by model and roles\n return this.securityRules.filter((rule) => {\n return rule.modelMetadata.singularName === modelSingularName && roleNames.includes(rule.role.name);\n });\n }\n\n registerAuditableModels(models: Set<string>): void {\n this.auditableModels = models;\n }\n\n isAuditableModel(modelSingularName: string): boolean {\n return this.auditableModels.has(modelSingularName.toLowerCase());\n }\n\n getCommonEntityKeys(): (keyof CommonEntity | 'createdBy' | 'updatedBy')[] {\n return ['id', 'createdAt', 'updatedAt', 'deletedAt', 'createdBy', 'updatedBy', 'deletedTracker', 'localeName', 'defaultEntityLocaleId', 'publishedAt'];\n // return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];\n }\n\n\n getAllSettingsProviderInstance<T extends ISelectionProviderContext>(): ISelectionProvider<T> {\n const settingsProviders = this.getSettingsProviders();\n\n for (let i = 0; i < settingsProviders.length; i++) {\n const settingsProvider = settingsProviders[i];\n return settingsProvider.instance;\n }\n }\n}\n"]}
|
|
@@ -20,6 +20,7 @@ import { SavedFiltersRepository } from '../repository/saved-filters.repository';
|
|
|
20
20
|
import { ScheduledJobRepository } from '../repository/scheduled-job.repository';
|
|
21
21
|
import { SettingRepository } from '../repository/setting.repository';
|
|
22
22
|
import { ModelSequenceRepository } from '../repository/model-sequence.repository';
|
|
23
|
+
import { LocaleRepository } from '../repository/locale.repository';
|
|
23
24
|
export declare class ModuleMetadataSeederService {
|
|
24
25
|
private readonly moduleMetadataService;
|
|
25
26
|
private readonly modelMetadataService;
|
|
@@ -43,6 +44,7 @@ export declare class ModuleMetadataSeederService {
|
|
|
43
44
|
readonly savedFiltersRepo: SavedFiltersRepository;
|
|
44
45
|
readonly dataSource: DataSource;
|
|
45
46
|
readonly modelSequenceRepo: ModelSequenceRepository;
|
|
47
|
+
readonly localeRepo: LocaleRepository;
|
|
46
48
|
private readonly logger;
|
|
47
49
|
private readonly seedTimingTag;
|
|
48
50
|
private readonly permissionSeedBatchSize;
|
|
@@ -53,7 +55,7 @@ export declare class ModuleMetadataSeederService {
|
|
|
53
55
|
private readonly viewLookupCache;
|
|
54
56
|
private readonly mediaStorageProviderLookupCache;
|
|
55
57
|
private enablePruning;
|
|
56
|
-
constructor(moduleMetadataService: ModuleMetadataService, modelMetadataService: ModelMetadataService, fieldMetadataService: FieldMetadataService, mediaStorageProviderMetadataService: MediaStorageProviderMetadataService, roleService: RoleMetadataService, userService: UserService, authenticationService: AuthenticationService, solidActionService: ActionMetadataService, solidViewService: ViewMetadataService, emailTemplateService: EmailTemplateService, smsTemplateService: SmsTemplateService, listOfValuesService: ListOfValuesService, permissionRepo: PermissionMetadataRepository, solidRegistry: SolidRegistry, settingService: SettingService, settingsRepo: SettingRepository, securityRuleRepo: SecurityRuleRepository, systemFieldsSeederService: SystemFieldsSeederService, scheduledJobRepository: ScheduledJobRepository, savedFiltersRepo: SavedFiltersRepository, dataSource: DataSource, modelSequenceRepo: ModelSequenceRepository);
|
|
58
|
+
constructor(moduleMetadataService: ModuleMetadataService, modelMetadataService: ModelMetadataService, fieldMetadataService: FieldMetadataService, mediaStorageProviderMetadataService: MediaStorageProviderMetadataService, roleService: RoleMetadataService, userService: UserService, authenticationService: AuthenticationService, solidActionService: ActionMetadataService, solidViewService: ViewMetadataService, emailTemplateService: EmailTemplateService, smsTemplateService: SmsTemplateService, listOfValuesService: ListOfValuesService, permissionRepo: PermissionMetadataRepository, solidRegistry: SolidRegistry, settingService: SettingService, settingsRepo: SettingRepository, securityRuleRepo: SecurityRuleRepository, systemFieldsSeederService: SystemFieldsSeederService, scheduledJobRepository: ScheduledJobRepository, savedFiltersRepo: SavedFiltersRepository, dataSource: DataSource, modelSequenceRepo: ModelSequenceRepository, localeRepo: LocaleRepository);
|
|
57
59
|
seed(conf?: any): Promise<void>;
|
|
58
60
|
private buildTimingPrefix;
|
|
59
61
|
private formatDuration;
|
|
@@ -66,6 +68,7 @@ export declare class ModuleMetadataSeederService {
|
|
|
66
68
|
private seedScheduledJobs;
|
|
67
69
|
private seedSavedFilters;
|
|
68
70
|
private seedListOfValues;
|
|
71
|
+
private seedLocales;
|
|
69
72
|
private setupDefaultRolesWithPermissions;
|
|
70
73
|
private seedSecurityRules;
|
|
71
74
|
private seedDefaultSettings;
|
|
@@ -112,6 +115,7 @@ export declare class ModuleMetadataSeederService {
|
|
|
112
115
|
private handleSeedListOfValues;
|
|
113
116
|
private handleSeedScheduledJobs;
|
|
114
117
|
private handleSeedSavedFilters;
|
|
118
|
+
private handleSeedLocales;
|
|
115
119
|
private validateSavedFilterQueryJsonWrapper;
|
|
116
120
|
private handleSeedModelSequences;
|
|
117
121
|
private pruneModelSequences;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-metadata-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAkB,MAAM,SAAS,CAAC;AAIrD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,mCAAmC,EAAE,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"module-metadata-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,7 @@ const saved_filters_repository_1 = require("../repository/saved-filters.reposito
|
|
|
84
84
|
const scheduled_job_repository_1 = require("../repository/scheduled-job.repository");
|
|
85
85
|
const setting_repository_1 = require("../repository/setting.repository");
|
|
86
86
|
const model_sequence_repository_1 = require("../repository/model-sequence.repository");
|
|
87
|
+
const locale_repository_1 = require("../repository/locale.repository");
|
|
87
88
|
const model_sequence_entity_1 = require("../entities/model-sequence.entity");
|
|
88
89
|
const saved_filters_entity_1 = require("../entities/saved-filters.entity");
|
|
89
90
|
const scheduled_job_entity_1 = require("../entities/scheduled-job.entity");
|
|
@@ -94,7 +95,7 @@ const model_metadata_entity_1 = require("../entities/model-metadata.entity");
|
|
|
94
95
|
const permission_metadata_entity_1 = require("../entities/permission-metadata.entity");
|
|
95
96
|
const view_metadata_entity_1 = require("../entities/view-metadata.entity");
|
|
96
97
|
let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMetadataSeederService {
|
|
97
|
-
constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidViewService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo) {
|
|
98
|
+
constructor(moduleMetadataService, modelMetadataService, fieldMetadataService, mediaStorageProviderMetadataService, roleService, userService, authenticationService, solidActionService, solidViewService, emailTemplateService, smsTemplateService, listOfValuesService, permissionRepo, solidRegistry, settingService, settingsRepo, securityRuleRepo, systemFieldsSeederService, scheduledJobRepository, savedFiltersRepo, dataSource, modelSequenceRepo, localeRepo) {
|
|
98
99
|
this.moduleMetadataService = moduleMetadataService;
|
|
99
100
|
this.modelMetadataService = modelMetadataService;
|
|
100
101
|
this.fieldMetadataService = fieldMetadataService;
|
|
@@ -117,6 +118,7 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
117
118
|
this.savedFiltersRepo = savedFiltersRepo;
|
|
118
119
|
this.dataSource = dataSource;
|
|
119
120
|
this.modelSequenceRepo = modelSequenceRepo;
|
|
121
|
+
this.localeRepo = localeRepo;
|
|
120
122
|
this.logger = new common_1.Logger(ModuleMetadataSeederService_1.name);
|
|
121
123
|
this.seedTimingTag = 'SEED_TIMING';
|
|
122
124
|
this.permissionSeedBatchSize = 500;
|
|
@@ -181,6 +183,10 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
181
183
|
this.logger.log(`Seeding Module / Model / Fields`);
|
|
182
184
|
const moduleModelFieldCounts = await this.timeOperation('seed-module-model-fields', () => this.seedModuleModelFields(moduleMetadata), { moduleName: moduleMetadata.name, component: 'module-model-fields' });
|
|
183
185
|
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
|
|
186
|
+
currentStep = 'seedLocales';
|
|
187
|
+
this.logger.log(`Seeding Locales`);
|
|
188
|
+
const localeCounts = await this.seedLocales(overallMetadata);
|
|
189
|
+
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Locales', localeCounts)}`);
|
|
184
190
|
currentStep = 'seedPermissions';
|
|
185
191
|
this.logger.log(`Seeding Permissions`);
|
|
186
192
|
const permissionCounts = await this.timeOperation('seed-permissions', () => this.seedPermissions(overallMetadata), { moduleName: moduleMetadata.name, component: 'permissions' });
|
|
@@ -401,6 +407,19 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
401
407
|
});
|
|
402
408
|
return { pruned, upserted: listOfValues.length };
|
|
403
409
|
}
|
|
410
|
+
async seedLocales(overallMetadata) {
|
|
411
|
+
this.logger.debug(`[Start] Processing locales`);
|
|
412
|
+
const locales = this.getSeedArray(overallMetadata?.locales);
|
|
413
|
+
const existingLocales = await this.localeRepo.find();
|
|
414
|
+
if (existingLocales.length > 0) {
|
|
415
|
+
this.solidRegistry.registerlocales(existingLocales);
|
|
416
|
+
this.logger.debug(`[End] Skipping locale seed because locales already exist`);
|
|
417
|
+
return { pruned: 0, upserted: 0 };
|
|
418
|
+
}
|
|
419
|
+
await this.handleSeedLocales(locales);
|
|
420
|
+
this.logger.debug(`[End] Processing locales`);
|
|
421
|
+
return { pruned: 0, upserted: locales.length };
|
|
422
|
+
}
|
|
404
423
|
async setupDefaultRolesWithPermissions() {
|
|
405
424
|
this.logger.debug(`About to add all permissions to the Admin role`);
|
|
406
425
|
await this.timeOperation('role-add-all-permissions', () => this.roleService.addAllPermissionsToRole(create_role_metadata_dto_1.ADMIN_ROLE_NAME), {
|
|
@@ -504,7 +523,11 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
504
523
|
const roles = this.getSeedArray(overallMetadata?.roles);
|
|
505
524
|
await this.timeOperation('roles-create-if-not-exists', () => this.roleService.createRolesIfNotExists(roles
|
|
506
525
|
.filter((role) => role?.name)
|
|
507
|
-
.map((role) => ({
|
|
526
|
+
.map((role) => ({
|
|
527
|
+
name: role.name,
|
|
528
|
+
moduleId: role.moduleId,
|
|
529
|
+
moduleUserKey: role.moduleUserKey ?? overallMetadata?.moduleMetadata?.name,
|
|
530
|
+
}))), {
|
|
508
531
|
moduleName: overallMetadata?.moduleMetadata?.name,
|
|
509
532
|
component: 'roles',
|
|
510
533
|
serviceCall: 'roleService.createRolesIfNotExists',
|
|
@@ -1475,6 +1498,40 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
|
|
|
1475
1498
|
});
|
|
1476
1499
|
}
|
|
1477
1500
|
}
|
|
1501
|
+
async handleSeedLocales(localesDto) {
|
|
1502
|
+
if (!localesDto || localesDto.length === 0) {
|
|
1503
|
+
this.logger.debug(`No locales found to seed`);
|
|
1504
|
+
return;
|
|
1505
|
+
}
|
|
1506
|
+
for (const dto of localesDto) {
|
|
1507
|
+
if (dto.isDefault) {
|
|
1508
|
+
const existingDefaultLocales = await this.localeRepo.find({
|
|
1509
|
+
where: {
|
|
1510
|
+
isDefault: true,
|
|
1511
|
+
},
|
|
1512
|
+
});
|
|
1513
|
+
for (const locale of existingDefaultLocales) {
|
|
1514
|
+
if (locale.locale !== dto.locale) {
|
|
1515
|
+
await this.localeRepo.save({
|
|
1516
|
+
...locale,
|
|
1517
|
+
isDefault: false,
|
|
1518
|
+
});
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
const existingLocale = await this.localeRepo.findOne({
|
|
1523
|
+
where: {
|
|
1524
|
+
locale: dto.locale,
|
|
1525
|
+
},
|
|
1526
|
+
});
|
|
1527
|
+
await this.localeRepo.save(this.localeRepo.create({
|
|
1528
|
+
...existingLocale,
|
|
1529
|
+
...dto,
|
|
1530
|
+
}));
|
|
1531
|
+
}
|
|
1532
|
+
const locales = await this.localeRepo.find();
|
|
1533
|
+
this.solidRegistry.registerlocales(locales);
|
|
1534
|
+
}
|
|
1478
1535
|
validateSavedFilterQueryJsonWrapper(dto) {
|
|
1479
1536
|
const filterName = dto?.name ?? '<unnamed>';
|
|
1480
1537
|
const filterQueryJson = dto?.filterQueryJson;
|
|
@@ -2036,6 +2093,7 @@ exports.ModuleMetadataSeederService = ModuleMetadataSeederService = ModuleMetada
|
|
|
2036
2093
|
scheduled_job_repository_1.ScheduledJobRepository,
|
|
2037
2094
|
saved_filters_repository_1.SavedFiltersRepository,
|
|
2038
2095
|
typeorm_1.DataSource,
|
|
2039
|
-
model_sequence_repository_1.ModelSequenceRepository
|
|
2096
|
+
model_sequence_repository_1.ModelSequenceRepository,
|
|
2097
|
+
locale_repository_1.LocaleRepository])
|
|
2040
2098
|
], ModuleMetadataSeederService);
|
|
2041
2099
|
//# sourceMappingURL=module-metadata-seeder.service.js.map
|