@solidstarters/solid-core 1.2.202 → 1.2.203
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/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +1 -0
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +3 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +99 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
- package/dist/helpers/image-encoding.helper.d.ts +10 -0
- package/dist/helpers/image-encoding.helper.d.ts.map +1 -0
- package/dist/helpers/image-encoding.helper.js +44 -0
- package/dist/helpers/image-encoding.helper.js.map +1 -0
- package/dist/helpers/module.helper.d.ts.map +1 -1
- package/dist/helpers/module.helper.js +2 -0
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/solid-microservice-adapter.service.d.ts +31 -0
- package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -0
- package/dist/helpers/solid-microservice-adapter.service.js +53 -0
- package/dist/helpers/solid-microservice-adapter.service.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mappers/list-of-values-mapper.d.ts.map +1 -1
- package/dist/mappers/list-of-values-mapper.js +1 -1
- package/dist/mappers/list-of-values-mapper.js.map +1 -1
- package/dist/repository/security-rule.repository.d.ts.map +1 -1
- package/dist/repository/security-rule.repository.js +7 -2
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +1 -1
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +41 -0
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +5 -5
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +6 -1
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/user.service.d.ts +8 -1
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +15 -4
- package/dist/services/user.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +7 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/dtos/create-role-metadata.dto.ts +3 -0
- package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +138 -4
- package/src/helpers/image-encoding.helper.ts +71 -0
- package/src/helpers/module.helper.ts +3 -0
- package/src/helpers/solid-microservice-adapter.service.ts +68 -0
- package/src/index.ts +2 -0
- package/src/mappers/list-of-values-mapper.ts +2 -1
- package/src/repository/security-rule.repository.ts +7 -2
- package/src/seeders/module-metadata-seeder.service.ts +3 -1
- package/src/seeders/seed-data/solid-core-metadata.json +41 -0
- package/src/services/1.js +6 -0
- package/src/services/authentication.service.ts +7 -5
- package/src/services/crud.service.ts +6 -1
- package/src/services/user.service.ts +19 -0
- package/src/solid-core.module.ts +10 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-role-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,qBAAa,qBAAqB;IAI9B,IAAI,EAAE,MAAM,CAAC;IAMb,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAI3C,cAAc,EAAE,MAAM,EAAE,CAAC;IAIzB,kBAAkB,EAAE,MAAM,CAAC;IAM3B,KAAK,EAAE,aAAa,EAAE,CAAC;IAIvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAInB,YAAY,EAAE,MAAM,CAAC;IAMrB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAIvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAIvB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"create-role-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,qBAAa,qBAAqB;IAI9B,IAAI,EAAE,MAAM,CAAC;IAMb,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAI3C,cAAc,EAAE,MAAM,EAAE,CAAC;IAIzB,kBAAkB,EAAE,MAAM,CAAC;IAM3B,KAAK,EAAE,aAAa,EAAE,CAAC;IAIvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAInB,YAAY,EAAE,MAAM,CAAC;IAMrB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAIvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAIvB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,eAAO,MAAM,yBAAyB,UAyErC,CAAA"}
|
|
@@ -111,6 +111,7 @@ exports.INTERNAL_ROLE_PERMISSIONS = [
|
|
|
111
111
|
'AuthenticationController.changePassword',
|
|
112
112
|
'AuthenticationController.logout',
|
|
113
113
|
'AuthenticationController.me',
|
|
114
|
+
'ModelMetadataController.navigation',
|
|
114
115
|
'FieldMetadataController.getSelectionDynamicValues',
|
|
115
116
|
'FieldMetadataController.getSelectionDynamicValue',
|
|
116
117
|
'FieldMetadataController.findFieldDefaultMetaData',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-role-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAkF;AAClF,yDAAyC;AACzC,qFAAsF;AACtF,uDAAyD;AACzD,mFAAmF;AACnF,6CAA8C;AAE9C,MAAa,qBAAqB;;;;CA+CjC;AA/CD,sDA+CC;AA3CG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACD;AAMb;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4DAA2B,CAAC;;0DACG;AAI3C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;6DACW;AAIzB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;iEACa;AAM3B;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAAa,CAAC;;oDACH;AAIvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;uDACK;AAInB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2DACO;AAMrB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yDAAyB,CAAC;;wDACC;AAIvC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;2DACS;AAIvB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;+DACW;AAGhB,QAAA,eAAe,GAAG,OAAO,CAAC;AAE1B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAErC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAE5B,QAAA,yBAAyB,GAAG;IAErC,yBAAyB;IACzB,wCAAwC;IACxC,wBAAwB;IAGxB,qCAAqC;IACrC,0CAA0C;IAC1C,oCAAoC;IAGpC,kCAAkC;IAClC,iCAAiC;IACjC,gCAAgC;IAGhC,mCAAmC;IACnC,kCAAkC;IAGlC,mCAAmC;IACnC,qCAAqC;IACrC,oCAAoC;IAGpC,yCAAyC;IACzC,iCAAiC;IACjC,6BAA6B;IAG7B,mDAAmD;IACnD,kDAAkD;IAClD,kDAAkD;IAGlD,+BAA+B;IAC/B,mCAAmC;IACnC,gCAAgC;IAChC,iCAAiC;IACjC,gCAAgC;IAChC,oCAAoC;IACpC,sCAAsC;IACtC,+BAA+B;IAC/B,mCAAmC;IACnC,+BAA+B;IAI/B,iCAAiC;IACjC,6CAA6C;IAC7C,sCAAsC;IACtC,mCAAmC;IAGnC,+CAA+C;IAC/C,mDAAmD;IACnD,kDAAkD;IAClD,6CAA6C;IAC7C,8CAA8C;IAC9C,yDAAyD;IAGzD,0CAA0C;IAC1C,2CAA2C;IAG3C,iCAAiC;IACjC,gCAAgC;CAEnC,CAAA","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';\nimport { UpdateUserDto } from 'src/dtos/update-user.dto';\nimport { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class CreateRoleMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdatePermissionMetadataDto)\n permissions: UpdatePermissionMetadataDto[];\n @IsOptional()\n @IsArray()\n @ApiProperty()\n permissionsIds: number[];\n @IsString()\n @IsOptional()\n @ApiProperty()\n permissionsCommand: string;\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateUserDto)\n users: UpdateUserDto[];\n @IsOptional()\n @IsArray()\n @ApiProperty()\n usersIds: number[];\n @IsString()\n @IsOptional()\n @ApiProperty()\n usersCommand: string;\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateMenuItemMetadataDto)\n menuItems: UpdateMenuItemMetadataDto[];\n @IsOptional()\n @IsArray()\n @ApiProperty()\n menuItemsIds: number[];\n @IsString()\n @IsOptional()\n @ApiProperty()\n menuItemsCommand: string;\n}\n\nexport const ADMIN_ROLE_NAME = 'Admin';\n\nexport const INTERNAL_ROLE_NAME = 'Internal User';\n\nexport const PUBLIC_ROLE_NAME = 'Public';\n\nexport const INTERNAL_ROLE_PERMISSIONS = [\n // User permissions\n 'UserController.findMany', //Why do we need this?\n 'UserController.checkIfPermissionExists',\n 'UserController.findOne',\n\n // Menu permissions\n 'MenuItemMetadataController.findMany',\n 'MenuItemMetadataController.findUserMenus',\n 'MenuItemMetadataController.findOne',\n\n // View metadata permissions\n 'ViewMetadataController.getLayout',\n 'ViewMetadataController.findMany',\n 'ViewMetadataController.findOne',\n\n // Action metadata permissions\n 'ActionMetadataController.findMany',\n 'ActionMetadataController.findOne',\n\n // User View metadata permissions\n 'UserViewMetadataController.upsert',\n 'UserViewMetadataController.findMany',\n 'UserViewMetadataController.findOne',\n\n // IAM permissions\n 'AuthenticationController.changePassword',\n 'AuthenticationController.logout',\n 'AuthenticationController.me',\n\n // Field Metadata permissions\n 'FieldMetadataController.getSelectionDynamicValues',\n 'FieldMetadataController.getSelectionDynamicValue',\n 'FieldMetadataController.findFieldDefaultMetaData',\n\n // Saved Filters permissions\n 'SavedFiltersController.delete',\n 'SavedFiltersController.deleteMany',\n 'SavedFiltersController.findOne',\n 'SavedFiltersController.findMany',\n 'SavedFiltersController.recover',\n 'SavedFiltersController.recoverMany',\n 'SavedFiltersController.partialUpdate',\n 'SavedFiltersController.update',\n 'SavedFiltersController.insertMany',\n 'SavedFiltersController.create',\n\n // Other permissions can be added here as required.\n // Chatter permissions\n 'ChatterMessageController.create',\n 'ChatterMessageController.getChatterMessages',\n 'ChatterMessageController.postMessage',\n 'ChatterMessageController.findMany',\n\n // Import\n 'ImportTransactionController.getImportTemplate',\n 'ImportTransactionController.getImportInstructions',\n 'ImportTransactionController.getImportMappingInfo',\n 'ImportTransactionController.startImportSync',\n 'ImportTransactionController.startImportAsync',\n 'ImportTransactionController.exportFailedImportedImports',\n\n // Export permissions\n 'ExportTemplateController.startExportSync',\n 'ExportTemplateController.startExportAsync',\n\n // List of values\n 'ListOfValuesController.findMany',\n 'ListOfValuesController.findOne',\n // Media // [Not required], since media is always populated as part of a model\n]\n"]}
|
|
1
|
+
{"version":3,"file":"create-role-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAkF;AAClF,yDAAyC;AACzC,qFAAsF;AACtF,uDAAyD;AACzD,mFAAmF;AACnF,6CAA8C;AAE9C,MAAa,qBAAqB;;;;CA+CjC;AA/CD,sDA+CC;AA3CG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACD;AAMb;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4DAA2B,CAAC;;0DACG;AAI3C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;6DACW;AAIzB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;iEACa;AAM3B;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAAa,CAAC;;oDACH;AAIvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;uDACK;AAInB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2DACO;AAMrB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yDAAyB,CAAC;;wDACC;AAIvC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;2DACS;AAIvB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;+DACW;AAGhB,QAAA,eAAe,GAAG,OAAO,CAAC;AAE1B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAErC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAE5B,QAAA,yBAAyB,GAAG;IAErC,yBAAyB;IACzB,wCAAwC;IACxC,wBAAwB;IAGxB,qCAAqC;IACrC,0CAA0C;IAC1C,oCAAoC;IAGpC,kCAAkC;IAClC,iCAAiC;IACjC,gCAAgC;IAGhC,mCAAmC;IACnC,kCAAkC;IAGlC,mCAAmC;IACnC,qCAAqC;IACrC,oCAAoC;IAGpC,yCAAyC;IACzC,iCAAiC;IACjC,6BAA6B;IAG7B,oCAAoC;IAGpC,mDAAmD;IACnD,kDAAkD;IAClD,kDAAkD;IAGlD,+BAA+B;IAC/B,mCAAmC;IACnC,gCAAgC;IAChC,iCAAiC;IACjC,gCAAgC;IAChC,oCAAoC;IACpC,sCAAsC;IACtC,+BAA+B;IAC/B,mCAAmC;IACnC,+BAA+B;IAI/B,iCAAiC;IACjC,6CAA6C;IAC7C,sCAAsC;IACtC,mCAAmC;IAGnC,+CAA+C;IAC/C,mDAAmD;IACnD,kDAAkD;IAClD,6CAA6C;IAC7C,8CAA8C;IAC9C,yDAAyD;IAGzD,0CAA0C;IAC1C,2CAA2C;IAG3C,iCAAiC;IACjC,gCAAgC;CAEnC,CAAA","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';\nimport { UpdateUserDto } from 'src/dtos/update-user.dto';\nimport { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class CreateRoleMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdatePermissionMetadataDto)\n permissions: UpdatePermissionMetadataDto[];\n @IsOptional()\n @IsArray()\n @ApiProperty()\n permissionsIds: number[];\n @IsString()\n @IsOptional()\n @ApiProperty()\n permissionsCommand: string;\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateUserDto)\n users: UpdateUserDto[];\n @IsOptional()\n @IsArray()\n @ApiProperty()\n usersIds: number[];\n @IsString()\n @IsOptional()\n @ApiProperty()\n usersCommand: string;\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateMenuItemMetadataDto)\n menuItems: UpdateMenuItemMetadataDto[];\n @IsOptional()\n @IsArray()\n @ApiProperty()\n menuItemsIds: number[];\n @IsString()\n @IsOptional()\n @ApiProperty()\n menuItemsCommand: string;\n}\n\nexport const ADMIN_ROLE_NAME = 'Admin';\n\nexport const INTERNAL_ROLE_NAME = 'Internal User';\n\nexport const PUBLIC_ROLE_NAME = 'Public';\n\nexport const INTERNAL_ROLE_PERMISSIONS = [\n // User permissions\n 'UserController.findMany', //Why do we need this?\n 'UserController.checkIfPermissionExists',\n 'UserController.findOne',\n\n // Menu permissions\n 'MenuItemMetadataController.findMany',\n 'MenuItemMetadataController.findUserMenus',\n 'MenuItemMetadataController.findOne',\n\n // View metadata permissions\n 'ViewMetadataController.getLayout',\n 'ViewMetadataController.findMany',\n 'ViewMetadataController.findOne',\n\n // Action metadata permissions\n 'ActionMetadataController.findMany',\n 'ActionMetadataController.findOne',\n\n // User View metadata permissions\n 'UserViewMetadataController.upsert',\n 'UserViewMetadataController.findMany',\n 'UserViewMetadataController.findOne',\n\n // IAM permissions\n 'AuthenticationController.changePassword',\n 'AuthenticationController.logout',\n 'AuthenticationController.me',\n\n // Field Metadata permissions\n 'ModelMetadataController.navigation',\n\n // Field Metadata permissions\n 'FieldMetadataController.getSelectionDynamicValues',\n 'FieldMetadataController.getSelectionDynamicValue',\n 'FieldMetadataController.findFieldDefaultMetaData',\n\n // Saved Filters permissions\n 'SavedFiltersController.delete',\n 'SavedFiltersController.deleteMany',\n 'SavedFiltersController.findOne',\n 'SavedFiltersController.findMany',\n 'SavedFiltersController.recover',\n 'SavedFiltersController.recoverMany',\n 'SavedFiltersController.partialUpdate',\n 'SavedFiltersController.update',\n 'SavedFiltersController.insertMany',\n 'SavedFiltersController.create',\n\n // Other permissions can be added here as required.\n // Chatter permissions\n 'ChatterMessageController.create',\n 'ChatterMessageController.getChatterMessages',\n 'ChatterMessageController.postMessage',\n 'ChatterMessageController.findMany',\n\n // Import\n 'ImportTransactionController.getImportTemplate',\n 'ImportTransactionController.getImportInstructions',\n 'ImportTransactionController.getImportMappingInfo',\n 'ImportTransactionController.startImportSync',\n 'ImportTransactionController.startImportAsync',\n 'ImportTransactionController.exportFailedImportedImports',\n\n // Export permissions\n 'ExportTemplateController.startExportSync',\n 'ExportTemplateController.startExportAsync',\n\n // List of values\n 'ListOfValuesController.findMany',\n 'ListOfValuesController.findOne',\n // Media // [Not required], since media is always populated as part of a model\n]\n"]}
|
|
@@ -7,10 +7,13 @@ export interface MediaFieldOptions {
|
|
|
7
7
|
type: SolidMediaType;
|
|
8
8
|
required: boolean | undefined | null;
|
|
9
9
|
fieldName: string | undefined | null;
|
|
10
|
+
mediaMaxSizeKb: number | undefined | null;
|
|
11
|
+
mediaTypes: string[];
|
|
10
12
|
}
|
|
11
13
|
export declare class MediaFieldCrudManager implements FieldCrudManager {
|
|
12
14
|
private readonly options;
|
|
13
15
|
constructor(options: MediaFieldOptions);
|
|
16
|
+
private resolveMediaType;
|
|
14
17
|
validate(dto: any, files: Array<Express.Multer.File>): ValidationError[];
|
|
15
18
|
private applyValidations;
|
|
16
19
|
private validateMediaSingle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MediaFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAkFD,qBAAa,qBAAsB,YAAW,gBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAGvD,OAAO,CAAC,gBAAgB;IAoBxB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE;IAMxE,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,qBAAqB;IAW7B,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAKpC"}
|
|
@@ -6,10 +6,82 @@ var SolidMediaType;
|
|
|
6
6
|
SolidMediaType["mediaSingle"] = "mediaSingle";
|
|
7
7
|
SolidMediaType["mediaMultiple"] = "mediaMultiple";
|
|
8
8
|
})(SolidMediaType || (exports.SolidMediaType = SolidMediaType = {}));
|
|
9
|
+
const MIME_TO_MEDIA_TYPE = {
|
|
10
|
+
'image/png': 'image',
|
|
11
|
+
'image/jpeg': 'image',
|
|
12
|
+
'image/jpg': 'image',
|
|
13
|
+
'image/webp': 'image',
|
|
14
|
+
'image/gif': 'image',
|
|
15
|
+
'image/bmp': 'image',
|
|
16
|
+
'image/tiff': 'image',
|
|
17
|
+
'image/svg+xml': 'image',
|
|
18
|
+
'image/heic': 'image',
|
|
19
|
+
'image/heif': 'image',
|
|
20
|
+
'audio/mpeg': 'audio',
|
|
21
|
+
'audio/mp3': 'audio',
|
|
22
|
+
'audio/wav': 'audio',
|
|
23
|
+
'audio/x-wav': 'audio',
|
|
24
|
+
'audio/webm': 'audio',
|
|
25
|
+
'audio/ogg': 'audio',
|
|
26
|
+
'audio/aac': 'audio',
|
|
27
|
+
'audio/mp4': 'audio',
|
|
28
|
+
'audio/x-m4a': 'audio',
|
|
29
|
+
'audio/flac': 'audio',
|
|
30
|
+
'video/mp4': 'video',
|
|
31
|
+
'video/mpeg': 'video',
|
|
32
|
+
'video/webm': 'video',
|
|
33
|
+
'video/ogg': 'video',
|
|
34
|
+
'video/quicktime': 'video',
|
|
35
|
+
'video/x-msvideo': 'video',
|
|
36
|
+
'video/x-matroska': 'video',
|
|
37
|
+
'video/3gpp': 'video',
|
|
38
|
+
'video/3gpp2': 'video',
|
|
39
|
+
'application/pdf': 'file',
|
|
40
|
+
'text/plain': 'file',
|
|
41
|
+
'text/markdown': 'file',
|
|
42
|
+
'application/json': 'file',
|
|
43
|
+
'text/csv': 'file',
|
|
44
|
+
'application/msword': 'file',
|
|
45
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'file',
|
|
46
|
+
'application/vnd.ms-excel': 'file',
|
|
47
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'file',
|
|
48
|
+
'application/vnd.ms-powerpoint': 'file',
|
|
49
|
+
'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'file',
|
|
50
|
+
'application/zip': 'file',
|
|
51
|
+
'application/x-zip-compressed': 'file',
|
|
52
|
+
'application/x-rar-compressed': 'file',
|
|
53
|
+
'application/x-7z-compressed': 'file',
|
|
54
|
+
'application/octet-stream': 'file',
|
|
55
|
+
};
|
|
56
|
+
const EXT_TO_MEDIA_TYPE = {
|
|
57
|
+
png: 'image', jpg: 'image', jpeg: 'image', webp: 'image', gif: 'image', bmp: 'image', tiff: 'image', svg: 'image', heic: 'image', heif: 'image',
|
|
58
|
+
mp3: 'audio', wav: 'audio', ogg: 'audio', aac: 'audio', m4a: 'audio', flac: 'audio',
|
|
59
|
+
mp4: 'video', mov: 'video', avi: 'video', mkv: 'video', mpeg: 'video', mpg: 'video', '3gp': 'video', '3g2': 'video',
|
|
60
|
+
pdf: 'file', txt: 'file', md: 'file', csv: 'file', json: 'file',
|
|
61
|
+
doc: 'file', docx: 'file', xls: 'file', xlsx: 'file', ppt: 'file', pptx: 'file',
|
|
62
|
+
zip: 'file', rar: 'file', '7z': 'file',
|
|
63
|
+
};
|
|
9
64
|
class MediaFieldCrudManager {
|
|
10
65
|
constructor(options) {
|
|
11
66
|
this.options = options;
|
|
12
67
|
}
|
|
68
|
+
resolveMediaType(mimetype, filename) {
|
|
69
|
+
const mt = (mimetype || '').toLowerCase().trim();
|
|
70
|
+
if (mt && MIME_TO_MEDIA_TYPE[mt]) {
|
|
71
|
+
return MIME_TO_MEDIA_TYPE[mt];
|
|
72
|
+
}
|
|
73
|
+
if (mt.startsWith('image/'))
|
|
74
|
+
return 'image';
|
|
75
|
+
if (mt.startsWith('audio/'))
|
|
76
|
+
return 'audio';
|
|
77
|
+
if (mt.startsWith('video/'))
|
|
78
|
+
return 'video';
|
|
79
|
+
const ext = (filename || '').split('.').pop()?.toLowerCase();
|
|
80
|
+
if (ext && EXT_TO_MEDIA_TYPE[ext]) {
|
|
81
|
+
return EXT_TO_MEDIA_TYPE[ext];
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
13
85
|
validate(dto, files) {
|
|
14
86
|
const isValidateForUpdate = dto.id !== undefined;
|
|
15
87
|
const fieldFiles = files.filter(file => file.fieldname === this.options.fieldName);
|
|
@@ -39,6 +111,33 @@ class MediaFieldCrudManager {
|
|
|
39
111
|
error: `${this.options.fieldName} must be a single file`
|
|
40
112
|
});
|
|
41
113
|
}
|
|
114
|
+
if (this.options.mediaMaxSizeKb) {
|
|
115
|
+
for (let i = 0; i < fieldFiles.length; i++) {
|
|
116
|
+
const fieldFile = fieldFiles[i];
|
|
117
|
+
const fieldFileSizeInBytes = Math.ceil(fieldFile.size / 1024);
|
|
118
|
+
if (fieldFileSizeInBytes > this.options.mediaMaxSizeKb) {
|
|
119
|
+
errors.push({
|
|
120
|
+
field: this.options.fieldName,
|
|
121
|
+
error: `${this.options.fieldName} with size ${fieldFileSizeInBytes} KB exceeds max size limit of ${this.options.mediaMaxSizeKb} KB`
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (this.options.mediaTypes && this.options.mediaTypes.length > 0) {
|
|
127
|
+
const allowedFileTypes = this.options.mediaTypes;
|
|
128
|
+
for (let i = 0; i < fieldFiles.length; i++) {
|
|
129
|
+
const fieldFile = fieldFiles[i];
|
|
130
|
+
const resolvedType = this.resolveMediaType(fieldFile.mimetype, fieldFile.originalname ?? fieldFile.filename ?? '');
|
|
131
|
+
if (!resolvedType || !allowedFileTypes.includes(resolvedType)) {
|
|
132
|
+
errors.push({
|
|
133
|
+
field: this.options.fieldName,
|
|
134
|
+
error: `${this.options.fieldName} file type not allowed. ` +
|
|
135
|
+
`Allowed: ${allowedFileTypes.join(', ')}. ` +
|
|
136
|
+
`Received mimetype: ${fieldFile.mimetype}${resolvedType ? ` (mapped to ${resolvedType})` : ''}`
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
42
141
|
return errors;
|
|
43
142
|
}
|
|
44
143
|
validateMediaMultiple(fieldFiles, isValidateForUpdate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;AACnC,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAQD,MAAa,qBAAqB;IAE9B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IACvD,CAAC;IAED,QAAQ,CAAC,GAAQ,EAAE,KAAgC;QAC/C,MAAM,mBAAmB,GAAG,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC;QACjD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAClE,CAAC;IAEO,gBAAgB,CAAC,UAAqC,EAAE,mBAA4B;QACxF,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,cAAc,CAAC,WAAW;gBAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACrE,KAAK,cAAc,CAAC,aAAa;gBAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACvE;gBACI,OAAO,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,UAAqC,EAAE,mBAA4B;QAC3F,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc;aACjD,CAAC,CAAC;QACP,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,wBAAwB;aAC3D,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,qBAAqB,CAAC,UAAqC,EAAE,mBAA4B;QAC7F,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC7B,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc;aACjD,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;CAGJ;AAvDD,sDAuDC","sourcesContent":["import { FieldCrudManager, ValidationError } from \"src/interfaces\";\n\nexport enum SolidMediaType {\n mediaSingle = 'mediaSingle',\n mediaMultiple = 'mediaMultiple'\n}\n\nexport interface MediaFieldOptions {\n type: SolidMediaType;\n required: boolean | undefined | null;\n fieldName: string | undefined | null;\n}\n\nexport class MediaFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: MediaFieldOptions) {\n }\n\n validate(dto: any, files:Array<Express.Multer.File>): ValidationError[] {\n const isValidateForUpdate = dto.id !== undefined; //FIXME: This is a hack, since we are using PUT for update. Once we support PATCH, this will be removed\n const fieldFiles = files.filter(file => file.fieldname === this.options.fieldName);\n return this.applyValidations(fieldFiles, isValidateForUpdate);\n }\n\n private applyValidations(fieldFiles:Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n switch (this.options.type) {\n case SolidMediaType.mediaSingle:\n return this.validateMediaSingle(fieldFiles, isValidateForUpdate);\n case SolidMediaType.mediaMultiple:\n return this.validateMediaMultiple(fieldFiles, isValidateForUpdate);\n default:\n return [];\n }\n }\n\n private validateMediaSingle(fieldFiles:Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n if (fieldFiles.length > 1) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} must be a single file`\n });\n }\n return errors;\n }\n\n private validateMediaMultiple(fieldFiles:Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] { \n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n return errors;\n }\n\n transformForCreate(dto: any): any {\n return dto;\n }\n\n // Validation to be applied\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MediaFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldCrudManager, ValidationError } from \"src/interfaces\";\n\nexport enum SolidMediaType {\n mediaSingle = 'mediaSingle',\n mediaMultiple = 'mediaMultiple'\n}\n\nexport interface MediaFieldOptions {\n type: SolidMediaType;\n required: boolean | undefined | null;\n fieldName: string | undefined | null;\n mediaMaxSizeKb: number | undefined | null;\n mediaTypes: string[];\n}\n\ntype MediaType = 'image' | 'audio' | 'video' | 'file';\n\nconst MIME_TO_MEDIA_TYPE: Record<string, MediaType> = {\n // Images\n 'image/png': 'image',\n 'image/jpeg': 'image',\n 'image/jpg': 'image',\n 'image/webp': 'image',\n 'image/gif': 'image',\n 'image/bmp': 'image',\n 'image/tiff': 'image',\n 'image/svg+xml': 'image',\n 'image/heic': 'image',\n 'image/heif': 'image',\n\n // Audio\n 'audio/mpeg': 'audio', // mp3\n 'audio/mp3': 'audio',\n 'audio/wav': 'audio',\n 'audio/x-wav': 'audio',\n 'audio/webm': 'audio',\n 'audio/ogg': 'audio',\n 'audio/aac': 'audio',\n 'audio/mp4': 'audio', // m4a often shows as audio/mp4\n 'audio/x-m4a': 'audio',\n 'audio/flac': 'audio',\n\n // Video\n 'video/mp4': 'video',\n 'video/mpeg': 'video',\n 'video/webm': 'video',\n 'video/ogg': 'video',\n 'video/quicktime': 'video', // mov\n 'video/x-msvideo': 'video', // avi\n 'video/x-matroska': 'video',// mkv\n 'video/3gpp': 'video',\n 'video/3gpp2': 'video',\n\n // Documents / files (treat as \"file\")\n 'application/pdf': 'file',\n 'text/plain': 'file',\n 'text/markdown': 'file',\n 'application/json': 'file',\n 'text/csv': 'file',\n\n // Office\n 'application/msword': 'file', // doc\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'file', // docx\n 'application/vnd.ms-excel': 'file', // xls\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'file', // xlsx\n 'application/vnd.ms-powerpoint': 'file', // ppt\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'file', // pptx,\n\n // Archives (optional)\n 'application/zip': 'file',\n 'application/x-zip-compressed': 'file',\n 'application/x-rar-compressed': 'file',\n 'application/x-7z-compressed': 'file',\n\n // Common binary fallback category\n 'application/octet-stream': 'file',\n};\n\nconst EXT_TO_MEDIA_TYPE: Record<string, MediaType> = {\n // Images\n png: 'image', jpg: 'image', jpeg: 'image', webp: 'image', gif: 'image', bmp: 'image', tiff: 'image', svg: 'image', heic: 'image', heif: 'image',\n\n // Audio\n mp3: 'audio', wav: 'audio', ogg: 'audio', aac: 'audio', m4a: 'audio', flac: 'audio',\n\n // Video\n mp4: 'video', mov: 'video', avi: 'video', mkv: 'video', mpeg: 'video', mpg: 'video', '3gp': 'video', '3g2': 'video',\n\n // Files\n pdf: 'file', txt: 'file', md: 'file', csv: 'file', json: 'file',\n doc: 'file', docx: 'file', xls: 'file', xlsx: 'file', ppt: 'file', pptx: 'file',\n zip: 'file', rar: 'file', '7z': 'file',\n};\n\n\nexport class MediaFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: MediaFieldOptions) {\n }\n\n private resolveMediaType(mimetype?: string, filename?: string): MediaType | null {\n const mt = (mimetype || '').toLowerCase().trim();\n if (mt && MIME_TO_MEDIA_TYPE[mt]) {\n return MIME_TO_MEDIA_TYPE[mt];\n }\n\n // Some libs may send \"image/*\" etc. Treat broad families safely.\n if (mt.startsWith('image/')) return 'image';\n if (mt.startsWith('audio/')) return 'audio';\n if (mt.startsWith('video/')) return 'video';\n\n // Fallback to extension if provided\n const ext = (filename || '').split('.').pop()?.toLowerCase();\n if (ext && EXT_TO_MEDIA_TYPE[ext]) {\n return EXT_TO_MEDIA_TYPE[ext];\n }\n\n return null;\n }\n\n validate(dto: any, files: Array<Express.Multer.File>): ValidationError[] {\n const isValidateForUpdate = dto.id !== undefined; //FIXME: This is a hack, since we are using PUT for update. Once we support PATCH, this will be removed\n const fieldFiles = files.filter(file => file.fieldname === this.options.fieldName);\n return this.applyValidations(fieldFiles, isValidateForUpdate);\n }\n\n private applyValidations(fieldFiles: Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n switch (this.options.type) {\n case SolidMediaType.mediaSingle:\n return this.validateMediaSingle(fieldFiles, isValidateForUpdate);\n case SolidMediaType.mediaMultiple:\n return this.validateMediaMultiple(fieldFiles, isValidateForUpdate);\n default:\n return [];\n }\n }\n\n private validateMediaSingle(fieldFiles: Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n if (fieldFiles.length > 1) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} must be a single file`\n });\n }\n // validate size\n if (this.options.mediaMaxSizeKb) {\n for (let i = 0; i < fieldFiles.length; i++) {\n const fieldFile = fieldFiles[i];\n const fieldFileSizeInBytes = Math.ceil(fieldFile.size / 1024);\n if (fieldFileSizeInBytes > this.options.mediaMaxSizeKb) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} with size ${fieldFileSizeInBytes} KB exceeds max size limit of ${this.options.mediaMaxSizeKb} KB`\n });\n }\n }\n }\n // validate type\n if (this.options.mediaTypes && this.options.mediaTypes.length > 0) {\n const allowedFileTypes = this.options.mediaTypes as MediaType[];\n\n for (let i = 0; i < fieldFiles.length; i++) {\n const fieldFile = fieldFiles[i];\n\n const resolvedType = this.resolveMediaType(fieldFile.mimetype, fieldFile.originalname ?? fieldFile.filename ?? '');\n if (!resolvedType || !allowedFileTypes.includes(resolvedType)) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} file type not allowed. ` +\n `Allowed: ${allowedFileTypes.join(', ')}. ` +\n `Received mimetype: ${fieldFile.mimetype}${resolvedType ? ` (mapped to ${resolvedType})` : ''}`\n });\n }\n }\n }\n\n return errors;\n }\n\n private validateMediaMultiple(fieldFiles: Array<Express.Multer.File>, isValidateForUpdate: boolean): ValidationError[] {\n const errors: ValidationError[] = [];\n if (!isValidateForUpdate && this.options.required && fieldFiles.length === 0) {\n errors.push({\n field: this.options.fieldName,\n error: `${this.options.fieldName} is required`\n });\n }\n return errors;\n }\n\n transformForCreate(dto: any): any {\n return dto;\n }\n\n // Validation to be applied\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ImageToBase64Result {
|
|
2
|
+
base64: string;
|
|
3
|
+
mediaType: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class ImageEncodingService {
|
|
6
|
+
private readonly logger;
|
|
7
|
+
imageUrlToBase64(url: string, mimeTypeOverride?: string, maxSizeBytes?: number): Promise<ImageToBase64Result>;
|
|
8
|
+
imageUrlToDataUrl(url: string, mimeTypeOverride?: string, maxSizeBytes?: number): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=image-encoding.helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-encoding.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/image-encoding.helper.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBACa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAS1D,gBAAgB,CAClB,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,MAAM,EACzB,YAAY,SAAkB,GAC/B,OAAO,CAAC,mBAAmB,CAAC;IAmCzB,iBAAiB,CACnB,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,MAAM,EACzB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;CASrB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var ImageEncodingService_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ImageEncodingService = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
let ImageEncodingService = ImageEncodingService_1 = class ImageEncodingService {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.logger = new common_1.Logger(ImageEncodingService_1.name);
|
|
15
|
+
}
|
|
16
|
+
async imageUrlToBase64(url, mimeTypeOverride, maxSizeBytes = 5 * 1024 * 1024) {
|
|
17
|
+
this.logger.debug(`Fetching image from URL: ${url}`);
|
|
18
|
+
const response = await fetch(url);
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
throw new Error(`Failed to fetch image (${response.status} ${response.statusText})`);
|
|
21
|
+
}
|
|
22
|
+
const contentType = mimeTypeOverride ||
|
|
23
|
+
response.headers.get('content-type') ||
|
|
24
|
+
'image/jpeg';
|
|
25
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
26
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
27
|
+
if (buffer.length > maxSizeBytes) {
|
|
28
|
+
throw new Error(`Image size ${buffer.length} bytes exceeds limit of ${maxSizeBytes} bytes`);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
base64: buffer.toString('base64'),
|
|
32
|
+
mediaType: contentType,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async imageUrlToDataUrl(url, mimeTypeOverride, maxSizeBytes) {
|
|
36
|
+
const { base64, mediaType } = await this.imageUrlToBase64(url, mimeTypeOverride, maxSizeBytes);
|
|
37
|
+
return `data:${mediaType};base64,${base64}`;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.ImageEncodingService = ImageEncodingService;
|
|
41
|
+
exports.ImageEncodingService = ImageEncodingService = ImageEncodingService_1 = __decorate([
|
|
42
|
+
(0, common_1.Injectable)()
|
|
43
|
+
], ImageEncodingService);
|
|
44
|
+
//# sourceMappingURL=image-encoding.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-encoding.helper.js","sourceRoot":"","sources":["../../src/helpers/image-encoding.helper.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AAQ7C,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAA1B;QACc,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IA6DpE,CAAC;IApDG,KAAK,CAAC,gBAAgB,CAClB,GAAW,EACX,gBAAyB,EACzB,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;QAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACX,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,CACtE,CAAC;QACN,CAAC;QAED,MAAM,WAAW,GACb,gBAAgB;YAChB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YACpC,YAAY,CAAC;QAEjB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACX,cAAc,MAAM,CAAC,MAAM,2BAA2B,YAAY,QAAQ,CAC7E,CAAC;QACN,CAAC;QAED,OAAO;YACH,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjC,SAAS,EAAE,WAAW;SACzB,CAAC;IACN,CAAC;IAMD,KAAK,CAAC,iBAAiB,CACnB,GAAW,EACX,gBAAyB,EACzB,YAAqB;QAErB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACrD,GAAG,EACH,gBAAgB,EAChB,YAAY,CACf,CAAC;QAEF,OAAO,QAAQ,SAAS,WAAW,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ,CAAA;AA9DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;GACA,oBAAoB,CA8DhC","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nexport interface ImageToBase64Result {\n base64: string;\n mediaType: string;\n}\n\n@Injectable()\nexport class ImageEncodingService {\n private readonly logger = new Logger(ImageEncodingService.name);\n\n /**\n * Fetch an image from a URL and return its Base64 representation.\n *\n * @param url - Public or signed image URL\n * @param mimeTypeOverride - Optional MIME type (image/png, image/jpeg)\n * @param maxSizeBytes - Optional max size guard (default 5MB)\n */\n async imageUrlToBase64(\n url: string,\n mimeTypeOverride?: string,\n maxSizeBytes = 5 * 1024 * 1024, \n ): Promise<ImageToBase64Result> {\n this.logger.debug(`Fetching image from URL: ${url}`);\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(\n `Failed to fetch image (${response.status} ${response.statusText})`,\n );\n }\n\n const contentType =\n mimeTypeOverride ||\n response.headers.get('content-type') ||\n 'image/jpeg';\n\n const arrayBuffer = await response.arrayBuffer();\n const buffer = Buffer.from(arrayBuffer);\n\n if (buffer.length > maxSizeBytes) {\n throw new Error(\n `Image size ${buffer.length} bytes exceeds limit of ${maxSizeBytes} bytes`,\n );\n }\n\n return {\n base64: buffer.toString('base64'),\n mediaType: contentType,\n };\n }\n\n /**\n * Convenience method that returns a data URL\n * (useful for OpenAI Responses API).\n */\n async imageUrlToDataUrl(\n url: string,\n mimeTypeOverride?: string,\n maxSizeBytes?: number,\n ): Promise<string> {\n const { base64, mediaType } = await this.imageUrlToBase64(\n url,\n mimeTypeOverride,\n maxSizeBytes,\n );\n\n return `data:${mediaType};base64,${base64}`;\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/module.helper.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB,QAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"module.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/module.helper.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB,QAAO,MAAM,EA+B9C,CAAA;AAED,eAAO,MAAM,oCAAoC,QAAO,MAAM,EAgC7D,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAO,MAAM,EAG3C,CAAA"}
|
|
@@ -54,6 +54,7 @@ const getDynamicModuleNames = () => {
|
|
|
54
54
|
return files.length > 0;
|
|
55
55
|
})
|
|
56
56
|
.map(dirent => dirent.name);
|
|
57
|
+
console.log(`Dynamic Modules Are:`, enabledModules);
|
|
57
58
|
return enabledModules;
|
|
58
59
|
};
|
|
59
60
|
exports.getDynamicModuleNames = getDynamicModuleNames;
|
|
@@ -77,6 +78,7 @@ const getDynamicModuleNamesBasedOnMetadata = () => {
|
|
|
77
78
|
return !!stats && stats.isFile();
|
|
78
79
|
})
|
|
79
80
|
.map(dirent => dirent.name);
|
|
81
|
+
console.log(`Src Based Dynamic Modules Are:`, enabledModules);
|
|
80
82
|
return enabledModules;
|
|
81
83
|
};
|
|
82
84
|
exports.getDynamicModuleNamesBasedOnMetadata = getDynamicModuleNamesBasedOnMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/helpers/module.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,CAAC;AAEpC,MAAM,qBAAqB,GAAG,GAAa,EAAE;IAClD,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAG/F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,IAAA,0BAAkB,GAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE1F,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAKrE,MAAM,cAAc,GAAG,WAAW;SAC/B,MAAM,CAAC,MAAM,CAAC,EAAE;QACf,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3F,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAGpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC;SACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAG9B,OAAO,cAAc,CAAC;AACxB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/helpers/module.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,CAAC;AAEpC,MAAM,qBAAqB,GAAG,GAAa,EAAE;IAClD,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAG/F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,IAAA,0BAAkB,GAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE1F,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAKrE,MAAM,cAAc,GAAG,WAAW;SAC/B,MAAM,CAAC,MAAM,CAAC,EAAE;QACf,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3F,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAGpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC;SACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAG9B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;IAEpD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAA;AA/BY,QAAA,qBAAqB,yBA+BjC;AAEM,MAAM,oCAAoC,GAAG,GAAa,EAAE;IACjE,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAI/F,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,IAAA,0BAAkB,GAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAG1F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,wCAAwC,kBAAkB,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,yBAAyB,GAAG,EAAE,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,MAAM,cAAc,GAAG,yBAAyB;SAC7C,MAAM,CAAC,MAAM,CAAC,EAAE;QACf,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3F,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;QAE5F,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC,CAAC;SACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAG9B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;IAC9D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAA;AAhCY,QAAA,oCAAoC,wCAgChD;AAEM,MAAM,kBAAkB,GAAG,GAAa,EAAE;IAE/C,OAAO,CAAC,YAAY,CAAC,CAAC;AACxB,CAAC,CAAA;AAHY,QAAA,kBAAkB,sBAG9B","sourcesContent":["import { Logger } from '@nestjs/common';\nimport * as fs from 'fs'; // Use the Promise-based version of fs for async/await\nimport * as path from 'path'; // To handle file paths\n\nconst logger = new Logger('module.helper');\n\nexport const getDynamicModuleNames = (): string[] => {\n const dynamicModulesToExclude = process.env.SOLID_DYNAMIC_MODULES_TO_EXCLUDE?.split(',') || [];\n\n // Adjust if 'src' is in a different location\n const srcPath = path.join(process.cwd(), 'src');\n const coreModuleNames = getCoreModuleNames();\n const allExcludedModules = [...new Set([...coreModuleNames, ...dynamicModulesToExclude])];\n\n const directories = fs.readdirSync(srcPath, { withFileTypes: true });\n // const enabledModules = directories\n // .filter(d => d.isDirectory() && !allExcludedModules.includes(d.name))\n // .map(d => d.name);\n\n const enabledModules = directories\n .filter(dirent => {\n const isValidDirectory = dirent.isDirectory() && !allExcludedModules.includes(dirent.name);\n\n if (!isValidDirectory) return false;\n\n // return true\n const fullPath = path.join(srcPath, dirent.name);\n const files = fs.readdirSync(fullPath);\n // skip if empty directory\n return files.length > 0;\n })\n .map(dirent => dirent.name);\n\n // logger.debug(`Enabled dynamic modules:`, enabledModules);\n console.log(`Dynamic Modules Are:`, enabledModules);\n\n return enabledModules;\n}\n\nexport const getDynamicModuleNamesBasedOnMetadata = (): string[] => {\n const dynamicModulesToExclude = process.env.SOLID_DYNAMIC_MODULES_TO_EXCLUDE?.split(',') || [];\n\n // Find a path that is ../${srcPath}/module-metadata save it in a variable.\n // const srcPath = path.join(process.cwd(), 'src');\n const moduleMetadataPath = path.join(process.cwd(), 'module-metadata');\n const coreModuleNames = getCoreModuleNames();\n const allExcludedModules = [...new Set([...coreModuleNames, ...dynamicModulesToExclude])];\n\n // if module-metadata path does not exist, return empty array\n if (!fs.existsSync(moduleMetadataPath)) {\n logger.warn(`Module metadata path does not exist: ${moduleMetadataPath}`);\n return [];\n }\n\n const moduleMetadataDirectories = fs.readdirSync(moduleMetadataPath, { withFileTypes: true });\n const enabledModules = moduleMetadataDirectories\n .filter(dirent => {\n const isValidDirectory = dirent.isDirectory() && !allExcludedModules.includes(dirent.name);\n\n if (!isValidDirectory) return false;\n\n const fullPath = path.join(moduleMetadataPath, dirent.name, `${dirent.name}-metadata.json`);\n\n const stats = fs.statSync(fullPath, { throwIfNoEntry: false });\n return !!stats && stats.isFile();\n })\n .map(dirent => dirent.name);\n\n // logger.debug(`Enabled dynamic modules basis src:`, enabledModules);\n console.log(`Src Based Dynamic Modules Are:`, enabledModules);\n return enabledModules;\n}\n\nexport const getCoreModuleNames = (): string[] => {\n // return ['iam', 'common', 'queues', 'app-builder'];\n return ['solid-core'];\n}"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface SolidxIamAuthRequest {
|
|
2
|
+
email?: string;
|
|
3
|
+
username?: string;
|
|
4
|
+
password: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SolidxIamUser {
|
|
7
|
+
email: string;
|
|
8
|
+
mobile: string;
|
|
9
|
+
username: string;
|
|
10
|
+
forcePasswordChange: boolean;
|
|
11
|
+
id: number;
|
|
12
|
+
roles: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface SolidxIamAuthData {
|
|
15
|
+
user: SolidxIamUser;
|
|
16
|
+
accessToken: string;
|
|
17
|
+
refreshToken: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SolidxIamAuthResponse {
|
|
20
|
+
statusCode: number;
|
|
21
|
+
message: string[];
|
|
22
|
+
error: string;
|
|
23
|
+
data: SolidxIamAuthData;
|
|
24
|
+
}
|
|
25
|
+
export declare class SolidMicroserviceAdapter {
|
|
26
|
+
private readonly logger;
|
|
27
|
+
private baseUrl?;
|
|
28
|
+
setBaseUrl(baseUrl: string): this;
|
|
29
|
+
authenticate({ email, username, password }: SolidxIamAuthRequest): Promise<SolidxIamAuthResponse>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=solid-microservice-adapter.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-microservice-adapter.service.d.ts","sourceRoot":"","sources":["../../src/helpers/solid-microservice-adapter.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,qBACa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IACpE,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3B,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA0BxG"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
var SolidMicroserviceAdapter_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SolidMicroserviceAdapter = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const axios_1 = __importDefault(require("axios"));
|
|
16
|
+
let SolidMicroserviceAdapter = SolidMicroserviceAdapter_1 = class SolidMicroserviceAdapter {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.logger = new common_1.Logger(SolidMicroserviceAdapter_1.name);
|
|
19
|
+
}
|
|
20
|
+
setBaseUrl(baseUrl) {
|
|
21
|
+
this.baseUrl = baseUrl;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
async authenticate({ email, username, password }) {
|
|
25
|
+
if (!password) {
|
|
26
|
+
throw new Error('password is required for IAM authentication');
|
|
27
|
+
}
|
|
28
|
+
if (!email && !username) {
|
|
29
|
+
throw new Error('email or username is required for IAM authentication');
|
|
30
|
+
}
|
|
31
|
+
if (!this.baseUrl) {
|
|
32
|
+
throw new Error('baseUrl must be set before IAM authentication');
|
|
33
|
+
}
|
|
34
|
+
const payload = { password };
|
|
35
|
+
if (email)
|
|
36
|
+
payload.email = email;
|
|
37
|
+
if (username)
|
|
38
|
+
payload.username = username;
|
|
39
|
+
this.logger.debug(`Requesting IAM access token from ${this.baseUrl}/api/iam/authenticate`);
|
|
40
|
+
const response = await axios_1.default.post(`${this.baseUrl}/api/iam/authenticate`, payload, {
|
|
41
|
+
timeout: 10000,
|
|
42
|
+
headers: {
|
|
43
|
+
'Content-Type': 'application/json',
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
return response.data;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.SolidMicroserviceAdapter = SolidMicroserviceAdapter;
|
|
50
|
+
exports.SolidMicroserviceAdapter = SolidMicroserviceAdapter = SolidMicroserviceAdapter_1 = __decorate([
|
|
51
|
+
(0, common_1.Injectable)({ scope: common_1.Scope.TRANSIENT })
|
|
52
|
+
], SolidMicroserviceAdapter);
|
|
53
|
+
//# sourceMappingURL=solid-microservice-adapter.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-microservice-adapter.service.js","sourceRoot":"","sources":["../../src/helpers/solid-microservice-adapter.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA2D;AAC3D,kDAA0B;AA+BnB,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAA9B;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAkCtE,CAAC;IA/BC,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAwB;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAyB,EAAE,QAAQ,EAAE,CAAC;QACnD,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,OAAO,uBAAuB,CAAC,CAAC;QAE3F,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,uBAAuB,EAAE,OAAO,EAAE;YACjF,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAA6B,CAAC;IAChD,CAAC;CACF,CAAA;AAnCY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,SAAS,EAAE,CAAC;GAC1B,wBAAwB,CAmCpC","sourcesContent":["import { Injectable, Logger, Scope } from '@nestjs/common';\nimport axios from 'axios';\n\nexport interface SolidxIamAuthRequest {\n email?: string;\n username?: string;\n password: string;\n}\n\nexport interface SolidxIamUser {\n email: string;\n mobile: string;\n username: string;\n forcePasswordChange: boolean;\n id: number;\n roles: string[];\n}\n\nexport interface SolidxIamAuthData {\n user: SolidxIamUser;\n accessToken: string;\n refreshToken: string;\n}\n\nexport interface SolidxIamAuthResponse {\n statusCode: number;\n message: string[];\n error: string;\n data: SolidxIamAuthData;\n}\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class SolidMicroserviceAdapter {\n private readonly logger = new Logger(SolidMicroserviceAdapter.name);\n private baseUrl?: string;\n\n setBaseUrl(baseUrl: string): this {\n this.baseUrl = baseUrl;\n return this;\n }\n\n async authenticate({ email, username, password }: SolidxIamAuthRequest): Promise<SolidxIamAuthResponse> {\n if (!password) {\n throw new Error('password is required for IAM authentication');\n }\n if (!email && !username) {\n throw new Error('email or username is required for IAM authentication');\n }\n if (!this.baseUrl) {\n throw new Error('baseUrl must be set before IAM authentication');\n }\n\n const payload: SolidxIamAuthRequest = { password };\n if (email) payload.email = email;\n if (username) payload.username = username;\n\n this.logger.debug(`Requesting IAM access token from ${this.baseUrl}/api/iam/authenticate`);\n\n const response = await axios.post(`${this.baseUrl}/api/iam/authenticate`, payload, {\n timeout: 10000,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n return response.data as SolidxIamAuthResponse;\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -170,6 +170,8 @@ export * from './helpers/environment.helper';
|
|
|
170
170
|
export * from './helpers/cors.helper';
|
|
171
171
|
export * from './helpers/security.helper';
|
|
172
172
|
export * from './helpers/model-metadata-helper.service';
|
|
173
|
+
export * from './helpers/image-encoding.helper';
|
|
174
|
+
export * from './helpers/solid-microservice-adapter.service';
|
|
173
175
|
export * from './services/crud.service';
|
|
174
176
|
export * from './interceptors/logging.interceptor';
|
|
175
177
|
export * from './interceptors/wrap-response.interceptor';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -191,6 +191,8 @@ __exportStar(require("./helpers/environment.helper"), exports);
|
|
|
191
191
|
__exportStar(require("./helpers/cors.helper"), exports);
|
|
192
192
|
__exportStar(require("./helpers/security.helper"), exports);
|
|
193
193
|
__exportStar(require("./helpers/model-metadata-helper.service"), exports);
|
|
194
|
+
__exportStar(require("./helpers/image-encoding.helper"), exports);
|
|
195
|
+
__exportStar(require("./helpers/solid-microservice-adapter.service"), exports);
|
|
194
196
|
__exportStar(require("./services/crud.service"), exports);
|
|
195
197
|
__exportStar(require("./interceptors/logging.interceptor"), exports);
|
|
196
198
|
__exportStar(require("./interceptors/wrap-response.interceptor"), exports);
|