@solidxai/core 0.1.12-beta.8 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +504 -0
  2. package/dist/entities/media.entity.d.ts +0 -1
  3. package/dist/entities/media.entity.d.ts.map +1 -1
  4. package/dist/entities/media.entity.js +1 -9
  5. package/dist/entities/media.entity.js.map +1 -1
  6. package/dist/repository/media.repository.d.ts.map +1 -1
  7. package/dist/repository/media.repository.js +0 -2
  8. package/dist/repository/media.repository.js.map +1 -1
  9. package/dist/seeders/seed-data/solid-core-metadata.json +1 -41
  10. package/dist/services/media-download-url.service.d.ts +3 -2
  11. package/dist/services/media-download-url.service.d.ts.map +1 -1
  12. package/dist/services/media-download-url.service.js +6 -3
  13. package/dist/services/media-download-url.service.js.map +1 -1
  14. package/dist/services/media-storage.utils.d.ts +0 -3
  15. package/dist/services/media-storage.utils.d.ts.map +1 -1
  16. package/dist/services/media-storage.utils.js +3 -12
  17. package/dist/services/media-storage.utils.js.map +1 -1
  18. package/dist/services/media.service.d.ts.map +1 -1
  19. package/dist/services/media.service.js +3 -5
  20. package/dist/services/media.service.js.map +1 -1
  21. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  22. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +2 -5
  23. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  24. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  25. package/dist/services/mediaStorageProviders/file-storage-provider.js +2 -5
  26. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/entities/media.entity.ts +0 -3
  29. package/src/repository/media.repository.ts +1 -2
  30. package/src/seeders/seed-data/solid-core-metadata.json +1 -41
  31. package/src/services/media-download-url.service.ts +13 -6
  32. package/src/services/media-storage.utils.ts +7 -16
  33. package/src/services/media.service.ts +4 -6
  34. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +6 -9
  35. package/src/services/mediaStorageProviders/file-storage-provider.ts +3 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,509 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.12] - 2026-07-24
4
+
5
+ ### Added
6
+
7
+ - implement API key generation for system admin users in ModuleMetadataSeederService
8
+ - enhance ModuleMetadataSeederService to generate and store API keys for system admin users
9
+ - add fieldConfig property to DatasourceIntrospectionMappingColumnDto and enhance field sanitization in DatasourceIntrospectionService
10
+ - enhance migration process with build and seed commands
11
+ - enhance datasource introspection with primary key detection and migration support
12
+ - enhance role creation with module linkage and resolve module metadata
13
+ - enhance action, role, and view metadata services with change detection and JSON normalization
14
+ - add introspection services for MSSQL, MySQL, and PostgreSQL
15
+ - add new dashboard controller actions to permissions
16
+ - simplify queue health permissions by consolidating patterns
17
+ - implement explicit widget permissions and unauthorized response handling
18
+ - enhance widget permission checks and add unauthorized response handling
19
+ - add Queue SLA heatmap provider and update metadata
20
+ - update queue health menu item and reorder messages
21
+ - add various dashboard providers and runtime services
22
+ - implement WhatsApp Cloud API integration
23
+ - add gupshup whatsapp provider
24
+ - add deleteByMediaRecord method to MediaStorageProvider implementations
25
+ - add updateCustomNoteMessage action to ChatterMessageController
26
+ - add secure custom-note edit API with attachment add/remove support
27
+ - implemented social media oath for facebook and microsoft
28
+ - add partialUpdate endpoint to menu-item-metadata controller and update metadata seeder relation field name
29
+ - implemented social media oath for facebook and microsoft
30
+ - add Message Tree Action and corresponding view for mqMessage
31
+ - implement processing timeout for RabbitMQ subscriber
32
+ - Add a composite index to `ChatterMessage` on `coModelName` and `coModelEntityId`, and an index to `chatterMessage` in `ChatterMessageDetails`.
33
+ - Migrate date/time transformers to UtcDateTimeTransformer.
34
+ - simplify S3 URL resolution DTO, and remove unused S3 resolution logic.
35
+
36
+ ### Fixed
37
+
38
+ - use transactions entitymanager for all subscribers only for embedded db projects
39
+ - update consuming project name resolution to use parent directory
40
+ - update solidx directory path to include consuming project name
41
+ - correct package name in model generation command and update error handling in module metadata retrieval
42
+ - username
43
+ - remove type specification for encrypted column in Setting entity, to work in mssql also
44
+ - handle null or empty security rule configuration strings in repository
45
+
46
+ ### Changed
47
+
48
+ - remove handleSeedLocales method to streamline locale seeding process
49
+ - remove legacy dashboard files and add new dashboarding architecture guide
50
+ - remove unused dashboard question and variable providers, SQL expression resolver, and related subscribers
51
+ - remove redundant null check in resolveSecurityRuleConfig
52
+ - update body column type to longText using getColumnType helper in SmsTemplate entity
53
+ - update legacy entity fields to be nullable and support null types
54
+ - replace DTO introspection with explicit isUpdate flag in MediaFieldCrudManager
55
+ - make password scheme and failed login attempt columns non-nullable in UserEntity.
56
+ - make passwordScheme, passwordSchemeVersion, and failedLoginAttempts fields nullable in the User entity.
57
+
58
+ ### Documentation
59
+
60
+ - update expired discord link
61
+
62
+ ### Other
63
+
64
+ - Remove LocalPath
65
+ - revert changes
66
+ - revert changes
67
+ - revert changes
68
+ - re revert
69
+ - revert changes
70
+ - private-file-cleanup
71
+ - add downlaodurl
72
+ - changes to allow overriding the is allowed api keys flag thru extension user
73
+ - Revert "user enumeration"
74
+ - add normalize for otp based also
75
+ - Disable metadata pruning by default in seed command configuration
76
+ - Update seed command to enable metadata pruning by default
77
+ - handle-case-sensitive-for-email
78
+ - Add delete permissions for ImportTransactionController in solid-core metadata
79
+ - Add permissions for import/export functionality in solid-core metadata
80
+ - Refactor role assignment for admin users to handle capability roles individually
81
+ - discard changes
82
+ - add support for static file
83
+ - Add capability roles for admin users in module metadata seeder
84
+ - Enhance module metadata seeder with event emission for start and finish; add options interface for seeding configuration
85
+ - attachment
86
+ - Add new roles and permissions for import/export functionality; refactor role permission handling
87
+ - make isPublic default true
88
+ - changes to show the image inline
89
+ - cleanup againts media's
90
+ - inline role crate false
91
+ - Implement chatter mention notification system with email templates and queue handling
92
+ - Add messageBodyMentions field to chatter message DTOs and entity
93
+ - fix-audit-bug
94
+ - changes to include signed url token for private media
95
+ - Revert "Revert "rename function name""
96
+ - Revert "Revert "add private media support""
97
+ - Add media file type constants and enhance security for media uploads
98
+ - handle technical error messages due to missing resource in static resources folder
99
+ - Revert "add private media support"
100
+ - Revert "rename function name"
101
+ - rename function name
102
+ - add private media support
103
+ - some fixes
104
+ - solidx session invalid changes
105
+ - add validation on get chatter message
106
+ - updatedAt value is updating now
107
+ - fix to allow linking a userKey belonging to the parent model while seeding a child model
108
+ - add security against chatter
109
+ - chatter message endpoint made public
110
+ - removed embedded db support
111
+ - Add default sorting by ID if not explicitly specified in order options
112
+ - add icons across all the models in solid core
113
+ - media upload added behind auth
114
+ - Refactor module path resolution to use kebab-case and extract migration file writing logic into a separate method
115
+ - Implement cleanup for TypeORM datasource entities and enhance file handling in SolidTsMorphService
116
+ - class serializer interceptor added for impact of Exclude and Expose
117
+ - Enhance datasource introspection with primary key validation and user key resolution
118
+ - Concurrent Login Feature
119
+ - user enumeration
120
+ - add helper text key on settings object .........
121
+ - changes to handle case insenstive filter operations if the values are other than string by casting
122
+ - menus item fix
123
+ - changes to ensure entity manager does not get serialized as part of the message for the computed field queue
124
+ - added nodemon heartbeat to allow in-process db query execution for code generation for embedded db
125
+ - display name changed
126
+ - name changed
127
+ - added settings for configure the row click on solid list view
128
+ - Revert "Fix for this issue > stop applying lower for numeric fields."
129
+ - fixed legacy entity files names
130
+ - view metadata type field - selection static and roles required false from menu-item
131
+ - Fix for this issue > stop applying lower for numeric fields.
132
+ - refactor and add migration command
133
+ - Handling for audit subscriber to defer audit publish when in embedded db mode
134
+ - Fixed the one genuine mid-transaction second-connection case and hardened the latent spots (for embedded db)
135
+ - changes to take in option for seeding with modules in current seed method
136
+ - Fix validation logic to parse string field values as integers before applying validations
137
+ - remove computed field from instruction add one remove field command fix many-to-many on chatter log
138
+ - ad changes
139
+ - Add locale seeding functionality and enhance locale management
140
+ - subscribers now use the event’s own transaction connection instead of a second pooled one (helpful for embedded db)
141
+ - changes to avoid extra module checks before dynamically loading it
142
+ - defaulted to modulemetadataseederservice if no seeder provided
143
+ - Add Date field in Instructions Response
144
+ - ai interaction cleanup changes
145
+ - enabling create,edit,import,export on permission and lov modules
146
+ - added module to rolemetadata list view
147
+ - roles group by module changes
148
+ - Refactor dashboard providers to utilize new bucket expression and normalization functions
149
+ - Implement Datasource Management functionality with controller, service, and DTO
150
+ - added index to fields newly added as sortable and searchable
151
+ - Add archiver package to dependencies
152
+ - removed unnecessary seed file
153
+ - Add TypeORM migration helper functions and export in index
154
+ - fixes
155
+ - reverted accidental removal of the layout builder root menu
156
+ - pending cleanup of solid core menu items
157
+ - Refactor metadata: remove standalone menu items and add scheduled jobs and saved filters tree views
158
+ - Remove ChatterMessageDetails and ImportTransactionErrorLog menu items; add Chatter Messages tree view and action. Other menu sub menus cleanup done
159
+ - Add model sequence and list of values tree views to metadata, other cleanup changes
160
+ - changes for IAM
161
+ - Add clearPackageRuntime functionality and corresponding metadata action
162
+ - Add archiver dependency and implement module package export functionality
163
+ - Refactor menu cleanup logic in ModelMetadataService and ModuleMetadataService; improve error handling for file deletion and update build commands in ModulePackageService to use solidctl.
164
+ - Update solid-core-metadata.json to disable create, edit, and delete actions, and set searchable attributes to false for specific fields for media storage provider
165
+ - Add media tree view and action & media view cleanup, enhance file storage provider with file size tracking, implemented storeStreams for s3
166
+ - Remove cleanup procedures for module metadata across all SQL dialects and implement menu and action cleanup in the service layer.
167
+ - Remove unused database bootstrap service and related SQL cleanup procedures
168
+ - cleanup
169
+ - Add view and action metadata tree views with updated permissions and searchable fields
170
+ - Add view and action metadata tree views with updated permissions and searchable fields
171
+ - menu item model cleanup
172
+ - Add resumable import handling and transaction management in module package service
173
+ - Add method to retrieve Solid UI module path and enhance cleanup logging
174
+ - Enhance module metadata seeder: add validation for module name, streamline array handling for scheduled jobs, saved filters, list of values, security rules, sms templates, email templates, menus, actions, views, users, roles, media storage providers, model sequences, and models metadata.
175
+ - Implement module package management: add controller, service, and DTOs for import, export, and build operations.
176
+ - many to one left join issue fixed
177
+ - Refactor field metadata actions and views: update action types, enhance searchability, and adjust permissions for create, edit, and delete operations.
178
+ - Refactor CRUD and model metadata services to enhance group filtering and pagination; streamline response handling and improve query structure. configuration changes to support tree view in model metadata
179
+ - Update solid-core metadata: remove import/export options, rename fields, and add sortable attribute
180
+ - Enhance solid-core metadata structure for module mdtadata by removing import/export options and adding sortable attributes for fields
181
+ - Implement module metadata explorer with CRUD operations and search functionality
182
+ - Refactor module metadata paths to use a consistent directory structure and improve file resolution logic
183
+ - Bug fixs
184
+ - added frontend base url as well to the default settings
185
+ - minor cleanup
186
+ - changes to cleanup legacy table related fields
187
+ - changes for new dashboards functionality
188
+ - always print server startup line regardless of log level
189
+ - Add field quality checks and fixes checklist for backend validation
190
+ - typeo issue
191
+ - Agent table clean up
192
+ - Add manual interaction step for Playwright and update README
193
+ - provision made to unlink data rather than having to teardown everything
194
+ - provision made to unlink data rather than having to teardown everything
195
+ - changes to colour the server startup line
196
+ - Agent table clean up
197
+ - changes to avoid too many initialization logs. controlled thru the verboseBootstrap option to the boostrap helper
198
+ - removed id command options and retained the singular name option only for consistency purposes
199
+ - changes to route genertion commands thru solidctl. The refresh-module & refresh-model commands are what are eventually called and end up calling the services only, keeping calling consistent and ensuring everything is route thru solidctl generate
200
+ - got rid of fieldNamesForRefresh and fieldIdsForRefresh dead chain since it is not used now, due to fields being read in the code builder from the metadata json directly
201
+ - MCP table solid changes
202
+ - playwrite added as dependency instead
203
+ - changes to the test runner
204
+ - chatter message user resolution chagnes
205
+ - bug fix in chatter message user resolution after we moved to queues.
206
+ - moved back to beta3
207
+ - failed login attempts field added to the json and update dto and exposed in entity
208
+ - removed un-necessary index on newvalue display
209
+ - ts changes error: any
210
+ - auto addition of menus happens at the bottom now. list view layout changes for security access rules + enabled delete made welcome email & sms SystemAdminEditable
211
+ - changed model metadata service default form layout to be single column
212
+ - added typing to catch blocks + authentication service bug fixes for private registration flow
213
+ - added typing to catch blocks + authentication service bug fixes for private registration flow
214
+ - normalised @ApiTags
215
+ - enum for passwordless modes
216
+ - bug fix in how alternative actions are rendered
217
+ - queue related bug fixes
218
+ - changes to add a websocket adaptor to the bootstrap server routine
219
+ - license changes
220
+ - type fixes
221
+ - removed min and max from long text mapping
222
+ - bug fix for shortext field mapping
223
+ - changes to post the testing results to a webhook api with a test payload
224
+ - added import multer this fixes un-necessary ts errors in vscode
225
+ - ts errors fixed
226
+ - bug fix in rabbitmq subscriber optimisation in all subscribers to default to role both if not specified
227
+ - formatting changes
228
+ - facebook oauth
229
+ - Status required false
230
+ - updated gitignore
231
+ - dleete un-necessary docs
232
+ - deleted un-necessary files
233
+ - changes related to more grooming
234
+ - api added in cors
235
+ - refactor Oauth strategy
236
+ - Revert "Ft social media login"
237
+ - bug fix
238
+ - bug fix
239
+ - add new api me endpoint and role based settings
240
+ - setting changes for new ui architecture
241
+ - changes for new settings structure
242
+ - chatter task subtype and related changes
243
+ - bug fix
244
+ - fixes
245
+ - changes to get rid of angular schematics for helping with string case transformation for consistency purpose i.e (lodash is being used on frontend too) and avoid edge cases
246
+ - changes to handle import logs as well, thru configured winston log level
247
+ - change isMultiSelect to true in solid-core-metadata.json
248
+ - change isMultiSelect to false and set visibility for cronExpression, dayOfWeek, and dayOfMonth fields to false
249
+ - tightened up queue subscriber interface + fixed core subscribers that were not returning anything. all subscribers must either return a promise or if not async then the actual value
250
+ - removed authTheme setting, auth pages dark - light is now controlled by the same local storage as the rest of the app shell
251
+ - bug fix: passwordless registration should create a user with active false
252
+ - apikeys attribute was not exposed
253
+ - refactor Oauth strategy
254
+ - changes to avoid sending out encrypted setting in api responses. also removed menu item and action entries for ai settings. (temporary fix, since setting ui to be revamped soon)
255
+ - bug fix
256
+ - null check on role
257
+ - made provision to seed custom permissions
258
+ - handled seed scenario too
259
+ - upload File and expectHidden changes
260
+ - extension user cleanup and checks added
261
+ - fixed types for cleanup
262
+ - added tsc-alias as well to ensure clean imports in dist as an extra cleanup measure
263
+ - fixes bare shell imports with relative imports
264
+ - dynamic import fix
265
+ - removed unnecessary file
266
+ - fixes for 1. throw exception if extension user and no provider configured 2. fixed roles method in the extensionUserProvider interface to make it mandatory
267
+ - removed base abstract class
268
+ - added interface too
269
+ - changes
270
+ - changes to test data seeding & fixed the type for authenticationService.signup method
271
+ - changes to user dto to include the api keys toggle
272
+ - add default role to the user only if there are no roles resolved against a user
273
+ - changes to replace current extension user custom user creation logic with the use of dynamic extension user provider. cleans up creation of an extension user
274
+ - Only forward --debug when explicitly enabled.
275
+ - toolOutput field changes to json
276
+ - adding user api key entity to export
277
+ - minor optimisation to how dynamic modules are loaded
278
+ - Add Discord badge to top of README
279
+ - Fix broken BSL license link and add Discord link to README
280
+ - Add BSL 1.1 license and update package.json license field
281
+ - Seed user and roles in testing data
282
+ - removed readme.txt
283
+ - moved type and interfaces in interfaces.ts and refactored accordingly
284
+ - changed to md
285
+ - added readme
286
+ - Ai setting model change
287
+ - changes to allow encrypting setting keys
288
+ - form view clean up
289
+ - Agent table list view changes
290
+ - synchronize false
291
+ - changes to resolve the selection dynamic provider by name and token both
292
+ - changes to bypass swagger urls from csp policy
293
+ - changes to create a seperate endpoint for admin users to generate api key + custom repository created for userApiKey
294
+ - changes to fix issue around isAllowedToGenerateApiKeys not getting saved during user creation
295
+ - changes to implement the sso code and sso exchange use cases
296
+ - removed orm types / exported api key entity
297
+ - added provision to control if api key creation is allowed for the user
298
+ - api key changes for backend
299
+ - changes to bootstrap helper to read from standard env variables and avoid redundantly passing swagger options
300
+ - fix to call addRoles only if role names are present
301
+ - Revert "revert: refactor: update legacy entity fields to be nullable and support null types"
302
+ - refactor: update legacy entity fields to be nullable and support null types
303
+ - Json structure change
304
+ - Agent table metadata clean up changes
305
+ - longtext
306
+ - longtext changes
307
+ - Agent tables clean up
308
+ - fixes to seed many-to-many relation for tests
309
+ - changes to seed media in testing data
310
+ - Chatter modelUserkey and excel many to one issue
311
+ - keeping the default selectionValueType as string since this is a good default
312
+ - bug fixes around how media is done
313
+ - bug fixes
314
+ - try catch inside logEvent
315
+ - media has card based metadata
316
+ - Refresh token activity
317
+ - changes to implement the sso code and sso exchange use cases
318
+ - cleanup
319
+ - enabled kanban view on mq message
320
+ - Agent table changes
321
+ - changes to disallow deleting a model or module in production
322
+ - changelog version bumped
323
+ - changelog added
324
+ - changes to control the logging using env variables & set appropriate defaults basis environment
325
+ - chnages for logging
326
+ - Chatter queue fixs
327
+ - one more "beta" for ozzy
328
+ - additional loggging in cors helper
329
+ - changes
330
+ - Redis Queue component and rabbitMQ folder changes
331
+ - changes to track old and new fields as part of the delete entity operation
332
+ - optimizations done for audit subcriber
333
+ - changes to optimize audit subscriber code to use background jobs entirely instead of partially
334
+ - changes to push all work/processing to the chatter queue subscriber to better manage workloads & db pooling utilization
335
+ - formatting changes
336
+ - performance optimisations 1. created by updated by subscriber is not querying users again and again 2. rabbit pub / sub can now optinally switch off db persistence
337
+ - qs depth config increased
338
+ - changes to move the shouldTrackAudit check into registry to avoid unnecessary checks during runtime
339
+ - cached model metadata queries
340
+ - changse
341
+ - disabled extra loggign
342
+ - chagnes
343
+ - reduced concurrency in computed fields
344
+ - additional loggign
345
+ - added indexes to mobile & email since those are frequently queries upon
346
+ - changes to optimize the permission service methods used in the hotspot load paths within auth and access token guards
347
+ - Redis background job changes
348
+ - Chatter Rationalizing
349
+ - changes
350
+ - changes
351
+ - changes to merge the entityId sequence computed provider into the existing sequence number provider
352
+ - changes to export bootstrap helpers for server & cli nest applications
353
+ - changes to toggle the validation for selection dynamic provider. Also changes to export a bootstrap helper function
354
+ - registered the EntityIdSequenceNumComputedFieldProvider computation provider as a nest provider
355
+ - Added EntityIdSequenceNumComputedFieldProvider as an alternative simpler provider which uses the modelSequence configuration and relies on the id persisted during creation for an entity
356
+ - added index on message id in mq message table
357
+ - changes around sequence num computed field being a post computation provider error logging in rabbit mq
358
+ - changes to save model sequence id as part of post compute instead of pre compute
359
+ - changse
360
+ - Revert "High concurrency fix for alpha num and sequence num computed fields"
361
+ - High concurrency fix for alpha num and sequence num computed fields
362
+ - bug fix in cron evalutaion
363
+ - tighter logging around roles
364
+ - scheduler now supports env based specific jobs starting and others not
365
+ - reverting back to text (i.e since it is good enough for mysql too) i.e 64kb for these fields
366
+ - revert cross db changes for view-metadata-entity
367
+ - fixes
368
+ - changes to handle cross-db compatibility
369
+ - added type as simple-json
370
+ - Remove isValidateForUpdate hack that relied on checking dto.id !== undefined
371
+ - Revert "Merge branch 'media-update' into 'main'"
372
+ - Mysql related changes
373
+ - ts-morph and media storage fix
374
+ - dashboard layout menu item added
375
+ - dashboard changes
376
+ - scheduler bug fix
377
+ - made provision to execute scheduled jobs manually
378
+ - changes
379
+ - cleanup
380
+ - logging related changes and made user activity history tree view
381
+ - changes to return the wall clock time as utc for chatter as well to keep it...
382
+ - changes around dashboard question refactoring
383
+ - default tree view and action added on code generation
384
+ - Date time format changes in audit
385
+ - user activity history on otp login
386
+ - changes
387
+ - changelog added
388
+ - reverted legacy and common entity to use local date time transformer only
389
+ - added changelog
390
+ - made playwright dependency lazy
391
+ - ai interaction table user is nullable now
392
+ - rabbitmq subscriber does a prefetch now allowing for more concurrency
393
+ - formatting changes
394
+ - Version info changes
395
+ - dummy otp can now be enabled on a per user basis
396
+ - jwt token optimisation
397
+ - optimised the authentication flow in microservice adapter to cache access token
398
+ - deleted file containing secrets
399
+ - changes
400
+ - optimisation around how dummy otp is managed
401
+ - isSeeded added
402
+ - bug fix for fetch layouts
403
+ - view modes added in layout
404
+ - One to many crud manager fixes
405
+ - one-to-many-crud-manager-fixes
406
+ - Many to many crud field manager fixes
407
+ - patch endpoint added in role controller
408
+ - many-to-many field fixes
409
+ - modelSequenceFormViewChangeHandler added on field change
410
+ - changes to convert the passwordlessRegistrationValidateWhat from array to string
411
+ - changes to format group values consistently
412
+ - fixes for normalizing group values
413
+ - Revert "changes to return groupValue in the group meta response as well. groupValue is..."
414
+ - changes to return groupValue in the group meta response as well. groupValue is...
415
+ - changes to return groupValue in the group meta response as well. groupValue is...
416
+ - filter_field_granularity_supported_added_for_date_fields
417
+ - password registration/login cleanup + max failed login attempts checks added
418
+ - removed unsafe inline from CSP
419
+ - removed incorrect comment
420
+ - changes
421
+ - Revert "replaced playwright with lazy dependency"
422
+ - replaced playwright with lazy dependency
423
+ - count and average
424
+ - fixes to solid core metadata configuration
425
+ - make `s3Key` and `isPrivate` properties mandatory in `ResolveS3UrlDto`.
426
+ - solid seed now prints proper exception stack trace
427
+ - added playwright dependencies as peer dependencies
428
+ - changed playwright import to make it lazy
429
+ - issue fixes
430
+ - formatting changes
431
+ - formatting changes
432
+ - changes for test setup
433
+ - package changes
434
+ - Changes to generate an SA user with the default password for simpler experience during setup
435
+ - more changes to support form data based uploads
436
+ - changes
437
+ - changes around testing workflow
438
+ - unified testing utitlities
439
+ - added comments to the slug code
440
+ - refactored queue namespacign
441
+ - queue namespacing related chanes
442
+ - removed todo
443
+ - queue name related changes
444
+ - cag
445
+ - changrs
446
+ - queues names are now namespaced by service naem
447
+ - enabled logs
448
+ - debug logs
449
+ - testing docs updated
450
+ - changes
451
+ - cleanup
452
+ - removed old testing related fiels
453
+ - testing infra now supports data based interpolation
454
+ - testing changes: now we support fully custom test specs
455
+ - changes for test automation
456
+ - changes to tsconfig for playwright tests
457
+ - exporting typeorm db helper
458
+ - removed the files section
459
+ - changes for playwright testing
460
+ - changes to disable service controller seed method
461
+ - formatting changes
462
+ - oom issue
463
+ - logger added for chatter
464
+ - changed arg to kebab case instead of came case in schematic service
465
+ - default menu icons added
466
+ - rabbitmq subscriber: add retries, DLX queues, reconnects, and docs
467
+ - removed un-necessary log
468
+ - fix for handling non existence of fieldNamesForRemoval arg
469
+ - foirmatting canges
470
+ - Archived/solidstarters main
471
+ - version changes
472
+ - changed org : @solidstarters -> @solidxai
473
+ - removed publish script, since it is replaced with solidctl release
474
+ - chanes
475
+ - Revert "@solidstarters namespace changed to @solidx"
476
+ - @solidstarters namespace changed to @solidx
477
+ - file service interface changes
478
+ - CR in s3 file service, url options now supports isPrivateBucket allowing one to generate signed and un-signed URLs using the getUrl method
479
+ - changes to the publish script to support: 1.reverse merging main to dev to ensure latest package version is synced with dev post publish. 2. added guardrail to allow publishing from main branch only 3. added dry run option and force option i.e (in case we want to publish from another branch, but is hidden) 4. script now pushes the git version tags as well
480
+ - changes to pass minimal parameters to the schematics project and pick the rest from the metadata configuration json file (avoid long shell commands)
481
+ - test data workflow
482
+ - test-data command
483
+ - seed command updated
484
+ - changes
485
+ - changes
486
+ - seed command changes to support pruning, test-data-setup and test-data-teardown.
487
+ - seeding now supports seedData allowing us to seed fixtures for testing.
488
+ - precomputations now skip computation if value is already provided
489
+ - added utility for findOneByUserKey
490
+ - pruning related chagnes
491
+ - changes
492
+ - more changes related to pruning metadata
493
+ - pruen logs added
494
+ - module metadata seeder now does prune also
495
+ - reformatting to improve readability
496
+ - changes
497
+ - file type not allowed. Allowed: image, document, pdf. Received mimetype: application/pdf (mapped to file)
498
+ - bug fixes
499
+ - changes to cleanup the implementation by having the write method of file service return the url post write
500
+ - changes to support using the region specified in a media storage provider, instead only the default while creating an s3 client
501
+ - fixes for using the default-aws-s3 bucket for storing the settings media if default file service is s3
502
+ - changes to settings media storage logic i.e copy multer path to file service implementation write
503
+ - file service abstraction cleanup
504
+ - chagnes
505
+ - Dashboard Question Responsive
506
+
3
507
  ## [0.1.11] - 2026-07-09
4
508
 
5
509
  ### Added
@@ -4,7 +4,6 @@ import { MediaStorageProviderMetadata } from '../entities/media-storage-provider
4
4
  import { FieldMetadata } from '../entities/field-metadata.entity';
5
5
  export declare class Media extends CommonEntity {
6
6
  entityId: number;
7
- isPublic: boolean;
8
7
  relativeUri: string;
9
8
  fileSize: number;
10
9
  mimeType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"media.entity.d.ts","sourceRoot":"","sources":["../../src/entities/media.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,qBACa,KAAM,SAAQ,YAAY;IAGnC,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,OAAO,CAAQ;IAGzB,WAAW,EAAE,MAAM,CAAC;IAIpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,aAAa,EAAE,aAAa,CAAC;IAK7B,4BAA4B,EAAE,4BAA4B,CAAC;IAK3D,aAAa,EAAE,aAAa,CAAC;CAChC"}
1
+ {"version":3,"file":"media.entity.d.ts","sourceRoot":"","sources":["../../src/entities/media.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,qBACa,KAAM,SAAQ,YAAY;IAGnC,QAAQ,EAAE,MAAM,CAAC;IAGjB,WAAW,EAAE,MAAM,CAAC;IAIpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,aAAa,EAAE,aAAa,CAAC;IAK7B,4BAA4B,EAAE,4BAA4B,CAAC;IAK3D,aAAa,EAAE,aAAa,CAAC;CAChC"}
@@ -17,12 +17,8 @@ const model_metadata_entity_1 = require("./model-metadata.entity");
17
17
  const media_storage_provider_metadata_entity_1 = require("./media-storage-provider-metadata.entity");
18
18
  const field_metadata_entity_1 = require("./field-metadata.entity");
19
19
  let Media = class Media extends common_entity_1.CommonEntity {
20
- constructor() {
21
- super(...arguments);
22
- this.isPublic = true;
23
- }
24
20
  static _OPENAPI_METADATA_FACTORY() {
25
- return { entityId: { required: true, type: () => Number }, isPublic: { required: true, type: () => Boolean, default: true }, relativeUri: { required: true, type: () => String }, fileSize: { required: true, type: () => Number }, mimeType: { required: true, type: () => String }, originalFileName: { required: true, type: () => String }, modelMetadata: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, mediaStorageProviderMetadata: { required: true, type: () => require("./media-storage-provider-metadata.entity").MediaStorageProviderMetadata }, fieldMetadata: { required: true, type: () => require("./field-metadata.entity").FieldMetadata } };
21
+ 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 }, modelMetadata: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, mediaStorageProviderMetadata: { required: true, type: () => require("./media-storage-provider-metadata.entity").MediaStorageProviderMetadata }, fieldMetadata: { required: true, type: () => require("./field-metadata.entity").FieldMetadata } };
26
22
  }
27
23
  };
28
24
  exports.Media = Media;
@@ -31,10 +27,6 @@ __decorate([
31
27
  (0, typeorm_1.Column)({ type: "integer" }),
32
28
  __metadata("design:type", Number)
33
29
  ], Media.prototype, "entityId", void 0);
34
- __decorate([
35
- (0, typeorm_1.Column)({ name: "is_public", default: true }),
36
- __metadata("design:type", Boolean)
37
- ], Media.prototype, "isPublic", void 0);
38
30
  __decorate([
39
31
  (0, typeorm_1.Column)({ type: "varchar", nullable: true }),
40
32
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"media.entity.js","sourceRoot":"","sources":["../../src/entities/media.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAuE;AACvE,mEAAmE;AACnE,qGAAmG;AACnG,mEAAkE;AAE3D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,4BAAY;IAAhC;;QAMH,aAAQ,GAAY,IAAI,CAAC;KA6B5B;;6HA7BuB,IAAI;;CA6B3B,CAAA;AAnCY,sBAAK;AAGd;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uCACX;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;uCACpB;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACxB;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACnB;AAKzB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;AAK7B;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qEAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,IAAA,oBAAU,GAAE;8BACiB,qEAA4B;2DAAC;AAK3D;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;gBAlCpB,KAAK;IADjB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,KAAK,CAmCjB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';\nimport { FieldMetadata } from 'src/entities/field-metadata.entity'\n@Entity(\"ss_media\")\nexport class Media extends CommonEntity {\n @Index()\n @Column({ type: \"integer\" })\n entityId: number;\n\n @Column({ name: \"is_public\", default: true })\n isPublic: boolean = true;\n\n @Column({ type: \"varchar\", nullable: true })\n relativeUri: string;\n\n @Index()\n @Column({ type: \"integer\", nullable: true })\n fileSize: number;\n\n @Column({ type: \"varchar\", nullable: true })\n mimeType: string;\n\n @Column({ type: \"varchar\", nullable: true })\n originalFileName: string;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn()\n modelMetadata: ModelMetadata;\n\n @Index()\n @ManyToOne(() => MediaStorageProviderMetadata, { nullable: false })\n @JoinColumn()\n mediaStorageProviderMetadata: MediaStorageProviderMetadata;\n\n @Index()\n @ManyToOne(() => FieldMetadata, { nullable: false })\n @JoinColumn()\n fieldMetadata: FieldMetadata;\n}\n"]}
1
+ {"version":3,"file":"media.entity.js","sourceRoot":"","sources":["../../src/entities/media.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAuE;AACvE,mEAAmE;AACnE,qGAAmG;AACnG,mEAAkE;AAE3D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,4BAAY;;;;CAgCtC,CAAA;AAhCY,sBAAK;AAGd;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uCACX;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACxB;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACnB;AAKzB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;AAK7B;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qEAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,IAAA,oBAAU,GAAE;8BACiB,qEAA4B;2DAAC;AAK3D;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;gBA/BpB,KAAK;IADjB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,KAAK,CAgCjB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';\nimport { FieldMetadata } from 'src/entities/field-metadata.entity'\n@Entity(\"ss_media\")\nexport class Media extends CommonEntity {\n @Index()\n @Column({ type: \"integer\" })\n entityId: number;\n\n @Column({ type: \"varchar\", nullable: true })\n relativeUri: string;\n\n @Index()\n @Column({ type: \"integer\", nullable: true })\n fileSize: number;\n\n @Column({ type: \"varchar\", nullable: true })\n mimeType: string;\n\n @Column({ type: \"varchar\", nullable: true })\n originalFileName: string;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn()\n modelMetadata: ModelMetadata;\n\n @Index()\n @ManyToOne(() => MediaStorageProviderMetadata, { nullable: false })\n @JoinColumn()\n mediaStorageProviderMetadata: MediaStorageProviderMetadata;\n\n @Index()\n @ManyToOne(() => FieldMetadata, { nullable: false })\n @JoinColumn()\n fieldMetadata: FieldMetadata;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"media.repository.d.ts","sourceRoot":"","sources":["../../src/repository/media.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAM,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,qBACa,eAAgB,SAAQ,mBAAmB,CAAC,KAAK,CAAC;IAEvD,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;IAOvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,gCAAgC;gBAZxC,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAOtC,iBAAiB,EAAE,uBAAuB,EAE1C,iBAAiB,EAAE,uBAAuB,EAC1C,gCAAgC,EAAE,sCAAsC;IAKvF,WAAW,CAAC,SAAS,EAAE,GAAG;IAqB1B,0CAA0C,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,KAAK;IAe7H,4CAA4C,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAexH"}
1
+ {"version":3,"file":"media.repository.d.ts","sourceRoot":"","sources":["../../src/repository/media.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAM,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,eAAgB,SAAQ,mBAAmB,CAAC,KAAK,CAAC;IAEvD,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;IAOvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,gCAAgC;gBAZxC,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAOtC,iBAAiB,EAAE,uBAAuB,EAE1C,iBAAiB,EAAE,uBAAuB,EAC1C,gCAAgC,EAAE,sCAAsC;IAKvF,WAAW,CAAC,SAAS,EAAE,GAAG;IAqB1B,0CAA0C,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,KAAK;IAe7H,4CAA4C,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;CAexH"}
@@ -22,7 +22,6 @@ const media_storage_provider_metadata_repository_1 = require("./media-storage-pr
22
22
  const model_metadata_repository_1 = require("./model-metadata.repository");
23
23
  const security_rule_repository_1 = require("./security-rule.repository");
24
24
  const solid_base_repository_1 = require("./solid-base.repository");
25
- const media_storage_utils_1 = require("../services/media-storage.utils");
26
25
  let MediaRepository = class MediaRepository extends solid_base_repository_1.SolidBaseRepository {
27
26
  constructor(dataSource, requestContextService, securityRuleRepository, fieldMetadataRepo, modelMetadataRepo, mediaStorageProviderMetadataRepo) {
28
27
  super(media_entity_1.Media, dataSource, requestContextService, securityRuleRepository);
@@ -49,7 +48,6 @@ let MediaRepository = class MediaRepository extends solid_base_repository_1.Soli
49
48
  id: createDto['mediaStorageProviderMetadataId']
50
49
  },
51
50
  });
52
- createDto['isPublic'] = (0, media_storage_utils_1.resolveStoredMediaIsPublic)(createDto['isPublic'], createDto['mediaStorageProviderMetadata']);
53
51
  const media = this.create(createDto);
54
52
  return this.save(media);
55
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"media.repository.js","sourceRoot":"","sources":["../../src/repository/media.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAgE;AAChE,2DAAkD;AAClD,iFAA6E;AAC7E,qCAAyC;AACzC,2EAAsE;AACtE,6GAAsG;AACtG,2EAAsE;AACtE,yEAAoE;AACpE,mEAA8D;AAC9D,yEAA8E;AAGvE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,2CAA0B;IAC3D,YACa,UAAsB,EACtB,qBAA4C,EAC5C,sBAA8C,EAOtC,iBAA0C,EAE1C,iBAA0C,EAC1C,gCAAwE;QAEzF,KAAK,CAAC,oBAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;QAd/D,eAAU,GAAV,UAAU,CAAY;QACtB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAOtC,sBAAiB,GAAjB,iBAAiB,CAAyB;QAE1C,sBAAiB,GAAjB,iBAAiB,CAAyB;QAC1C,qCAAgC,GAAhC,gCAAgC,CAAwC;IAG7F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAc;QAC5B,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC;aACnC;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC;aACnC;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,8BAA8B,CAAC,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;YAC5F,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS,CAAC,gCAAgC,CAAC;aAClD;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,UAAU,CAAC,GAAG,IAAA,gDAA0B,EAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACrH,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,QAAgB,EAAE,eAAuB,EAAE,eAAuB,EAAE,SAAS,GAAG,EAAE;QAC/H,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE;gBACH,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,QAAQ,EAAE,QAAQ;aACrB;YACD,SAAS,EAAE,SAAS;SACvB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,4CAA4C,CAAC,QAAgB,EAAE,eAAuB,EAAE,eAAuB;QACjH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC7B,KAAK,EAAE;gBACH,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CAEJ,CAAA;AAtEY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAaJ,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mDAAuB,CAAC,CAAC,CAAA;qCAV7B,oBAAU;QACC,+CAAqB;QACpB,iDAAsB;QAOnB,mDAAuB;QAEvB,mDAAuB;QACR,mFAAsC;GAdpF,eAAe,CAsE3B","sourcesContent":["import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { Media } from 'src/entities/media.entity';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport { DataSource, In } from 'typeorm';\nimport { FieldMetadataRepository } from './field-metadata.repository';\nimport { MediaStorageProviderMetadataRepository } from './media-storage-provider-metadata.repository';\nimport { ModelMetadataRepository } from './model-metadata.repository';\nimport { SecurityRuleRepository } from './security-rule.repository';\nimport { SolidBaseRepository } from './solid-base.repository';\nimport { resolveStoredMediaIsPublic } from 'src/services/media-storage.utils';\n\n@Injectable()\nexport class MediaRepository extends SolidBaseRepository<Media> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n // @InjectRepository(FieldMetadata)\n // private readonly fieldMetadataRepo: Repository<FieldMetadata>,\n // @InjectRepository(ModelMetadata)\n // private readonly modelMetadataRepo: Repository<ModelMetadata>,\n // @InjectRepository(MediaStorageProviderMetadata)\n // private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,\n private readonly fieldMetadataRepo: FieldMetadataRepository,\n @Inject(forwardRef(() => ModelMetadataRepository))\n private readonly modelMetadataRepo: ModelMetadataRepository,\n private readonly mediaStorageProviderMetadataRepo: MediaStorageProviderMetadataRepository,\n ) {\n super(Media, dataSource, requestContextService, securityRuleRepository);\n }\n\n async createMedia(createDto: any) {\n createDto['fieldMetadata'] = await this.fieldMetadataRepo.findOne({\n where: {\n id: createDto['fieldMetadataId']\n },\n });\n createDto['modelMetadata'] = await this.modelMetadataRepo.findOne({\n where: {\n id: createDto['modelMetadataId']\n },\n });\n createDto['mediaStorageProviderMetadata'] = await this.mediaStorageProviderMetadataRepo.findOne({\n where: {\n id: createDto['mediaStorageProviderMetadataId']\n },\n });\n createDto['isPublic'] = resolveStoredMediaIsPublic(createDto['isPublic'], createDto['mediaStorageProviderMetadata']);\n const media = this.create(createDto);\n return this.save(media);\n }\n\n async findByEntityIdAndFieldIdAndModelMetadataId(entityId: number, fieldMetadataId: number, modelMetadataId: number, relations = {}) {\n return await this.find({\n where: {\n modelMetadata: {\n id: modelMetadataId\n },\n fieldMetadata: {\n id: fieldMetadataId\n },\n entityId: entityId,\n },\n relations: relations,\n });\n }\n\n async deleteByEntityIdAndFieldIdAndModelMetadataId(entityId: number, fieldMetadataId: number, modelMetadataId: number) {\n const entities = await this.find({\n where: {\n modelMetadata: {\n id: modelMetadataId\n },\n fieldMetadata: {\n id: fieldMetadataId\n },\n entityId: entityId,\n }\n });\n return this.remove(entities);\n }\n\n}\n"]}
1
+ {"version":3,"file":"media.repository.js","sourceRoot":"","sources":["../../src/repository/media.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAgE;AAChE,2DAAkD;AAClD,iFAA6E;AAC7E,qCAAyC;AACzC,2EAAsE;AACtE,6GAAsG;AACtG,2EAAsE;AACtE,yEAAoE;AACpE,mEAA8D;AAGvD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,2CAA0B;IAC3D,YACa,UAAsB,EACtB,qBAA4C,EAC5C,sBAA8C,EAOtC,iBAA0C,EAE1C,iBAA0C,EAC1C,gCAAwE;QAEzF,KAAK,CAAC,oBAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;QAd/D,eAAU,GAAV,UAAU,CAAY;QACtB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAOtC,sBAAiB,GAAjB,iBAAiB,CAAyB;QAE1C,sBAAiB,GAAjB,iBAAiB,CAAyB;QAC1C,qCAAgC,GAAhC,gCAAgC,CAAwC;IAG7F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAc;QAC5B,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC;aACnC;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC;aACnC;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,8BAA8B,CAAC,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;YAC5F,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS,CAAC,gCAAgC,CAAC;aAClD;SACJ,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,QAAgB,EAAE,eAAuB,EAAE,eAAuB,EAAE,SAAS,GAAG,EAAE;QAC/H,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE;gBACH,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,QAAQ,EAAE,QAAQ;aACrB;YACD,SAAS,EAAE,SAAS;SACvB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,4CAA4C,CAAC,QAAgB,EAAE,eAAuB,EAAE,eAAuB;QACjH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC7B,KAAK,EAAE;gBACH,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,aAAa,EAAE;oBACX,EAAE,EAAE,eAAe;iBACtB;gBACD,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CAEJ,CAAA;AAtEY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAaJ,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mDAAuB,CAAC,CAAC,CAAA;qCAV7B,oBAAU;QACC,+CAAqB;QACpB,iDAAsB;QAOnB,mDAAuB;QAEvB,mDAAuB;QACR,mFAAsC;GAdpF,eAAe,CAsE3B","sourcesContent":["import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { Media } from 'src/entities/media.entity';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport { DataSource, In } from 'typeorm';\nimport { FieldMetadataRepository } from './field-metadata.repository';\nimport { MediaStorageProviderMetadataRepository } from './media-storage-provider-metadata.repository';\nimport { ModelMetadataRepository } from './model-metadata.repository';\nimport { SecurityRuleRepository } from './security-rule.repository';\nimport { SolidBaseRepository } from './solid-base.repository';\n\n@Injectable()\nexport class MediaRepository extends SolidBaseRepository<Media> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n // @InjectRepository(FieldMetadata)\n // private readonly fieldMetadataRepo: Repository<FieldMetadata>,\n // @InjectRepository(ModelMetadata)\n // private readonly modelMetadataRepo: Repository<ModelMetadata>,\n // @InjectRepository(MediaStorageProviderMetadata)\n // private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,\n private readonly fieldMetadataRepo: FieldMetadataRepository,\n @Inject(forwardRef(() => ModelMetadataRepository))\n private readonly modelMetadataRepo: ModelMetadataRepository,\n private readonly mediaStorageProviderMetadataRepo: MediaStorageProviderMetadataRepository,\n ) {\n super(Media, dataSource, requestContextService, securityRuleRepository);\n }\n\n async createMedia(createDto: any) {\n createDto['fieldMetadata'] = await this.fieldMetadataRepo.findOne({\n where: {\n id: createDto['fieldMetadataId']\n },\n });\n createDto['modelMetadata'] = await this.modelMetadataRepo.findOne({\n where: {\n id: createDto['modelMetadataId']\n },\n });\n createDto['mediaStorageProviderMetadata'] = await this.mediaStorageProviderMetadataRepo.findOne({\n where: {\n id: createDto['mediaStorageProviderMetadataId']\n },\n });\n // delete createDto['isPublic'];\n const media = this.create(createDto);\n return this.save(media);\n }\n\n async findByEntityIdAndFieldIdAndModelMetadataId(entityId: number, fieldMetadataId: number, modelMetadataId: number, relations = {}) {\n return await this.find({\n where: {\n modelMetadata: {\n id: modelMetadataId\n },\n fieldMetadata: {\n id: fieldMetadataId\n },\n entityId: entityId,\n },\n relations: relations,\n });\n }\n\n async deleteByEntityIdAndFieldIdAndModelMetadataId(entityId: number, fieldMetadataId: number, modelMetadataId: number) {\n const entities = await this.find({\n where: {\n modelMetadata: {\n id: modelMetadataId\n },\n fieldMetadata: {\n id: fieldMetadataId\n },\n entityId: entityId,\n }\n });\n return this.remove(entities);\n }\n\n}\n"]}