@solidxai/core 0.1.11-beta.12 → 0.1.11-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +16 -0
- package/CLAUDE.md +26 -0
- package/dist/controllers/media.controller.js +0 -2
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/helpers/environment.helper.d.ts +0 -1
- package/dist/helpers/environment.helper.d.ts.map +1 -1
- package/dist/helpers/environment.helper.js +0 -4
- package/dist/helpers/environment.helper.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +1 -2
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +2 -6
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +1 -2
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/repository/scheduled-job.repository.d.ts +2 -2
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +3 -6
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/repository/security-rule.repository.d.ts +2 -2
- package/dist/repository/security-rule.repository.d.ts.map +1 -1
- package/dist/repository/security-rule.repository.js +3 -6
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +5 -7
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +7 -0
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +0 -16
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +0 -28
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +2 -8
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +0 -8
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +3 -36
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.d.ts.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js +2 -3
- package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.d.ts.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js +3 -5
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/media.controller.ts +1 -1
- package/src/helpers/environment.helper.ts +0 -11
- package/src/helpers/model-metadata-helper.service.ts +2 -7
- package/src/helpers/solid-registry.ts +1 -7
- package/src/index.ts +0 -1
- package/src/repository/scheduled-job.repository.ts +4 -10
- package/src/repository/security-rule.repository.ts +4 -10
- package/src/services/1.js +6 -0
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +5 -11
- package/src/services/crud-helper.service.ts +7 -0
- package/src/services/model-metadata.service.ts +0 -22
- package/src/services/module-metadata.service.ts +0 -36
- package/src/subscribers/audit.subscriber.ts +2 -11
- package/src/subscribers/computed-entity-field.subscriber.ts +6 -63
- package/src/subscribers/created-by-updated-by.subscriber.ts +0 -3
- package/src/subscribers/field-metadata.subscriber.ts +0 -3
- package/src/subscribers/scheduled-job.subscriber.ts +2 -3
- package/src/subscribers/security-rule.subscriber.ts +3 -8
- package/dist/helpers/nodemon-heartbeat.d.ts +0 -5
- package/dist/helpers/nodemon-heartbeat.d.ts.map +0 -1
- package/dist/helpers/nodemon-heartbeat.js +0 -67
- package/dist/helpers/nodemon-heartbeat.js.map +0 -1
- package/dist-tests/api/authenticate.spec.js +0 -119
- package/dist-tests/api/authenticate.spec.js.map +0 -1
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
- package/dist-tests/api/ping.spec.js +0 -21
- package/dist-tests/api/ping.spec.js.map +0 -1
- package/dist-tests/helpers/auth.js +0 -41
- package/dist-tests/helpers/auth.js.map +0 -1
- package/dist-tests/helpers/env.js +0 -11
- package/dist-tests/helpers/env.js.map +0 -1
- package/docs/agent-hub-grooming.md +0 -301
- package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
- package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
- package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
- package/docs/datasource-introspection-ddl-analysis.md +0 -326
- package/docs/datasource-introspection-implementation-plan.md +0 -306
- package/docs/grouping-enhancements.md +0 -89
- package/docs/java-spring/README.md +0 -3
- package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
- package/docs/module-package-import-handoff.md +0 -691
- package/docs/seed-changes.md +0 -65
- package/docs/test-data-workflow.md +0 -200
- package/docs/type-declaration-import-issue.md +0 -24
- package/src/helpers/nodemon-heartbeat.ts +0 -59
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,mEAAgD;AAChD,oEAAiD;AACjD,mEAAgD;AAChD,0DAAuC;AACvC,+DAA4C;AAC5C,+DAA4C;AAC5C,0DAAuC;AAEvC,yDAAsC;AAEtC,qEAAkD;AAClD,+EAA4D;AAC5D,8DAA2C;AAC3C,wFAAqE;AACrE,iFAA8D;AAC9D,gFAA6D;AAC7D,wEAAqD;AACrD,kEAA+C;AAC/C,gEAA6C;AAC7C,+DAA4C;AAC5C,4EAAyD;AACzD,8EAA2D;AAC3D,+EAA4D;AAC5D,uEAAoD;AACpD,uEAAoD;AACpD,uFAAoE;AACpE,sEAAmD;AACnD,2EAAwD;AACxD,0FAAuE;AAEvE,kEAA+C;AAC/C,yEAAsD;AACtD,kEAA+C;AAC/C,2DAAwC;AACxC,mEAAgD;AAChD,6DAA0C;AAC1C,qEAAkD;AAClD,oEAAiD;AACjD,qEAAkD;AAClD,mEAAgD;AAChD,mEAAgD;AAChD,mEAAgD;AAChD,oFAAiE;AACjE,0DAAuC;AACvC,uEAAoD;AACpD,4DAAyC;AACzC,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,+DAA4C;AAC5C,kEAA+C;AAC/C,gEAA6C;AAC7C,kEAA+C;AAC/C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,8DAA2C;AAC3C,iEAA8C;AAC9C,yDAAsC;AACtC,kEAA+C;AAC/C,oEAAiD;AACjD,4EAAyD;AACzD,2DAAwC;AACxC,0EAAuD;AACvD,yDAAsC;AACtC,sEAAmD;AACnD,qEAAkD;AAClD,oEAAiD;AACjD,+DAA4C;AAC5C,wDAAqC;AACrC,6DAA0C;AAC1C,yDAAsC;AACtC,yDAAsC;AACtC,8DAA2C;AAC3C,mDAAgC;AAChC,2DAAwC;AACxC,8DAA2C;AAC3C,qEAAkD;AAClD,qDAAkC;AAClC,qDAAkC;AAClC,yDAAsC;AACtC,oEAAiD;AACjD,mEAAgD;AAChD,mEAAgD;AAChD,2EAAwD;AACxD,0DAAuC;AACvC,uEAAoD;AACpD,4DAAyC;AACzC,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,+DAA4C;AAC5C,kEAA+C;AAC/C,gEAA6C;AAC7C,kEAA+C;AAC/C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,iEAA8C;AAC9C,yDAAsC;AACtC,kEAA+C;AAC/C,4DAAyC;AACzC,4DAAyC;AACzC,kEAA+C;AAC/C,kEAA+C;AAC/C,oEAAiD;AACjD,4EAAyD;AACzD,2DAAwC;AACxC,0EAAuD;AACvD,0EAAuD;AACvD,8EAA2D;AAC3D,2EAAwD;AACxD,gFAA6D;AAC7D,4EAAyD;AACzD,qEAAkD;AAClD,0EAAuD;AACvD,0EAAuD;AAEvD,oEAAiD;AACjD,2DAAwC;AACxC,0FAAuE;AACvE,oFAAiE;AACjE,qEAAkD;AAClD,mEAAgD;AAChD,mEAAgD;AAChD,mEAAgD;AAChD,0DAAuC;AACvC,oFAAiE;AACjE,uEAAoD;AACpD,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,+DAA4C;AAC5C,kEAA+C;AAC/C,gEAA6C;AAC7C,kEAA+C;AAC/C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,iEAA8C;AAC9C,yDAAsC;AACtC,iEAA8C;AAC9C,kEAA+C;AAC/C,4DAAyC;AACzC,kEAA+C;AAC/C,uEAAoD;AACpD,kEAA+C;AAC/C,kEAA+C;AAC/C,oEAAiD;AACjD,4EAAyD;AACzD,oEAAiD;AACjD,uEAAoD;AACpD,uEAAoD;AACpD,iFAA8D;AAC9D,2DAAwC;AACxC,0EAAuD;AACvD,mEAAgD;AAChD,0EAAuD;AACvD,iEAA8C;AAE9C,yDAAsC;AACtC,iEAA8C;AAC9C,gFAA6D;AAE7D,kEAA+C;AAE/C,8DAA2C;AAC3C,gEAA6C;AAC7C,6DAA0C;AAC1C,uDAAoC;AAEpC,4DAAyC;AACzC,8DAA2C;AAC3C,0DAAuC;AACvC,8DAA2C;AAC3C,2DAAwC;AACxC,uFAAoE;AACpE,wFAAqE;AACrE,yFAAsE;AACtE,qFAAkE;AAClE,wFAAqE;AACrE,sFAAmE;AACnE,oFAAiE;AACjE,qFAAkE;AAClE,yFAAsE;AACtE,mGAAgF;AAChF,kGAA+E;AAC/E,sFAAmE;AACnE,sFAAmE;AACnE,kGAA+E;AAC/E,yFAAsE;AACtE,yFAAsE;AACtE,iGAA8E;AAC9E,gGAA6E;AAC7E,0FAAuE;AACvE,qFAAkE;AAClE,6DAA0C;AAC1C,+DAA4C;AAC5C,yDAAsC;AACtC,wDAAqC;AACrC,4DAAyC;AACzC,0EAAuD;AACvD,kEAA+C;AAC/C,+EAA4D;AAC5D,8DAA4C;AAC5C,sEAAoD;AAEpD,0DAAuC;AACvC,qEAAkD;AAClD,2EAAwD;AAExD,0EAAuD;AACvD,kDAA+B;AAC/B,oFAAkE;AAClE,gFAA8D;AAC9D,8EAA4D;AAE5D,8EAA2D;AAC3D,0EAAuD;AACvD,+EAA4D;AAC5D,6FAAsJ;AAA7I,+IAAA,+BAA+B,OAAA;AAAE,mIAAA,+BAA+B,OAAuB;AAChG,2EAAwD;AACxD,+FAA0J;AAAjJ,iJAAA,gCAAgC,OAAA;AAAE,qIAAA,gCAAgC,OAAwB;AACnG,8EAA2D;AAC3D,0EAAuD;AACvD,+EAA4D;AAC5D,8EAA2D;AAC3D,0EAAuD;AACvD,+EAA4D;AAC5D,mFAAgE;AAChE,+EAA4D;AAC5D,oFAAiE;AAEjE,iFAA8D;AAC9D,6EAA0D;AAC1D,kFAA+D;AAC/D,qFAAkE;AAClE,2EAAwD;AACxD,sFAAmE;AACnE,iGAA8E;AAC9E,6FAA0E;AAC1E,kGAA+E;AAC/E,qFAAkE;AAClE,iFAA8D;AAC9D,sFAAmE;AACnE,iFAA8D;AAC9D,6EAA0D;AAC1D,kFAA+D;AAC/D,iFAA8D;AAC9D,6EAA0D;AAC1D,kFAA+D;AAC/D,sFAAmE;AACnE,kFAA+D;AAC/D,uFAAoE;AACpE,kFAA+D;AAC/D,8EAA2D;AAC3D,mFAAgE;AAChE,kFAA+D;AAC/D,wEAAqD;AACrD,mFAAgE;AAChE,wFAAqE;AACrE,oFAAiE;AACjE,yFAAsE;AACtE,kFAA+D;AAC/D,8EAA2D;AAC3D,mFAAgE;AAEhE,yEAAsD;AAEtD,8EAA2D;AAC3D,gFAA6D;AAC7D,iFAA8D;AAC9D,kGAA+E;AAE/E,4GAAyF;AAGzF,+EAA4D;AAC5D,2EAAwD;AAGxD,qEAAkD;AAClD,oEAAiD;AACjD,4DAAyC;AACzC,8GAA2F;AAC3F,iEAA8C;AAC9C,0DAAuC;AACvC,oEAAiD;AACjD,oEAAiD;AACjD,kDAA+B;AAC/B,8DAA2C;AAC3C,6DAA0C;AAC1C,oEAAiD;AACjD,wEAAqD;AACrD,qEAAkD;AAClD,qFAAkE;AAClE,2DAAwC;AACxC,4FAAyE;AACzE,yFAAsE;AACtE,yEAAsD;AACtD,wEAAqD;AACrD,oEAAiD;AACjD,8EAA2D;AAC3D,qEAAkD;AAClD,oEAAiD;AACjD,sEAAmD;AACnD,gEAA6C;AAC7C,mEAAgD;AAChD,iEAA8C;AAC9C,mEAAgD;AAChD,mEAAgD;AAChD,yDAAsC;AACtC,yEAAsD;AACtD,+EAA4D;AAC5D,gFAA6D;AAC7D,4EAAyD;AACzD,6EAA0D;AAC1D,+EAA4D;AAC5D,mEAAgD;AAChD,2GAAwF;AACxF,+HAA4G;AAC5G,2HAAwG;AACxG,wEAAqD;AACrD,qEAAkD;AAClD,iEAA8C;AAC9C,iEAA8C;AAC9C,kEAA+C;AAC/C,4DAAyC;AACzC,kEAA+C;AAC/C,sEAAmD;AACnD,0DAAuC;AACvC,mEAAgD;AAChD,2EAAwD;AACxD,gFAA6D;AAC7D,6DAA0C;AAC1C,gEAA6C;AAC7C,0DAAuC;AACvC,2EAAwD;AACxD,8EAA2D;AAC3D,gEAA6C;AAC7C,iFAA8D;AAC9D,oFAAiE;AACjE,oFAAiE;AACjE,0EAAuD;AACvD,wFAAqE;AACrE,mEAAgD;AAChD,qEAAkD;AAClD,qEAAkD;AAClD,6EAA0D;AAC1D,4DAAyC;AACzC,2EAAwD;AACxD,wEAAqD;AACrD,kFAA+D;AAC/D,2DAAwC;AACxC,yDAAsC;AACtC,uEAAoD;AACpD,8EAA2D;AAC3D,+EAA4D;AAC5D,gFAA6D;AAC7D,kHAA+F;AAC/F,sHAAmG;AACnG,mHAAgG;AAChG,qHAAkG;AAClG,gHAA6F;AAC7F,+GAA4F;AAC5F,kHAA+F;AAC/F,kHAA+F;AAC/F,mHAAgG;AAChG,sHAAmG;AACnG,6GAA0F;AAC1F,+GAA4F;AAG5F,2DAAwC;AACxC,0DAAuC;AACvC,+DAA4C;AAG5C,qEAAkD;AAClD,wEAAqD;AACrD,0EAAuD;AACvD,kFAA+D;AAI/D,0EAAuD;AACvD,mFAAgE;AAChE,yEAAsD;AACtD,iEAA8C;AAI9C,mEAAgD;AAChD,qEAAkD;AAClD,qEAAkD;AAClD,4EAAoF;AAA3E,4IAAA,OAAO,OAAuB;AACvC,qFAAkE;AAElE,+DAA4C;AAE5C,8CAA2B;AAC3B,+CAA4B;AAC5B,sDAAmC;AAEnC,mDAAgC;AAEhC,6DAA2D;AAAlD,gHAAA,cAAc,OAAA","sourcesContent":["export * from './commands/helper'\nexport * from './commands/refresh-model.command'\nexport * from './commands/refresh-module.command'\nexport * from './commands/remove-fields.command'\nexport * from './commands/seed.command'\nexport * from './commands/test-data.command'\nexport * from './commands/run-tests.command'\nexport * from './commands/test.command'\n\nexport * from './config/cache.options'\n\nexport * from './decorators/active-user.decorator'\nexport * from './decorators/solid-request-context.decorator'\nexport * from './decorators/auth.decorator'\nexport * from './decorators/dashboard-widget-data-provider.decorator'\nexport * from './decorators/computed-field-provider.decorator'\nexport * from './decorators/scheduled-job-provider.decorator'\nexport * from './decorators/is-not-in-enum.decorator'\nexport * from './decorators/protocol.decorator'\nexport * from './decorators/public.decorator'\nexport * from './decorators/roles.decorator'\nexport * from './decorators/selection-provider.decorator'\nexport * from './decorators/error-codes-provider.decorator'\nexport * from './decorators/solid-database-module.decorator'\nexport * from './decorators/solid-service.decorator'\nexport * from './decorators/mail-provider.decorator'\nexport * from './decorators/security-rule-config-provider.decorator'\nexport * from './decorators/sms-provider.decorator'\nexport * from './decorators/settings-provider.decorator'\nexport * from './decorators/extension-user-creation-provider.decorator'\n\nexport * from './dtos/post-chatter-message.dto'\nexport * from './dtos/update-chatter-note-message.dto'\nexport * from './dtos/security-rule-config.dto'\nexport * from './dtos/basic-filters.dto'\nexport * from './dtos/solid-request-context.dto'\nexport * from './dtos/change-password.dto'\nexport * from './dtos/confirm-forgot-password.dto'\nexport * from './dtos/create-action-metadata.dto'\nexport * from './dtos/create-email-attachment.dto'\nexport * from './dtos/create-email-template.dto'\nexport * from './dtos/create-field-metadata.dto'\nexport * from './dtos/create-list-of-values.dto'\nexport * from './dtos/create-media-storage-provider-metadata.dto'\nexport * from './dtos/create-media.dto'\nexport * from './dtos/create-menu-item-metadata.dto'\nexport * from './dtos/create-message.dto'\nexport * from './dtos/create-model-metadata.dto'\nexport * from './dtos/create-module-metadata.dto'\nexport * from './dtos/create-mq-message-queue.dto'\nexport * from './dtos/create-mq-message.dto'\nexport * from './dtos/create-agent-session.dto'\nexport * from './dtos/create-agent-event.dto'\nexport * from './dtos/create-mcp-audit-log.dto'\nexport * from './dtos/create-scheduled-job.dto'\nexport * from './dtos/create-permission-metadata.dto'\nexport * from './dtos/create-role-metadata.dto'\nexport * from './dtos/create-short-url.dto'\nexport * from './dtos/create-sms-template.dto'\nexport * from './dtos/create-user.dto'\nexport * from './dtos/create-view-metadata.dto'\nexport * from './dtos/create-chatter-message.dto'\nexport * from './dtos/create-chatter-message-details.dto'\nexport * from './dtos/create-locale.dto'\nexport * from './dtos/create-datasource-management.dto'\nexport * from './dtos/fetch-roles.dto'\nexport * from './dtos/initiate-forgot-password.dto'\nexport * from './dtos/mutate-role-permissions.dto'\nexport * from './dtos/mutate-user-roles-list.dto'\nexport * from './dtos/mutate-user-roles.dto'\nexport * from './dtos/oauth-user-dto'\nexport * from './dtos/otp-confirm-otp.dto'\nexport * from './dtos/otp-sign-in.dto'\nexport * from './dtos/otp-sign-up.dto'\nexport * from './dtos/pagination-query.dto'\nexport * from './dtos/query.dto'\nexport * from './dtos/refresh-token.dto'\nexport * from './dtos/register-private.dto'\nexport * from './dtos/selection-dynamic-query.dto'\nexport * from './dtos/sign-in.dto'\nexport * from './dtos/sign-up.dto'\nexport * from './dtos/sort-filter.dto'\nexport * from './dtos/update-action-metadata.dto'\nexport * from './dtos/update-email-template.dto'\nexport * from './dtos/update-field-metadata.dto'\nexport * from './dtos/update-media-storage-provider.dto'\nexport * from './dtos/update-media.dto'\nexport * from './dtos/update-menu-item-metadata.dto'\nexport * from './dtos/update-message.dto'\nexport * from './dtos/update-model-metadata.dto'\nexport * from './dtos/update-module-metadata.dto'\nexport * from './dtos/update-mq-message-queue.dto'\nexport * from './dtos/update-mq-message.dto'\nexport * from './dtos/update-agent-session.dto'\nexport * from './dtos/update-agent-event.dto'\nexport * from './dtos/update-mcp-audit-log.dto'\nexport * from './dtos/update-scheduled-job.dto'\nexport * from './dtos/update-permission-metadata.dto'\nexport * from './dtos/update-role-metadata.dto'\nexport * from './dtos/update-sms-template.dto'\nexport * from './dtos/update-user.dto'\nexport * from './dtos/update-view-metadata.dto'\nexport * from './dtos/create-setting.dto'\nexport * from './dtos/update-setting.dto'\nexport * from './dtos/create-security-rule.dto'\nexport * from './dtos/update-security-rule.dto'\nexport * from './dtos/update-chatter-message.dto'\nexport * from './dtos/update-chatter-message-details.dto'\nexport * from './dtos/update-locale.dto'\nexport * from './dtos/create-user-activity-history.dto'\nexport * from './dtos/update-user-activity-history.dto'\nexport * from './dtos/dashboard-variable-options-query.dto'\nexport * from './dtos/dashboard-widget-data-request.dto'\nexport * from './dtos/metadata-explorer-references-query.dto'\nexport * from './dtos/metadata-explorer-search-query.dto'\nexport * from './dtos/metadata-explorer-write.dto'\nexport * from './dtos/create-dashboard-user-layout.dto'\nexport * from './dtos/update-dashboard-user-layout.dto'\n\nexport * from './entities/action-metadata.entity'\nexport * from './entities/common.entity'\nexport * from './entities/legacy-common.entity-with-existing-id.entity'\nexport * from './entities/legacy-common-with-generated-id.entity'\nexport * from './entities/email-attachment.entity'\nexport * from './entities/email-template.entity'\nexport * from './entities/field-metadata.entity'\nexport * from './entities/list-of-values.entity'\nexport * from './entities/media.entity'\nexport * from './entities/media-storage-provider-metadata.entity'\nexport * from './entities/menu-item-metadata.entity'\nexport * from './entities/model-metadata.entity'\nexport * from './entities/module-metadata.entity'\nexport * from './entities/mq-message-queue.entity'\nexport * from './entities/mq-message.entity'\nexport * from './entities/agent-session.entity'\nexport * from './entities/agent-event.entity'\nexport * from './entities/mcp-audit-log.entity'\nexport * from './entities/scheduled-job.entity'\nexport * from './entities/permission-metadata.entity'\nexport * from './entities/role-metadata.entity'\nexport * from './entities/sms-template.entity'\nexport * from './entities/user.entity'\nexport * from './entities/user-api-key.entity'\nexport * from './entities/view-metadata.entity'\nexport * from './entities/setting.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/user-view-metadata.entity'\nexport * from './entities/security-rule.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/chatter-message.entity'\nexport * from './entities/chatter-message-details.entity'\nexport * from './entities/export-template.entity'\nexport * from './entities/export-transaction.entity'\nexport * from './entities/import-transaction.entity'\nexport * from './entities/import-transaction-error-log.entity'\nexport * from './entities/locale.entity'\nexport * from './entities/user-activity-history.entity'\nexport * from './entities/model-sequence.entity'\nexport * from './entities/dashboard-user-layout.entity'\nexport * from './entities/user-api-key.entity'\n\nexport * from './enums/auth-type.enum'\nexport * from './enums/legacy-table-type.enum'\nexport * from './decorators/disallow-in-production.decorator'\n\nexport * from './filters/http-exception.filter'\n\nexport * from './guards/access-token.guard'\nexport * from './guards/authentication.guard'\nexport * from './guards/permissions.guard'\nexport * from './guards/roles.guard'\n\nexport * from './helpers/command.service'\nexport * from './helpers/nodemon-heartbeat'\nexport * from './helpers/module.helper'\nexport * from './helpers/schematic.service'\nexport * from './helpers/solid-registry'\nexport * from './helpers/field-crud-managers/BigIntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/BooleanFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ComputedFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DateFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DecimalFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/EmailFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/IntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/JsonFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/LongTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToOneRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/MediaFieldCrudManager' // Need to resolve ambiguity\nexport * from './helpers/field-crud-managers/NoOpsFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/OneToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/PasswordFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/RichTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionDynamicFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionStaticFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ShortTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/UUIDFieldCrudManager' //rename\nexport * from './helpers/bootstrap.helper'\nexport * from './helpers/environment.helper'\nexport * from './helpers/cache.helper'\nexport * from './helpers/cors.helper'\nexport * from './helpers/security.helper'\nexport * from './helpers/model-metadata-helper.service'\nexport * from './helpers/image-encoding.helper'\nexport * from './helpers/solid-microservice-adapter.service'\nexport * from './helpers/typeorm-db-helper';\nexport * from './helpers/typeorm-migration-helpers';\n\nexport * from './services/crud.service'\nexport * from './interceptors/logging.interceptor'\nexport * from './interceptors/wrap-response.interceptor'\n\nexport * from './interfaces/active-user-data.interface'\nexport * from './interfaces/mq'\nexport * from './services/scheduled-jobs/scheduled-job.interface';\nexport * from './services/scheduled-jobs/scheduler.interface';\nexport * from './services/scheduled-jobs/scheduler.service';\n\nexport * from './jobs/rabbitmq/api-email-publisher.service'\nexport * from './jobs/rabbitmq/api-email-queue-options'\nexport * from './jobs/rabbitmq/api-email-subscriber.service'\nexport { SmtpEmailQueuePublisherRabbitmq, SmtpEmailQueuePublisherRabbitmq as EmailQueuePublisher } from './jobs/rabbitmq/smtp-email-publisher.service' // alias for backward compatibility\nexport * from './jobs/rabbitmq/smtp-email-queue-options'\nexport { SmtpEmailQueueSubscriberRabbitmq, SmtpEmailQueueSubscriberRabbitmq as EmailQueueSubscriber } from './jobs/rabbitmq/smtp-email-subscriber.service' // alias for backward compatibility\nexport * from './jobs/rabbitmq/msg91-otp-publisher.service'\nexport * from './jobs/rabbitmq/msg91-otp-queue-options'\nexport * from './jobs/rabbitmq/msg91-otp-subscriber.service'\nexport * from './jobs/rabbitmq/msg91-sms-publisher.service'\nexport * from './jobs/rabbitmq/msg91-sms-queue-options'\nexport * from './jobs/rabbitmq/msg91-sms-subscriber.service'\nexport * from './jobs/rabbitmq/msg91-whatsapp-publisher.service'\nexport * from './jobs/rabbitmq/msg91-whatsapp-queue-options'\nexport * from './jobs/rabbitmq/msg91-whatsapp-subscriber.service'\n\nexport * from './jobs/redis/api-email-publisher-redis.service'\nexport * from './jobs/redis/api-email-queue-options-redis'\nexport * from './jobs/redis/api-email-subscriber-redis.service'\nexport * from './jobs/redis/chatter-queue-publisher-redis.service'\nexport * from './jobs/redis/chatter-queue-options-redis'\nexport * from './jobs/redis/chatter-queue-subscriber-redis.service'\nexport * from './jobs/redis/computed-field-evaluation-publisher-redis.service'\nexport * from './jobs/redis/computed-field-evaluation-queue-options-redis'\nexport * from './jobs/redis/computed-field-evaluation-subscriber-redis.service'\nexport * from './jobs/redis/generate-code-publisher-redis.service'\nexport * from './jobs/redis/generate-code-queue-options-redis'\nexport * from './jobs/redis/generate-code-subscriber-redis.service'\nexport * from './jobs/redis/msg91-otp-publisher-redis.service'\nexport * from './jobs/redis/msg91-otp-queue-options-redis'\nexport * from './jobs/redis/msg91-otp-subscriber-redis.service'\nexport * from './jobs/redis/msg91-sms-publisher-redis.service'\nexport * from './jobs/redis/msg91-sms-queue-options-redis'\nexport * from './jobs/redis/msg91-sms-subscriber-redis.service'\nexport * from './jobs/redis/msg91-whatsapp-publisher-redis.service'\nexport * from './jobs/redis/msg91-whatsapp-queue-options-redis'\nexport * from './jobs/redis/msg91-whatsapp-subscriber-redis.service'\nexport * from './jobs/redis/smtp-email-publisher-redis.service'\nexport * from './jobs/redis/smtp-email-queue-options-redis'\nexport * from './jobs/redis/smtp-email-subscriber-redis.service'\nexport * from './jobs/redis/test-queue-publisher-redis.service'\nexport * from './jobs/redis/test-queue-options-redis'\nexport * from './jobs/redis/test-queue-subscriber-redis.service'\nexport * from './jobs/redis/three60-whatsapp-publisher-redis.service'\nexport * from './jobs/redis/three60-whatsapp-queue-options-redis'\nexport * from './jobs/redis/three60-whatsapp-subscriber-redis.service'\nexport * from './jobs/redis/twilio-sms-publisher-redis.service'\nexport * from './jobs/redis/twilio-sms-queue-options-redis'\nexport * from './jobs/redis/twilio-sms-subscriber-redis.service'\n\nexport * from './listeners/user-registration.listener'\n\nexport * from './passport-strategies/google-oauth.strategy'\nexport * from './passport-strategies/facebook-oauth.strategy'\nexport * from './passport-strategies/microsoft-oauth.strategy'\nexport * from './passport-strategies/microsoft-active-directory-oauth.strategy'\n\nexport * from './services/selection-providers/list-of-values-selection-providers.service'\n\n// seed-data\nexport * from './seeders/permission-metadata-seeder.service'\nexport * from './seeders/module-metadata-seeder.service'\n\n// export * from './services/access-token-storage.service'\nexport * from './services/action-metadata.service'\nexport * from './services/authentication.service'\nexport * from './services/bcrypt.service'\nexport * from './services/computed-fields/uuid-external-id-computed-field-provider.service'\nexport * from './services/crud-helper.service'\nexport * from './services/crud.service'\nexport * from './services/email-template.service'\nexport * from './services/field-metadata.service'\nexport * from './services/file'\nexport * from './services/textract.service'\nexport * from './services/hashing.service'\nexport * from './services/list-of-values.service'\nexport * from './services/mail/elastic-email.service'\nexport * from './services/mail/smtp-email.service'\nexport * from './services/media-storage-provider-metadata.service'\nexport * from './services/media.service'\nexport * from './services/mediaStorageProviders/file-s3-storage-provider'\nexport * from './services/mediaStorageProviders/file-storage-provider'\nexport * from './services/mediaStorageProviders/index'\nexport * from './services/menu-item-metadata.service'\nexport * from './services/model-metadata.service'\nexport * from './services/module-metadata-explorer.service'\nexport * from './services/module-metadata.service'\nexport * from './services/module-package.service'\nexport * from './services/mq-message-queue.service'\nexport * from './services/mq-message.service'\nexport * from './services/agent-session.service'\nexport * from './services/agent-event.service'\nexport * from './services/mcp-audit-log.service'\nexport * from './services/scheduled-job.service'\nexport * from './services/pdf.service'\nexport * from './services/permission-metadata.service'\nexport * from './services/queues/rabbitmq-publisher.service'\nexport * from './services/queues/rabbitmq-subscriber.service'\nexport * from './services/queues/redis-publisher.service'\nexport * from './services/queues/redis-subscriber.service'\nexport * from './services/refresh-token-ids-storage.service'\nexport * from './services/role-metadata.service'\nexport * from './services/selection-providers/list-of-models-selection-provider.service'\nexport * from './services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service'\nexport * from './services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service'\nexport * from './services/short-url/tiny-url.service'\nexport * from './services/sms/Msg91BaseSMSService' //rename\nexport * from './services/sms/Msg91OTPService' //rename\nexport * from './services/sms/Msg91SMSService' //rename\nexport * from './services/sms/TwilioSMSService' //rename\nexport * from './services/poller.service'\nexport * from './services/sms-template.service'\nexport * from './services/solid-introspect.service'\nexport * from './services/user.service'\nexport * from './services/view-metadata.service'\nexport * from './services/whatsapp/Msg91WhatsappService' //rename\nexport * from './services/whatsapp/GupshupOtpWhatsappService'\nexport * from './services/setting.service'\nexport * from './services/encryption.service'\nexport * from './services/info.service'\nexport * from './services/datasource-management.service'\nexport * from './services/datasource-introspection.service'\nexport * from './controllers/info.controller'\nexport * from './controllers/datasource-management.controller'\nexport * from './controllers/datasource-introspection.controller'\nexport * from './controllers/module-metadata-explorer.controller'\nexport * from './controllers/module-package.controller'\nexport * from './services/settings/default-settings-provider.service'\nexport * from './services/security-rule.service'\nexport * from './services/request-context.service'\nexport * from './services/chatter-message.service'\nexport * from './services/chatter-message-details.service'\nexport * from './services/locale.service'\nexport * from './services/user-activity-history.service'\nexport * from './services/import-transaction.service'\nexport * from './services/import-transaction-error-log.service'\nexport * from './services/excel.service'\nexport * from './services/csv.service'\nexport * from './services/dashboard-runtime.service'\nexport * from './services/queues/publisher-factory.service'\nexport * from './services/queues/database-publisher.service'\nexport * from './services/queues/database-subscriber.service'\nexport * from './services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-messages-over-time-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-stage-distribution-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-latency-trend-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-recent-failures-provider.service'\n\n// Factories\nexport * from './factories/mail.factory'\nexport * from './factories/sms.factory'\nexport * from './factories/whatsapp.factory'\n\n// Repositories\nexport * from './repository/solid-base.repository'\nexport * from './repository/security-rule.repository'\nexport * from './repository/chatter-message.repository'\nexport * from './repository/chatter-message-details.repository'\n\n\n//softDeleteAwareEventSubscriber.subscriber.ts\nexport * from './subscribers/model-metadata.subscriber'\nexport * from './subscribers/soft-delete-aware-event.subscriber' //rename\nexport * from './subscribers/view-metadata.subscriber' //rename\nexport * from './subscribers/audit.subscriber'\n\n\n\nexport * from './transformers/array-transformer'\nexport * from './transformers/boolean-transformer'\nexport * from './transformers/integer-transformer'\nexport { default as datetimeTransformer } from './transformers/datetime-transformer'\nexport * from './transformers/typeorm/local-date-time-transformer'\n\nexport * from './validators/is-parsable-int'\n\nexport * from './constants'\nexport * from './interfaces'\nexport * from './solid-core.module'\n\nexport * from './winston.logger'\n\nexport { ERROR_MESSAGES } from './constants/error-messages'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,mEAAgD;AAChD,oEAAiD;AACjD,mEAAgD;AAChD,0DAAuC;AACvC,+DAA4C;AAC5C,+DAA4C;AAC5C,0DAAuC;AAEvC,yDAAsC;AAEtC,qEAAkD;AAClD,+EAA4D;AAC5D,8DAA2C;AAC3C,wFAAqE;AACrE,iFAA8D;AAC9D,gFAA6D;AAC7D,wEAAqD;AACrD,kEAA+C;AAC/C,gEAA6C;AAC7C,+DAA4C;AAC5C,4EAAyD;AACzD,8EAA2D;AAC3D,+EAA4D;AAC5D,uEAAoD;AACpD,uEAAoD;AACpD,uFAAoE;AACpE,sEAAmD;AACnD,2EAAwD;AACxD,0FAAuE;AAEvE,kEAA+C;AAC/C,yEAAsD;AACtD,kEAA+C;AAC/C,2DAAwC;AACxC,mEAAgD;AAChD,6DAA0C;AAC1C,qEAAkD;AAClD,oEAAiD;AACjD,qEAAkD;AAClD,mEAAgD;AAChD,mEAAgD;AAChD,mEAAgD;AAChD,oFAAiE;AACjE,0DAAuC;AACvC,uEAAoD;AACpD,4DAAyC;AACzC,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,+DAA4C;AAC5C,kEAA+C;AAC/C,gEAA6C;AAC7C,kEAA+C;AAC/C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,8DAA2C;AAC3C,iEAA8C;AAC9C,yDAAsC;AACtC,kEAA+C;AAC/C,oEAAiD;AACjD,4EAAyD;AACzD,2DAAwC;AACxC,0EAAuD;AACvD,yDAAsC;AACtC,sEAAmD;AACnD,qEAAkD;AAClD,oEAAiD;AACjD,+DAA4C;AAC5C,wDAAqC;AACrC,6DAA0C;AAC1C,yDAAsC;AACtC,yDAAsC;AACtC,8DAA2C;AAC3C,mDAAgC;AAChC,2DAAwC;AACxC,8DAA2C;AAC3C,qEAAkD;AAClD,qDAAkC;AAClC,qDAAkC;AAClC,yDAAsC;AACtC,oEAAiD;AACjD,mEAAgD;AAChD,mEAAgD;AAChD,2EAAwD;AACxD,0DAAuC;AACvC,uEAAoD;AACpD,4DAAyC;AACzC,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,+DAA4C;AAC5C,kEAA+C;AAC/C,gEAA6C;AAC7C,kEAA+C;AAC/C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,iEAA8C;AAC9C,yDAAsC;AACtC,kEAA+C;AAC/C,4DAAyC;AACzC,4DAAyC;AACzC,kEAA+C;AAC/C,kEAA+C;AAC/C,oEAAiD;AACjD,4EAAyD;AACzD,2DAAwC;AACxC,0EAAuD;AACvD,0EAAuD;AACvD,8EAA2D;AAC3D,2EAAwD;AACxD,gFAA6D;AAC7D,4EAAyD;AACzD,qEAAkD;AAClD,0EAAuD;AACvD,0EAAuD;AAEvD,oEAAiD;AACjD,2DAAwC;AACxC,0FAAuE;AACvE,oFAAiE;AACjE,qEAAkD;AAClD,mEAAgD;AAChD,mEAAgD;AAChD,mEAAgD;AAChD,0DAAuC;AACvC,oFAAiE;AACjE,uEAAoD;AACpD,mEAAgD;AAChD,oEAAiD;AACjD,qEAAkD;AAClD,+DAA4C;AAC5C,kEAA+C;AAC/C,gEAA6C;AAC7C,kEAA+C;AAC/C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,iEAA8C;AAC9C,yDAAsC;AACtC,iEAA8C;AAC9C,kEAA+C;AAC/C,4DAAyC;AACzC,kEAA+C;AAC/C,uEAAoD;AACpD,kEAA+C;AAC/C,kEAA+C;AAC/C,oEAAiD;AACjD,4EAAyD;AACzD,oEAAiD;AACjD,uEAAoD;AACpD,uEAAoD;AACpD,iFAA8D;AAC9D,2DAAwC;AACxC,0EAAuD;AACvD,mEAAgD;AAChD,0EAAuD;AACvD,iEAA8C;AAE9C,yDAAsC;AACtC,iEAA8C;AAC9C,gFAA6D;AAE7D,kEAA+C;AAE/C,8DAA2C;AAC3C,gEAA6C;AAC7C,6DAA0C;AAC1C,uDAAoC;AAEpC,4DAAyC;AACzC,0DAAuC;AACvC,8DAA2C;AAC3C,2DAAwC;AACxC,uFAAoE;AACpE,wFAAqE;AACrE,yFAAsE;AACtE,qFAAkE;AAClE,wFAAqE;AACrE,sFAAmE;AACnE,oFAAiE;AACjE,qFAAkE;AAClE,yFAAsE;AACtE,mGAAgF;AAChF,kGAA+E;AAC/E,sFAAmE;AACnE,sFAAmE;AACnE,kGAA+E;AAC/E,yFAAsE;AACtE,yFAAsE;AACtE,iGAA8E;AAC9E,gGAA6E;AAC7E,0FAAuE;AACvE,qFAAkE;AAClE,6DAA0C;AAC1C,+DAA4C;AAC5C,yDAAsC;AACtC,wDAAqC;AACrC,4DAAyC;AACzC,0EAAuD;AACvD,kEAA+C;AAC/C,+EAA4D;AAC5D,8DAA4C;AAC5C,sEAAoD;AAEpD,0DAAuC;AACvC,qEAAkD;AAClD,2EAAwD;AAExD,0EAAuD;AACvD,kDAA+B;AAC/B,oFAAkE;AAClE,gFAA8D;AAC9D,8EAA4D;AAE5D,8EAA2D;AAC3D,0EAAuD;AACvD,+EAA4D;AAC5D,6FAAsJ;AAA7I,+IAAA,+BAA+B,OAAA;AAAE,mIAAA,+BAA+B,OAAuB;AAChG,2EAAwD;AACxD,+FAA0J;AAAjJ,iJAAA,gCAAgC,OAAA;AAAE,qIAAA,gCAAgC,OAAwB;AACnG,8EAA2D;AAC3D,0EAAuD;AACvD,+EAA4D;AAC5D,8EAA2D;AAC3D,0EAAuD;AACvD,+EAA4D;AAC5D,mFAAgE;AAChE,+EAA4D;AAC5D,oFAAiE;AAEjE,iFAA8D;AAC9D,6EAA0D;AAC1D,kFAA+D;AAC/D,qFAAkE;AAClE,2EAAwD;AACxD,sFAAmE;AACnE,iGAA8E;AAC9E,6FAA0E;AAC1E,kGAA+E;AAC/E,qFAAkE;AAClE,iFAA8D;AAC9D,sFAAmE;AACnE,iFAA8D;AAC9D,6EAA0D;AAC1D,kFAA+D;AAC/D,iFAA8D;AAC9D,6EAA0D;AAC1D,kFAA+D;AAC/D,sFAAmE;AACnE,kFAA+D;AAC/D,uFAAoE;AACpE,kFAA+D;AAC/D,8EAA2D;AAC3D,mFAAgE;AAChE,kFAA+D;AAC/D,wEAAqD;AACrD,mFAAgE;AAChE,wFAAqE;AACrE,oFAAiE;AACjE,yFAAsE;AACtE,kFAA+D;AAC/D,8EAA2D;AAC3D,mFAAgE;AAEhE,yEAAsD;AAEtD,8EAA2D;AAC3D,gFAA6D;AAC7D,iFAA8D;AAC9D,kGAA+E;AAE/E,4GAAyF;AAGzF,+EAA4D;AAC5D,2EAAwD;AAGxD,qEAAkD;AAClD,oEAAiD;AACjD,4DAAyC;AACzC,8GAA2F;AAC3F,iEAA8C;AAC9C,0DAAuC;AACvC,oEAAiD;AACjD,oEAAiD;AACjD,kDAA+B;AAC/B,8DAA2C;AAC3C,6DAA0C;AAC1C,oEAAiD;AACjD,wEAAqD;AACrD,qEAAkD;AAClD,qFAAkE;AAClE,2DAAwC;AACxC,4FAAyE;AACzE,yFAAsE;AACtE,yEAAsD;AACtD,wEAAqD;AACrD,oEAAiD;AACjD,8EAA2D;AAC3D,qEAAkD;AAClD,oEAAiD;AACjD,sEAAmD;AACnD,gEAA6C;AAC7C,mEAAgD;AAChD,iEAA8C;AAC9C,mEAAgD;AAChD,mEAAgD;AAChD,yDAAsC;AACtC,yEAAsD;AACtD,+EAA4D;AAC5D,gFAA6D;AAC7D,4EAAyD;AACzD,6EAA0D;AAC1D,+EAA4D;AAC5D,mEAAgD;AAChD,2GAAwF;AACxF,+HAA4G;AAC5G,2HAAwG;AACxG,wEAAqD;AACrD,qEAAkD;AAClD,iEAA8C;AAC9C,iEAA8C;AAC9C,kEAA+C;AAC/C,4DAAyC;AACzC,kEAA+C;AAC/C,sEAAmD;AACnD,0DAAuC;AACvC,mEAAgD;AAChD,2EAAwD;AACxD,gFAA6D;AAC7D,6DAA0C;AAC1C,gEAA6C;AAC7C,0DAAuC;AACvC,2EAAwD;AACxD,8EAA2D;AAC3D,gEAA6C;AAC7C,iFAA8D;AAC9D,oFAAiE;AACjE,oFAAiE;AACjE,0EAAuD;AACvD,wFAAqE;AACrE,mEAAgD;AAChD,qEAAkD;AAClD,qEAAkD;AAClD,6EAA0D;AAC1D,4DAAyC;AACzC,2EAAwD;AACxD,wEAAqD;AACrD,kFAA+D;AAC/D,2DAAwC;AACxC,yDAAsC;AACtC,uEAAoD;AACpD,8EAA2D;AAC3D,+EAA4D;AAC5D,gFAA6D;AAC7D,kHAA+F;AAC/F,sHAAmG;AACnG,mHAAgG;AAChG,qHAAkG;AAClG,gHAA6F;AAC7F,+GAA4F;AAC5F,kHAA+F;AAC/F,kHAA+F;AAC/F,mHAAgG;AAChG,sHAAmG;AACnG,6GAA0F;AAC1F,+GAA4F;AAG5F,2DAAwC;AACxC,0DAAuC;AACvC,+DAA4C;AAG5C,qEAAkD;AAClD,wEAAqD;AACrD,0EAAuD;AACvD,kFAA+D;AAI/D,0EAAuD;AACvD,mFAAgE;AAChE,yEAAsD;AACtD,iEAA8C;AAI9C,mEAAgD;AAChD,qEAAkD;AAClD,qEAAkD;AAClD,4EAAoF;AAA3E,4IAAA,OAAO,OAAuB;AACvC,qFAAkE;AAElE,+DAA4C;AAE5C,8CAA2B;AAC3B,+CAA4B;AAC5B,sDAAmC;AAEnC,mDAAgC;AAEhC,6DAA2D;AAAlD,gHAAA,cAAc,OAAA","sourcesContent":["export * from './commands/helper'\nexport * from './commands/refresh-model.command'\nexport * from './commands/refresh-module.command'\nexport * from './commands/remove-fields.command'\nexport * from './commands/seed.command'\nexport * from './commands/test-data.command'\nexport * from './commands/run-tests.command'\nexport * from './commands/test.command'\n\nexport * from './config/cache.options'\n\nexport * from './decorators/active-user.decorator'\nexport * from './decorators/solid-request-context.decorator'\nexport * from './decorators/auth.decorator'\nexport * from './decorators/dashboard-widget-data-provider.decorator'\nexport * from './decorators/computed-field-provider.decorator'\nexport * from './decorators/scheduled-job-provider.decorator'\nexport * from './decorators/is-not-in-enum.decorator'\nexport * from './decorators/protocol.decorator'\nexport * from './decorators/public.decorator'\nexport * from './decorators/roles.decorator'\nexport * from './decorators/selection-provider.decorator'\nexport * from './decorators/error-codes-provider.decorator'\nexport * from './decorators/solid-database-module.decorator'\nexport * from './decorators/solid-service.decorator'\nexport * from './decorators/mail-provider.decorator'\nexport * from './decorators/security-rule-config-provider.decorator'\nexport * from './decorators/sms-provider.decorator'\nexport * from './decorators/settings-provider.decorator'\nexport * from './decorators/extension-user-creation-provider.decorator'\n\nexport * from './dtos/post-chatter-message.dto'\nexport * from './dtos/update-chatter-note-message.dto'\nexport * from './dtos/security-rule-config.dto'\nexport * from './dtos/basic-filters.dto'\nexport * from './dtos/solid-request-context.dto'\nexport * from './dtos/change-password.dto'\nexport * from './dtos/confirm-forgot-password.dto'\nexport * from './dtos/create-action-metadata.dto'\nexport * from './dtos/create-email-attachment.dto'\nexport * from './dtos/create-email-template.dto'\nexport * from './dtos/create-field-metadata.dto'\nexport * from './dtos/create-list-of-values.dto'\nexport * from './dtos/create-media-storage-provider-metadata.dto'\nexport * from './dtos/create-media.dto'\nexport * from './dtos/create-menu-item-metadata.dto'\nexport * from './dtos/create-message.dto'\nexport * from './dtos/create-model-metadata.dto'\nexport * from './dtos/create-module-metadata.dto'\nexport * from './dtos/create-mq-message-queue.dto'\nexport * from './dtos/create-mq-message.dto'\nexport * from './dtos/create-agent-session.dto'\nexport * from './dtos/create-agent-event.dto'\nexport * from './dtos/create-mcp-audit-log.dto'\nexport * from './dtos/create-scheduled-job.dto'\nexport * from './dtos/create-permission-metadata.dto'\nexport * from './dtos/create-role-metadata.dto'\nexport * from './dtos/create-short-url.dto'\nexport * from './dtos/create-sms-template.dto'\nexport * from './dtos/create-user.dto'\nexport * from './dtos/create-view-metadata.dto'\nexport * from './dtos/create-chatter-message.dto'\nexport * from './dtos/create-chatter-message-details.dto'\nexport * from './dtos/create-locale.dto'\nexport * from './dtos/create-datasource-management.dto'\nexport * from './dtos/fetch-roles.dto'\nexport * from './dtos/initiate-forgot-password.dto'\nexport * from './dtos/mutate-role-permissions.dto'\nexport * from './dtos/mutate-user-roles-list.dto'\nexport * from './dtos/mutate-user-roles.dto'\nexport * from './dtos/oauth-user-dto'\nexport * from './dtos/otp-confirm-otp.dto'\nexport * from './dtos/otp-sign-in.dto'\nexport * from './dtos/otp-sign-up.dto'\nexport * from './dtos/pagination-query.dto'\nexport * from './dtos/query.dto'\nexport * from './dtos/refresh-token.dto'\nexport * from './dtos/register-private.dto'\nexport * from './dtos/selection-dynamic-query.dto'\nexport * from './dtos/sign-in.dto'\nexport * from './dtos/sign-up.dto'\nexport * from './dtos/sort-filter.dto'\nexport * from './dtos/update-action-metadata.dto'\nexport * from './dtos/update-email-template.dto'\nexport * from './dtos/update-field-metadata.dto'\nexport * from './dtos/update-media-storage-provider.dto'\nexport * from './dtos/update-media.dto'\nexport * from './dtos/update-menu-item-metadata.dto'\nexport * from './dtos/update-message.dto'\nexport * from './dtos/update-model-metadata.dto'\nexport * from './dtos/update-module-metadata.dto'\nexport * from './dtos/update-mq-message-queue.dto'\nexport * from './dtos/update-mq-message.dto'\nexport * from './dtos/update-agent-session.dto'\nexport * from './dtos/update-agent-event.dto'\nexport * from './dtos/update-mcp-audit-log.dto'\nexport * from './dtos/update-scheduled-job.dto'\nexport * from './dtos/update-permission-metadata.dto'\nexport * from './dtos/update-role-metadata.dto'\nexport * from './dtos/update-sms-template.dto'\nexport * from './dtos/update-user.dto'\nexport * from './dtos/update-view-metadata.dto'\nexport * from './dtos/create-setting.dto'\nexport * from './dtos/update-setting.dto'\nexport * from './dtos/create-security-rule.dto'\nexport * from './dtos/update-security-rule.dto'\nexport * from './dtos/update-chatter-message.dto'\nexport * from './dtos/update-chatter-message-details.dto'\nexport * from './dtos/update-locale.dto'\nexport * from './dtos/create-user-activity-history.dto'\nexport * from './dtos/update-user-activity-history.dto'\nexport * from './dtos/dashboard-variable-options-query.dto'\nexport * from './dtos/dashboard-widget-data-request.dto'\nexport * from './dtos/metadata-explorer-references-query.dto'\nexport * from './dtos/metadata-explorer-search-query.dto'\nexport * from './dtos/metadata-explorer-write.dto'\nexport * from './dtos/create-dashboard-user-layout.dto'\nexport * from './dtos/update-dashboard-user-layout.dto'\n\nexport * from './entities/action-metadata.entity'\nexport * from './entities/common.entity'\nexport * from './entities/legacy-common.entity-with-existing-id.entity'\nexport * from './entities/legacy-common-with-generated-id.entity'\nexport * from './entities/email-attachment.entity'\nexport * from './entities/email-template.entity'\nexport * from './entities/field-metadata.entity'\nexport * from './entities/list-of-values.entity'\nexport * from './entities/media.entity'\nexport * from './entities/media-storage-provider-metadata.entity'\nexport * from './entities/menu-item-metadata.entity'\nexport * from './entities/model-metadata.entity'\nexport * from './entities/module-metadata.entity'\nexport * from './entities/mq-message-queue.entity'\nexport * from './entities/mq-message.entity'\nexport * from './entities/agent-session.entity'\nexport * from './entities/agent-event.entity'\nexport * from './entities/mcp-audit-log.entity'\nexport * from './entities/scheduled-job.entity'\nexport * from './entities/permission-metadata.entity'\nexport * from './entities/role-metadata.entity'\nexport * from './entities/sms-template.entity'\nexport * from './entities/user.entity'\nexport * from './entities/user-api-key.entity'\nexport * from './entities/view-metadata.entity'\nexport * from './entities/setting.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/user-view-metadata.entity'\nexport * from './entities/security-rule.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/chatter-message.entity'\nexport * from './entities/chatter-message-details.entity'\nexport * from './entities/export-template.entity'\nexport * from './entities/export-transaction.entity'\nexport * from './entities/import-transaction.entity'\nexport * from './entities/import-transaction-error-log.entity'\nexport * from './entities/locale.entity'\nexport * from './entities/user-activity-history.entity'\nexport * from './entities/model-sequence.entity'\nexport * from './entities/dashboard-user-layout.entity'\nexport * from './entities/user-api-key.entity'\n\nexport * from './enums/auth-type.enum'\nexport * from './enums/legacy-table-type.enum'\nexport * from './decorators/disallow-in-production.decorator'\n\nexport * from './filters/http-exception.filter'\n\nexport * from './guards/access-token.guard'\nexport * from './guards/authentication.guard'\nexport * from './guards/permissions.guard'\nexport * from './guards/roles.guard'\n\nexport * from './helpers/command.service'\nexport * from './helpers/module.helper'\nexport * from './helpers/schematic.service'\nexport * from './helpers/solid-registry'\nexport * from './helpers/field-crud-managers/BigIntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/BooleanFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ComputedFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DateFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DecimalFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/EmailFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/IntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/JsonFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/LongTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToOneRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/MediaFieldCrudManager' // Need to resolve ambiguity\nexport * from './helpers/field-crud-managers/NoOpsFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/OneToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/PasswordFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/RichTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionDynamicFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionStaticFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ShortTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/UUIDFieldCrudManager' //rename\nexport * from './helpers/bootstrap.helper'\nexport * from './helpers/environment.helper'\nexport * from './helpers/cache.helper'\nexport * from './helpers/cors.helper'\nexport * from './helpers/security.helper'\nexport * from './helpers/model-metadata-helper.service'\nexport * from './helpers/image-encoding.helper'\nexport * from './helpers/solid-microservice-adapter.service'\nexport * from './helpers/typeorm-db-helper';\nexport * from './helpers/typeorm-migration-helpers';\n\nexport * from './services/crud.service'\nexport * from './interceptors/logging.interceptor'\nexport * from './interceptors/wrap-response.interceptor'\n\nexport * from './interfaces/active-user-data.interface'\nexport * from './interfaces/mq'\nexport * from './services/scheduled-jobs/scheduled-job.interface';\nexport * from './services/scheduled-jobs/scheduler.interface';\nexport * from './services/scheduled-jobs/scheduler.service';\n\nexport * from './jobs/rabbitmq/api-email-publisher.service'\nexport * from './jobs/rabbitmq/api-email-queue-options'\nexport * from './jobs/rabbitmq/api-email-subscriber.service'\nexport { SmtpEmailQueuePublisherRabbitmq, SmtpEmailQueuePublisherRabbitmq as EmailQueuePublisher } from './jobs/rabbitmq/smtp-email-publisher.service' // alias for backward compatibility\nexport * from './jobs/rabbitmq/smtp-email-queue-options'\nexport { SmtpEmailQueueSubscriberRabbitmq, SmtpEmailQueueSubscriberRabbitmq as EmailQueueSubscriber } from './jobs/rabbitmq/smtp-email-subscriber.service' // alias for backward compatibility\nexport * from './jobs/rabbitmq/msg91-otp-publisher.service'\nexport * from './jobs/rabbitmq/msg91-otp-queue-options'\nexport * from './jobs/rabbitmq/msg91-otp-subscriber.service'\nexport * from './jobs/rabbitmq/msg91-sms-publisher.service'\nexport * from './jobs/rabbitmq/msg91-sms-queue-options'\nexport * from './jobs/rabbitmq/msg91-sms-subscriber.service'\nexport * from './jobs/rabbitmq/msg91-whatsapp-publisher.service'\nexport * from './jobs/rabbitmq/msg91-whatsapp-queue-options'\nexport * from './jobs/rabbitmq/msg91-whatsapp-subscriber.service'\n\nexport * from './jobs/redis/api-email-publisher-redis.service'\nexport * from './jobs/redis/api-email-queue-options-redis'\nexport * from './jobs/redis/api-email-subscriber-redis.service'\nexport * from './jobs/redis/chatter-queue-publisher-redis.service'\nexport * from './jobs/redis/chatter-queue-options-redis'\nexport * from './jobs/redis/chatter-queue-subscriber-redis.service'\nexport * from './jobs/redis/computed-field-evaluation-publisher-redis.service'\nexport * from './jobs/redis/computed-field-evaluation-queue-options-redis'\nexport * from './jobs/redis/computed-field-evaluation-subscriber-redis.service'\nexport * from './jobs/redis/generate-code-publisher-redis.service'\nexport * from './jobs/redis/generate-code-queue-options-redis'\nexport * from './jobs/redis/generate-code-subscriber-redis.service'\nexport * from './jobs/redis/msg91-otp-publisher-redis.service'\nexport * from './jobs/redis/msg91-otp-queue-options-redis'\nexport * from './jobs/redis/msg91-otp-subscriber-redis.service'\nexport * from './jobs/redis/msg91-sms-publisher-redis.service'\nexport * from './jobs/redis/msg91-sms-queue-options-redis'\nexport * from './jobs/redis/msg91-sms-subscriber-redis.service'\nexport * from './jobs/redis/msg91-whatsapp-publisher-redis.service'\nexport * from './jobs/redis/msg91-whatsapp-queue-options-redis'\nexport * from './jobs/redis/msg91-whatsapp-subscriber-redis.service'\nexport * from './jobs/redis/smtp-email-publisher-redis.service'\nexport * from './jobs/redis/smtp-email-queue-options-redis'\nexport * from './jobs/redis/smtp-email-subscriber-redis.service'\nexport * from './jobs/redis/test-queue-publisher-redis.service'\nexport * from './jobs/redis/test-queue-options-redis'\nexport * from './jobs/redis/test-queue-subscriber-redis.service'\nexport * from './jobs/redis/three60-whatsapp-publisher-redis.service'\nexport * from './jobs/redis/three60-whatsapp-queue-options-redis'\nexport * from './jobs/redis/three60-whatsapp-subscriber-redis.service'\nexport * from './jobs/redis/twilio-sms-publisher-redis.service'\nexport * from './jobs/redis/twilio-sms-queue-options-redis'\nexport * from './jobs/redis/twilio-sms-subscriber-redis.service'\n\nexport * from './listeners/user-registration.listener'\n\nexport * from './passport-strategies/google-oauth.strategy'\nexport * from './passport-strategies/facebook-oauth.strategy'\nexport * from './passport-strategies/microsoft-oauth.strategy'\nexport * from './passport-strategies/microsoft-active-directory-oauth.strategy'\n\nexport * from './services/selection-providers/list-of-values-selection-providers.service'\n\n// seed-data\nexport * from './seeders/permission-metadata-seeder.service'\nexport * from './seeders/module-metadata-seeder.service'\n\n// export * from './services/access-token-storage.service'\nexport * from './services/action-metadata.service'\nexport * from './services/authentication.service'\nexport * from './services/bcrypt.service'\nexport * from './services/computed-fields/uuid-external-id-computed-field-provider.service'\nexport * from './services/crud-helper.service'\nexport * from './services/crud.service'\nexport * from './services/email-template.service'\nexport * from './services/field-metadata.service'\nexport * from './services/file'\nexport * from './services/textract.service'\nexport * from './services/hashing.service'\nexport * from './services/list-of-values.service'\nexport * from './services/mail/elastic-email.service'\nexport * from './services/mail/smtp-email.service'\nexport * from './services/media-storage-provider-metadata.service'\nexport * from './services/media.service'\nexport * from './services/mediaStorageProviders/file-s3-storage-provider'\nexport * from './services/mediaStorageProviders/file-storage-provider'\nexport * from './services/mediaStorageProviders/index'\nexport * from './services/menu-item-metadata.service'\nexport * from './services/model-metadata.service'\nexport * from './services/module-metadata-explorer.service'\nexport * from './services/module-metadata.service'\nexport * from './services/module-package.service'\nexport * from './services/mq-message-queue.service'\nexport * from './services/mq-message.service'\nexport * from './services/agent-session.service'\nexport * from './services/agent-event.service'\nexport * from './services/mcp-audit-log.service'\nexport * from './services/scheduled-job.service'\nexport * from './services/pdf.service'\nexport * from './services/permission-metadata.service'\nexport * from './services/queues/rabbitmq-publisher.service'\nexport * from './services/queues/rabbitmq-subscriber.service'\nexport * from './services/queues/redis-publisher.service'\nexport * from './services/queues/redis-subscriber.service'\nexport * from './services/refresh-token-ids-storage.service'\nexport * from './services/role-metadata.service'\nexport * from './services/selection-providers/list-of-models-selection-provider.service'\nexport * from './services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service'\nexport * from './services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service'\nexport * from './services/short-url/tiny-url.service'\nexport * from './services/sms/Msg91BaseSMSService' //rename\nexport * from './services/sms/Msg91OTPService' //rename\nexport * from './services/sms/Msg91SMSService' //rename\nexport * from './services/sms/TwilioSMSService' //rename\nexport * from './services/poller.service'\nexport * from './services/sms-template.service'\nexport * from './services/solid-introspect.service'\nexport * from './services/user.service'\nexport * from './services/view-metadata.service'\nexport * from './services/whatsapp/Msg91WhatsappService' //rename\nexport * from './services/whatsapp/GupshupOtpWhatsappService'\nexport * from './services/setting.service'\nexport * from './services/encryption.service'\nexport * from './services/info.service'\nexport * from './services/datasource-management.service'\nexport * from './services/datasource-introspection.service'\nexport * from './controllers/info.controller'\nexport * from './controllers/datasource-management.controller'\nexport * from './controllers/datasource-introspection.controller'\nexport * from './controllers/module-metadata-explorer.controller'\nexport * from './controllers/module-package.controller'\nexport * from './services/settings/default-settings-provider.service'\nexport * from './services/security-rule.service'\nexport * from './services/request-context.service'\nexport * from './services/chatter-message.service'\nexport * from './services/chatter-message-details.service'\nexport * from './services/locale.service'\nexport * from './services/user-activity-history.service'\nexport * from './services/import-transaction.service'\nexport * from './services/import-transaction-error-log.service'\nexport * from './services/excel.service'\nexport * from './services/csv.service'\nexport * from './services/dashboard-runtime.service'\nexport * from './services/queues/publisher-factory.service'\nexport * from './services/queues/database-publisher.service'\nexport * from './services/queues/database-subscriber.service'\nexport * from './services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-messages-over-time-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-stage-distribution-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-latency-trend-provider.service'\nexport * from './services/dashboard-providers/mq-dashboard-recent-failures-provider.service'\n\n// Factories\nexport * from './factories/mail.factory'\nexport * from './factories/sms.factory'\nexport * from './factories/whatsapp.factory'\n\n// Repositories\nexport * from './repository/solid-base.repository'\nexport * from './repository/security-rule.repository'\nexport * from './repository/chatter-message.repository'\nexport * from './repository/chatter-message-details.repository'\n\n\n//softDeleteAwareEventSubscriber.subscriber.ts\nexport * from './subscribers/model-metadata.subscriber'\nexport * from './subscribers/soft-delete-aware-event.subscriber' //rename\nexport * from './subscribers/view-metadata.subscriber' //rename\nexport * from './subscribers/audit.subscriber'\n\n\n\nexport * from './transformers/array-transformer'\nexport * from './transformers/boolean-transformer'\nexport * from './transformers/integer-transformer'\nexport { default as datetimeTransformer } from './transformers/datetime-transformer'\nexport * from './transformers/typeorm/local-date-time-transformer'\n\nexport * from './validators/is-parsable-int'\n\nexport * from './constants'\nexport * from './interfaces'\nexport * from './solid-core.module'\n\nexport * from './winston.logger'\n\nexport { ERROR_MESSAGES } from './constants/error-messages'\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CreateScheduledJobDto } from "../dtos/create-scheduled-job.dto";
|
|
2
2
|
import { ScheduledJob } from "../entities/scheduled-job.entity";
|
|
3
3
|
import { RequestContextService } from "../services/request-context.service";
|
|
4
|
-
import { DataSource
|
|
4
|
+
import { DataSource } from "typeorm";
|
|
5
5
|
import { SecurityRuleRepository } from "./security-rule.repository";
|
|
6
6
|
import { SolidBaseRepository } from "./solid-base.repository";
|
|
7
7
|
export declare class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
|
|
@@ -12,7 +12,7 @@ export declare class ScheduledJobRepository extends SolidBaseRepository<Schedule
|
|
|
12
12
|
private normalizeComparableValue;
|
|
13
13
|
private areValuesDifferent;
|
|
14
14
|
private hasChanges;
|
|
15
|
-
toDto(scheduledJob: ScheduledJob
|
|
15
|
+
toDto(scheduledJob: ScheduledJob): Promise<CreateScheduledJobDto>;
|
|
16
16
|
upsertWithDto(dto: CreateScheduledJobDto): Promise<ScheduledJob>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=scheduled-job.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-job.repository.d.ts","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"scheduled-job.repository.d.ts","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAmB9D,qBACa,sBAAuB,SAAQ,mBAAmB,CAAC,YAAY,CAAC;IAErE,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB;gBAF9C,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB;IAK7D,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,UAAU;IAkBZ,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqCjE,aAAa,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;CAoCvE"}
|
|
@@ -77,20 +77,17 @@ let ScheduledJobRepository = class ScheduledJobRepository extends solid_base_rep
|
|
|
77
77
|
|| this.areValuesDifferent(existing.cronExpression, dto.cronExpression)
|
|
78
78
|
|| existing.module?.id !== moduleEntity.id;
|
|
79
79
|
}
|
|
80
|
-
async toDto(scheduledJob
|
|
80
|
+
async toDto(scheduledJob) {
|
|
81
81
|
let populatedScheduledJob = scheduledJob;
|
|
82
82
|
if (!scheduledJob.module) {
|
|
83
|
-
|
|
84
|
-
? manager.getRepository(scheduled_job_entity_1.ScheduledJob)
|
|
85
|
-
: this;
|
|
86
|
-
populatedScheduledJob = await repo.findOne({
|
|
83
|
+
populatedScheduledJob = await this.findOne({
|
|
87
84
|
where: {
|
|
88
85
|
id: scheduledJob.id,
|
|
89
86
|
},
|
|
90
87
|
relations: {
|
|
91
88
|
module: true,
|
|
92
89
|
},
|
|
93
|
-
})
|
|
90
|
+
});
|
|
94
91
|
}
|
|
95
92
|
if (!populatedScheduledJob.module) {
|
|
96
93
|
throw new Error(`Module not found for scheduled job ID ${populatedScheduledJob.id}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-job.repository.js","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { CreateScheduledJobDto } from \"src/dtos/create-scheduled-job.dto\";\nimport { ModuleMetadata } from \"src/entities/module-metadata.entity\";\nimport { ScheduledJob } from \"src/entities/scheduled-job.entity\";\nimport { RequestContextService } from \"src/services/request-context.service\";\nimport { DataSource, EntityManager } from \"typeorm\";\nimport { SecurityRuleRepository } from \"./security-rule.repository\";\nimport { SolidBaseRepository } from \"./solid-base.repository\";\n\n// This should match whatever DTO structure you’re using in your seeding logic\n// export type CreateScheduledJobDto = {\n// scheduleName: string;\n// isActive?: boolean;\n// frequency: string;\n// startTime?: Date;\n// endTime?: Date;\n// startDate?: Date;\n// endDate?: Date;\n// dayOfMonth?: number;\n// lastRunAt?: Date;\n// nextRunAt?: Date;\n// dayOfWeek?: string;\n// job: string;\n// moduleUserKey: string;\n// };\n\n@Injectable()\nexport class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n ) {\n super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);\n }\n\n private normalizeComparableValue(value: any): any {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"string\") {\n const trimmedValue = value.trim();\n if (\n (trimmedValue.startsWith(\"{\") && trimmedValue.endsWith(\"}\")) ||\n (trimmedValue.startsWith(\"[\") && trimmedValue.endsWith(\"]\"))\n ) {\n try {\n return this.normalizeComparableValue(JSON.parse(trimmedValue));\n } catch {\n return value;\n }\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => this.normalizeComparableValue(item));\n }\n\n if (value && typeof value === \"object\") {\n return Object.keys(value)\n .sort()\n .reduce((result, key) => {\n result[key] = this.normalizeComparableValue(value[key]);\n return result;\n }, {} as Record<string, any>);\n }\n\n return value;\n }\n\n private areValuesDifferent(currentValue: any, nextValue: any): boolean {\n const normalizedCurrentValue = this.normalizeComparableValue(currentValue);\n const normalizedNextValue = this.normalizeComparableValue(nextValue);\n\n if (\n (normalizedCurrentValue && typeof normalizedCurrentValue === \"object\") ||\n (normalizedNextValue && typeof normalizedNextValue === \"object\")\n ) {\n return JSON.stringify(normalizedCurrentValue ?? null) !== JSON.stringify(normalizedNextValue ?? null);\n }\n\n return normalizedCurrentValue !== normalizedNextValue;\n }\n\n private hasChanges(existing: ScheduledJob, dto: CreateScheduledJobDto, moduleEntity: ModuleMetadata): boolean {\n return existing.scheduleName !== dto.scheduleName\n || existing.isActive !== dto.isActive\n || this.areValuesDifferent(existing.frequency, dto.frequency)\n || this.areValuesDifferent(existing.startTime, dto.startTime)\n || this.areValuesDifferent(existing.endTime, dto.endTime)\n || this.areValuesDifferent(existing.startDate, dto.startDate)\n || this.areValuesDifferent(existing.endDate, dto.endDate)\n || this.areValuesDifferent(existing.dayOfMonth, dto.dayOfMonth)\n || this.areValuesDifferent(existing.dayOfWeek, dto.dayOfWeek)\n || this.areValuesDifferent(existing.job, dto.job)\n || this.areValuesDifferent(existing.cronExpression, dto.cronExpression)\n || existing.module?.id !== moduleEntity.id;\n }\n\n /**\n * Converts an entity to a plain DTO object.\n * When manager is provided (e.g. from a TypeORM subscriber event), the\n * fallback relation load uses it so the query runs on the active\n * transaction's connection instead of the default DataSource pool.\n */\n async toDto(scheduledJob: ScheduledJob, manager?: EntityManager): Promise<CreateScheduledJobDto> {\n let populatedScheduledJob: ScheduledJob = scheduledJob;\n // If the scheduled job does not have the module relation loaded, load it\n if (!scheduledJob.module) {\n const repo = manager\n ? manager.getRepository(ScheduledJob)\n : this;\n populatedScheduledJob = await repo.findOne({\n where: {\n id: scheduledJob.id,\n },\n relations: {\n module: true,\n },\n }) ?? scheduledJob;\n }\n\n if (!populatedScheduledJob.module) {\n throw new Error(`Module not found for scheduled job ID ${populatedScheduledJob.id}`);\n }\n\n return {\n scheduleName: populatedScheduledJob.scheduleName,\n isActive: populatedScheduledJob.isActive,\n frequency: populatedScheduledJob.frequency,\n startTime: populatedScheduledJob.startTime,\n endTime: populatedScheduledJob.endTime,\n startDate: populatedScheduledJob.startDate,\n endDate: populatedScheduledJob.endDate,\n dayOfMonth: populatedScheduledJob.dayOfMonth,\n lastRunAt: populatedScheduledJob.lastRunAt,\n nextRunAt: populatedScheduledJob.nextRunAt,\n dayOfWeek: populatedScheduledJob.dayOfWeek,\n job: populatedScheduledJob.job,\n moduleUserKey: populatedScheduledJob.module.name,\n moduleId: populatedScheduledJob.module.id,\n cronExpression: populatedScheduledJob.cronExpression,\n };\n }\n\n async upsertWithDto(dto: CreateScheduledJobDto): Promise<ScheduledJob> {\n const moduleRepo = this.dataSource.getRepository(ModuleMetadata);\n\n const moduleEntity = await moduleRepo.findOne({\n where: { name: dto.moduleUserKey },\n });\n\n if (!moduleEntity) {\n throw new Error(`Module with userKey ${dto.moduleUserKey} not found`);\n }\n\n const jobData = {\n ...dto,\n module: moduleEntity,\n };\n const existing = await this.findOne({\n where: { scheduleName: dto.scheduleName },\n relations: {\n module: true,\n },\n });\n\n if (existing) {\n if (!this.hasChanges(existing, dto, moduleEntity)) {\n this.logger.debug(`Skipping scheduled job upsert for ${dto.scheduleName}; no changes detected.`);\n return existing;\n }\n\n const merged = this.merge(existing, jobData);\n this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);\n return this.save(merged);\n } else {\n this.logger.debug(`Creating scheduled job: ${dto.scheduleName}`);\n return this.save(this.create(jobData));\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"scheduled-job.repository.js","sourceRoot":"","sources":["../../src/repository/scheduled-job.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { CreateScheduledJobDto } from \"src/dtos/create-scheduled-job.dto\";\nimport { ModuleMetadata } from \"src/entities/module-metadata.entity\";\nimport { ScheduledJob } from \"src/entities/scheduled-job.entity\";\nimport { RequestContextService } from \"src/services/request-context.service\";\nimport { DataSource } from \"typeorm\";\nimport { SecurityRuleRepository } from \"./security-rule.repository\";\nimport { SolidBaseRepository } from \"./solid-base.repository\";\n\n// This should match whatever DTO structure you’re using in your seeding logic\n// export type CreateScheduledJobDto = {\n// scheduleName: string;\n// isActive?: boolean;\n// frequency: string;\n// startTime?: Date;\n// endTime?: Date;\n// startDate?: Date;\n// endDate?: Date;\n// dayOfMonth?: number;\n// lastRunAt?: Date;\n// nextRunAt?: Date;\n// dayOfWeek?: string;\n// job: string;\n// moduleUserKey: string;\n// };\n\n@Injectable()\nexport class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {\n constructor(\n readonly dataSource: DataSource,\n readonly requestContextService: RequestContextService,\n readonly securityRuleRepository: SecurityRuleRepository,\n ) {\n super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);\n }\n\n private normalizeComparableValue(value: any): any {\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"string\") {\n const trimmedValue = value.trim();\n if (\n (trimmedValue.startsWith(\"{\") && trimmedValue.endsWith(\"}\")) ||\n (trimmedValue.startsWith(\"[\") && trimmedValue.endsWith(\"]\"))\n ) {\n try {\n return this.normalizeComparableValue(JSON.parse(trimmedValue));\n } catch {\n return value;\n }\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => this.normalizeComparableValue(item));\n }\n\n if (value && typeof value === \"object\") {\n return Object.keys(value)\n .sort()\n .reduce((result, key) => {\n result[key] = this.normalizeComparableValue(value[key]);\n return result;\n }, {} as Record<string, any>);\n }\n\n return value;\n }\n\n private areValuesDifferent(currentValue: any, nextValue: any): boolean {\n const normalizedCurrentValue = this.normalizeComparableValue(currentValue);\n const normalizedNextValue = this.normalizeComparableValue(nextValue);\n\n if (\n (normalizedCurrentValue && typeof normalizedCurrentValue === \"object\") ||\n (normalizedNextValue && typeof normalizedNextValue === \"object\")\n ) {\n return JSON.stringify(normalizedCurrentValue ?? null) !== JSON.stringify(normalizedNextValue ?? null);\n }\n\n return normalizedCurrentValue !== normalizedNextValue;\n }\n\n private hasChanges(existing: ScheduledJob, dto: CreateScheduledJobDto, moduleEntity: ModuleMetadata): boolean {\n return existing.scheduleName !== dto.scheduleName\n || existing.isActive !== dto.isActive\n || this.areValuesDifferent(existing.frequency, dto.frequency)\n || this.areValuesDifferent(existing.startTime, dto.startTime)\n || this.areValuesDifferent(existing.endTime, dto.endTime)\n || this.areValuesDifferent(existing.startDate, dto.startDate)\n || this.areValuesDifferent(existing.endDate, dto.endDate)\n || this.areValuesDifferent(existing.dayOfMonth, dto.dayOfMonth)\n || this.areValuesDifferent(existing.dayOfWeek, dto.dayOfWeek)\n || this.areValuesDifferent(existing.job, dto.job)\n || this.areValuesDifferent(existing.cronExpression, dto.cronExpression)\n || existing.module?.id !== moduleEntity.id;\n }\n\n /**\n * Converts an entity to a plain DTO object.\n */\n async toDto(scheduledJob: ScheduledJob): Promise<CreateScheduledJobDto> {\n let populatedScheduledJob: ScheduledJob = scheduledJob;\n // If the scheduled job does not have the module relation loaded, load it\n if (!scheduledJob.module) {\n populatedScheduledJob = await this.findOne({\n where: {\n id: scheduledJob.id,\n },\n relations: {\n module: true,\n },\n });\n }\n\n if (!populatedScheduledJob.module) {\n throw new Error(`Module not found for scheduled job ID ${populatedScheduledJob.id}`);\n }\n\n return {\n scheduleName: populatedScheduledJob.scheduleName,\n isActive: populatedScheduledJob.isActive,\n frequency: populatedScheduledJob.frequency,\n startTime: populatedScheduledJob.startTime,\n endTime: populatedScheduledJob.endTime,\n startDate: populatedScheduledJob.startDate,\n endDate: populatedScheduledJob.endDate,\n dayOfMonth: populatedScheduledJob.dayOfMonth,\n lastRunAt: populatedScheduledJob.lastRunAt,\n nextRunAt: populatedScheduledJob.nextRunAt,\n dayOfWeek: populatedScheduledJob.dayOfWeek,\n job: populatedScheduledJob.job,\n moduleUserKey: populatedScheduledJob.module.name,\n moduleId: populatedScheduledJob.module.id,\n cronExpression: populatedScheduledJob.cronExpression,\n };\n }\n\n async upsertWithDto(dto: CreateScheduledJobDto): Promise<ScheduledJob> {\n const moduleRepo = this.dataSource.getRepository(ModuleMetadata);\n\n const moduleEntity = await moduleRepo.findOne({\n where: { name: dto.moduleUserKey },\n });\n\n if (!moduleEntity) {\n throw new Error(`Module with userKey ${dto.moduleUserKey} not found`);\n }\n\n const jobData = {\n ...dto,\n module: moduleEntity,\n };\n const existing = await this.findOne({\n where: { scheduleName: dto.scheduleName },\n relations: {\n module: true,\n },\n });\n\n if (existing) {\n if (!this.hasChanges(existing, dto, moduleEntity)) {\n this.logger.debug(`Skipping scheduled job upsert for ${dto.scheduleName}; no changes detected.`);\n return existing;\n }\n\n const merged = this.merge(existing, jobData);\n this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);\n return this.save(merged);\n } else {\n this.logger.debug(`Creating scheduled job: ${dto.scheduleName}`);\n return this.save(this.create(jobData));\n }\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ import { SecurityRule } from '../entities/security-rule.entity';
|
|
|
5
5
|
import { SolidRegistry } from '../helpers/solid-registry';
|
|
6
6
|
import { ActiveUserData } from '../interfaces/active-user-data.interface';
|
|
7
7
|
import { CrudHelperService } from '../services/crud-helper.service';
|
|
8
|
-
import { DataSource,
|
|
8
|
+
import { DataSource, SelectQueryBuilder } from 'typeorm';
|
|
9
9
|
import { SolidBaseRepository } from './solid-base.repository';
|
|
10
10
|
export declare class SecurityRuleRepository extends SolidBaseRepository<SecurityRule> {
|
|
11
11
|
readonly dataSource: DataSource;
|
|
@@ -14,7 +14,7 @@ export declare class SecurityRuleRepository extends SolidBaseRepository<Security
|
|
|
14
14
|
constructor(dataSource: DataSource, solidRegistry: SolidRegistry, crudHelperService: CrudHelperService);
|
|
15
15
|
applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias?: string): Promise<SelectQueryBuilder<T>>;
|
|
16
16
|
private resolveSecurityRuleConfig;
|
|
17
|
-
toDto(securityRule: SecurityRule
|
|
17
|
+
toDto(securityRule: SecurityRule): Promise<UpdateSecurityRuleDto>;
|
|
18
18
|
upsertWithDto(createDto: CreateSecurityRuleDto): Promise<SecurityRule>;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=security-rule.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-rule.repository.d.ts","sourceRoot":"","sources":["../../src/repository/security-rule.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAY,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"security-rule.repository.d.ts","sourceRoot":"","sources":["../../src/repository/security-rule.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAY,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBACa,sBAAuB,SAAQ,mBAAmB,CAAC,YAAY,CAAC;IAErE,QAAQ,CAAC,UAAU,EAAE,UAAU;IAE/B,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;gBAHpC,UAAU,EAAE,UAAU,EAEtB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;IAK3C,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,GAAE,MAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAyDxM,OAAO,CAAC,yBAAyB;IAI3B,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6BjE,aAAa,CAAC,SAAS,EAAE,qBAAqB;CAyDvD"}
|
|
@@ -66,13 +66,10 @@ let SecurityRuleRepository = class SecurityRuleRepository extends solid_base_rep
|
|
|
66
66
|
resolveSecurityRuleConfig(configString, activeUser) {
|
|
67
67
|
return configString.replace('$activeUserId', activeUser.sub.toString());
|
|
68
68
|
}
|
|
69
|
-
async toDto(securityRule
|
|
69
|
+
async toDto(securityRule) {
|
|
70
70
|
let populatedSecurityRule = securityRule;
|
|
71
71
|
if (!securityRule.role || !securityRule.modelMetadata) {
|
|
72
|
-
|
|
73
|
-
? manager.getRepository(security_rule_entity_1.SecurityRule)
|
|
74
|
-
: this;
|
|
75
|
-
populatedSecurityRule = await repo.findOne({
|
|
72
|
+
populatedSecurityRule = await this.findOne({
|
|
76
73
|
where: {
|
|
77
74
|
id: securityRule.id,
|
|
78
75
|
},
|
|
@@ -80,7 +77,7 @@ let SecurityRuleRepository = class SecurityRuleRepository extends solid_base_rep
|
|
|
80
77
|
role: true,
|
|
81
78
|
modelMetadata: true,
|
|
82
79
|
},
|
|
83
|
-
})
|
|
80
|
+
});
|
|
84
81
|
}
|
|
85
82
|
return {
|
|
86
83
|
id: populatedSecurityRule.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-rule.repository.js","sourceRoot":"","sources":["../../src/repository/security-rule.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAK5C,6EAAmE;AACnE,2EAAiE;AACjE,2EAAiE;AACjE,8DAA2D;AAE3D,yEAAqE;AACrE,qCAAkF;AAClF,mEAA8D;AAGvD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,2CAAiC;IACzE,YACa,UAAsB,EAEtB,aAA4B,EAC5B,iBAAoC;QAE7C,KAAK,CAAC,mCAAY,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QALnC,eAAU,GAAV,UAAU,CAAY;QAEtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;IAGjD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAyB,EAAyB,EAAE,iBAAyB,EAAE,UAA0B,EAAE,oBAA4B,EAAE,CAAC,KAAK;QAEnK,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAG/F,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAE/B,IAAI,aAAa,GAAG,IAAI,CAAC;YAEzB,IAAI,CAAC;gBAED,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBAElC,MAAM,kCAAkC,GAAG,IAAI,CAAC,aAAa,CAAC,qCAAqC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBACrI,IAAI,CAAC,kCAAkC,EAAE,CAAC;wBACtC,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;oBACxH,CAAC;oBACD,aAAa,GAAG,MAAM,kCAAkC,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAClG,CAAC;qBACI,CAAC;oBACF,aAAa,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAChD,CAAC;gBAC5B,CAAC;gBAED,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEvC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;QAID,EAAE,CAAC,QAAQ,CAAC,IAAI,kBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACvC,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBACzC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBACzC,OAAO,CAAC,OAAO,CACX,IAAI,kBAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;wBACrB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;oBAC/F,CAAC,CAAC,CACL,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,yBAAyB,CAAC,YAAoB,EAAE,UAA0B;QAC9E,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,YAA0B,EAAE,OAAuB;QAE3D,IAAI,qBAAqB,GAAiB,YAAY,CAAC;QAEvD,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAIpD,MAAM,IAAI,GAAG,OAAO;gBAChB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAY,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC;YACX,qBAAqB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBACvC,KAAK,EAAE;oBACH,EAAE,EAAE,YAAY,CAAC,EAAE;iBACtB;gBACD,SAAS,EAAE;oBACP,IAAI,EAAE,IAAI;oBACV,aAAa,EAAE,IAAI;iBACtB;aACJ,CAAC,IAAI,YAAY,CAAC;QACvB,CAAC;QAED,OAAO;YACH,EAAE,EAAE,qBAAqB,CAAC,EAAE;YAC5B,IAAI,EAAE,qBAAqB,CAAC,IAAI;YAChC,WAAW,EAAE,qBAAqB,CAAC,WAAW;YAC9C,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACrC,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI;YAC5C,eAAe,EAAE,qBAAqB,CAAC,aAAa,CAAC,EAAE;YACvD,oBAAoB,EAAE,qBAAqB,CAAC,aAAa,CAAC,YAAY;YACtE,kBAAkB,EAAE,qBAAqB,CAAC,kBAAkB;YAC5D,0BAA0B,EAAE,qBAAqB,CAAC,0BAA0B;SAC/E,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAgC;QAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mCAAY,CAAC,CAAC;QACnE,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;gBACtC,KAAK,EAAE;oBACH,EAAE,EAAE,SAAS,CAAC,MAAM;iBACvB;aACJ,CAAC,CAAC;YACH,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;gBACtC,KAAK,EAAE;oBACH,IAAI,EAAE,SAAS,CAAC,WAAW;iBAC9B;aACJ,CAAC,CAAC;YACH,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;QAGD,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qCAAa,CAAC,CAAC;QAC7E,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE;oBACH,EAAE,EAAE,SAAS,CAAC,eAAe;iBAChC;aACJ,CAAC,CAAC;YACH,SAAS,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;QAC/C,CAAC;QACD,IAAI,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE;oBACH,YAAY,EAAE,SAAS,CAAC,oBAAoB;iBAC/C;aACJ,CAAC,CAAC;YACH,SAAS,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;QAC/C,CAAC;QAGD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE;gBACH,IAAI,EAAE,SAAS,CAAC,IAAI;aACvB;SACJ,CAAC,CAAC;QAEH,IAAI,oBAAoB,EAAE,CAAC;YACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1C,CAAC;aACI,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;CAEJ,CAAA;AAnKY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAGgB,oBAAU;QAEP,8BAAa;QACT,uCAAiB;GALxC,sBAAsB,CAmKlC","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';\nimport { SecurityRuleConfig } from 'src/dtos/security-rule-config.dto';\nimport { UpdateSecurityRuleDto } from 'src/dtos/update-security-rule.dto';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { SecurityRule } from 'src/entities/security-rule.entity';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { CrudHelperService } from 'src/services/crud-helper.service';\nimport { Brackets, DataSource, EntityManager, SelectQueryBuilder } from 'typeorm';\nimport { SolidBaseRepository } from './solid-base.repository';\n\n@Injectable()\nexport class SecurityRuleRepository extends SolidBaseRepository<SecurityRule> {\n constructor(\n readonly dataSource: DataSource,\n // readonly requestContextService: RequestContextService,\n readonly solidRegistry: SolidRegistry,\n readonly crudHelperService: CrudHelperService,\n ) {\n super(SecurityRule, dataSource, null, null);\n }\n\n async applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias: string = qb.alias): Promise<SelectQueryBuilder<T>> {\n // Fetch the security rules for the model and roles\n const securityRules = this.solidRegistry.getSecurityRules(modelSingularName, activeUser.roles);\n\n // If no security rules, return the original query builder\n if (!securityRules.length) {\n return qb;\n }\n\n const evaluatedRules = [];\n\n for (const rule of securityRules) {\n\n let evaluatedRule = null;\n\n try {\n // First check if the rule has a \"dynamic\" security rule config provider. \n if (rule.securityRuleConfigProvider) {\n // TODO: Evaluation of the securityRuleConfig Provider should happen outside first...\n const securityRuleConfigProviderInstance = this.solidRegistry.getSecurityRuleConfigProviderInstance(rule.securityRuleConfigProvider);\n if (!securityRuleConfigProviderInstance) {\n throw new Error(`Unable to resolve instance for security rule config provider: ${rule.securityRuleConfigProvider}`);\n }\n evaluatedRule = await securityRuleConfigProviderInstance.securityRuleConfig(activeUser, rule);\n }\n else {\n evaluatedRule = JSON.parse(\n this.resolveSecurityRuleConfig(rule.securityRuleConfig, activeUser)\n ) as SecurityRuleConfig;\n }\n\n evaluatedRules.push(evaluatedRule);\n\n } catch (error: any) {\n this.logger.error(`Error parsing security rule: ${rule.securityRuleConfig}`, error);\n this.logger.error(error.stack);\n throw error;\n }\n }\n\n\n // Apply each security rule to the query builder. The rules are combined with OR logic at the top level.\n qb.andWhere(new Brackets(async (outerQb) => {\n for (const evaluatedRule of evaluatedRules) {\n if (evaluatedRule && evaluatedRule.filters) {\n outerQb.orWhere( // combine each rule-group with OR at the outer level\n new Brackets((innerQb) => {\n this.crudHelperService.applyFilters(innerQb, evaluatedRule.filters, securityRuleAlias, qb); // AND within a rule\n })\n );\n }\n }\n }));\n\n return qb;\n }\n\n private resolveSecurityRuleConfig(configString: string, activeUser: ActiveUserData) {\n return configString.replace('$activeUserId', activeUser.sub.toString());\n }\n\n async toDto(securityRule: SecurityRule, manager?: EntityManager): Promise<UpdateSecurityRuleDto> {\n // load the role and model relations for the security rule\n let populatedSecurityRule: SecurityRule = securityRule;\n // If the security rule does not have the role and model relations loaded, load them\n if (!securityRule.role || !securityRule.modelMetadata) {\n // When a manager is provided (e.g. from a TypeORM subscriber event),\n // use it so the query runs on the active transaction's connection\n // instead of trying to acquire a second connection from the pool.\n const repo = manager\n ? manager.getRepository(SecurityRule)\n : this;\n populatedSecurityRule = await repo.findOne({\n where: {\n id: securityRule.id,\n },\n relations: {\n role: true,\n modelMetadata: true,\n },\n }) ?? securityRule;\n }\n\n return {\n id: populatedSecurityRule.id,\n name: populatedSecurityRule.name,\n description: populatedSecurityRule.description,\n roleId: populatedSecurityRule.role.id,\n roleUserKey: populatedSecurityRule.role.name,\n modelMetadataId: populatedSecurityRule.modelMetadata.id,\n modelMetadataUserKey: populatedSecurityRule.modelMetadata.singularName,\n securityRuleConfig: populatedSecurityRule.securityRuleConfig,\n securityRuleConfigProvider: populatedSecurityRule.securityRuleConfigProvider,\n };\n }\n\n async upsertWithDto(createDto: CreateSecurityRuleDto) {\n // Populate the role from roleId or roleUserKey\n const roleRepository = this.dataSource.getRepository(RoleMetadata);\n if (createDto.roleId) {\n const role = await roleRepository.findOne({\n where: {\n id: createDto.roleId,\n },\n });\n createDto['role'] = role;\n }\n\n if (createDto.roleUserKey) {\n const role = await roleRepository.findOne({\n where: {\n name: createDto.roleUserKey,\n },\n });\n createDto['role'] = role;\n }\n\n // Populate the model from modelMetadataId or modelMetadataUserKey\n const modelMetadataRepository = this.dataSource.getRepository(ModelMetadata);\n if (createDto.modelMetadataId) {\n const modelMetadata = await modelMetadataRepository.findOne({\n where: {\n id: createDto.modelMetadataId,\n },\n });\n createDto['modelMetadata'] = modelMetadata;\n }\n if (createDto.modelMetadataUserKey) {\n const modelMetadata = await modelMetadataRepository.findOne({\n where: {\n singularName: createDto.modelMetadataUserKey,\n },\n });\n createDto['modelMetadata'] = modelMetadata;\n }\n\n // First check if module already exists using name\n const existingSecurityRule = await this.findOne({\n where: {\n name: createDto.name,\n },\n });\n\n if (existingSecurityRule) {\n const updatedSecurityRule = this.merge(existingSecurityRule, createDto);\n return this.save(updatedSecurityRule);\n }\n else {\n const securityRule = this.create(createDto);\n return this.save(securityRule);\n }\n }\n\n}"]}
|
|
1
|
+
{"version":3,"file":"security-rule.repository.js","sourceRoot":"","sources":["../../src/repository/security-rule.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';\nimport { SecurityRuleConfig } from 'src/dtos/security-rule-config.dto';\nimport { UpdateSecurityRuleDto } from 'src/dtos/update-security-rule.dto';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { SecurityRule } from 'src/entities/security-rule.entity';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { CrudHelperService } from 'src/services/crud-helper.service';\nimport { Brackets, DataSource, SelectQueryBuilder } from 'typeorm';\nimport { SolidBaseRepository } from './solid-base.repository';\n\n@Injectable()\nexport class SecurityRuleRepository extends SolidBaseRepository<SecurityRule> {\n constructor(\n readonly dataSource: DataSource,\n // readonly requestContextService: RequestContextService,\n readonly solidRegistry: SolidRegistry,\n readonly crudHelperService: CrudHelperService,\n ) {\n super(SecurityRule, dataSource, null, null);\n }\n\n async applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias: string = qb.alias): Promise<SelectQueryBuilder<T>> {\n // Fetch the security rules for the model and roles\n const securityRules = this.solidRegistry.getSecurityRules(modelSingularName, activeUser.roles);\n\n // If no security rules, return the original query builder\n if (!securityRules.length) {\n return qb;\n }\n\n const evaluatedRules = [];\n\n for (const rule of securityRules) {\n\n let evaluatedRule = null;\n\n try {\n // First check if the rule has a \"dynamic\" security rule config provider. \n if (rule.securityRuleConfigProvider) {\n // TODO: Evaluation of the securityRuleConfig Provider should happen outside first...\n const securityRuleConfigProviderInstance = this.solidRegistry.getSecurityRuleConfigProviderInstance(rule.securityRuleConfigProvider);\n if (!securityRuleConfigProviderInstance) {\n throw new Error(`Unable to resolve instance for security rule config provider: ${rule.securityRuleConfigProvider}`);\n }\n evaluatedRule = await securityRuleConfigProviderInstance.securityRuleConfig(activeUser, rule);\n }\n else {\n evaluatedRule = JSON.parse(\n this.resolveSecurityRuleConfig(rule.securityRuleConfig, activeUser)\n ) as SecurityRuleConfig;\n }\n\n evaluatedRules.push(evaluatedRule);\n\n } catch (error: any) {\n this.logger.error(`Error parsing security rule: ${rule.securityRuleConfig}`, error);\n this.logger.error(error.stack);\n throw error;\n }\n }\n\n\n // Apply each security rule to the query builder. The rules are combined with OR logic at the top level.\n qb.andWhere(new Brackets(async (outerQb) => {\n for (const evaluatedRule of evaluatedRules) {\n if (evaluatedRule && evaluatedRule.filters) {\n outerQb.orWhere( // combine each rule-group with OR at the outer level\n new Brackets((innerQb) => {\n this.crudHelperService.applyFilters(innerQb, evaluatedRule.filters, securityRuleAlias, qb); // AND within a rule\n })\n );\n }\n }\n }));\n\n return qb;\n }\n\n private resolveSecurityRuleConfig(configString: string, activeUser: ActiveUserData) {\n return configString.replace('$activeUserId', activeUser.sub.toString());\n }\n\n async toDto(securityRule: SecurityRule): Promise<UpdateSecurityRuleDto> {\n // load the role and model relations for the security rule\n let populatedSecurityRule: SecurityRule = securityRule;\n // If the security rule does not have the role and model relations loaded, load them\n if (!securityRule.role || !securityRule.modelMetadata) {\n populatedSecurityRule = await this.findOne({\n where: {\n id: securityRule.id,\n },\n relations: {\n role: true,\n modelMetadata: true,\n },\n });\n }\n\n return {\n id: populatedSecurityRule.id,\n name: populatedSecurityRule.name,\n description: populatedSecurityRule.description,\n roleId: populatedSecurityRule.role.id,\n roleUserKey: populatedSecurityRule.role.name,\n modelMetadataId: populatedSecurityRule.modelMetadata.id,\n modelMetadataUserKey: populatedSecurityRule.modelMetadata.singularName,\n securityRuleConfig: populatedSecurityRule.securityRuleConfig,\n securityRuleConfigProvider: populatedSecurityRule.securityRuleConfigProvider,\n };\n }\n\n async upsertWithDto(createDto: CreateSecurityRuleDto) {\n // Populate the role from roleId or roleUserKey\n const roleRepository = this.dataSource.getRepository(RoleMetadata);\n if (createDto.roleId) {\n const role = await roleRepository.findOne({\n where: {\n id: createDto.roleId,\n },\n });\n createDto['role'] = role;\n }\n\n if (createDto.roleUserKey) {\n const role = await roleRepository.findOne({\n where: {\n name: createDto.roleUserKey,\n },\n });\n createDto['role'] = role;\n }\n\n // Populate the model from modelMetadataId or modelMetadataUserKey\n const modelMetadataRepository = this.dataSource.getRepository(ModelMetadata);\n if (createDto.modelMetadataId) {\n const modelMetadata = await modelMetadataRepository.findOne({\n where: {\n id: createDto.modelMetadataId,\n },\n });\n createDto['modelMetadata'] = modelMetadata;\n }\n if (createDto.modelMetadataUserKey) {\n const modelMetadata = await modelMetadataRepository.findOne({\n where: {\n singularName: createDto.modelMetadataUserKey,\n },\n });\n createDto['modelMetadata'] = modelMetadata;\n }\n\n // First check if module already exists using name\n const existingSecurityRule = await this.findOne({\n where: {\n name: createDto.name,\n },\n });\n\n if (existingSecurityRule) {\n const updatedSecurityRule = this.merge(existingSecurityRule, createDto);\n return this.save(updatedSecurityRule);\n }\n else {\n const securityRule = this.create(createDto);\n return this.save(securityRule);\n }\n }\n\n}"]}
|
package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha-num-external-id-computed-field-provider.d.ts","sourceRoot":"","sources":["../../../../src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"alpha-num-external-id-computed-field-provider.d.ts","sourceRoot":"","sources":["../../../../src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAEa,qCAAqC,CAAC,CAAC,SAAS,YAAY,CAAE,YAAW,8BAA8B,CAAC,CAAC,EAAE,yBAAyB,CAAC;IAG9I,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAG/C,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,yBAAyB,CAAC;IAuB/G,OAAO,CAAC,kBAAkB;YASZ,kBAAkB;YASlB,wBAAwB;CAkBvC"}
|
package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js
CHANGED
|
@@ -16,7 +16,6 @@ exports.AlphaNumExternalIdComputationProvider = void 0;
|
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
18
|
const computed_field_provider_decorator_1 = require("../../../decorators/computed-field-provider.decorator");
|
|
19
|
-
const environment_helper_1 = require("../../../helpers/environment.helper");
|
|
20
19
|
const typeorm_2 = require("typeorm");
|
|
21
20
|
const lodash_1 = require("lodash");
|
|
22
21
|
let AlphaNumExternalIdComputationProvider = class AlphaNumExternalIdComputationProvider {
|
|
@@ -41,8 +40,7 @@ let AlphaNumExternalIdComputationProvider = class AlphaNumExternalIdComputationP
|
|
|
41
40
|
resolvedPrefix = String(dynamicValue).trim().toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9\-]/g, '');
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
const
|
|
45
|
-
const uniqueCode = await this.generateUniqueExternalId(manager, resolvedPrefix, codeLength, computedFieldMetadata.fieldName, entityName);
|
|
43
|
+
const uniqueCode = await this.generateUniqueExternalId(resolvedPrefix, codeLength, computedFieldMetadata.fieldName, entityName);
|
|
46
44
|
const finalExternalId = resolvedPrefix ? `${resolvedPrefix}-${uniqueCode}` : uniqueCode;
|
|
47
45
|
triggerEntity[computedFieldMetadata.fieldName] = finalExternalId;
|
|
48
46
|
}
|
|
@@ -54,18 +52,18 @@ let AlphaNumExternalIdComputationProvider = class AlphaNumExternalIdComputationP
|
|
|
54
52
|
}
|
|
55
53
|
return result;
|
|
56
54
|
}
|
|
57
|
-
async isExternalIdUnique(
|
|
58
|
-
const count = await
|
|
55
|
+
async isExternalIdUnique(externalId, fieldName, entityName) {
|
|
56
|
+
const count = await this.entityManager.count(entityName, {
|
|
59
57
|
where: { [fieldName]: externalId },
|
|
60
58
|
});
|
|
61
59
|
return count === 0;
|
|
62
60
|
}
|
|
63
|
-
async generateUniqueExternalId(
|
|
61
|
+
async generateUniqueExternalId(resolvedPrefix, codeLength, fieldName, entityName) {
|
|
64
62
|
const maxAttempts = 10;
|
|
65
63
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
66
64
|
const newId = this.generateRandomCode(codeLength);
|
|
67
65
|
const fullId = resolvedPrefix ? `${resolvedPrefix}-${newId}` : newId;
|
|
68
|
-
const isUnique = await this.isExternalIdUnique(
|
|
66
|
+
const isUnique = await this.isExternalIdUnique(fullId, fieldName, entityName);
|
|
69
67
|
if (isUnique) {
|
|
70
68
|
return newId;
|
|
71
69
|
}
|
package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha-num-external-id-computed-field-provider.js","sourceRoot":"","sources":["../../../../src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAsD;AACtD,6GAAyF;
|
|
1
|
+
{"version":3,"file":"alpha-num-external-id-computed-field-provider.js","sourceRoot":"","sources":["../../../../src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { InjectEntityManager } from '@nestjs/typeorm';\nimport { ComputedFieldProvider } from 'src/decorators/computed-field-provider.decorator';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { ComputedFieldMetadata } from 'src/helpers/solid-registry';\nimport { IEntityPreComputeFieldProvider } from 'src/interfaces';\nimport { EntityManager } from 'typeorm';\nimport { get } from \"lodash\";\nexport interface AlphaNumExternalIdContext {\n prefix?: string; // alias -> staticPrefix\n length?: number; // Optional: length of the unique code to generate, default is 5\n dynamicFieldPrefix?: string; // NEW: field name on the entity\n}\n\n@ComputedFieldProvider()\n@Injectable()\nexport class AlphaNumExternalIdComputationProvider<T extends CommonEntity> implements IEntityPreComputeFieldProvider<T, AlphaNumExternalIdContext> {\n constructor(\n @InjectEntityManager()\n private readonly entityManager: EntityManager\n ) { }\n\n name(): string {\n return this.constructor.name;\n }\n\n help(): string {\n return 'Provider used to compute external ID for a CommonEntity with support for static or dynamic prefix.';\n }\n\n async preComputeValue(triggerEntity: T, computedFieldMetadata: ComputedFieldMetadata<AlphaNumExternalIdContext>) {\n const { prefix, length, dynamicFieldPrefix } = computedFieldMetadata.computedFieldValueProviderCtxt;\n const eventContext = computedFieldMetadata.eventContext;\n const entityName = eventContext?.metadataName ?? eventContext.databaseEntity?.constructor?.name ?? '';\n\n const codeLength = length || 5;\n\n // Determine prefix\n let resolvedPrefix = prefix || '';\n\n if (dynamicFieldPrefix) {\n const dynamicValue = get(triggerEntity as any, dynamicFieldPrefix);\n if (dynamicValue) {\n resolvedPrefix = String(dynamicValue).trim().toLowerCase().replace(/\\s+/g, '-').replace(/[^a-z0-9\\-]/g, '');\n }\n }\n\n const uniqueCode = await this.generateUniqueExternalId(resolvedPrefix, codeLength, computedFieldMetadata.fieldName, entityName);\n const finalExternalId = resolvedPrefix ? `${resolvedPrefix}-${uniqueCode}` : uniqueCode;\n\n triggerEntity[computedFieldMetadata.fieldName] = finalExternalId;\n }\n\n private generateRandomCode(length = 5): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n }\n\n private async isExternalIdUnique(externalId: string, fieldName: string, entityName: string): Promise<boolean> {\n const count = await this.entityManager.count(entityName as any,\n {\n where: { [fieldName]: externalId },\n }\n );\n return count === 0;\n }\n\n private async generateUniqueExternalId(resolvedPrefix: string, codeLength: number, fieldName: string, entityName: string): Promise<string> {\n const maxAttempts = 10;\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n\n const newId = this.generateRandomCode(codeLength);\n\n const fullId = resolvedPrefix ? `${resolvedPrefix}-${newId}` : newId;\n\n const isUnique = await this.isExternalIdUnique(fullId, fieldName, entityName);\n\n if (isUnique) {\n return newId;\n }\n }\n\n throw new Error('Failed to generate a unique external ID after multiple attempts');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-helper.service.d.ts","sourceRoot":"","sources":["../../src/services/crud-helper.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAM3E,oBAAY,gBAAgB;IACxB,GAAG,SAAS;IACZ,EAAE,QAAQ;CACb;AAED,oBAAY,YAAY;IACpB,UAAU,cAAc;IACxB,UAAU,cAAc;CAC3B;AAED,qBAAa,iBAAiB;;IAG1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,OAAO,CAAC,YAAY;IAqBpB,YAAY,CAAC,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAiB,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAoDlH,OAAO,CAAC,kBAAkB;IAqF1B,OAAO,CAAC,mBAAmB;IAU3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;IAK7C,OAAO,CAAC,oCAAoC;IAM5C,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,EAAE;IAKzE,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,QAAQ;IAIhB,gBAAgB,CACZ,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAC3B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,MAAM,EACnB,oBAAoB,CAAC,EAAE,OAAO,EAC9B,oBAAoB,CAAC,EAAE,OAAO,EAC9B,SAAS,CAAC,EAAE,GAAG,EACf,gBAAgB,GAAE,gBAAuC,EACzD,eAAe,GAAE,OAAc,EAC/B,YAAY,GAAE,OAAc,GAC7B,kBAAkB,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"crud-helper.service.d.ts","sourceRoot":"","sources":["../../src/services/crud-helper.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -294,9 +294,13 @@ class CrudHelperService {
|
|
|
294
294
|
const orderOptions = this.orderOptions(normalizedSort);
|
|
295
295
|
if (orderOptions) {
|
|
296
296
|
const orderOptionKeys = Object.keys(orderOptions);
|
|
297
|
+
let hasExplicitIdSort = false;
|
|
297
298
|
orderOptionKeys.forEach((key) => {
|
|
298
299
|
const value = orderOptions[key];
|
|
299
300
|
const field = String(key);
|
|
301
|
+
if (field === 'id') {
|
|
302
|
+
hasExplicitIdSort = true;
|
|
303
|
+
}
|
|
300
304
|
if (field.includes('.')) {
|
|
301
305
|
const { alias, property, created } = this.ensureRelationPathJoined(qb, entityAlias, field.split('.'));
|
|
302
306
|
const orderColumn = `${alias}.${property}`;
|
|
@@ -308,6 +312,9 @@ class CrudHelperService {
|
|
|
308
312
|
qb.addOrderBy(`${entityAlias}.${field}`, value);
|
|
309
313
|
}
|
|
310
314
|
});
|
|
315
|
+
if (!hasExplicitIdSort) {
|
|
316
|
+
qb.addOrderBy(`${entityAlias}.id`, 'DESC');
|
|
317
|
+
}
|
|
311
318
|
}
|
|
312
319
|
}
|
|
313
320
|
if (showSoftDeleted === 'inclusive') {
|