@solidxai/core 0.1.13-beta.18 → 0.1.13-beta.19

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 (33) hide show
  1. package/CHANGELOG.md +582 -0
  2. package/dist/config/cache.options.d.ts.map +1 -1
  3. package/dist/config/cache.options.js +2 -2
  4. package/dist/config/cache.options.js.map +1 -1
  5. package/dist/controllers/authentication.controller.d.ts +1 -1
  6. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  7. package/dist/controllers/authentication.controller.js +4 -3
  8. package/dist/controllers/authentication.controller.js.map +1 -1
  9. package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -1
  10. package/dist/helpers/solid-microservice-adapter.service.js +1 -1
  11. package/dist/helpers/solid-microservice-adapter.service.js.map +1 -1
  12. package/dist/interfaces/active-user-data.interface.d.ts +1 -0
  13. package/dist/interfaces/active-user-data.interface.d.ts.map +1 -1
  14. package/dist/interfaces/active-user-data.interface.js.map +1 -1
  15. package/dist/services/api-key.service.d.ts.map +1 -1
  16. package/dist/services/api-key.service.js +1 -1
  17. package/dist/services/api-key.service.js.map +1 -1
  18. package/dist/services/authentication.service.d.ts +5 -4
  19. package/dist/services/authentication.service.d.ts.map +1 -1
  20. package/dist/services/authentication.service.js +50 -19
  21. package/dist/services/authentication.service.js.map +1 -1
  22. package/dist/services/refresh-token-ids-storage.service.d.ts +25 -6
  23. package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
  24. package/dist/services/refresh-token-ids-storage.service.js +80 -42
  25. package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/config/cache.options.ts +9 -1
  28. package/src/controllers/authentication.controller.ts +5 -2
  29. package/src/helpers/solid-microservice-adapter.service.ts +6 -1
  30. package/src/interfaces/active-user-data.interface.ts +9 -0
  31. package/src/services/api-key.service.ts +13 -1
  32. package/src/services/authentication.service.ts +127 -36
  33. package/src/services/refresh-token-ids-storage.service.ts +229 -90
package/CHANGELOG.md CHANGED
@@ -1,5 +1,587 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.13-beta.19] - 2026-08-11
4
+
5
+ ### Added
6
+
7
+ - add security header options for iframe embedding and customize frame-ancestors
8
+ - add createdAt field to PostChatterMessageDto and set default in service
9
+ - implement transaction handling for unpublishing records and restore previous version
10
+ - add progress reporting functionality to test runner and reporters
11
+ - add viewWidget attribute for fileSize in metadata
12
+ - add configurable UI timeouts for testing steps and update documentation
13
+ - enhance internationalisation by adding applyCreateDefaults method for localeName on create DTOs
14
+ - implement promoteRecoveredDraftPublishVersion method and integrate with CRUDService for soft-deleted records
15
+ - add default locale name for internationalised entries in test data seeding
16
+ - implement draft/publish versioning support and refactor related services
17
+ - add DraftPublishHelperService for managing draft and publish workflows
18
+ - add workflow field data provider support and related interfaces
19
+ - add asynchronous execution for workflows and enhance execution status retrieval
20
+ - implement WorkflowSecret management with CRUD operations and integrate into workflow execution
21
+ - enhance workflow definition management and add Python runtime node
22
+ - add SolidX integration nodes for login, email, and SMS
23
+ - add support for versioning and publishing in CRUD operations, including new fields in entities and filters
24
+ - enhance http.request node with query parameters and body modes
25
+ - refactor node structure and add sequential and switch nodes
26
+ - update workflow execution and definition handling
27
+ - implement workflow execution services and nodes
28
+ - implement API key generation for system admin users in ModuleMetadataSeederService
29
+ - enhance ModuleMetadataSeederService to generate and store API keys for system admin users
30
+ - add fieldConfig property to DatasourceIntrospectionMappingColumnDto and enhance field sanitization in DatasourceIntrospectionService
31
+ - enhance migration process with build and seed commands
32
+ - enhance datasource introspection with primary key detection and migration support
33
+ - enhance role creation with module linkage and resolve module metadata
34
+ - enhance action, role, and view metadata services with change detection and JSON normalization
35
+ - add introspection services for MSSQL, MySQL, and PostgreSQL
36
+ - add new dashboard controller actions to permissions
37
+ - simplify queue health permissions by consolidating patterns
38
+ - implement explicit widget permissions and unauthorized response handling
39
+ - enhance widget permission checks and add unauthorized response handling
40
+ - add Queue SLA heatmap provider and update metadata
41
+ - update queue health menu item and reorder messages
42
+ - add various dashboard providers and runtime services
43
+ - implement WhatsApp Cloud API integration
44
+ - add gupshup whatsapp provider
45
+ - add deleteByMediaRecord method to MediaStorageProvider implementations
46
+ - add updateCustomNoteMessage action to ChatterMessageController
47
+ - add secure custom-note edit API with attachment add/remove support
48
+ - implemented social media oath for facebook and microsoft
49
+ - add partialUpdate endpoint to menu-item-metadata controller and update metadata seeder relation field name
50
+ - implemented social media oath for facebook and microsoft
51
+ - add Message Tree Action and corresponding view for mqMessage
52
+ - implement processing timeout for RabbitMQ subscriber
53
+ - Add a composite index to `ChatterMessage` on `coModelName` and `coModelEntityId`, and an index to `chatterMessage` in `ChatterMessageDetails`.
54
+ - Migrate date/time transformers to UtcDateTimeTransformer.
55
+ - simplify S3 URL resolution DTO, and remove unused S3 resolution logic.
56
+
57
+ ### Fixed
58
+
59
+ - make currentValue optional in CreateModelSequenceDto and update seeding logic to exclude it
60
+ - change matched column type from bit to default nullable boolean
61
+ - improve error message for media deletion restriction
62
+ - use transactions entitymanager for all subscribers only for embedded db projects
63
+ - update consuming project name resolution to use parent directory
64
+ - update solidx directory path to include consuming project name
65
+ - correct package name in model generation command and update error handling in module metadata retrieval
66
+ - username
67
+ - remove type specification for encrypted column in Setting entity, to work in mssql also
68
+ - handle null or empty security rule configuration strings in repository
69
+
70
+ ### Changed
71
+
72
+ - update media type handling in CreateFieldMetadataDto and FieldMetadataService
73
+ - remove onDelete cascade option from ManyToOne relationships in entity definitions
74
+ - unify datetime column types across entities using helper function
75
+ - remove explicit timestamp type for nullable date columns across entities
76
+ - update CommonEntity properties to be optional and adjust types in WorkflowTriggerExecution
77
+ - rename create-draft-publish-helper.service to draft-publish-helper.service and update imports
78
+ - inject InternationalisationHelperService in ModuleTestDataService and CrudHelperService
79
+ - separate generic delete from draft-publish and i18n cleanup in CRUDService
80
+ - remove unused boolean type and related system column definitions from DatasourceIntrospectionService
81
+ - update CrudHelperService to initialize DraftPublishHelperService directly in the class refactor: remove publishedAt sorting logic from getLayout method in ViewMetadataService
82
+ - simplify published version filtering in CRUDService
83
+ - remove handleSeedLocales method to streamline locale seeding process
84
+ - remove legacy dashboard files and add new dashboarding architecture guide
85
+ - remove unused dashboard question and variable providers, SQL expression resolver, and related subscribers
86
+ - remove redundant null check in resolveSecurityRuleConfig
87
+ - update body column type to longText using getColumnType helper in SmsTemplate entity
88
+ - update legacy entity fields to be nullable and support null types
89
+ - replace DTO introspection with explicit isUpdate flag in MediaFieldCrudManager
90
+ - make password scheme and failed login attempt columns non-nullable in UserEntity.
91
+ - make passwordScheme, passwordSchemeVersion, and failedLoginAttempts fields nullable in the User entity.
92
+
93
+ ### Documentation
94
+
95
+ - update expired discord link
96
+
97
+ ### Other
98
+
99
+ - Add safe percent-decoding for uploaded file names to prevent bypassing extension checks
100
+ - Revert "Revert "Deliverable A now stands as: cache TTL (with the store swap that make…""
101
+ - Revert "Deliverable A now stands as: cache TTL (with the store swap that make…"
102
+ - fixes around handling concurrent logins properly using per deviceKey buckets.
103
+ - Deliverable A now stands as: cache TTL (with the store swap that makes it actually work), the me() null guard it necessitates, the logout verify/idempotency fix, previousValidUntil replacing the timer, and the dead validate() removed.
104
+ - fixed the request body limit to keep it as 10mb instead of 25mb by default
105
+ - changes around files name sanitization and normalization
106
+ - changes to handle variations in extension while uploading dangerous extension files
107
+ - change request body max to 25mb
108
+ - Comment out countGroupedRecords method implementation for refactoring
109
+ - show theme toggle
110
+ - changes to support passing an explicit createdAt while posting a chatter message
111
+ - Enhance countGroupedRecords and passed internationalisation and draft publish workflow parameters in executeGroupPipeline
112
+ - rename theme registry
113
+ - remove add permisson from permisson-list-view
114
+ - removed indexes on username and mobile since it is a conditional index and it breaks for mssql since multiple nulls are not allowed on unique columns
115
+ - readme changes
116
+ - removed hardcoded type against a boolean type
117
+ - changes to the default testing setting timeout to pick from env as well
118
+ - remove duplicate code
119
+ - refactoring around chatter media security fix
120
+ - add media extension support for post chatter
121
+ - Add media upload action and validation in MediaService
122
+ - add media extension support for post chatter
123
+ - changes to ensure only id and field are returned while populating the user in chatter
124
+ - Update defaultValue types in solid-core-metadata.json to strings
125
+ - 1. changes to ensure user populated for chatter and createdBy/updatedBy has only id and fullName populate 2. Added Exclude at property level on user to exclude sensitive fields by default without having to add an exclude at the class level
126
+ - Add getMentionableUsers permission
127
+ - Add endpoint to retrieve mentionable users with search and limit options
128
+ - Add error handling nodes and enhance workflow node definitions
129
+ - Add skipHooks option to seed command and related services
130
+ - Remove type specification for matched column in WorkflowTriggerExecution entity
131
+ - Enhance workflow node definitions and runtime context handling
132
+ - remvoing redundent code
133
+ - Remove onDelete cascade option from ManyToOne relationships in SavedFilters entity
134
+ - changes
135
+ - changes
136
+ - sql injection vulnerability closed in filter queries
137
+ - Remove LocalPath
138
+ - revert changes
139
+ - revert changes
140
+ - revert changes
141
+ - re revert
142
+ - revert changes
143
+ - private-file-cleanup
144
+ - add downlaodurl
145
+ - changes to allow overriding the is allowed api keys flag thru extension user
146
+ - Revert "user enumeration"
147
+ - remove validation from username and mobile
148
+ - user create validation bugs
149
+ - add normalize for otp based also
150
+ - Disable metadata pruning by default in seed command configuration
151
+ - Update seed command to enable metadata pruning by default
152
+ - handle-case-sensitive-for-email
153
+ - Add delete permissions for ImportTransactionController in solid-core metadata
154
+ - Add permissions for import/export functionality in solid-core metadata
155
+ - Refactor role assignment for admin users to handle capability roles individually
156
+ - discard changes
157
+ - add support for static file
158
+ - Add capability roles for admin users in module metadata seeder
159
+ - Enhance module metadata seeder with event emission for start and finish; add options interface for seeding configuration
160
+ - attachment
161
+ - Add new roles and permissions for import/export functionality; refactor role permission handling
162
+ - make isPublic default true
163
+ - changes to show the image inline
164
+ - cleanup againts media's
165
+ - inline role crate false
166
+ - Implement chatter mention notification system with email templates and queue handling
167
+ - Add messageBodyMentions field to chatter message DTOs and entity
168
+ - fix-audit-bug
169
+ - changes to include signed url token for private media
170
+ - Revert "Revert "rename function name""
171
+ - Revert "Revert "add private media support""
172
+ - Add media file type constants and enhance security for media uploads
173
+ - remove some unusable code
174
+ - some changes
175
+ - handle technical error messages due to missing resource in static resources folder
176
+ - Revert "add private media support"
177
+ - Revert "rename function name"
178
+ - rename function name
179
+ - add private media support
180
+ - some fixes
181
+ - solidx session invalid changes
182
+ - add validation on get chatter message
183
+ - updatedAt value is updating now
184
+ - fix to allow linking a userKey belonging to the parent model while seeding a child model
185
+ - add security against chatter
186
+ - chatter message endpoint made public
187
+ - removed embedded db support
188
+ - Add default sorting by ID if not explicitly specified in order options
189
+ - solidx theme settings
190
+ - add icons across all the models in solid core
191
+ - media upload added behind auth
192
+ - Refactor module path resolution to use kebab-case and extract migration file writing logic into a separate method
193
+ - Implement cleanup for TypeORM datasource entities and enhance file handling in SolidTsMorphService
194
+ - class serializer interceptor added for impact of Exclude and Expose
195
+ - Enhance datasource introspection with primary key validation and user key resolution
196
+ - Concurrent Login Feature
197
+ - user enumeration
198
+ - add helper text key on settings object .........
199
+ - changes to handle case insenstive filter operations if the values are other than string by casting
200
+ - menus item fix
201
+ - changes to ensure entity manager does not get serialized as part of the message for the computed field queue
202
+ - added nodemon heartbeat to allow in-process db query execution for code generation for embedded db
203
+ - display name changed
204
+ - name changed
205
+ - added settings for configure the row click on solid list view
206
+ - Revert "Fix for this issue > stop applying lower for numeric fields."
207
+ - fixed legacy entity files names
208
+ - view metadata type field - selection static and roles required false from menu-item
209
+ - Fix for this issue > stop applying lower for numeric fields.
210
+ - refactor and add migration command
211
+ - Handling for audit subscriber to defer audit publish when in embedded db mode
212
+ - Fixed the one genuine mid-transaction second-connection case and hardened the latent spots (for embedded db)
213
+ - changes to take in option for seeding with modules in current seed method
214
+ - Fix validation logic to parse string field values as integers before applying validations
215
+ - remove computed field from instruction add one remove field command fix many-to-many on chatter log
216
+ - ad changes
217
+ - Add locale seeding functionality and enhance locale management
218
+ - subscribers now use the event’s own transaction connection instead of a second pooled one (helpful for embedded db)
219
+ - changes to avoid extra module checks before dynamically loading it
220
+ - defaulted to modulemetadataseederservice if no seeder provided
221
+ - Add Date field in Instructions Response
222
+ - ai interaction cleanup changes
223
+ - enabling create,edit,import,export on permission and lov modules
224
+ - added module to rolemetadata list view
225
+ - roles group by module changes
226
+ - Refactor dashboard providers to utilize new bucket expression and normalization functions
227
+ - Implement Datasource Management functionality with controller, service, and DTO
228
+ - added index to fields newly added as sortable and searchable
229
+ - Add archiver package to dependencies
230
+ - removed unnecessary seed file
231
+ - Add TypeORM migration helper functions and export in index
232
+ - fixes
233
+ - reverted accidental removal of the layout builder root menu
234
+ - pending cleanup of solid core menu items
235
+ - Refactor metadata: remove standalone menu items and add scheduled jobs and saved filters tree views
236
+ - Remove ChatterMessageDetails and ImportTransactionErrorLog menu items; add Chatter Messages tree view and action. Other menu sub menus cleanup done
237
+ - Add model sequence and list of values tree views to metadata, other cleanup changes
238
+ - changes for IAM
239
+ - Add clearPackageRuntime functionality and corresponding metadata action
240
+ - Add archiver dependency and implement module package export functionality
241
+ - Refactor menu cleanup logic in ModelMetadataService and ModuleMetadataService; improve error handling for file deletion and update build commands in ModulePackageService to use solidctl.
242
+ - 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
243
+ - Add media tree view and action & media view cleanup, enhance file storage provider with file size tracking, implemented storeStreams for s3
244
+ - Remove cleanup procedures for module metadata across all SQL dialects and implement menu and action cleanup in the service layer.
245
+ - Remove unused database bootstrap service and related SQL cleanup procedures
246
+ - cleanup
247
+ - Add view and action metadata tree views with updated permissions and searchable fields
248
+ - Add view and action metadata tree views with updated permissions and searchable fields
249
+ - menu item model cleanup
250
+ - Add resumable import handling and transaction management in module package service
251
+ - Add method to retrieve Solid UI module path and enhance cleanup logging
252
+ - 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.
253
+ - Implement module package management: add controller, service, and DTOs for import, export, and build operations.
254
+ - many to one left join issue fixed
255
+ - Refactor field metadata actions and views: update action types, enhance searchability, and adjust permissions for create, edit, and delete operations.
256
+ - 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
257
+ - Update solid-core metadata: remove import/export options, rename fields, and add sortable attribute
258
+ - Enhance solid-core metadata structure for module mdtadata by removing import/export options and adding sortable attributes for fields
259
+ - Implement module metadata explorer with CRUD operations and search functionality
260
+ - Refactor module metadata paths to use a consistent directory structure and improve file resolution logic
261
+ - Bug fixs
262
+ - added frontend base url as well to the default settings
263
+ - minor cleanup
264
+ - changes to cleanup legacy table related fields
265
+ - changes for new dashboards functionality
266
+ - always print server startup line regardless of log level
267
+ - Add field quality checks and fixes checklist for backend validation
268
+ - typeo issue
269
+ - Agent table clean up
270
+ - Add manual interaction step for Playwright and update README
271
+ - provision made to unlink data rather than having to teardown everything
272
+ - provision made to unlink data rather than having to teardown everything
273
+ - changes to colour the server startup line
274
+ - Agent table clean up
275
+ - changes to avoid too many initialization logs. controlled thru the verboseBootstrap option to the boostrap helper
276
+ - removed id command options and retained the singular name option only for consistency purposes
277
+ - 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
278
+ - 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
279
+ - MCP table solid changes
280
+ - playwrite added as dependency instead
281
+ - changes to the test runner
282
+ - chatter message user resolution chagnes
283
+ - bug fix in chatter message user resolution after we moved to queues.
284
+ - moved back to beta3
285
+ - failed login attempts field added to the json and update dto and exposed in entity
286
+ - removed un-necessary index on newvalue display
287
+ - ts changes error: any
288
+ - auto addition of menus happens at the bottom now. list view layout changes for security access rules + enabled delete made welcome email & sms SystemAdminEditable
289
+ - changed model metadata service default form layout to be single column
290
+ - added typing to catch blocks + authentication service bug fixes for private registration flow
291
+ - added typing to catch blocks + authentication service bug fixes for private registration flow
292
+ - normalised @ApiTags
293
+ - enum for passwordless modes
294
+ - bug fix in how alternative actions are rendered
295
+ - queue related bug fixes
296
+ - changes to add a websocket adaptor to the bootstrap server routine
297
+ - license changes
298
+ - type fixes
299
+ - removed min and max from long text mapping
300
+ - bug fix for shortext field mapping
301
+ - changes to post the testing results to a webhook api with a test payload
302
+ - added import multer this fixes un-necessary ts errors in vscode
303
+ - ts errors fixed
304
+ - bug fix in rabbitmq subscriber optimisation in all subscribers to default to role both if not specified
305
+ - formatting changes
306
+ - facebook oauth
307
+ - Status required false
308
+ - updated gitignore
309
+ - dleete un-necessary docs
310
+ - deleted un-necessary files
311
+ - changes related to more grooming
312
+ - api added in cors
313
+ - refactor Oauth strategy
314
+ - Revert "Ft social media login"
315
+ - bug fix
316
+ - bug fix
317
+ - add new api me endpoint and role based settings
318
+ - setting changes for new ui architecture
319
+ - changes for new settings structure
320
+ - chatter task subtype and related changes
321
+ - bug fix
322
+ - fixes
323
+ - 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
324
+ - changes to handle import logs as well, thru configured winston log level
325
+ - change isMultiSelect to true in solid-core-metadata.json
326
+ - change isMultiSelect to false and set visibility for cronExpression, dayOfWeek, and dayOfMonth fields to false
327
+ - 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
328
+ - removed authTheme setting, auth pages dark - light is now controlled by the same local storage as the rest of the app shell
329
+ - bug fix: passwordless registration should create a user with active false
330
+ - apikeys attribute was not exposed
331
+ - refactor Oauth strategy
332
+ - 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)
333
+ - bug fix
334
+ - null check on role
335
+ - made provision to seed custom permissions
336
+ - handled seed scenario too
337
+ - upload File and expectHidden changes
338
+ - extension user cleanup and checks added
339
+ - fixed types for cleanup
340
+ - added tsc-alias as well to ensure clean imports in dist as an extra cleanup measure
341
+ - fixes bare shell imports with relative imports
342
+ - dynamic import fix
343
+ - removed unnecessary file
344
+ - fixes for 1. throw exception if extension user and no provider configured 2. fixed roles method in the extensionUserProvider interface to make it mandatory
345
+ - removed base abstract class
346
+ - added interface too
347
+ - changes
348
+ - changes to test data seeding & fixed the type for authenticationService.signup method
349
+ - changes to user dto to include the api keys toggle
350
+ - add default role to the user only if there are no roles resolved against a user
351
+ - 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
352
+ - Only forward --debug when explicitly enabled.
353
+ - toolOutput field changes to json
354
+ - adding user api key entity to export
355
+ - minor optimisation to how dynamic modules are loaded
356
+ - Add Discord badge to top of README
357
+ - Fix broken BSL license link and add Discord link to README
358
+ - Add BSL 1.1 license and update package.json license field
359
+ - Seed user and roles in testing data
360
+ - removed readme.txt
361
+ - moved type and interfaces in interfaces.ts and refactored accordingly
362
+ - changed to md
363
+ - added readme
364
+ - Ai setting model change
365
+ - changes to allow encrypting setting keys
366
+ - form view clean up
367
+ - Agent table list view changes
368
+ - synchronize false
369
+ - changes to resolve the selection dynamic provider by name and token both
370
+ - changes to bypass swagger urls from csp policy
371
+ - changes to create a seperate endpoint for admin users to generate api key + custom repository created for userApiKey
372
+ - changes to fix issue around isAllowedToGenerateApiKeys not getting saved during user creation
373
+ - changes to implement the sso code and sso exchange use cases
374
+ - removed orm types / exported api key entity
375
+ - added provision to control if api key creation is allowed for the user
376
+ - api key changes for backend
377
+ - changes to bootstrap helper to read from standard env variables and avoid redundantly passing swagger options
378
+ - fix to call addRoles only if role names are present
379
+ - Revert "revert: refactor: update legacy entity fields to be nullable and support null types"
380
+ - refactor: update legacy entity fields to be nullable and support null types
381
+ - Json structure change
382
+ - Agent table metadata clean up changes
383
+ - longtext
384
+ - longtext changes
385
+ - Agent tables clean up
386
+ - fixes to seed many-to-many relation for tests
387
+ - changes to seed media in testing data
388
+ - Chatter modelUserkey and excel many to one issue
389
+ - keeping the default selectionValueType as string since this is a good default
390
+ - bug fixes around how media is done
391
+ - bug fixes
392
+ - try catch inside logEvent
393
+ - media has card based metadata
394
+ - Refresh token activity
395
+ - changes to implement the sso code and sso exchange use cases
396
+ - cleanup
397
+ - enabled kanban view on mq message
398
+ - Agent table changes
399
+ - changes to disallow deleting a model or module in production
400
+ - changelog version bumped
401
+ - changelog added
402
+ - changes to control the logging using env variables & set appropriate defaults basis environment
403
+ - chnages for logging
404
+ - Chatter queue fixs
405
+ - one more "beta" for ozzy
406
+ - additional loggging in cors helper
407
+ - changes
408
+ - Redis Queue component and rabbitMQ folder changes
409
+ - changes to track old and new fields as part of the delete entity operation
410
+ - optimizations done for audit subcriber
411
+ - changes to optimize audit subscriber code to use background jobs entirely instead of partially
412
+ - changes to push all work/processing to the chatter queue subscriber to better manage workloads & db pooling utilization
413
+ - formatting changes
414
+ - 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
415
+ - qs depth config increased
416
+ - changes to move the shouldTrackAudit check into registry to avoid unnecessary checks during runtime
417
+ - cached model metadata queries
418
+ - changse
419
+ - disabled extra loggign
420
+ - chagnes
421
+ - reduced concurrency in computed fields
422
+ - additional loggign
423
+ - added indexes to mobile & email since those are frequently queries upon
424
+ - changes to optimize the permission service methods used in the hotspot load paths within auth and access token guards
425
+ - Redis background job changes
426
+ - Chatter Rationalizing
427
+ - changes
428
+ - changes
429
+ - changes to merge the entityId sequence computed provider into the existing sequence number provider
430
+ - changes to export bootstrap helpers for server & cli nest applications
431
+ - changes to toggle the validation for selection dynamic provider. Also changes to export a bootstrap helper function
432
+ - registered the EntityIdSequenceNumComputedFieldProvider computation provider as a nest provider
433
+ - Added EntityIdSequenceNumComputedFieldProvider as an alternative simpler provider which uses the modelSequence configuration and relies on the id persisted during creation for an entity
434
+ - added index on message id in mq message table
435
+ - changes around sequence num computed field being a post computation provider error logging in rabbit mq
436
+ - changes to save model sequence id as part of post compute instead of pre compute
437
+ - changse
438
+ - Revert "High concurrency fix for alpha num and sequence num computed fields"
439
+ - High concurrency fix for alpha num and sequence num computed fields
440
+ - bug fix in cron evalutaion
441
+ - tighter logging around roles
442
+ - scheduler now supports env based specific jobs starting and others not
443
+ - reverting back to text (i.e since it is good enough for mysql too) i.e 64kb for these fields
444
+ - revert cross db changes for view-metadata-entity
445
+ - fixes
446
+ - changes to handle cross-db compatibility
447
+ - added type as simple-json
448
+ - Remove isValidateForUpdate hack that relied on checking dto.id !== undefined
449
+ - Revert "Merge branch 'media-update' into 'main'"
450
+ - Mysql related changes
451
+ - ts-morph and media storage fix
452
+ - dashboard layout menu item added
453
+ - dashboard changes
454
+ - scheduler bug fix
455
+ - made provision to execute scheduled jobs manually
456
+ - changes
457
+ - cleanup
458
+ - logging related changes and made user activity history tree view
459
+ - changes to return the wall clock time as utc for chatter as well to keep it...
460
+ - changes around dashboard question refactoring
461
+ - default tree view and action added on code generation
462
+ - Date time format changes in audit
463
+ - user activity history on otp login
464
+ - changes
465
+ - changelog added
466
+ - reverted legacy and common entity to use local date time transformer only
467
+ - added changelog
468
+ - made playwright dependency lazy
469
+ - ai interaction table user is nullable now
470
+ - rabbitmq subscriber does a prefetch now allowing for more concurrency
471
+ - formatting changes
472
+ - Version info changes
473
+ - dummy otp can now be enabled on a per user basis
474
+ - jwt token optimisation
475
+ - optimised the authentication flow in microservice adapter to cache access token
476
+ - deleted file containing secrets
477
+ - changes
478
+ - optimisation around how dummy otp is managed
479
+ - isSeeded added
480
+ - bug fix for fetch layouts
481
+ - view modes added in layout
482
+ - One to many crud manager fixes
483
+ - one-to-many-crud-manager-fixes
484
+ - Many to many crud field manager fixes
485
+ - patch endpoint added in role controller
486
+ - many-to-many field fixes
487
+ - modelSequenceFormViewChangeHandler added on field change
488
+ - changes to convert the passwordlessRegistrationValidateWhat from array to string
489
+ - changes to format group values consistently
490
+ - fixes for normalizing group values
491
+ - Revert "changes to return groupValue in the group meta response as well. groupValue is..."
492
+ - changes to return groupValue in the group meta response as well. groupValue is...
493
+ - changes to return groupValue in the group meta response as well. groupValue is...
494
+ - filter_field_granularity_supported_added_for_date_fields
495
+ - password registration/login cleanup + max failed login attempts checks added
496
+ - removed unsafe inline from CSP
497
+ - removed incorrect comment
498
+ - changes
499
+ - Revert "replaced playwright with lazy dependency"
500
+ - replaced playwright with lazy dependency
501
+ - count and average
502
+ - fixes to solid core metadata configuration
503
+ - make `s3Key` and `isPrivate` properties mandatory in `ResolveS3UrlDto`.
504
+ - solid seed now prints proper exception stack trace
505
+ - added playwright dependencies as peer dependencies
506
+ - changed playwright import to make it lazy
507
+ - issue fixes
508
+ - formatting changes
509
+ - formatting changes
510
+ - changes for test setup
511
+ - package changes
512
+ - Changes to generate an SA user with the default password for simpler experience during setup
513
+ - more changes to support form data based uploads
514
+ - changes
515
+ - changes around testing workflow
516
+ - unified testing utitlities
517
+ - added comments to the slug code
518
+ - refactored queue namespacign
519
+ - queue namespacing related chanes
520
+ - removed todo
521
+ - queue name related changes
522
+ - cag
523
+ - changrs
524
+ - queues names are now namespaced by service naem
525
+ - enabled logs
526
+ - debug logs
527
+ - testing docs updated
528
+ - changes
529
+ - cleanup
530
+ - removed old testing related fiels
531
+ - testing infra now supports data based interpolation
532
+ - testing changes: now we support fully custom test specs
533
+ - changes for test automation
534
+ - changes to tsconfig for playwright tests
535
+ - exporting typeorm db helper
536
+ - removed the files section
537
+ - changes for playwright testing
538
+ - changes to disable service controller seed method
539
+ - formatting changes
540
+ - oom issue
541
+ - logger added for chatter
542
+ - changed arg to kebab case instead of came case in schematic service
543
+ - default menu icons added
544
+ - rabbitmq subscriber: add retries, DLX queues, reconnects, and docs
545
+ - removed un-necessary log
546
+ - fix for handling non existence of fieldNamesForRemoval arg
547
+ - foirmatting canges
548
+ - Archived/solidstarters main
549
+ - version changes
550
+ - changed org : @solidstarters -> @solidxai
551
+ - removed publish script, since it is replaced with solidctl release
552
+ - chanes
553
+ - Revert "@solidstarters namespace changed to @solidx"
554
+ - @solidstarters namespace changed to @solidx
555
+ - file service interface changes
556
+ - CR in s3 file service, url options now supports isPrivateBucket allowing one to generate signed and un-signed URLs using the getUrl method
557
+ - 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
558
+ - changes to pass minimal parameters to the schematics project and pick the rest from the metadata configuration json file (avoid long shell commands)
559
+ - test data workflow
560
+ - test-data command
561
+ - seed command updated
562
+ - changes
563
+ - changes
564
+ - seed command changes to support pruning, test-data-setup and test-data-teardown.
565
+ - seeding now supports seedData allowing us to seed fixtures for testing.
566
+ - precomputations now skip computation if value is already provided
567
+ - added utility for findOneByUserKey
568
+ - pruning related chagnes
569
+ - changes
570
+ - more changes related to pruning metadata
571
+ - pruen logs added
572
+ - module metadata seeder now does prune also
573
+ - reformatting to improve readability
574
+ - changes
575
+ - file type not allowed. Allowed: image, document, pdf. Received mimetype: application/pdf (mapped to file)
576
+ - bug fixes
577
+ - changes to cleanup the implementation by having the write method of file service return the url post write
578
+ - changes to support using the region specified in a media storage provider, instead only the default while creating an s3 client
579
+ - fixes for using the default-aws-s3 bucket for storing the settings media if default file service is s3
580
+ - changes to settings media storage logic i.e copy multer path to file service implementation write
581
+ - file service abstraction cleanup
582
+ - chagnes
583
+ - Dashboard Question Responsive
584
+
3
585
  ## [0.1.13-beta.18] - 2026-08-11
4
586
 
5
587
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"cache.options.d.ts","sourceRoot":"","sources":["../../src/config/cache.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAKhE,eAAO,MAAM,mBAAmB,EAAE,uBAmBjC,CAAC"}
1
+ {"version":3,"file":"cache.options.d.ts","sourceRoot":"","sources":["../../src/config/cache.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAahE,eAAO,MAAM,mBAAmB,EAAE,uBAmBjC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheManagerOptions = void 0;
4
4
  const config_1 = require("@nestjs/config");
5
- const cache_manager_redis_store_1 = require("cache-manager-redis-store");
5
+ const cache_manager_redis_yet_1 = require("cache-manager-redis-yet");
6
6
  const environment_helper_1 = require("../helpers/environment.helper");
7
7
  exports.CacheManagerOptions = {
8
8
  isGlobal: true,
@@ -21,7 +21,7 @@ exports.CacheManagerOptions = {
21
21
  inject: [config_1.ConfigService],
22
22
  };
23
23
  async function createRedisStore(configService) {
24
- return await (0, cache_manager_redis_store_1.redisStore)({
24
+ return await (0, cache_manager_redis_yet_1.redisStore)({
25
25
  socket: {
26
26
  host: configService.get('REDIS_HOST'),
27
27
  port: parseInt(configService.get('REDIS_PORT')),
@@ -1 +1 @@
1
- {"version":3,"file":"cache.options.js","sourceRoot":"","sources":["../../src/config/cache.options.ts"],"names":[],"mappings":";;;AACA,2CAA6D;AAC7D,yEAAuD;AACvD,sEAAmE;AAEtD,QAAA,mBAAmB,GAA4B;IACxD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,CAAC,qBAAY,CAAC;IACvB,UAAU,EAAE,KAAK,EAAE,aAA4B,EAAE,EAAE;QAG/C,IAAI,CAAC,IAAA,sCAAiB,EAAC,aAAa,CAAC,EAAE,CAAC;YACpC,OAAO;gBACH,GAAG,EAAE,CAAC;aACT,CAAA;QACL,CAAC;QAGD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACpD,OAAO;YACH,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;SACrB,CAAC;IACN,CAAC;IACD,MAAM,EAAE,CAAC,sBAAa,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,gBAAgB,CAAC,aAA4D;IACxF,OAAO,MAAM,IAAA,sCAAU,EAAC;QACpB,MAAM,EAAE;YACJ,IAAI,EAAE,aAAa,CAAC,GAAG,CAAS,YAAY,CAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAS,YAAY,CAAE,CAAC;SAC3D;KACJ,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { CacheModuleAsyncOptions } from '@nestjs/cache-manager';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { redisStore } from 'cache-manager-redis-store';\nimport { isRedisConfigured } from 'src/helpers/environment.helper';\n\nexport const CacheManagerOptions: CacheModuleAsyncOptions = {\n isGlobal: true,\n imports: [ConfigModule],\n useFactory: async (configService: ConfigService) => {\n\n // This defaults to in-memory cache\n if (!isRedisConfigured(configService)) {\n return {\n ttl: 0\n }\n }\n\n // If redis is configured we use that...\n const store = await createRedisStore(configService);\n return {\n store: () => store,\n };\n },\n inject: [ConfigService],\n};\n\nasync function createRedisStore(configService: ConfigService<Record<string, unknown>, false>) {\n return await redisStore({\n socket: {\n host: configService.get<string>('REDIS_HOST'),\n port: parseInt(configService.get<string>('REDIS_PORT')!),\n },\n });\n}\n"]}
1
+ {"version":3,"file":"cache.options.js","sourceRoot":"","sources":["../../src/config/cache.options.ts"],"names":[],"mappings":";;;AACA,2CAA6D;AAS7D,qEAAqD;AACrD,sEAAmE;AAEtD,QAAA,mBAAmB,GAA4B;IACxD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,CAAC,qBAAY,CAAC;IACvB,UAAU,EAAE,KAAK,EAAE,aAA4B,EAAE,EAAE;QAG/C,IAAI,CAAC,IAAA,sCAAiB,EAAC,aAAa,CAAC,EAAE,CAAC;YACpC,OAAO;gBACH,GAAG,EAAE,CAAC;aACT,CAAA;QACL,CAAC;QAGD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACpD,OAAO;YACH,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;SACrB,CAAC;IACN,CAAC;IACD,MAAM,EAAE,CAAC,sBAAa,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,gBAAgB,CAAC,aAA4D;IACxF,OAAO,MAAM,IAAA,oCAAU,EAAC;QACpB,MAAM,EAAE;YACJ,IAAI,EAAE,aAAa,CAAC,GAAG,CAAS,YAAY,CAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAS,YAAY,CAAE,CAAC;SAC3D;KACJ,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { CacheModuleAsyncOptions } from '@nestjs/cache-manager';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\n// cache-manager-redis-yet, not cache-manager-redis-store. The latter stops at\n// 3.0.1 and implements the cache-manager v4 store contract: it expects an\n// options object and reads `options.ttl` in seconds. cache-manager v5 calls\n// `store.set(key, value, ttl)` with a bare number of milliseconds, so that\n// store found no `.ttl`, fell back to an unset default, and issued a plain\n// `SET` - silently discarding every TTL passed anywhere in the app and leaving\n// Redis keys that never expire. redis-yet implements the v5 contract and\n// writes with `PX`, so millisecond TTLs land correctly.\nimport { redisStore } from 'cache-manager-redis-yet';\nimport { isRedisConfigured } from 'src/helpers/environment.helper';\n\nexport const CacheManagerOptions: CacheModuleAsyncOptions = {\n isGlobal: true,\n imports: [ConfigModule],\n useFactory: async (configService: ConfigService) => {\n\n // This defaults to in-memory cache\n if (!isRedisConfigured(configService)) {\n return {\n ttl: 0\n }\n }\n\n // If redis is configured we use that...\n const store = await createRedisStore(configService);\n return {\n store: () => store,\n };\n },\n inject: [ConfigService],\n};\n\nasync function createRedisStore(configService: ConfigService<Record<string, unknown>, false>) {\n return await redisStore({\n socket: {\n host: configService.get<string>('REDIS_HOST'),\n port: parseInt(configService.get<string>('REDIS_PORT')!),\n },\n });\n}\n"]}
@@ -64,7 +64,7 @@ export declare class AuthenticationController {
64
64
  };
65
65
  refreshToken: string;
66
66
  }>;
67
- logout(refreshToken: string): Promise<{
67
+ logout(refreshToken: string, allDevices?: boolean): Promise<{
68
68
  message: string;
69
69
  }>;
70
70
  generateApiKey(dto: CreateApiKeyDto, activeUser: ActiveUserData): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/authentication.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,qBAIa,wBAAwB;IAI7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAG/C,WAAW,EAAE,qBAAqB,EAClC,aAAa,EAAE,aAAa;IAMjD,MAAM,CAAS,SAAS,EAAE,SAAS;IAMnC,aAAa,CAAS,SAAS,EAAE,kBAAkB,EAAgB,UAAU,EAAE,cAAc;IAQvF,MAAM,CACoB,QAAQ,EAAE,QAAQ,EACtC,SAAS,EAAE,SAAS;;;;;;;;;;;;IAqBhC,aAAa,CAAS,eAAe,EAAE,eAAe;;;;IAOtD,sBAAsB,CAAS,yBAAyB,EAAE,yBAAyB;;;;;;;;;;;IAOnF,qBAAqB,CAAS,wBAAwB,EAAE,wBAAwB;;;;;;;IAMhF,cAAc,CAAS,iBAAiB,EAAE,iBAAiB,EAAgB,UAAU,EAAE,cAAc;IAMrG,EAAE,CACgB,UAAU,EAAE,cAAc;;;;;;;;;;IAStC,MAAM,CAAuB,YAAY,EAAE,MAAM;;;IAOvD,cAAc,CACF,GAAG,EAAE,eAAe,EACd,UAAU,EAAE,cAAc;;;;IAQ5C,qBAAqB,CACc,MAAM,EAAE,MAAM,EACrC,GAAG,EAAE,eAAe;;;;IAQhC,YAAY,CACmB,EAAE,EAAE,MAAM,EAC7B,GAAG,EAAE,eAAe,EACd,UAAU,EAAE,cAAc;IAQtC,QAAQ,CAA4B,MAAM,EAAE,MAAM;;;;;;;;;;;;IAMxD,eAAe,CACG,UAAU,EAAE,cAAc,EACd,aAAa,EAAE,MAAM;;;IASnD,eAAe,CAAS,cAAc,EAAE,cAAc;;;;;;;;;;;;CAGzD"}
1
+ {"version":3,"file":"authentication.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/authentication.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,qBAIa,wBAAwB;IAI7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAG/C,WAAW,EAAE,qBAAqB,EAClC,aAAa,EAAE,aAAa;IAMjD,MAAM,CAAS,SAAS,EAAE,SAAS;IAMnC,aAAa,CAAS,SAAS,EAAE,kBAAkB,EAAgB,UAAU,EAAE,cAAc;IAQvF,MAAM,CACoB,QAAQ,EAAE,QAAQ,EACtC,SAAS,EAAE,SAAS;;;;;;;;;;;;IAqBhC,aAAa,CAAS,eAAe,EAAE,eAAe;;;;IAOtD,sBAAsB,CAAS,yBAAyB,EAAE,yBAAyB;;;;;;;;;;;IAOnF,qBAAqB,CAAS,wBAAwB,EAAE,wBAAwB;;;;;;;IAMhF,cAAc,CAAS,iBAAiB,EAAE,iBAAiB,EAAgB,UAAU,EAAE,cAAc;IAMrG,EAAE,CACgB,UAAU,EAAE,cAAc;;;;;;;;;;IAStC,MAAM,CACc,YAAY,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,OAAO;;;IAQ5C,cAAc,CACF,GAAG,EAAE,eAAe,EACd,UAAU,EAAE,cAAc;;;;IAQ5C,qBAAqB,CACc,MAAM,EAAE,MAAM,EACrC,GAAG,EAAE,eAAe;;;;IAQhC,YAAY,CACmB,EAAE,EAAE,MAAM,EAC7B,GAAG,EAAE,eAAe,EACd,UAAU,EAAE,cAAc;IAQtC,QAAQ,CAA4B,MAAM,EAAE,MAAM;;;;;;;;;;;;IAMxD,eAAe,CACG,UAAU,EAAE,cAAc,EACd,aAAa,EAAE,MAAM;;;IASnD,eAAe,CAAS,cAAc,EAAE,cAAc;;;;;;;;;;;;CAGzD"}