@solidxai/core 0.1.11-beta.0 → 0.1.11-beta.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.
Files changed (51) hide show
  1. package/dist/repository/scheduled-job.repository.d.ts +3 -0
  2. package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
  3. package/dist/repository/scheduled-job.repository.js +60 -0
  4. package/dist/repository/scheduled-job.repository.js.map +1 -1
  5. package/dist/seeders/module-metadata-seeder.service.d.ts +32 -1
  6. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  7. package/dist/seeders/module-metadata-seeder.service.js +1011 -230
  8. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  9. package/dist/services/action-metadata.service.d.ts +7 -0
  10. package/dist/services/action-metadata.service.d.ts.map +1 -1
  11. package/dist/services/action-metadata.service.js +76 -3
  12. package/dist/services/action-metadata.service.js.map +1 -1
  13. package/dist/services/role-metadata.service.d.ts +4 -0
  14. package/dist/services/role-metadata.service.d.ts.map +1 -1
  15. package/dist/services/role-metadata.service.js +72 -31
  16. package/dist/services/role-metadata.service.js.map +1 -1
  17. package/dist/services/view-metadata.service.d.ts +6 -0
  18. package/dist/services/view-metadata.service.d.ts.map +1 -1
  19. package/dist/services/view-metadata.service.js +66 -1
  20. package/dist/services/view-metadata.service.js.map +1 -1
  21. package/dist-tests/api/authenticate.spec.js +119 -0
  22. package/dist-tests/api/authenticate.spec.js.map +1 -0
  23. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
  24. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
  25. package/dist-tests/api/ping.spec.js +21 -0
  26. package/dist-tests/api/ping.spec.js.map +1 -0
  27. package/dist-tests/helpers/auth.js +41 -0
  28. package/dist-tests/helpers/auth.js.map +1 -0
  29. package/dist-tests/helpers/env.js +11 -0
  30. package/dist-tests/helpers/env.js.map +1 -0
  31. package/docs/agent-hub-grooming.md +301 -0
  32. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
  33. package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
  34. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
  35. package/docs/datasource-introspection-ddl-analysis.md +326 -0
  36. package/docs/datasource-introspection-implementation-plan.md +306 -0
  37. package/docs/grouping-enhancements.md +89 -0
  38. package/docs/java-spring/README.md +3 -0
  39. package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
  40. package/docs/module-package-import-handoff.md +691 -0
  41. package/docs/seed-changes.md +65 -0
  42. package/docs/test-data-workflow.md +200 -0
  43. package/docs/type-declaration-import-issue.md +24 -0
  44. package/package.json +1 -1
  45. package/src/repository/scheduled-job.repository.ts +73 -0
  46. package/src/seeders/module-metadata-seeder.service.ts +1223 -262
  47. package/src/services/action-metadata.service.ts +87 -2
  48. package/src/services/role-metadata.service.ts +86 -47
  49. package/src/services/view-metadata.service.ts +79 -1
  50. package/.claude/settings.local.json +0 -15
  51. package/src/services/1.js +0 -6
@@ -9,6 +9,9 @@ export declare class ScheduledJobRepository extends SolidBaseRepository<Schedule
9
9
  readonly requestContextService: RequestContextService;
10
10
  readonly securityRuleRepository: SecurityRuleRepository;
11
11
  constructor(dataSource: DataSource, requestContextService: RequestContextService, securityRuleRepository: SecurityRuleRepository);
12
+ private normalizeComparableValue;
13
+ private areValuesDifferent;
14
+ private hasChanges;
12
15
  toDto(scheduledJob: ScheduledJob): Promise<CreateScheduledJobDto>;
13
16
  upsertWithDto(dto: CreateScheduledJobDto): Promise<ScheduledJob>;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-job.repository.d.ts","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAmB9D,qBACa,sBAAuB,SAAQ,mBAAmB,CAAC,YAAY,CAAC;IAErE,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;gBAF9C,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB;IAQvD,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqCjE,aAAa,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;CA4BvE"}
1
+ {"version":3,"file":"scheduled-job.repository.d.ts","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAmB9D,qBACa,sBAAuB,SAAQ,mBAAmB,CAAC,YAAY,CAAC;IAErE,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;gBAF9C,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB;IAK7D,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;IAkBZ,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqCjE,aAAa,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;CAoCvE"}
@@ -24,6 +24,59 @@ let ScheduledJobRepository = class ScheduledJobRepository extends solid_base_rep
24
24
  this.requestContextService = requestContextService;
25
25
  this.securityRuleRepository = securityRuleRepository;
26
26
  }
27
+ normalizeComparableValue(value) {
28
+ if (value instanceof Date) {
29
+ return value.toISOString();
30
+ }
31
+ if (typeof value === "string") {
32
+ const trimmedValue = value.trim();
33
+ if ((trimmedValue.startsWith("{") && trimmedValue.endsWith("}")) ||
34
+ (trimmedValue.startsWith("[") && trimmedValue.endsWith("]"))) {
35
+ try {
36
+ return this.normalizeComparableValue(JSON.parse(trimmedValue));
37
+ }
38
+ catch {
39
+ return value;
40
+ }
41
+ }
42
+ return value;
43
+ }
44
+ if (Array.isArray(value)) {
45
+ return value.map((item) => this.normalizeComparableValue(item));
46
+ }
47
+ if (value && typeof value === "object") {
48
+ return Object.keys(value)
49
+ .sort()
50
+ .reduce((result, key) => {
51
+ result[key] = this.normalizeComparableValue(value[key]);
52
+ return result;
53
+ }, {});
54
+ }
55
+ return value;
56
+ }
57
+ areValuesDifferent(currentValue, nextValue) {
58
+ const normalizedCurrentValue = this.normalizeComparableValue(currentValue);
59
+ const normalizedNextValue = this.normalizeComparableValue(nextValue);
60
+ if ((normalizedCurrentValue && typeof normalizedCurrentValue === "object") ||
61
+ (normalizedNextValue && typeof normalizedNextValue === "object")) {
62
+ return JSON.stringify(normalizedCurrentValue ?? null) !== JSON.stringify(normalizedNextValue ?? null);
63
+ }
64
+ return normalizedCurrentValue !== normalizedNextValue;
65
+ }
66
+ hasChanges(existing, dto, moduleEntity) {
67
+ return existing.scheduleName !== dto.scheduleName
68
+ || existing.isActive !== dto.isActive
69
+ || this.areValuesDifferent(existing.frequency, dto.frequency)
70
+ || this.areValuesDifferent(existing.startTime, dto.startTime)
71
+ || this.areValuesDifferent(existing.endTime, dto.endTime)
72
+ || this.areValuesDifferent(existing.startDate, dto.startDate)
73
+ || this.areValuesDifferent(existing.endDate, dto.endDate)
74
+ || this.areValuesDifferent(existing.dayOfMonth, dto.dayOfMonth)
75
+ || this.areValuesDifferent(existing.dayOfWeek, dto.dayOfWeek)
76
+ || this.areValuesDifferent(existing.job, dto.job)
77
+ || this.areValuesDifferent(existing.cronExpression, dto.cronExpression)
78
+ || existing.module?.id !== moduleEntity.id;
79
+ }
27
80
  async toDto(scheduledJob) {
28
81
  let populatedScheduledJob = scheduledJob;
29
82
  if (!scheduledJob.module) {
@@ -71,8 +124,15 @@ let ScheduledJobRepository = class ScheduledJobRepository extends solid_base_rep
71
124
  };
72
125
  const existing = await this.findOne({
73
126
  where: { scheduleName: dto.scheduleName },
127
+ relations: {
128
+ module: true,
129
+ },
74
130
  });
75
131
  if (existing) {
132
+ if (!this.hasChanges(existing, dto, moduleEntity)) {
133
+ this.logger.debug(`Skipping scheduled job upsert for ${dto.scheduleName}; no changes detected.`);
134
+ return existing;
135
+ }
76
136
  const merged = this.merge(existing, jobData);
77
137
  this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);
78
138
  return this.save(merged);
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-job.repository.js","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { CreateScheduledJobDto } from \"src/dtos/create-scheduled-job.dto\";\nimport { ModuleMetadata } from \"src/entities/module-metadata.entity\";\nimport { ScheduledJob } from \"src/entities/scheduled-job.entity\";\nimport { RequestContextService } from \"src/services/request-context.service\";\nimport { DataSource } from \"typeorm\";\nimport { SecurityRuleRepository } from \"./security-rule.repository\";\nimport { SolidBaseRepository } from \"./solid-base.repository\";\n\n// This should match whatever DTO structure you’re using in your seeding logic\n// export type CreateScheduledJobDto = {\n// scheduleName: string;\n// isActive?: boolean;\n// frequency: string;\n// startTime?: Date;\n// endTime?: Date;\n// startDate?: Date;\n// endDate?: Date;\n// dayOfMonth?: number;\n// lastRunAt?: Date;\n// nextRunAt?: Date;\n// dayOfWeek?: string;\n// job: string;\n// moduleUserKey: string;\n// };\n\n@Injectable()\nexport class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n ) {\n super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);\n }\n\n /**\n * Converts an entity to a plain DTO object.\n */\n async toDto(scheduledJob: ScheduledJob): Promise<CreateScheduledJobDto> {\n let populatedScheduledJob: ScheduledJob = scheduledJob;\n // If the scheduled job does not have the module relation loaded, load it\n if (!scheduledJob.module) {\n populatedScheduledJob = await this.findOne({\n where: {\n id: scheduledJob.id,\n },\n relations: {\n module: true,\n },\n });\n }\n\n if (!populatedScheduledJob.module) {\n throw new Error(`Module not found for scheduled job ID ${populatedScheduledJob.id}`);\n }\n\n return {\n scheduleName: populatedScheduledJob.scheduleName,\n isActive: populatedScheduledJob.isActive,\n frequency: populatedScheduledJob.frequency,\n startTime: populatedScheduledJob.startTime,\n endTime: populatedScheduledJob.endTime,\n startDate: populatedScheduledJob.startDate,\n endDate: populatedScheduledJob.endDate,\n dayOfMonth: populatedScheduledJob.dayOfMonth,\n lastRunAt: populatedScheduledJob.lastRunAt,\n nextRunAt: populatedScheduledJob.nextRunAt,\n dayOfWeek: populatedScheduledJob.dayOfWeek,\n job: populatedScheduledJob.job,\n moduleUserKey: populatedScheduledJob.module.name,\n moduleId: populatedScheduledJob.module.id,\n cronExpression: populatedScheduledJob.cronExpression,\n };\n }\n\n async upsertWithDto(dto: CreateScheduledJobDto): Promise<ScheduledJob> {\n const moduleRepo = this.dataSource.getRepository(ModuleMetadata);\n\n const moduleEntity = await moduleRepo.findOne({\n where: { name: dto.moduleUserKey },\n });\n\n if (!moduleEntity) {\n throw new Error(`Module with userKey ${dto.moduleUserKey} not found`);\n }\n\n const jobData = {\n ...dto,\n module: moduleEntity,\n };\n const existing = await this.findOne({\n where: { scheduleName: dto.scheduleName },\n });\n\n if (existing) {\n const merged = this.merge(existing, jobData);\n this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);\n return this.save(merged);\n } else {\n this.logger.debug(`Creating scheduled job: ${dto.scheduleName}`);\n return this.save(this.create(jobData));\n }\n }\n}\n"]}
1
+ {"version":3,"file":"scheduled-job.repository.js","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { CreateScheduledJobDto } from \"src/dtos/create-scheduled-job.dto\";\nimport { ModuleMetadata } from \"src/entities/module-metadata.entity\";\nimport { ScheduledJob } from \"src/entities/scheduled-job.entity\";\nimport { RequestContextService } from \"src/services/request-context.service\";\nimport { DataSource } from \"typeorm\";\nimport { SecurityRuleRepository } from \"./security-rule.repository\";\nimport { SolidBaseRepository } from \"./solid-base.repository\";\n\n// This should match whatever DTO structure you’re using in your seeding logic\n// export type CreateScheduledJobDto = {\n// scheduleName: string;\n// isActive?: boolean;\n// frequency: string;\n// startTime?: Date;\n// endTime?: Date;\n// startDate?: Date;\n// endDate?: Date;\n// dayOfMonth?: number;\n// lastRunAt?: Date;\n// nextRunAt?: Date;\n// dayOfWeek?: string;\n// job: string;\n// moduleUserKey: string;\n// };\n\n@Injectable()\nexport class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n ) {\n super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);\n }\n\n private normalizeComparableValue(value: any): any {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"string\") {\n const trimmedValue = value.trim();\n if (\n (trimmedValue.startsWith(\"{\") && trimmedValue.endsWith(\"}\")) ||\n (trimmedValue.startsWith(\"[\") && trimmedValue.endsWith(\"]\"))\n ) {\n try {\n return this.normalizeComparableValue(JSON.parse(trimmedValue));\n } catch {\n return value;\n }\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => this.normalizeComparableValue(item));\n }\n\n if (value && typeof value === \"object\") {\n return Object.keys(value)\n .sort()\n .reduce((result, key) => {\n result[key] = this.normalizeComparableValue(value[key]);\n return result;\n }, {} as Record<string, any>);\n }\n\n return value;\n }\n\n private areValuesDifferent(currentValue: any, nextValue: any): boolean {\n const normalizedCurrentValue = this.normalizeComparableValue(currentValue);\n const normalizedNextValue = this.normalizeComparableValue(nextValue);\n\n if (\n (normalizedCurrentValue && typeof normalizedCurrentValue === \"object\") ||\n (normalizedNextValue && typeof normalizedNextValue === \"object\")\n ) {\n return JSON.stringify(normalizedCurrentValue ?? null) !== JSON.stringify(normalizedNextValue ?? null);\n }\n\n return normalizedCurrentValue !== normalizedNextValue;\n }\n\n private hasChanges(existing: ScheduledJob, dto: CreateScheduledJobDto, moduleEntity: ModuleMetadata): boolean {\n return existing.scheduleName !== dto.scheduleName\n || existing.isActive !== dto.isActive\n || this.areValuesDifferent(existing.frequency, dto.frequency)\n || this.areValuesDifferent(existing.startTime, dto.startTime)\n || this.areValuesDifferent(existing.endTime, dto.endTime)\n || this.areValuesDifferent(existing.startDate, dto.startDate)\n || this.areValuesDifferent(existing.endDate, dto.endDate)\n || this.areValuesDifferent(existing.dayOfMonth, dto.dayOfMonth)\n || this.areValuesDifferent(existing.dayOfWeek, dto.dayOfWeek)\n || this.areValuesDifferent(existing.job, dto.job)\n || this.areValuesDifferent(existing.cronExpression, dto.cronExpression)\n || existing.module?.id !== moduleEntity.id;\n }\n\n /**\n * Converts an entity to a plain DTO object.\n */\n async toDto(scheduledJob: ScheduledJob): Promise<CreateScheduledJobDto> {\n let populatedScheduledJob: ScheduledJob = scheduledJob;\n // If the scheduled job does not have the module relation loaded, load it\n if (!scheduledJob.module) {\n populatedScheduledJob = await this.findOne({\n where: {\n id: scheduledJob.id,\n },\n relations: {\n module: true,\n },\n });\n }\n\n if (!populatedScheduledJob.module) {\n throw new Error(`Module not found for scheduled job ID ${populatedScheduledJob.id}`);\n }\n\n return {\n scheduleName: populatedScheduledJob.scheduleName,\n isActive: populatedScheduledJob.isActive,\n frequency: populatedScheduledJob.frequency,\n startTime: populatedScheduledJob.startTime,\n endTime: populatedScheduledJob.endTime,\n startDate: populatedScheduledJob.startDate,\n endDate: populatedScheduledJob.endDate,\n dayOfMonth: populatedScheduledJob.dayOfMonth,\n lastRunAt: populatedScheduledJob.lastRunAt,\n nextRunAt: populatedScheduledJob.nextRunAt,\n dayOfWeek: populatedScheduledJob.dayOfWeek,\n job: populatedScheduledJob.job,\n moduleUserKey: populatedScheduledJob.module.name,\n moduleId: populatedScheduledJob.module.id,\n cronExpression: populatedScheduledJob.cronExpression,\n };\n }\n\n async upsertWithDto(dto: CreateScheduledJobDto): Promise<ScheduledJob> {\n const moduleRepo = this.dataSource.getRepository(ModuleMetadata);\n\n const moduleEntity = await moduleRepo.findOne({\n where: { name: dto.moduleUserKey },\n });\n\n if (!moduleEntity) {\n throw new Error(`Module with userKey ${dto.moduleUserKey} not found`);\n }\n\n const jobData = {\n ...dto,\n module: moduleEntity,\n };\n const existing = await this.findOne({\n where: { scheduleName: dto.scheduleName },\n relations: {\n module: true,\n },\n });\n\n if (existing) {\n if (!this.hasChanges(existing, dto, moduleEntity)) {\n this.logger.debug(`Skipping scheduled job upsert for ${dto.scheduleName}; no changes detected.`);\n return existing;\n }\n\n const merged = this.merge(existing, jobData);\n this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);\n return this.save(merged);\n } else {\n this.logger.debug(`Creating scheduled job: ${dto.scheduleName}`);\n return this.save(this.create(jobData));\n }\n }\n}\n"]}
@@ -44,9 +44,25 @@ export declare class ModuleMetadataSeederService {
44
44
  readonly dataSource: DataSource;
45
45
  readonly modelSequenceRepo: ModelSequenceRepository;
46
46
  private readonly logger;
47
+ private readonly seedTimingTag;
48
+ private readonly permissionSeedBatchSize;
49
+ private readonly viewComparableFields;
50
+ private readonly actionComparableFields;
51
+ private readonly moduleLookupCache;
52
+ private readonly modelLookupCache;
53
+ private readonly viewLookupCache;
54
+ private readonly mediaStorageProviderLookupCache;
47
55
  private enablePruning;
48
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);
49
57
  seed(conf?: any): Promise<void>;
58
+ private buildTimingPrefix;
59
+ private formatDuration;
60
+ private resetLookupCaches;
61
+ private getModuleByUserKeyCached;
62
+ private getModelByUserKeyCached;
63
+ private getViewByUserKeyCached;
64
+ private getMediaStorageProviderByUserKeyCached;
65
+ private timeOperation;
50
66
  private seedScheduledJobs;
51
67
  private seedSavedFilters;
52
68
  private seedListOfValues;
@@ -65,8 +81,10 @@ export declare class ModuleMetadataSeederService {
65
81
  private seedGlobalMetadata;
66
82
  private seedDefaultSystemFields;
67
83
  private seedControllerPermissions;
68
- private createPermissionIfNotExists;
69
84
  private handleSeedPermissions;
85
+ private seedPermissionsInBatches;
86
+ private getUniquePermissionNames;
87
+ private normalizePermissionName;
70
88
  private seedMediaStorageProviders;
71
89
  private seedModelSequences;
72
90
  private handleSeedEmailTemplates;
@@ -77,6 +95,19 @@ export declare class ModuleMetadataSeederService {
77
95
  private handleSeedUsers;
78
96
  private seedModuleModelFields;
79
97
  private getSeedArray;
98
+ private loadExistingFieldsByName;
99
+ private primeModuleLookupCache;
100
+ private primeModelLookupCache;
101
+ private primeViewLookupCache;
102
+ private loadExistingViewsByName;
103
+ private loadExistingActionsByName;
104
+ private normalizeJsonFieldValue;
105
+ private getCanonicalJsonFieldString;
106
+ private hasViewMetadataChanges;
107
+ private hasActionMetadataChanges;
108
+ private upsertViewMetadataWithPreloadedExisting;
109
+ private upsertActionMetadataWithPreloadedExisting;
110
+ private upsertFieldMetadataWithPreloadedExisting;
80
111
  private handleSeedSecurityRules;
81
112
  private handleSeedListOfValues;
82
113
  private handleSeedScheduledJobs;
@@ -1 +1 @@
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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"}
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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"}