@solidxai/core 0.1.12-beta.0 → 0.1.12-beta.10
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/commands/seed.command.d.ts.map +1 -1
- package/dist/commands/seed.command.js +10 -2
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/constants/error-messages.d.ts +1 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +1 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/media-file-types.d.ts +5 -0
- package/dist/constants/media-file-types.d.ts.map +1 -0
- package/dist/constants/media-file-types.js +27 -0
- package/dist/constants/media-file-types.js.map +1 -0
- package/dist/controllers/media.controller.d.ts +14 -11
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/media.controller.js +72 -33
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/dtos/create-chatter-message.dto.d.ts +1 -0
- package/dist/dtos/create-chatter-message.dto.d.ts.map +1 -1
- package/dist/dtos/create-chatter-message.dto.js +7 -1
- package/dist/dtos/create-chatter-message.dto.js.map +1 -1
- package/dist/dtos/create-media.dto.d.ts +1 -0
- package/dist/dtos/create-media.dto.d.ts.map +1 -1
- package/dist/dtos/create-media.dto.js +7 -1
- package/dist/dtos/create-media.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
- package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js +3 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/post-chatter-message.dto.d.ts +1 -0
- package/dist/dtos/post-chatter-message.dto.d.ts.map +1 -1
- package/dist/dtos/post-chatter-message.dto.js +6 -1
- package/dist/dtos/post-chatter-message.dto.js.map +1 -1
- package/dist/dtos/update-chatter-message.dto.d.ts +1 -0
- package/dist/dtos/update-chatter-message.dto.d.ts.map +1 -1
- package/dist/dtos/update-chatter-message.dto.js +8 -1
- package/dist/dtos/update-chatter-message.dto.js.map +1 -1
- package/dist/dtos/update-chatter-note-message.dto.d.ts +1 -0
- package/dist/dtos/update-chatter-note-message.dto.d.ts.map +1 -1
- package/dist/dtos/update-chatter-note-message.dto.js +7 -1
- package/dist/dtos/update-chatter-note-message.dto.js.map +1 -1
- package/dist/dtos/update-media.dto.d.ts +1 -0
- package/dist/dtos/update-media.dto.d.ts.map +1 -1
- package/dist/dtos/update-media.dto.js +7 -1
- package/dist/dtos/update-media.dto.js.map +1 -1
- package/dist/entities/chatter-message.entity.d.ts +1 -0
- package/dist/entities/chatter-message.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message.entity.js +5 -1
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/enums/auth-type.enum.d.ts +2 -1
- package/dist/enums/auth-type.enum.d.ts.map +1 -1
- package/dist/enums/auth-type.enum.js +1 -0
- package/dist/enums/auth-type.enum.js.map +1 -1
- package/dist/guards/authentication.guard.d.ts +3 -1
- package/dist/guards/authentication.guard.d.ts.map +1 -1
- package/dist/guards/authentication.guard.js +5 -1
- package/dist/guards/authentication.guard.js.map +1 -1
- package/dist/guards/media-signed-url.guard.d.ts +9 -0
- package/dist/guards/media-signed-url.guard.d.ts.map +1 -0
- package/dist/guards/media-signed-url.guard.js +49 -0
- package/dist/guards/media-signed-url.guard.js.map +1 -0
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +10 -13
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.js +9 -0
- package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
- package/dist/interfaces/chatter-mention-notification.interface.d.ts +27 -0
- package/dist/interfaces/chatter-mention-notification.interface.d.ts.map +1 -0
- package/dist/interfaces/chatter-mention-notification.interface.js +3 -0
- package/dist/interfaces/chatter-mention-notification.interface.js.map +1 -0
- package/dist/interfaces.d.ts +19 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +2 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/chatter-mention-notification-email-queue-handler.service.d.ts +17 -0
- package/dist/jobs/chatter-mention-notification-email-queue-handler.service.d.ts.map +1 -0
- package/dist/jobs/chatter-mention-notification-email-queue-handler.service.js +106 -0
- package/dist/jobs/chatter-mention-notification-email-queue-handler.service.js.map +1 -0
- package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.d.ts +12 -0
- package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.js +39 -0
- package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.js +10 -0
- package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.js.map +1 -0
- package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.d.ts +20 -0
- package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.js +48 -0
- package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.js.map +1 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.d.ts +12 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.js +39 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.js.map +1 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.d.ts +8 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.js +10 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.js.map +1 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.d.ts +18 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.js +45 -0
- package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.js.map +1 -0
- package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.d.ts +12 -0
- package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.d.ts.map +1 -0
- package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.js +39 -0
- package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.js.map +1 -0
- package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.d.ts +8 -0
- package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.d.ts.map +1 -0
- package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.js +10 -0
- package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.js.map +1 -0
- package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.d.ts +18 -0
- package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.d.ts.map +1 -0
- package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.js +45 -0
- package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.js.map +1 -0
- package/dist/repository/media.repository.d.ts.map +1 -1
- package/dist/repository/media.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +7 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +87 -3
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.d.ts +1 -0
- package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js +6 -1
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +95 -13
- package/dist/services/authentication.service.d.ts +2 -2
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +52 -43
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +7 -1
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +85 -4
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/media-download-url.service.d.ts +22 -0
- package/dist/services/media-download-url.service.d.ts.map +1 -0
- package/dist/services/media-download-url.service.js +70 -0
- package/dist/services/media-download-url.service.js.map +1 -0
- package/dist/services/media-storage.utils.d.ts +24 -0
- package/dist/services/media-storage.utils.d.ts.map +1 -0
- package/dist/services/media-storage.utils.js +73 -0
- package/dist/services/media-storage.utils.js.map +1 -0
- package/dist/services/media.service.d.ts +20 -4
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +155 -55
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +4 -4
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +34 -63
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +5 -5
- package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js +34 -38
- package/dist/services/mediaStorageProviders/file-storage-provider.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 +8 -5
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +25 -1
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.js +1 -1
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/seed.command.ts +12 -3
- package/src/constants/error-messages.ts +1 -0
- package/src/constants/media-file-types.ts +44 -0
- package/src/controllers/media.controller.ts +44 -24
- package/src/dtos/create-chatter-message.dto.ts +5 -0
- package/src/dtos/create-media.dto.ts +8 -3
- package/src/dtos/create-role-metadata.dto.ts +2 -0
- package/src/dtos/post-chatter-message.dto.ts +4 -0
- package/src/dtos/update-chatter-message.dto.ts +6 -0
- package/src/dtos/update-chatter-note-message.dto.ts +5 -0
- package/src/dtos/update-media.dto.ts +8 -3
- package/src/entities/chatter-message.entity.ts +3 -0
- package/src/entities/media.entity.ts +1 -1
- package/src/enums/auth-type.enum.ts +1 -0
- package/src/guards/authentication.guard.ts +3 -0
- package/src/guards/media-signed-url.guard.ts +41 -0
- package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +12 -24
- package/src/helpers/solid-core-error-codes-provider.service.ts +9 -0
- package/src/interfaces/chatter-mention-notification.interface.ts +29 -0
- package/src/interfaces.ts +20 -0
- package/src/jobs/chatter-mention-notification-email-queue-handler.service.ts +114 -0
- package/src/jobs/database/chatter-mention-notification-email-publisher-database.service.ts +23 -0
- package/src/jobs/database/chatter-mention-notification-email-queue-options-database.ts +9 -0
- package/src/jobs/database/chatter-mention-notification-email-subscriber-database.service.ts +32 -0
- package/src/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.ts +23 -0
- package/src/jobs/rabbitmq/chatter-mention-notification-email-queue-options.ts +9 -0
- package/src/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.ts +30 -0
- package/src/jobs/redis/chatter-mention-notification-email-publisher-redis.service.ts +23 -0
- package/src/jobs/redis/chatter-mention-notification-email-queue-options-redis.ts +9 -0
- package/src/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.ts +30 -0
- package/src/repository/media.repository.ts +1 -0
- package/src/seeders/module-metadata-seeder.service.ts +109 -3
- package/src/seeders/permission-metadata-seeder.service.ts +6 -1
- package/src/seeders/seed-data/email-templates/chatter-mention-notification.handlebars.html +200 -0
- package/src/seeders/seed-data/solid-core-metadata.json +95 -13
- package/src/services/authentication.service.ts +66 -55
- package/src/services/chatter-message.service.ts +97 -2
- package/src/services/media-download-url.service.ts +74 -0
- package/src/services/media-storage.utils.ts +70 -0
- package/src/services/media.service.ts +187 -59
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +49 -76
- package/src/services/mediaStorageProviders/file-storage-provider.ts +41 -48
- package/src/services/role-metadata.service.ts +17 -5
- package/src/solid-core.module.ts +35 -2
- package/src/subscribers/audit.subscriber.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.command.d.ts","sourceRoot":"","sources":["../../src/commands/seed.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"seed.command.d.ts","sourceRoot":"","sources":["../../src/commands/seed.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBACa,WAAY,SAAQ,aAAa;IAGhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE1B,aAAa,EAAE,aAAa;IAInD,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7E,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKvC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKhC,UAAU,IAAI,OAAO;CAGtB"}
|
|
@@ -27,14 +27,22 @@ let SeedCommand = SeedCommand_1 = class SeedCommand extends nest_commander_1.Com
|
|
|
27
27
|
.split(',')
|
|
28
28
|
.map((m) => m.trim())
|
|
29
29
|
.filter(Boolean);
|
|
30
|
-
parsedConf = {
|
|
30
|
+
parsedConf = {
|
|
31
|
+
modulesToSeed,
|
|
32
|
+
pruneMetadata: false,
|
|
33
|
+
seedGlobalMetadata: true,
|
|
34
|
+
};
|
|
31
35
|
this.logger.log(`Modules to seed: ${modulesToSeed.join(', ')}`);
|
|
32
36
|
}
|
|
33
37
|
else {
|
|
34
38
|
this.logger.log('No --modules-to-seed flag provided. Running with default seeder behavior.');
|
|
35
39
|
}
|
|
36
40
|
if (options?.prune) {
|
|
37
|
-
parsedConf = parsedConf ?? {
|
|
41
|
+
parsedConf = parsedConf ?? {
|
|
42
|
+
modulesToSeed: null,
|
|
43
|
+
pruneMetadata: false,
|
|
44
|
+
seedGlobalMetadata: true,
|
|
45
|
+
};
|
|
38
46
|
parsedConf.pruneMetadata = true;
|
|
39
47
|
}
|
|
40
48
|
const seeder = this.solidRegistry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.command.js","sourceRoot":"","sources":["../../src/commands/seed.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAwC;AACxC,mDAAgE;AAChE,8DAA2D;
|
|
1
|
+
{"version":3,"file":"seed.command.js","sourceRoot":"","sources":["../../src/commands/seed.command.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger } from '@nestjs/common';\nimport { Command, CommandRunner, Option } from 'nest-commander';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { ModuleMetadataSeederOptions } from 'src/interfaces';\n\ninterface SeedCommandOptions {\n seeder?: string;\n modulesToSeed?: string;\n prune?: boolean;\n}\n\n@Command({ name: 'seed', description: 'Install seed data for a given module' })\nexport class SeedCommand extends CommandRunner {\n private readonly logger = new Logger(SeedCommand.name);\n\n constructor(private readonly solidRegistry: SolidRegistry) {\n super();\n }\n\n async run(passedParam: string[], options?: SeedCommandOptions): Promise<void> {\n let parsedConf: ModuleMetadataSeederOptions | null = null;\n if (options?.modulesToSeed) {\n const modulesToSeed = options.modulesToSeed\n .split(',')\n .map((m) => m.trim())\n .filter(Boolean);\n parsedConf = {\n modulesToSeed,\n pruneMetadata: false,\n seedGlobalMetadata: true,\n };\n this.logger.log(`Modules to seed: ${modulesToSeed.join(', ')}`);\n } else {\n this.logger.log('No --modules-to-seed flag provided. Running with default seeder behavior.');\n }\n\n if (options?.prune) {\n parsedConf = parsedConf ?? {\n modulesToSeed: null,\n pruneMetadata: false,\n seedGlobalMetadata: true,\n };\n parsedConf.pruneMetadata = true;\n }\n\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === options.seeder)\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ${options.seeder} 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(parsedConf);\n }\n\n /**\n * This parameter will be useful, to support seeders with the same name in different modules\n * Currently the seeder service won't support seeder with same classname within a module\n **/\n @Option({ flags: '-m, --modules-to-seed [module names]', description: 'Comma-separated list of module names to seed.', required: false })\n parseModulesToSeed(val: string): string {\n return val;\n }\n\n @Option({ flags: '-s, --seeder [seeder name]', description: 'The seeder to run.', required: true, defaultValue: 'ModuleMetadataSeederService' })\n parseString(val: string): string {\n return val;\n }\n\n @Option({ flags: '--prune', description: 'Prune metadata not present in JSON.' })\n parsePrune(): boolean {\n return true;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-messages.d.ts","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAyCE,MAAM,EAAE;2CACM,MAAM;+BAClB,MAAM;uCACE,MAAM
|
|
1
|
+
{"version":3,"file":"error-messages.d.ts","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAyCE,MAAM,EAAE;2CACM,MAAM;+BAClB,MAAM;uCACE,MAAM;;;;;;;;;;;;;;;;;6BAiChB,MAAM;;;;0BAOT,MAAM,GAAG,MAAM;mCACN,MAAM;;;;;;mCASN,MAAM,GAAG,MAAM;qCACb,MAAM;yDACc,MAAM;qCAC1B,MAAM;;mCAIR,MAAM;8BACX,MAAM,GAAG,MAAM;gCAGb,MAAM,GAAG,MAAM;;;kCAKb,MAAM,GAAG,MAAM;qCACZ,MAAM;8CAGG,MAAM,GAAG,MAAM;;yCAIpB,MAAM;;;;;yBAYtC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAElD,CAAC"}
|
|
@@ -47,6 +47,7 @@ exports.ERROR_MESSAGES = {
|
|
|
47
47
|
GROUP_BY_LIMIT: 'buildFilterQuery: Only 1 Group by field is supported currently.',
|
|
48
48
|
INVALID_GROUP_BY_COUNT: 'Exactly one groupBy field is required to count grouped records.',
|
|
49
49
|
FORBIDDEN: 'Forbidden',
|
|
50
|
+
RESOURCE_NOT_FOUND: 'The requested resource was not found.',
|
|
50
51
|
DUPLICATE_ENTRY: 'Duplicate entry. A record with similar unique fields already exists.',
|
|
51
52
|
ID_REQUIRED_FOR_UPDATE: 'Id is required for update.',
|
|
52
53
|
ID_REQUIRED_FOR_DELETE: 'Id is required for deletion.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-messages.js","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"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","sourcesContent":["// backend/common/constants/error-messages.ts\n\nexport const ERROR_MESSAGES = {\n //authentication errors\n USER_NOT_FOUND: 'User does not exist.',\n USER_NOT_ACTIVE: 'User profile is not activated.',\n USER_INACTIVE: 'User is inactive.',\n ACCOUNT_BLOCKED: 'Your account has been blocked due to multiple failed login attempts.',\n PASSWORD_INCORRECT: 'Password does not match.',\n PUBLIC_REGISTRATION_DISABLED: 'Public registrations are disabled.',\n UNIQUE_CONSTRAINT_VIOLATION: 'A unique constraint violation occurred.',\n PASSWORDLESS_REGISTRATION_DISABLED: 'Passwordless registration is not enabled.',\n REGISTRATION_REQUIRES_CONTACT: 'Either mobile or email is required for initiating registration.',\n EMAIL_REQUIRED_FOR_VALIDATION: 'Email is required for email validation source.',\n MOBILE_REQUIRED_FOR_VALIDATION: 'Mobile is required for mobile validation source.',\n USER_ALREADY_EXISTS: 'User already exists. Please sign in.',\n VALIDATION_SOURCE_REQUIRED: 'At least one validation source is required.',\n INVALID_OTP: 'Invalid OTP.',\n OTP_EXPIRED: 'OTP has expired.',\n INVALID_VERIFICATION_TYPE: 'Invalid type. Must be either email or mobile.',\n NON_LOCAL_PROVIDER: 'User seems to have used a passwordless mode to authenticate.',\n USER_ID_MISMATCH: \"User ID's do not match.\",\n USERNAME_MISMATCH: \"User username's do not match.\",\n INCORRECT_CURRENT_PASSWORD: 'Incorrect current password specified.',\n PASSWORD_REUSED: 'Try a different password',\n INVALID_VERIFICATION_TOKEN: 'Invalid verification token',\n INVALID_REFRESH_TOKEN: 'Invalid refresh token',\n ACCESS_DENIED: 'Access denied',\n INVALID_USER_PROFILE: 'Invalid user profile',\n GOOGLE_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Google OAuth service',\n MICROSOFT_ACTIVE_DIRECTORY_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Microsoft Active Directory OAuth service',\n LOGOUT_FAILED: 'Logout failed due to an unexpected error.',\n\n INVALID_CREDENTIALS: 'Invalid credentials',\n LOGIN_FAILED: 'Login Failed',\n OLD_PASSWORD_INCORRECT: 'You have specified an incorrect old password.',\n INVALID_NEW_PASSWORD: 'Invalid new password.',\n PASSWORDS_DO_NOT_MATCH: 'New passwords are not matching.',\n\n // user management errors\n DELETE_SELF_NOT_ALLOWED: 'Deleting logged-in user is not allowed.',\n DELETE_IDS_REQUIRED: 'At least one ID is required for deletion.',\n USER_MISSING_ID: 'User must exist before initializing roles.',\n ROLES_NOT_FOUND: (roles: string[]) => `The following roles were not found: ${roles.join(', ')}`,\n USER_NOT_FOUND_BY_USERNAME: (username: string) => `User with username '${username}' not found.`,\n ROLE_NOT_FOUND: (roleName: string) => `Role '${roleName}' not found.`,\n PERMISSION_NOT_EXIST: (permission: string) => `Permission '${permission}' does not exist.`,\n\n // session errors\n SESSION_INVALID: 'Your session is no longer valid. Please log in again.',\n SESSION_EXPIRED: 'Your session has expired. Please log in again.',\n\n // filter errors\n GROUP_BY_LIMIT: 'buildFilterQuery: Only 1 Group by field is supported currently.',\n INVALID_GROUP_BY_COUNT: 'Exactly one groupBy field is required to count grouped records.',\n\n // general errors\n FORBIDDEN: 'Forbidden',\n\n\n // database errors\n DUPLICATE_ENTRY: 'Duplicate entry. A record with similar unique fields already exists.',\n\n // validation errors\n ID_REQUIRED_FOR_UPDATE: 'Id is required for update.',\n ID_REQUIRED_FOR_DELETE: 'Id is required for deletion.',\n\n // CRUD service errors\n RELATION_TYPE_NOT_SUPPORTED: 'Relation type not supported in CRUD service.',\n NO_SOFT_DELETED_RECORD_FOUND: 'No soft-deleted record found with the given ID.',\n CONFLICTING_RECORD_ON_UNARCHIVE: 'Another record is conflicting with the record you are attempting to Un-Archive, either delete or change the other record so as to avoid this conflict.',\n NO_SOFT_DELETED_RECORDS_FOUND: 'No matching soft-deleted records found.',\n EMPTY_PATH_PARTS: 'Path parts cannot be empty',\n\n\n // CSV/Excel service errors\n MISSING_HEADERS_OR_FUNCTION: 'Either headers or data records function must be provided.',\n INVALID_CHUNK_SIZE: 'Chunk size must be greater than 0 when data records function is provided.',\n INVALID_FORMAT: (format: string) => `Invalid ${format} format`,\n\n\n //field errors\n INVALID_INVERSE_FIELD_TYPE: 'Only relation fields can have inverse fields.',\n MODEL_AND_MODULE_REQUIRED_TO_UPDATE_INVERSE_FIELD: 'Model and module are required to update inverse field.',\n MODEL_NAME_AND_MODULE_NAME_REQUIRED_TO_CREATE_INVERSE_FIELD: 'Model name and module name are required to create inverse field.',\n FIELD_NOT_FOUND: (id: number | string) => `No field with id #${id} exists`,\n PROVIDER_NOT_FOUND: (provider: string) => `Field incorrectly configured. No provider with name ${provider} registered in backend.`,\n FILE_WRITE_FAILED: 'File creation failed, rolling back transaction',\n FILE_DELETE_FAILED: 'File deletion failed, rolling back transaction',\n // file service errors\n FILE_NOT_FOUND: 'File not found',\n FILE_COPY_ERROR: 'Error copying file',\n S3_CLIENT_NOT_INITIALIZED: 'S3 Client not initialized. Please check the S3 configuration.',\n\n // model errors\n MODEL_METADATA_NOT_FOUND: (id: string | number) => `Model metadata with ID ${id} not found.`,\n MODEL_SERVICE_NOT_FOUND: (model: string) => `Model service for ${model} not found.`,\n RELATION_CO_MODEL_NOT_DEFINED_FOR_FIELD: (fieldName: string) => `Relation coModelSingularName is not defined for relation field ${fieldName}`,\n MODEL_NOT_FOUND: (singularName?: string) => `Model${singularName ? ` with singular name \"${singularName}\"` : ''} not found.`,\n MODEL_REQUIRED_FOR_CODE_GENERATION: 'Model ID or Model Name is required for generating code.',\n\n //module errors\n MODULE_NOT_FOUND: (moduleName: string) => `Module with name ${moduleName} not found.`,\n MODULE_ID_NOT_FOUND: (id: string | number) => `Module with ID ${id} not found.`,\n\n //entity errors\n ENTITY_NOT_FOUND: (entity?: string | number) => `Entity${entity ? ' ' + entity : ''} not found.`,\n ENTITY_NAME_REQUIRED: 'Entity name is required to find the entity.',\n ENTITY_ID_REQUIRED: 'Entity ID is required to find the entity.',\n\n // import errors\n NO_ERROR_LOG_FOR_IMPORT: (id: string | number) => `No error log entries found for import transaction ID ${id}.`,\n FILE_READ_FAILED_FROM_URL: (url: string) => `Failed to read file from URL: ${url}`,\n\n // media storage provider errors\n MEDIA_STORAGE_PROVIDER_ID_NOT_FOUND: (id: number | string) => `Media Storage Provider with #${id} not found.`,\n MEDIA_STORAGE_PROVIDER_NOT_FOUND: 'Media Storage Provider not found',\n\n // SQL errors\n UNSUPPORTED_SQL_OPERATOR: (operator: string) => `Unsupported SQL operator: ${operator}`,\n\n // AI interaction errors\n PYTHON_EXECUTABLE_NOT_CONFIGURED: 'SolidX AI MCP python executable or client path not configured.',\n UNABLE_TO_RESOLVE_SOLID_COMMAND: 'Unable to resolve a solid_ command that was used to come up with this response.',\n UNABLE_TO_RESOLVE_MCP_HANDLER: 'Unable to resolve a mcp tool handler.',\n\n DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG: 'Invalid regex pattern.',\n\n PERMISSION_MESSAGES: {\n insertMany: (model?: string) =>\n `You do not have permission to import ${model ?? 'these'} records.`,\n } as Record<string, (model?: string) => string>,\n\n};\n"]}
|
|
1
|
+
{"version":3,"file":"error-messages.js","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"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","sourcesContent":["// backend/common/constants/error-messages.ts\n\nexport const ERROR_MESSAGES = {\n //authentication errors\n USER_NOT_FOUND: 'User does not exist.',\n USER_NOT_ACTIVE: 'User profile is not activated.',\n USER_INACTIVE: 'User is inactive.',\n ACCOUNT_BLOCKED: 'Your account has been blocked due to multiple failed login attempts.',\n PASSWORD_INCORRECT: 'Password does not match.',\n PUBLIC_REGISTRATION_DISABLED: 'Public registrations are disabled.',\n UNIQUE_CONSTRAINT_VIOLATION: 'A unique constraint violation occurred.',\n PASSWORDLESS_REGISTRATION_DISABLED: 'Passwordless registration is not enabled.',\n REGISTRATION_REQUIRES_CONTACT: 'Either mobile or email is required for initiating registration.',\n EMAIL_REQUIRED_FOR_VALIDATION: 'Email is required for email validation source.',\n MOBILE_REQUIRED_FOR_VALIDATION: 'Mobile is required for mobile validation source.',\n USER_ALREADY_EXISTS: 'User already exists. Please sign in.',\n VALIDATION_SOURCE_REQUIRED: 'At least one validation source is required.',\n INVALID_OTP: 'Invalid OTP.',\n OTP_EXPIRED: 'OTP has expired.',\n INVALID_VERIFICATION_TYPE: 'Invalid type. Must be either email or mobile.',\n NON_LOCAL_PROVIDER: 'User seems to have used a passwordless mode to authenticate.',\n USER_ID_MISMATCH: \"User ID's do not match.\",\n USERNAME_MISMATCH: \"User username's do not match.\",\n INCORRECT_CURRENT_PASSWORD: 'Incorrect current password specified.',\n PASSWORD_REUSED: 'Try a different password',\n INVALID_VERIFICATION_TOKEN: 'Invalid verification token',\n INVALID_REFRESH_TOKEN: 'Invalid refresh token',\n ACCESS_DENIED: 'Access denied',\n INVALID_USER_PROFILE: 'Invalid user profile',\n GOOGLE_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Google OAuth service',\n MICROSOFT_ACTIVE_DIRECTORY_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Microsoft Active Directory OAuth service',\n LOGOUT_FAILED: 'Logout failed due to an unexpected error.',\n\n INVALID_CREDENTIALS: 'Invalid credentials',\n LOGIN_FAILED: 'Login Failed',\n OLD_PASSWORD_INCORRECT: 'You have specified an incorrect old password.',\n INVALID_NEW_PASSWORD: 'Invalid new password.',\n PASSWORDS_DO_NOT_MATCH: 'New passwords are not matching.',\n\n // user management errors\n DELETE_SELF_NOT_ALLOWED: 'Deleting logged-in user is not allowed.',\n DELETE_IDS_REQUIRED: 'At least one ID is required for deletion.',\n USER_MISSING_ID: 'User must exist before initializing roles.',\n ROLES_NOT_FOUND: (roles: string[]) => `The following roles were not found: ${roles.join(', ')}`,\n USER_NOT_FOUND_BY_USERNAME: (username: string) => `User with username '${username}' not found.`,\n ROLE_NOT_FOUND: (roleName: string) => `Role '${roleName}' not found.`,\n PERMISSION_NOT_EXIST: (permission: string) => `Permission '${permission}' does not exist.`,\n\n // session errors\n SESSION_INVALID: 'Your session is no longer valid. Please log in again.',\n SESSION_EXPIRED: 'Your session has expired. Please log in again.',\n\n // filter errors\n GROUP_BY_LIMIT: 'buildFilterQuery: Only 1 Group by field is supported currently.',\n INVALID_GROUP_BY_COUNT: 'Exactly one groupBy field is required to count grouped records.',\n\n // general errors\n FORBIDDEN: 'Forbidden',\n RESOURCE_NOT_FOUND: 'The requested resource was not found.',\n\n\n // database errors\n DUPLICATE_ENTRY: 'Duplicate entry. A record with similar unique fields already exists.',\n\n // validation errors\n ID_REQUIRED_FOR_UPDATE: 'Id is required for update.',\n ID_REQUIRED_FOR_DELETE: 'Id is required for deletion.',\n\n // CRUD service errors\n RELATION_TYPE_NOT_SUPPORTED: 'Relation type not supported in CRUD service.',\n NO_SOFT_DELETED_RECORD_FOUND: 'No soft-deleted record found with the given ID.',\n CONFLICTING_RECORD_ON_UNARCHIVE: 'Another record is conflicting with the record you are attempting to Un-Archive, either delete or change the other record so as to avoid this conflict.',\n NO_SOFT_DELETED_RECORDS_FOUND: 'No matching soft-deleted records found.',\n EMPTY_PATH_PARTS: 'Path parts cannot be empty',\n\n\n // CSV/Excel service errors\n MISSING_HEADERS_OR_FUNCTION: 'Either headers or data records function must be provided.',\n INVALID_CHUNK_SIZE: 'Chunk size must be greater than 0 when data records function is provided.',\n INVALID_FORMAT: (format: string) => `Invalid ${format} format`,\n\n\n //field errors\n INVALID_INVERSE_FIELD_TYPE: 'Only relation fields can have inverse fields.',\n MODEL_AND_MODULE_REQUIRED_TO_UPDATE_INVERSE_FIELD: 'Model and module are required to update inverse field.',\n MODEL_NAME_AND_MODULE_NAME_REQUIRED_TO_CREATE_INVERSE_FIELD: 'Model name and module name are required to create inverse field.',\n FIELD_NOT_FOUND: (id: number | string) => `No field with id #${id} exists`,\n PROVIDER_NOT_FOUND: (provider: string) => `Field incorrectly configured. No provider with name ${provider} registered in backend.`,\n FILE_WRITE_FAILED: 'File creation failed, rolling back transaction',\n FILE_DELETE_FAILED: 'File deletion failed, rolling back transaction',\n // file service errors\n FILE_NOT_FOUND: 'File not found',\n FILE_COPY_ERROR: 'Error copying file',\n S3_CLIENT_NOT_INITIALIZED: 'S3 Client not initialized. Please check the S3 configuration.',\n\n // model errors\n MODEL_METADATA_NOT_FOUND: (id: string | number) => `Model metadata with ID ${id} not found.`,\n MODEL_SERVICE_NOT_FOUND: (model: string) => `Model service for ${model} not found.`,\n RELATION_CO_MODEL_NOT_DEFINED_FOR_FIELD: (fieldName: string) => `Relation coModelSingularName is not defined for relation field ${fieldName}`,\n MODEL_NOT_FOUND: (singularName?: string) => `Model${singularName ? ` with singular name \"${singularName}\"` : ''} not found.`,\n MODEL_REQUIRED_FOR_CODE_GENERATION: 'Model ID or Model Name is required for generating code.',\n\n //module errors\n MODULE_NOT_FOUND: (moduleName: string) => `Module with name ${moduleName} not found.`,\n MODULE_ID_NOT_FOUND: (id: string | number) => `Module with ID ${id} not found.`,\n\n //entity errors\n ENTITY_NOT_FOUND: (entity?: string | number) => `Entity${entity ? ' ' + entity : ''} not found.`,\n ENTITY_NAME_REQUIRED: 'Entity name is required to find the entity.',\n ENTITY_ID_REQUIRED: 'Entity ID is required to find the entity.',\n\n // import errors\n NO_ERROR_LOG_FOR_IMPORT: (id: string | number) => `No error log entries found for import transaction ID ${id}.`,\n FILE_READ_FAILED_FROM_URL: (url: string) => `Failed to read file from URL: ${url}`,\n\n // media storage provider errors\n MEDIA_STORAGE_PROVIDER_ID_NOT_FOUND: (id: number | string) => `Media Storage Provider with #${id} not found.`,\n MEDIA_STORAGE_PROVIDER_NOT_FOUND: 'Media Storage Provider not found',\n\n // SQL errors\n UNSUPPORTED_SQL_OPERATOR: (operator: string) => `Unsupported SQL operator: ${operator}`,\n\n // AI interaction errors\n PYTHON_EXECUTABLE_NOT_CONFIGURED: 'SolidX AI MCP python executable or client path not configured.',\n UNABLE_TO_RESOLVE_SOLID_COMMAND: 'Unable to resolve a solid_ command that was used to come up with this response.',\n UNABLE_TO_RESOLVE_MCP_HANDLER: 'Unable to resolve a mcp tool handler.',\n\n DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG: 'Invalid regex pattern.',\n\n PERMISSION_MESSAGES: {\n insertMany: (model?: string) =>\n `You do not have permission to import ${model ?? 'these'} records.`,\n } as Record<string, (model?: string) => string>,\n\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type MediaCategory = 'image' | 'audio' | 'video' | 'file' | 'pdf';
|
|
2
|
+
export declare const DANGEROUS_EXTENSIONS: Set<string>;
|
|
3
|
+
export declare const EXT_TO_MEDIA_TYPE: Record<string, MediaCategory>;
|
|
4
|
+
export declare const INLINE_SAFE_EXTENSIONS: Set<string>;
|
|
5
|
+
//# sourceMappingURL=media-file-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-file-types.d.ts","sourceRoot":"","sources":["../../src/constants/media-file-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAazE,eAAO,MAAM,oBAAoB,aAI/B,CAAC;AASH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAM3D,CAAC;AAMF,eAAO,MAAM,sBAAsB,aAKjC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INLINE_SAFE_EXTENSIONS = exports.EXT_TO_MEDIA_TYPE = exports.DANGEROUS_EXTENSIONS = void 0;
|
|
4
|
+
const IMAGE_EXTENSIONS = ['png', 'jpg', 'jpeg', 'webp', 'gif', 'bmp', 'tiff', 'heic', 'heif'];
|
|
5
|
+
const AUDIO_EXTENSIONS = ['mp3', 'wav', 'ogg', 'aac', 'm4a', 'flac', 'webm'];
|
|
6
|
+
const VIDEO_EXTENSIONS = ['mp4', 'mov', 'avi', 'mkv', 'mpeg', 'mpg', '3gp', '3g2', 'webm', 'ogg'];
|
|
7
|
+
const DOCUMENT_EXTENSIONS = ['txt', 'md', 'csv', 'json', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'zip', 'rar', '7z'];
|
|
8
|
+
const PDF_EXTENSION = 'pdf';
|
|
9
|
+
exports.DANGEROUS_EXTENSIONS = new Set([
|
|
10
|
+
'html', 'htm', 'xhtml', 'svg', 'xml',
|
|
11
|
+
'js', 'mjs', 'php', 'phtml', 'jsp', 'asp', 'aspx',
|
|
12
|
+
'exe', 'sh', 'bat', 'cmd', 'ps1', 'jar', 'dll',
|
|
13
|
+
]);
|
|
14
|
+
exports.EXT_TO_MEDIA_TYPE = {
|
|
15
|
+
...Object.fromEntries(IMAGE_EXTENSIONS.map((ext) => [ext, 'image'])),
|
|
16
|
+
...Object.fromEntries(AUDIO_EXTENSIONS.map((ext) => [ext, 'audio'])),
|
|
17
|
+
...Object.fromEntries(VIDEO_EXTENSIONS.map((ext) => [ext, 'video'])),
|
|
18
|
+
...Object.fromEntries(DOCUMENT_EXTENSIONS.map((ext) => [ext, 'file'])),
|
|
19
|
+
[PDF_EXTENSION]: 'pdf',
|
|
20
|
+
};
|
|
21
|
+
exports.INLINE_SAFE_EXTENSIONS = new Set([
|
|
22
|
+
...IMAGE_EXTENSIONS,
|
|
23
|
+
...AUDIO_EXTENSIONS,
|
|
24
|
+
...VIDEO_EXTENSIONS,
|
|
25
|
+
PDF_EXTENSION,
|
|
26
|
+
]);
|
|
27
|
+
//# sourceMappingURL=media-file-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-file-types.js","sourceRoot":"","sources":["../../src/constants/media-file-types.ts"],"names":[],"mappings":";;;AAEA,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9F,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7E,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAClG,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1H,MAAM,aAAa,GAAG,KAAK,CAAC;AAOf,QAAA,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;IACpC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;IACjD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CACjD,CAAC,CAAC;AASU,QAAA,iBAAiB,GAAkC;IAC5D,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAgB,CAAC,CAAC,CAAC;IAC7E,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAgB,CAAC,CAAC,CAAC;IAC7E,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAgB,CAAC,CAAC,CAAC;IAC7E,GAAG,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAe,CAAC,CAAC,CAAC;IAC/E,CAAC,aAAa,CAAC,EAAE,KAAK;CACzB,CAAC;AAMW,QAAA,sBAAsB,GAAG,IAAI,GAAG,CAAS;IAClD,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,aAAa;CAChB,CAAC,CAAC","sourcesContent":["export type MediaCategory = 'image' | 'audio' | 'video' | 'file' | 'pdf';\n\nconst IMAGE_EXTENSIONS = ['png', 'jpg', 'jpeg', 'webp', 'gif', 'bmp', 'tiff', 'heic', 'heif'];\nconst AUDIO_EXTENSIONS = ['mp3', 'wav', 'ogg', 'aac', 'm4a', 'flac', 'webm'];\nconst VIDEO_EXTENSIONS = ['mp4', 'mov', 'avi', 'mkv', 'mpeg', 'mpg', '3gp', '3g2', 'webm', 'ogg'];\nconst DOCUMENT_EXTENSIONS = ['txt', 'md', 'csv', 'json', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'zip', 'rar', '7z'];\nconst PDF_EXTENSION = 'pdf';\n\n/**\n * Extensions that must never be accepted as media uploads, regardless of declared mimetype or\n * admin-configured mediaTypes allowlist. Checked before any other resolution so a spoofed\n * Content-Type (e.g. application/octet-stream on an .html file) can't bypass this.\n */\nexport const DANGEROUS_EXTENSIONS = new Set([\n 'html', 'htm', 'xhtml', 'svg', 'xml',\n 'js', 'mjs', 'php', 'phtml', 'jsp', 'asp', 'aspx',\n 'exe', 'sh', 'bat', 'cmd', 'ps1', 'jar', 'dll',\n]);\n\n/**\n * Single source of truth for extension -> coarse media category. Shared by upload-time\n * validation (MediaFieldCrudManager) and serve-time header hardening (ServeStaticModule), so\n * both agree on which extensions belong to which category and neither drifts out of sync.\n * webm/ogg are shared between AUDIO_EXTENSIONS and VIDEO_EXTENSIONS - last one wins here, they\n * default to 'video' since that's the more common upload case.\n */\nexport const EXT_TO_MEDIA_TYPE: Record<string, MediaCategory> = {\n ...Object.fromEntries(IMAGE_EXTENSIONS.map((ext) => [ext, 'image' as const])),\n ...Object.fromEntries(AUDIO_EXTENSIONS.map((ext) => [ext, 'audio' as const])),\n ...Object.fromEntries(VIDEO_EXTENSIONS.map((ext) => [ext, 'video' as const])),\n ...Object.fromEntries(DOCUMENT_EXTENSIONS.map((ext) => [ext, 'file' as const])),\n [PDF_EXTENSION]: 'pdf',\n};\n\n/**\n * Extensions safe to serve inline with their natural Content-Type; everything else served from\n * media-files-storage is forced to application/octet-stream + Content-Disposition: attachment.\n */\nexport const INLINE_SAFE_EXTENSIONS = new Set<string>([\n ...IMAGE_EXTENSIONS,\n ...AUDIO_EXTENSIONS,\n ...VIDEO_EXTENSIONS,\n PDF_EXTENSION,\n]);\n"]}
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { CreateMediaDto } from '../dtos/create-media.dto';
|
|
2
|
+
import { SolidRequestContextDto } from '../dtos/solid-request-context.dto';
|
|
2
3
|
import { UpdateMediaDto } from '../dtos/update-media.dto';
|
|
3
4
|
import { MediaService } from '../services/media.service';
|
|
5
|
+
import { Response } from 'express';
|
|
4
6
|
export declare class MediaController {
|
|
5
7
|
private readonly service;
|
|
6
8
|
constructor(service: MediaService);
|
|
7
|
-
create(createDto: CreateMediaDto, files: Array<Express.Multer.File
|
|
8
|
-
insertMany(createDtos: CreateMediaDto[], filesArray
|
|
9
|
-
update(id: number, updateDto: UpdateMediaDto, files: Array<Express.Multer.File
|
|
10
|
-
partialUpdate(id: number, updateDto: UpdateMediaDto, files: Array<Express.Multer.File
|
|
11
|
-
upload(files: Array<Express.Multer.File>, createDto: CreateMediaDto): Promise<any[]>;
|
|
12
|
-
recoverMany(ids: number[]): Promise<{
|
|
9
|
+
create(createDto: CreateMediaDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<import("..").Media>;
|
|
10
|
+
insertMany(createDtos: CreateMediaDto[], filesArray: Express.Multer.File[][], solidRequestContext: SolidRequestContextDto): Promise<import("..").Media[]>;
|
|
11
|
+
update(id: number, updateDto: UpdateMediaDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<import("..").Media>;
|
|
12
|
+
partialUpdate(id: number, updateDto: UpdateMediaDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<import("..").Media>;
|
|
13
|
+
upload(files: Array<Express.Multer.File>, createDto: CreateMediaDto, solidRequestContext: SolidRequestContextDto): Promise<any[]>;
|
|
14
|
+
recoverMany(ids: number[], solidRequestContext: SolidRequestContextDto): Promise<{
|
|
13
15
|
message: string;
|
|
14
16
|
recoveredIds: number[];
|
|
15
17
|
}>;
|
|
16
|
-
recover(id: number): Promise<{
|
|
18
|
+
recover(id: number, solidRequestContext: SolidRequestContextDto): Promise<{
|
|
17
19
|
message: string;
|
|
18
20
|
data: import("..").Media;
|
|
19
21
|
}>;
|
|
20
|
-
findMany(query: any): Promise<any>;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
findMany(query: any, solidRequestContext: SolidRequestContextDto): Promise<any>;
|
|
23
|
+
download(id: string, disposition: string, res: Response, solidRequestContext: SolidRequestContextDto): Promise<void>;
|
|
24
|
+
findOne(id: string, query: any, solidRequestContext: SolidRequestContextDto): Promise<import("..").Media>;
|
|
25
|
+
deleteMany(ids: number[], solidRequestContext: SolidRequestContextDto): Promise<any>;
|
|
26
|
+
delete(id: number, solidRequestContext: SolidRequestContextDto): Promise<import("..").Media>;
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=media.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/media.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"media.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/media.controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOnC,qBAIa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAKlD,MAAM,CAAS,SAAS,EAAE,cAAc,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAkC,mBAAmB,EAAE,sBAAsB;IAOzK,UAAU,CAAS,UAAU,EAAE,cAAc,EAAE,EAAmB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAO,EAAkC,mBAAmB,EAAE,sBAAsB;IAQvL,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,cAAc,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAkC,mBAAmB,EAAE,sBAAsB;IAOlM,aAAa,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,cAAc,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAkC,mBAAmB,EAAE,sBAAsB;IASzM,MAAM,CAAkB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAU,SAAS,EAAE,cAAc,EAAkC,mBAAmB,EAAE,sBAAsB;IAQnK,WAAW,CAAS,GAAG,EAAE,MAAM,EAAE,EAAkC,mBAAmB,EAAE,sBAAsB;;;;IAM9G,OAAO,CAAc,EAAE,EAAE,MAAM,EAAkC,mBAAmB,EAAE,sBAAsB;;;;IAe5G,QAAQ,CAAU,KAAK,EAAE,GAAG,EAAkC,mBAAmB,EAAE,sBAAsB;IAQzG,QAAQ,CAAc,EAAE,EAAE,MAAM,EAAwB,WAAW,EAAE,MAAM,EAAS,GAAG,EAAE,QAAQ,EAAkC,mBAAmB,EAAE,sBAAsB;IAc9K,OAAO,CAAc,EAAE,EAAE,MAAM,EAAW,KAAK,EAAE,GAAG,EAAkC,mBAAmB,EAAE,sBAAsB;IAMjI,UAAU,CAAS,GAAG,EAAE,MAAM,EAAE,EAAkC,mBAAmB,EAAE,sBAAsB;IAM7G,MAAM,CAAc,EAAE,EAAE,MAAM,EAAkC,mBAAmB,EAAE,sBAAsB;CAKlH"}
|
|
@@ -17,7 +17,11 @@ const openapi = require("@nestjs/swagger");
|
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const platform_express_1 = require("@nestjs/platform-express");
|
|
19
19
|
const swagger_1 = require("@nestjs/swagger");
|
|
20
|
+
const auth_decorator_1 = require("../decorators/auth.decorator");
|
|
21
|
+
const auth_type_enum_1 = require("../enums/auth-type.enum");
|
|
20
22
|
const create_media_dto_1 = require("../dtos/create-media.dto");
|
|
23
|
+
const solid_request_context_decorator_1 = require("../decorators/solid-request-context.decorator");
|
|
24
|
+
const solid_request_context_dto_1 = require("../dtos/solid-request-context.dto");
|
|
21
25
|
const update_media_dto_1 = require("../dtos/update-media.dto");
|
|
22
26
|
const media_service_1 = require("../services/media.service");
|
|
23
27
|
var ShowSoftDeleted;
|
|
@@ -29,38 +33,48 @@ let MediaController = class MediaController {
|
|
|
29
33
|
constructor(service) {
|
|
30
34
|
this.service = service;
|
|
31
35
|
}
|
|
32
|
-
create(createDto, files) {
|
|
33
|
-
return this.service.create(createDto, files);
|
|
36
|
+
create(createDto, files, solidRequestContext) {
|
|
37
|
+
return this.service.create(createDto, files, solidRequestContext);
|
|
34
38
|
}
|
|
35
|
-
insertMany(createDtos, filesArray = []) {
|
|
36
|
-
return this.service.insertMany(createDtos, filesArray);
|
|
39
|
+
insertMany(createDtos, filesArray = [], solidRequestContext) {
|
|
40
|
+
return this.service.insertMany(createDtos, filesArray, solidRequestContext);
|
|
37
41
|
}
|
|
38
|
-
update(id, updateDto, files) {
|
|
39
|
-
return this.service.update(id, updateDto, files);
|
|
42
|
+
update(id, updateDto, files, solidRequestContext) {
|
|
43
|
+
return this.service.update(id, updateDto, files, false, solidRequestContext);
|
|
40
44
|
}
|
|
41
|
-
partialUpdate(id, updateDto, files) {
|
|
42
|
-
return this.service.update(id, updateDto, files, true);
|
|
45
|
+
partialUpdate(id, updateDto, files, solidRequestContext) {
|
|
46
|
+
return this.service.update(id, updateDto, files, true, solidRequestContext);
|
|
43
47
|
}
|
|
44
|
-
upload(files, createDto) {
|
|
45
|
-
return this.service.upload(createDto, files);
|
|
48
|
+
upload(files, createDto, solidRequestContext) {
|
|
49
|
+
return this.service.upload(createDto, files, solidRequestContext);
|
|
46
50
|
}
|
|
47
|
-
async recoverMany(ids) {
|
|
48
|
-
return this.service.recoverMany(ids);
|
|
51
|
+
async recoverMany(ids, solidRequestContext) {
|
|
52
|
+
return this.service.recoverMany(ids, solidRequestContext);
|
|
49
53
|
}
|
|
50
|
-
async recover(id) {
|
|
51
|
-
return this.service.recover(id);
|
|
54
|
+
async recover(id, solidRequestContext) {
|
|
55
|
+
return this.service.recover(id, solidRequestContext);
|
|
52
56
|
}
|
|
53
|
-
async findMany(query) {
|
|
54
|
-
return this.service.find(query);
|
|
57
|
+
async findMany(query, solidRequestContext) {
|
|
58
|
+
return this.service.find(query, solidRequestContext);
|
|
55
59
|
}
|
|
56
|
-
async
|
|
57
|
-
|
|
60
|
+
async download(id, disposition, res, solidRequestContext) {
|
|
61
|
+
const media = await this.service.findOne(+id, {}, solidRequestContext);
|
|
62
|
+
const { stream, fileName, mimeType } = await this.service.fileDownloadStream(media);
|
|
63
|
+
const contentDisposition = disposition === 'attachment' ? 'attachment' : 'inline';
|
|
64
|
+
res.setHeader('Content-Disposition', `${contentDisposition}; filename="${fileName}"`);
|
|
65
|
+
res.setHeader('Content-Type', mimeType);
|
|
66
|
+
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
67
|
+
res.setHeader('Access-Control-Expose-Headers', 'Content-Disposition, Content-Type');
|
|
68
|
+
stream.pipe(res);
|
|
58
69
|
}
|
|
59
|
-
async
|
|
60
|
-
return this.service.
|
|
70
|
+
async findOne(id, query, solidRequestContext) {
|
|
71
|
+
return this.service.findOne(+id, query, solidRequestContext);
|
|
61
72
|
}
|
|
62
|
-
async
|
|
63
|
-
return this.service.
|
|
73
|
+
async deleteMany(ids, solidRequestContext) {
|
|
74
|
+
return this.service.deleteMany(ids, solidRequestContext);
|
|
75
|
+
}
|
|
76
|
+
async delete(id, solidRequestContext) {
|
|
77
|
+
return this.service.delete(id, solidRequestContext);
|
|
64
78
|
}
|
|
65
79
|
};
|
|
66
80
|
exports.MediaController = MediaController;
|
|
@@ -71,8 +85,9 @@ __decorate([
|
|
|
71
85
|
openapi.ApiResponse({ status: 201, type: require("../entities/media.entity").Media }),
|
|
72
86
|
__param(0, (0, common_1.Body)()),
|
|
73
87
|
__param(1, (0, common_1.UploadedFiles)()),
|
|
88
|
+
__param(2, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
74
89
|
__metadata("design:type", Function),
|
|
75
|
-
__metadata("design:paramtypes", [create_media_dto_1.CreateMediaDto, Array]),
|
|
90
|
+
__metadata("design:paramtypes", [create_media_dto_1.CreateMediaDto, Array, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
76
91
|
__metadata("design:returntype", void 0)
|
|
77
92
|
], MediaController.prototype, "create", null);
|
|
78
93
|
__decorate([
|
|
@@ -82,8 +97,9 @@ __decorate([
|
|
|
82
97
|
openapi.ApiResponse({ status: 201, type: [require("../entities/media.entity").Media] }),
|
|
83
98
|
__param(0, (0, common_1.Body)()),
|
|
84
99
|
__param(1, (0, common_1.UploadedFiles)()),
|
|
100
|
+
__param(2, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
85
101
|
__metadata("design:type", Function),
|
|
86
|
-
__metadata("design:paramtypes", [Array, Array]),
|
|
102
|
+
__metadata("design:paramtypes", [Array, Array, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
87
103
|
__metadata("design:returntype", void 0)
|
|
88
104
|
], MediaController.prototype, "insertMany", null);
|
|
89
105
|
__decorate([
|
|
@@ -94,8 +110,9 @@ __decorate([
|
|
|
94
110
|
__param(0, (0, common_1.Param)('id')),
|
|
95
111
|
__param(1, (0, common_1.Body)()),
|
|
96
112
|
__param(2, (0, common_1.UploadedFiles)()),
|
|
113
|
+
__param(3, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
97
114
|
__metadata("design:type", Function),
|
|
98
|
-
__metadata("design:paramtypes", [Number, update_media_dto_1.UpdateMediaDto, Array]),
|
|
115
|
+
__metadata("design:paramtypes", [Number, update_media_dto_1.UpdateMediaDto, Array, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
99
116
|
__metadata("design:returntype", void 0)
|
|
100
117
|
], MediaController.prototype, "update", null);
|
|
101
118
|
__decorate([
|
|
@@ -106,8 +123,9 @@ __decorate([
|
|
|
106
123
|
__param(0, (0, common_1.Param)('id')),
|
|
107
124
|
__param(1, (0, common_1.Body)()),
|
|
108
125
|
__param(2, (0, common_1.UploadedFiles)()),
|
|
126
|
+
__param(3, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
109
127
|
__metadata("design:type", Function),
|
|
110
|
-
__metadata("design:paramtypes", [Number, update_media_dto_1.UpdateMediaDto, Array]),
|
|
128
|
+
__metadata("design:paramtypes", [Number, update_media_dto_1.UpdateMediaDto, Array, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
111
129
|
__metadata("design:returntype", void 0)
|
|
112
130
|
], MediaController.prototype, "partialUpdate", null);
|
|
113
131
|
__decorate([
|
|
@@ -117,8 +135,9 @@ __decorate([
|
|
|
117
135
|
openapi.ApiResponse({ status: 201, type: [Object] }),
|
|
118
136
|
__param(0, (0, common_1.UploadedFiles)()),
|
|
119
137
|
__param(1, (0, common_1.Body)()),
|
|
138
|
+
__param(2, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
120
139
|
__metadata("design:type", Function),
|
|
121
|
-
__metadata("design:paramtypes", [Array, create_media_dto_1.CreateMediaDto]),
|
|
140
|
+
__metadata("design:paramtypes", [Array, create_media_dto_1.CreateMediaDto, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
122
141
|
__metadata("design:returntype", void 0)
|
|
123
142
|
], MediaController.prototype, "upload", null);
|
|
124
143
|
__decorate([
|
|
@@ -126,8 +145,9 @@ __decorate([
|
|
|
126
145
|
(0, common_1.Post)('/bulk-recover'),
|
|
127
146
|
openapi.ApiResponse({ status: 201 }),
|
|
128
147
|
__param(0, (0, common_1.Body)()),
|
|
148
|
+
__param(1, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
129
149
|
__metadata("design:type", Function),
|
|
130
|
-
__metadata("design:paramtypes", [Array]),
|
|
150
|
+
__metadata("design:paramtypes", [Array, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
131
151
|
__metadata("design:returntype", Promise)
|
|
132
152
|
], MediaController.prototype, "recoverMany", null);
|
|
133
153
|
__decorate([
|
|
@@ -135,8 +155,9 @@ __decorate([
|
|
|
135
155
|
(0, common_1.Get)('/recover/:id'),
|
|
136
156
|
openapi.ApiResponse({ status: 200 }),
|
|
137
157
|
__param(0, (0, common_1.Param)('id')),
|
|
158
|
+
__param(1, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
138
159
|
__metadata("design:type", Function),
|
|
139
|
-
__metadata("design:paramtypes", [Number]),
|
|
160
|
+
__metadata("design:paramtypes", [Number, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
140
161
|
__metadata("design:returntype", Promise)
|
|
141
162
|
], MediaController.prototype, "recover", null);
|
|
142
163
|
__decorate([
|
|
@@ -153,18 +174,34 @@ __decorate([
|
|
|
153
174
|
(0, common_1.Get)(),
|
|
154
175
|
openapi.ApiResponse({ status: 200, type: Object }),
|
|
155
176
|
__param(0, (0, common_1.Query)()),
|
|
177
|
+
__param(1, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
156
178
|
__metadata("design:type", Function),
|
|
157
|
-
__metadata("design:paramtypes", [Object]),
|
|
179
|
+
__metadata("design:paramtypes", [Object, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
158
180
|
__metadata("design:returntype", Promise)
|
|
159
181
|
], MediaController.prototype, "findMany", null);
|
|
182
|
+
__decorate([
|
|
183
|
+
(0, auth_decorator_1.Auth)(auth_type_enum_1.AuthType.MediaSignedUrl),
|
|
184
|
+
(0, swagger_1.ApiQuery)({ name: 'token', required: true, type: String, description: "Short-lived signed token obtained from a private Media record's URL - not entered manually." }),
|
|
185
|
+
(0, swagger_1.ApiQuery)({ name: 'disposition', required: false, enum: ['inline', 'attachment'], description: "'inline' (default) renders/previews in the browser, matching public media. Pass 'attachment' to force a browser download (e.g. from a download button)." }),
|
|
186
|
+
(0, common_1.Get)(':id/download'),
|
|
187
|
+
openapi.ApiResponse({ status: 200 }),
|
|
188
|
+
__param(0, (0, common_1.Param)('id')),
|
|
189
|
+
__param(1, (0, common_1.Query)('disposition')),
|
|
190
|
+
__param(2, (0, common_1.Res)()),
|
|
191
|
+
__param(3, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
192
|
+
__metadata("design:type", Function),
|
|
193
|
+
__metadata("design:paramtypes", [String, String, Object, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
194
|
+
__metadata("design:returntype", Promise)
|
|
195
|
+
], MediaController.prototype, "download", null);
|
|
160
196
|
__decorate([
|
|
161
197
|
(0, swagger_1.ApiBearerAuth)("jwt"),
|
|
162
198
|
(0, common_1.Get)(':id'),
|
|
163
199
|
openapi.ApiResponse({ status: 200, type: require("../entities/media.entity").Media }),
|
|
164
200
|
__param(0, (0, common_1.Param)('id')),
|
|
165
201
|
__param(1, (0, common_1.Query)()),
|
|
202
|
+
__param(2, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
166
203
|
__metadata("design:type", Function),
|
|
167
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
204
|
+
__metadata("design:paramtypes", [String, Object, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
168
205
|
__metadata("design:returntype", Promise)
|
|
169
206
|
], MediaController.prototype, "findOne", null);
|
|
170
207
|
__decorate([
|
|
@@ -172,8 +209,9 @@ __decorate([
|
|
|
172
209
|
(0, common_1.Delete)('/bulk'),
|
|
173
210
|
openapi.ApiResponse({ status: 200, type: Object }),
|
|
174
211
|
__param(0, (0, common_1.Body)()),
|
|
212
|
+
__param(1, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
175
213
|
__metadata("design:type", Function),
|
|
176
|
-
__metadata("design:paramtypes", [Array]),
|
|
214
|
+
__metadata("design:paramtypes", [Array, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
177
215
|
__metadata("design:returntype", Promise)
|
|
178
216
|
], MediaController.prototype, "deleteMany", null);
|
|
179
217
|
__decorate([
|
|
@@ -181,8 +219,9 @@ __decorate([
|
|
|
181
219
|
(0, common_1.Delete)(':id'),
|
|
182
220
|
openapi.ApiResponse({ status: 200, type: require("../entities/media.entity").Media }),
|
|
183
221
|
__param(0, (0, common_1.Param)('id')),
|
|
222
|
+
__param(1, (0, solid_request_context_decorator_1.SolidRequestContextDecorator)()),
|
|
184
223
|
__metadata("design:type", Function),
|
|
185
|
-
__metadata("design:paramtypes", [Number]),
|
|
224
|
+
__metadata("design:paramtypes", [Number, solid_request_context_dto_1.SolidRequestContextDto]),
|
|
186
225
|
__metadata("design:returntype", Promise)
|
|
187
226
|
], MediaController.prototype, "delete", null);
|
|
188
227
|
exports.MediaController = MediaController = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.controller.js","sourceRoot":"","sources":["../../src/controllers/media.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query, UploadedFiles, UseInterceptors } from '@nestjs/common';\nimport { AnyFilesInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';\nimport { Public } from 'src/decorators/public.decorator';\nimport { CreateMediaDto } from 'src/dtos/create-media.dto';\nimport { UpdateMediaDto } from 'src/dtos/update-media.dto';\nimport { MediaService } from 'src/services/media.service';\n\nenum ShowSoftDeleted {\n INCLUSIVE = \"inclusive\",\n EXCLUSIVE = \"exclusive\",\n}\n\n@ApiTags('Solid Core')\n@Controller('media')\n// @UseGuards(ThrottlerGuard)\n// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) //Skip all\nexport class MediaController {\n constructor(private readonly service: MediaService) {}\n\n @ApiBearerAuth(\"jwt\")\n @Post()\n @UseInterceptors(AnyFilesInterceptor())\n create(@Body() createDto: CreateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.create(createDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk')\n @UseInterceptors(AnyFilesInterceptor())\n insertMany(@Body() createDtos: CreateMediaDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {\n return this.service.insertMany(createDtos, filesArray);\n }\n\n\n @ApiBearerAuth(\"jwt\")\n @Put(':id')\n @UseInterceptors(AnyFilesInterceptor())\n update(@Param('id') id: number, @Body() updateDto: UpdateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.update(id, updateDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id')\n @UseInterceptors(AnyFilesInterceptor())\n partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n return this.service.update(id, updateDto, files, true);\n }\n\n // @Public()\n // @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only\n @ApiBearerAuth(\"jwt\")\n @Post('/upload')\n @UseInterceptors(AnyFilesInterceptor())\n upload(@UploadedFiles() files: Array<Express.Multer.File>, @Body() createDto: CreateMediaDto, ) {\n // this.logger.log(`Creating a new model: ${JSON.stringify(createDto)}`);\n return this.service.upload(createDto, files);\n }\n\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk-recover')\n async recoverMany(@Body() ids: number[]) {\n return this.service.recoverMany(ids);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get('/recover/:id')\n async recover(@Param('id') id: number) {\n return this.service.recover(id);\n }\n \n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array }) \n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n @Get()\n async findMany(@Query() query: any) { \n return this.service.find(query); \n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id')\n async findOne(@Param('id') id: string, @Query() query: any) {\n return this.service.findOne(+id, query);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete('/bulk')\n async deleteMany(@Body() ids: number[]) {\n return this.service.deleteMany(ids);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete(':id')\n async delete(@Param('id') id: number) {\n return this.service.delete(id);\n }\n\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"media.controller.js","sourceRoot":"","sources":["../../src/controllers/media.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query, Res, UploadedFiles, UseInterceptors } from '@nestjs/common';\nimport { AnyFilesInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';\nimport { Auth } from 'src/decorators/auth.decorator';\nimport { AuthType } from 'src/enums/auth-type.enum';\nimport { CreateMediaDto } from 'src/dtos/create-media.dto';\nimport { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';\nimport { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';\nimport { UpdateMediaDto } from 'src/dtos/update-media.dto';\nimport { MediaService } from 'src/services/media.service';\nimport { Response } from 'express';\n\nenum ShowSoftDeleted {\n INCLUSIVE = \"inclusive\",\n EXCLUSIVE = \"exclusive\",\n}\n\n@ApiTags('Solid Core')\n@Controller('media')\n// @UseGuards(ThrottlerGuard)\n// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) //Skip all\nexport class MediaController {\n constructor(private readonly service: MediaService) {}\n\n @ApiBearerAuth(\"jwt\")\n @Post()\n @UseInterceptors(AnyFilesInterceptor())\n create(@Body() createDto: CreateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.create(createDto, files, solidRequestContext);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk')\n @UseInterceptors(AnyFilesInterceptor())\n insertMany(@Body() createDtos: CreateMediaDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = [], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.insertMany(createDtos, filesArray, solidRequestContext);\n }\n\n\n @ApiBearerAuth(\"jwt\")\n @Put(':id')\n @UseInterceptors(AnyFilesInterceptor())\n update(@Param('id') id: number, @Body() updateDto: UpdateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.update(id, updateDto, files, false, solidRequestContext);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id')\n @UseInterceptors(AnyFilesInterceptor())\n partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateMediaDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.update(id, updateDto, files, true, solidRequestContext);\n }\n\n // @Public()\n // @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only\n @ApiBearerAuth(\"jwt\")\n @Post('/upload')\n @UseInterceptors(AnyFilesInterceptor())\n upload(@UploadedFiles() files: Array<Express.Multer.File>, @Body() createDto: CreateMediaDto, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n // this.logger.log(`Creating a new model: ${JSON.stringify(createDto)}`);\n return this.service.upload(createDto, files, solidRequestContext);\n }\n\n\n @ApiBearerAuth(\"jwt\")\n @Post('/bulk-recover')\n async recoverMany(@Body() ids: number[], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.recoverMany(ids, solidRequestContext);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get('/recover/:id')\n async recover(@Param('id') id: number, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.recover(id, solidRequestContext);\n }\n \n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array }) \n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n @Get()\n async findMany(@Query() query: any, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.find(query, solidRequestContext);\n }\n\n @Auth(AuthType.MediaSignedUrl)\n @ApiQuery({ name: 'token', required: true, type: String, description: \"Short-lived signed token obtained from a private Media record's URL - not entered manually.\" })\n @ApiQuery({ name: 'disposition', required: false, enum: ['inline', 'attachment'], description: \"'inline' (default) renders/previews in the browser, matching public media. Pass 'attachment' to force a browser download (e.g. from a download button).\" })\n @Get(':id/download')\n async download(@Param('id') id: string, @Query('disposition') disposition: string, @Res() res: Response, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n const media = await this.service.findOne(+id, {}, solidRequestContext);\n const { stream, fileName, mimeType } = await this.service.fileDownloadStream(media);\n\n const contentDisposition = disposition === 'attachment' ? 'attachment' : 'inline';\n res.setHeader('Content-Disposition', `${contentDisposition}; filename=\"${fileName}\"`);\n res.setHeader('Content-Type', mimeType);\n res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');\n res.setHeader('Access-Control-Expose-Headers', 'Content-Disposition, Content-Type');\n stream.pipe(res);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id')\n async findOne(@Param('id') id: string, @Query() query: any, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.findOne(+id, query, solidRequestContext);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete('/bulk')\n async deleteMany(@Body() ids: number[], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.deleteMany(ids, solidRequestContext);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Delete(':id')\n async delete(@Param('id') id: number, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {\n return this.service.delete(id, solidRequestContext);\n }\n\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-chatter-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-chatter-message.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,uBAAuB;IAIhC,WAAW,EAAE,MAAM,CAAC;IAKpB,cAAc,EAAE,MAAM,CAAC;IAKvB,WAAW,EAAE,MAAM,CAAC;IAKpB,eAAe,EAAE,MAAM,CAAC;IAKxB,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"create-chatter-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-chatter-message.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,uBAAuB;IAIhC,WAAW,EAAE,MAAM,CAAC;IAKpB,cAAc,EAAE,MAAM,CAAC;IAKvB,WAAW,EAAE,MAAM,CAAC;IAKpB,mBAAmB,EAAE,MAAM,CAAC;IAK5B,eAAe,EAAE,MAAM,CAAC;IAKxB,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -16,7 +16,7 @@ const class_validator_1 = require("class-validator");
|
|
|
16
16
|
const class_validator_2 = require("class-validator");
|
|
17
17
|
class CreateChatterMessageDto {
|
|
18
18
|
static _OPENAPI_METADATA_FACTORY() {
|
|
19
|
-
return { messageType: { required: true, type: () => String }, messageSubType: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, userId: { required: true, type: () => Number }, userUserKey: { required: true, type: () => String }, status: { required: true, type: () => String } };
|
|
19
|
+
return { messageType: { required: true, type: () => String }, messageSubType: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, messageBodyMentions: { required: true, type: () => String }, coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, userId: { required: true, type: () => Number }, userUserKey: { required: true, type: () => String }, status: { required: true, type: () => String } };
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.CreateChatterMessageDto = CreateChatterMessageDto;
|
|
@@ -38,6 +38,12 @@ __decorate([
|
|
|
38
38
|
(0, swagger_1.ApiProperty)(),
|
|
39
39
|
__metadata("design:type", String)
|
|
40
40
|
], CreateChatterMessageDto.prototype, "messageBody", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_validator_2.IsOptional)(),
|
|
43
|
+
(0, class_validator_1.IsString)(),
|
|
44
|
+
(0, swagger_1.ApiProperty)(),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], CreateChatterMessageDto.prototype, "messageBodyMentions", void 0);
|
|
41
47
|
__decorate([
|
|
42
48
|
(0, class_validator_2.IsNotEmpty)(),
|
|
43
49
|
(0, class_validator_2.IsInt)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-chatter-message.dto.js","sourceRoot":"","sources":["../../src/dtos/create-chatter-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2C;AAC3C,qDAAgE;AAEhE,MAAa,uBAAuB;;;;
|
|
1
|
+
{"version":3,"file":"create-chatter-message.dto.js","sourceRoot":"","sources":["../../src/dtos/create-chatter-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2C;AAC3C,qDAAgE;AAEhE,MAAa,uBAAuB;;;;CA6CnC;AA7CD,0DA6CC;AAzCG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;+DACS;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;oEACc;AAK5B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gEACU;AAKxB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACC;AAKf;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;uDACC","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { IsString } from 'class-validator';\nimport { IsNotEmpty, IsInt, IsOptional } from 'class-validator';\n\nexport class CreateChatterMessageDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n messageType: string;\n\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n messageSubType: string;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageBody: string;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageBodyMentions: string;\n\n @IsNotEmpty()\n @IsInt()\n @ApiProperty()\n coModelEntityId: number;\n\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n coModelName: string;\n\n @IsOptional()\n @IsInt()\n @ApiProperty()\n userId: number;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n userUserKey: string;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n status: string;\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-media.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-media.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAc;IAI3B,QAAQ,EAAE,MAAM,CAAC;IAKjB,WAAW,EAAE,MAAM,CAAC;IAKpB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;IAK7B,8BAA8B,EAAE,MAAM,CAAC;IAKvC,mCAAmC,EAAE,MAAM,CAAC;IAK5C,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;CAC5B"}
|
|
1
|
+
{"version":3,"file":"create-media.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-media.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAc;IAI3B,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,WAAW,EAAE,MAAM,CAAC;IAKpB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;IAK7B,8BAA8B,EAAE,MAAM,CAAC;IAKvC,mCAAmC,EAAE,MAAM,CAAC;IAK5C,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -16,7 +16,7 @@ const class_validator_1 = require("class-validator");
|
|
|
16
16
|
const class_validator_2 = require("class-validator");
|
|
17
17
|
class CreateMediaDto {
|
|
18
18
|
static _OPENAPI_METADATA_FACTORY() {
|
|
19
|
-
return { entityId: { required: true, type: () => Number }, relativeUri: { required: true, type: () => String }, fileSize: { required: true, type: () => Number }, mimeType: { required: true, type: () => String }, originalFileName: { required: true, type: () => String }, modelMetadataId: { required: true, type: () => Number }, modelMetadataUserKey: { required: true, type: () => String }, mediaStorageProviderMetadataId: { required: true, type: () => Number }, mediaStorageProviderMetadataUserKey: { required: true, type: () => String }, fieldMetadataId: { required: true, type: () => Number }, fieldMetadataUserKey: { required: true, type: () => String } };
|
|
19
|
+
return { entityId: { required: true, type: () => Number }, isPublic: { required: false, type: () => Boolean }, relativeUri: { required: true, type: () => String }, fileSize: { required: true, type: () => Number }, mimeType: { required: true, type: () => String }, originalFileName: { required: true, type: () => String }, modelMetadataId: { required: true, type: () => Number }, modelMetadataUserKey: { required: true, type: () => String }, mediaStorageProviderMetadataId: { required: true, type: () => Number }, mediaStorageProviderMetadataUserKey: { required: true, type: () => String }, fieldMetadataId: { required: true, type: () => Number }, fieldMetadataUserKey: { required: true, type: () => String } };
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.CreateMediaDto = CreateMediaDto;
|
|
@@ -26,6 +26,12 @@ __decorate([
|
|
|
26
26
|
(0, swagger_1.ApiProperty)(),
|
|
27
27
|
__metadata("design:type", Number)
|
|
28
28
|
], CreateMediaDto.prototype, "entityId", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_validator_2.IsOptional)(),
|
|
31
|
+
(0, class_validator_1.IsBoolean)(),
|
|
32
|
+
(0, swagger_1.ApiPropertyOptional)({ default: true }),
|
|
33
|
+
__metadata("design:type", Boolean)
|
|
34
|
+
], CreateMediaDto.prototype, "isPublic", void 0);
|
|
29
35
|
__decorate([
|
|
30
36
|
(0, class_validator_2.IsOptional)(),
|
|
31
37
|
(0, class_validator_2.IsString)(),
|