@lyxa.ai/core 1.0.352 → 1.0.353
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/libraries/index.d.ts +1 -2
- package/dist/libraries/index.js +0 -3
- package/dist/libraries/index.js.map +1 -1
- package/dist/libraries/mongo/models/line-item.model.d.ts +2 -4
- package/dist/libraries/mongo/models/line-item.model.js +1 -12
- package/dist/libraries/mongo/models/line-item.model.js.map +1 -1
- package/dist/libraries/mongo/models/service-cart.model.d.ts +2 -3
- package/dist/libraries/mongo/models/service-cart.model.js +5 -6
- package/dist/libraries/mongo/models/service-cart.model.js.map +1 -1
- package/dist/libraries/mongo/models/user-app-section-setting.model.js +1 -1
- package/dist/libraries/mongo/models/user-app-section-setting.model.js.map +1 -1
- package/dist/libraries/mongo/models/user.model.d.ts +1 -1
- package/dist/libraries/socket/SocketEmitEvent.d.ts +1 -1
- package/dist/libraries/socket/SocketEmitEvent.js.map +1 -1
- package/dist/libraries/socket/index.d.ts +2 -1
- package/dist/libraries/socket/index.js +2 -1
- package/dist/libraries/socket/index.js.map +1 -1
- package/dist/libraries/socket/socket.types.d.ts +19 -0
- package/dist/libraries/socket/socket.types.js +4 -0
- package/dist/libraries/socket/socket.types.js.map +1 -0
- package/dist/libraries/socket/socket.utils.d.ts +14 -0
- package/dist/libraries/socket/{socket-utils.js → socket.utils.js} +4 -4
- package/dist/libraries/socket/socket.utils.js.map +1 -0
- package/dist/types/README.md +1 -1
- package/dist/types/package.json +1 -1
- package/dist/types/utilities/enum.d.ts +7 -0
- package/dist/types/utilities/enum.js +10 -1
- package/dist/types/utilities/enum.js.map +1 -1
- package/dist/types/utilities/validation/common-validation.d.ts +78 -2
- package/dist/types/utilities/validation/global-validation.d.ts +38 -14
- package/dist/utilities/enum.d.ts +7 -0
- package/dist/utilities/enum.js +10 -1
- package/dist/utilities/enum.js.map +1 -1
- package/dist/utilities/validation/common-validation.d.ts +78 -2
- package/dist/utilities/validation/global-validation.d.ts +38 -14
- package/package.json +1 -1
- package/dist/libraries/socket/socket-utils.d.ts +0 -18
- package/dist/libraries/socket/socket-utils.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -106,7 +106,6 @@ async function registerLibraries(options) {
|
|
|
106
106
|
});
|
|
107
107
|
const cashSettlementServiceInstance = new cash_settlement_1.CashSettlementService(bobService);
|
|
108
108
|
typedi_1.Container.set(cash_settlement_1.CashSettlementService, cashSettlementServiceInstance);
|
|
109
|
-
typedi_1.Container.set(cash_settlement_1.BOBService, bobService);
|
|
110
109
|
const settingsServiceInstance = new settings_1.CachedSettingsService(redisInstance);
|
|
111
110
|
typedi_1.Container.set(settings_1.CachedSettingsService, settingsServiceInstance);
|
|
112
111
|
const firebaseService = getLibraries().getFirebaseService();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// Apply the soft delete plugin globally before any connections or models\nimport { applySoftDeletePlugin } from './libraries/mongo/plugins/soft-delete-plugin';\napplySoftDeletePlugin();\n\nimport { LibraryManager } from './libraries';\nimport { Container } from 'typedi';\nimport mongoose from 'mongoose';\nimport { ConfigurationOptions, ConfigurationService } from './libraries/configuration';\nimport { EnvironmentConfigurationType } from './libraries/configuration/types/EnvironmentConfigurationType';\nimport { LyxaLogger } from './libraries/logger';\nimport { RedisService } from './libraries/redis';\nimport { initGlobalConnection } from './libraries/mongo';\nimport { SecretManagerService } from './libraries/secrets';\nimport { MicroServiceDispatcher } from './libraries/dispatcher';\nimport { TwilioService } from './libraries/twilio';\nimport { FirebaseService } from './libraries/firebase';\nimport { initEventBus, subscribeToEvent } from './libraries/event';\nimport { SubscriptionRegistry } from './libraries/event/registry/SubscriptionRegistry';\nimport { MapService, GoogleMapsService } from './libraries/map';\nimport { CachedSettingsService } from './libraries/cache/settings';\nimport {\n\tFCMService,\n\tFCMServiceForRider,\n\tFCMServiceForShop,\n\tFCMServiceForUser,\n} from './libraries/firebase/fcmService';\nimport { BullMQService } from './libraries/bullmq/bull-mq-service';\nimport { BOBSecrets, BOBService, CashSettlementService } from './libraries/cash-settlement';\nimport { RedisUrlMap } from './utilities/environment/redis-environments';\n\nexport { ConfigurationOptions } from './libraries/configuration';\nexport { EnvironmentConfigurationType } from './libraries/configuration/types/EnvironmentConfigurationType';\nexport { initGlobalConnection } from './libraries/mongo';\n\nexport async function bootstrapCore(options?: ConfigurationOptions) {\n\ttry {\n\t\tawait registerLibraries(options);\n\n\t\tgetLibraries().getLogger().logger.info('Successfully bootstrapped lyxa-core.');\n\n\t\tconst gracefulShutdown = async () => {\n\t\t\tgetLibraries().getLogger().logger.info('Received shutdown signal, shutting down gracefully...');\n\t\t\tprocess.exit();\n\t\t};\n\n\t\tprocess.on('SIGTERM', gracefulShutdown);\n\t\tprocess.on('SIGINT', gracefulShutdown);\n\t\tprocess.on('uncaughtException', err => {\n\t\t\tgetLibraries().getLogger().logger.error('Uncaught exception, shutting down...', err);\n\t\t\tgracefulShutdown();\n\t\t});\n\t\tprocess.on('exit', code => {\n\t\t\tgetLibraries().getLogger().logger.info(`Exiting with code: ${code}`);\n\t\t});\n\n\t\tconsole.log('Created hooks.');\n\t} catch (e) {\n\t\tconsole.error(e);\n\t}\n}\n\nexport async function registerLibraries(options?: ConfigurationOptions) {\n\n\t// Setup configuration.\n\tconst configurationInstance = new ConfigurationService(options);\n\tContainer.set(ConfigurationService, configurationInstance);\n\n\t// Setup redis.\n\tconst redisInstance = new RedisService(configurationInstance.redisURL);\n\tContainer.set(RedisService, redisInstance);\n\n\t// Setup secret\n\tconst secretInstance = new SecretManagerService(configurationInstance, redisInstance);\n\tContainer.set(SecretManagerService, secretInstance);\n\n\t// Setup BullMQ\n\tconst bullMQInstance = new BullMQService(redisInstance);\n\tContainer.set(BullMQService, bullMQInstance);\n\n\tconst mongoUrl = options?.mongoDbUrl ? options.mongoDbUrl : await getLibraries().getSecretsService().getKey('MONGO_URL');\t\n\n\tawait mongoose.connect(mongoUrl!, {\n\t\tdbName: `lyxa-${options!.environment}-${options!.tenet}`,\n\t\tmaxPoolSize: 20,\n\t\tminPoolSize: 4,\n\t\tmaxIdleTimeMS: 30000,\n\t\twaitQueueTimeoutMS: 10000,\n\t\tretryWrites: true,\n\t\tw: 1,\n\t\treadPreference: 'primary',\n \treadConcern: { level: 'local' },\n\t\tserverSelectionTimeoutMS: 5000,\n\t\theartbeatFrequencyMS: 10000,\n\t\tbufferCommands: false,\n\t\tcompressors: ['zlib'] // Reduces network traffic\n\t});\n\tmongoose.set(\n\t\t'debug',\n\t\toptions?.mongooseDebug !== undefined\n\t\t\t? options?.mongooseDebug\n\t\t\t: getLibraries().getConfigurationService().options.environment == EnvironmentConfigurationType.DEV\n\t);\n\n\tawait initGlobalConnection(mongoUrl!, options!.environment);\n\n\t// Setup logger\n\tconst loggerInstance = new LyxaLogger(options!.instanceType!, mongoUrl!);\n\tContainer.set(LyxaLogger, loggerInstance);\n\n\t// Setup firebase\n\tconst firebaseInstance = new FirebaseService(configurationInstance!);\n\tContainer.set(FirebaseService, firebaseInstance);\n\n\t// Setup microservice dispatcher\n\tconst microserviceDispatcherInstance = new MicroServiceDispatcher(secretInstance);\n\tContainer.set(MicroServiceDispatcher, microserviceDispatcherInstance);\n\n\t// Setup twilio\n\tconst twilioServiceInstance = new TwilioService();\n\tContainer.set(TwilioService, twilioServiceInstance);\n\n\t// Setup map service\n\tconst googleMapsKey = await getLibraries().getSecretsService().getKey('GOOGLE_MAPS_API_KEY');\n\tconst googleMapService = new GoogleMapsService(googleMapsKey as string);\n\tconst mapServiceInstance = new MapService(googleMapService);\n\tContainer.set(MapService, mapServiceInstance);\n\n\t// Setup cash settlement service\n\tconst bobUsername = await getLibraries().getSecretsService().getKey('BOB_USER_NAME');\n\tconst bobPassword = await getLibraries().getSecretsService().getKey('BOB_PASSWORD');\n\tconst bobURL = await getLibraries().getSecretsService().getKey('BOB_URL');\n\n\tconst bobService = new BOBService({\n\t\tBOB_USER_NAME: bobUsername,\n\t\tBOB_PASSWORD: bobPassword,\n\t\tBOB_URL: bobURL,\n\t} as BOBSecrets);\n\tconst cashSettlementServiceInstance = new CashSettlementService(bobService);\n\tContainer.set(CashSettlementService, cashSettlementServiceInstance);\n\tContainer.set(BOBService, bobService);\n\n\tconst settingsServiceInstance = new CachedSettingsService(redisInstance);\n\tContainer.set(CachedSettingsService, settingsServiceInstance);\n\n\t// Setup fcm service\n\tconst firebaseService = getLibraries().getFirebaseService();\n\tconst fcmServiceInstance = new FCMService(firebaseService.superApp);\n\tconst fcmServiceInstanceForUser = new FCMService(firebaseService.userApp);\n\tconst fcmServiceInstanceForRider = new FCMService(firebaseService.riderApp);\n\tconst fcmServiceInstanceForShop = new FCMService(firebaseService.shopApp);\n\tContainer.set(FCMService, fcmServiceInstance);\n\tContainer.set(FCMServiceForUser, fcmServiceInstanceForUser);\n\tContainer.set(FCMServiceForRider, fcmServiceInstanceForRider);\n\tContainer.set(FCMServiceForShop, fcmServiceInstanceForShop);\n\n\tconsole.log('Initialized everything');\n\n\tawait initEventBus('amqps://adlvedna:oY_X4qH1AphtB83YNcf9DHMO3UVmX23s@dog.lmq.cloudamqp.com/adlvedna');\n\tconst allSubscriptions = SubscriptionRegistry.getAllSubscriptions();\n\n\tconst instantiatedServices = new Map<Function, any>();\n\n\tfor (const { eventId, targetConstructor, methodName } of allSubscriptions) {\n\t\tlet instance = instantiatedServices.get(targetConstructor);\n\t\tif (!instance) {\n\t\t\tinstance = Container.get(targetConstructor as any);\n\t\t\tinstantiatedServices.set(targetConstructor, instance);\n\t\t}\n\n\t\tawait subscribeToEvent(eventId, async payload => {\n\t\t\treturn instance[methodName](payload);\n\t\t});\n\t}\n}\n\nexport function getLibraries(): LibraryManager {\n\treturn Container.get(LibraryManager);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["// Apply the soft delete plugin globally before any connections or models\nimport { applySoftDeletePlugin } from './libraries/mongo/plugins/soft-delete-plugin';\napplySoftDeletePlugin();\n\nimport { LibraryManager } from './libraries';\nimport { Container } from 'typedi';\nimport mongoose from 'mongoose';\nimport { ConfigurationOptions, ConfigurationService } from './libraries/configuration';\nimport { EnvironmentConfigurationType } from './libraries/configuration/types/EnvironmentConfigurationType';\nimport { LyxaLogger } from './libraries/logger';\nimport { RedisService } from './libraries/redis';\nimport { initGlobalConnection } from './libraries/mongo';\nimport { SecretManagerService } from './libraries/secrets';\nimport { MicroServiceDispatcher } from './libraries/dispatcher';\nimport { TwilioService } from './libraries/twilio';\nimport { FirebaseService } from './libraries/firebase';\nimport { initEventBus, subscribeToEvent } from './libraries/event';\nimport { SubscriptionRegistry } from './libraries/event/registry/SubscriptionRegistry';\nimport { MapService, GoogleMapsService } from './libraries/map';\nimport { CachedSettingsService } from './libraries/cache/settings';\nimport {\n\tFCMService,\n\tFCMServiceForRider,\n\tFCMServiceForShop,\n\tFCMServiceForUser,\n} from './libraries/firebase/fcmService';\nimport { BullMQService } from './libraries/bullmq/bull-mq-service';\nimport { BOBSecrets, BOBService, CashSettlementService } from './libraries/cash-settlement';\nimport { RedisUrlMap } from './utilities/environment/redis-environments';\n\nexport { ConfigurationOptions } from './libraries/configuration';\nexport { EnvironmentConfigurationType } from './libraries/configuration/types/EnvironmentConfigurationType';\nexport { initGlobalConnection } from './libraries/mongo';\n\nexport async function bootstrapCore(options?: ConfigurationOptions) {\n\ttry {\n\t\tawait registerLibraries(options);\n\n\t\tgetLibraries().getLogger().logger.info('Successfully bootstrapped lyxa-core.');\n\n\t\tconst gracefulShutdown = async () => {\n\t\t\tgetLibraries().getLogger().logger.info('Received shutdown signal, shutting down gracefully...');\n\t\t\tprocess.exit();\n\t\t};\n\n\t\tprocess.on('SIGTERM', gracefulShutdown);\n\t\tprocess.on('SIGINT', gracefulShutdown);\n\t\tprocess.on('uncaughtException', err => {\n\t\t\tgetLibraries().getLogger().logger.error('Uncaught exception, shutting down...', err);\n\t\t\tgracefulShutdown();\n\t\t});\n\t\tprocess.on('exit', code => {\n\t\t\tgetLibraries().getLogger().logger.info(`Exiting with code: ${code}`);\n\t\t});\n\n\t\tconsole.log('Created hooks.');\n\t} catch (e) {\n\t\tconsole.error(e);\n\t}\n}\n\nexport async function registerLibraries(options?: ConfigurationOptions) {\n\n\t// Setup configuration.\n\tconst configurationInstance = new ConfigurationService(options);\n\tContainer.set(ConfigurationService, configurationInstance);\n\n\t// Setup redis.\n\tconst redisInstance = new RedisService(configurationInstance.redisURL);\n\tContainer.set(RedisService, redisInstance);\n\n\t// Setup secret\n\tconst secretInstance = new SecretManagerService(configurationInstance, redisInstance);\n\tContainer.set(SecretManagerService, secretInstance);\n\n\t// Setup BullMQ\n\tconst bullMQInstance = new BullMQService(redisInstance);\n\tContainer.set(BullMQService, bullMQInstance);\n\n\tconst mongoUrl = options?.mongoDbUrl ? options.mongoDbUrl : await getLibraries().getSecretsService().getKey('MONGO_URL');\t\n\n\tawait mongoose.connect(mongoUrl!, {\n\t\tdbName: `lyxa-${options!.environment}-${options!.tenet}`,\n\t\tmaxPoolSize: 20,\n\t\tminPoolSize: 4,\n\t\tmaxIdleTimeMS: 30000,\n\t\twaitQueueTimeoutMS: 10000,\n\t\tretryWrites: true,\n\t\tw: 1,\n\t\treadPreference: 'primary',\n \treadConcern: { level: 'local' },\n\t\tserverSelectionTimeoutMS: 5000,\n\t\theartbeatFrequencyMS: 10000,\n\t\tbufferCommands: false,\n\t\tcompressors: ['zlib'] // Reduces network traffic\n\t});\n\tmongoose.set(\n\t\t'debug',\n\t\toptions?.mongooseDebug !== undefined\n\t\t\t? options?.mongooseDebug\n\t\t\t: getLibraries().getConfigurationService().options.environment == EnvironmentConfigurationType.DEV\n\t);\n\n\tawait initGlobalConnection(mongoUrl!, options!.environment);\n\n\t// Setup logger\n\tconst loggerInstance = new LyxaLogger(options!.instanceType!, mongoUrl!);\n\tContainer.set(LyxaLogger, loggerInstance);\n\n\t// Setup firebase\n\tconst firebaseInstance = new FirebaseService(configurationInstance!);\n\tContainer.set(FirebaseService, firebaseInstance);\n\n\t// Setup microservice dispatcher\n\tconst microserviceDispatcherInstance = new MicroServiceDispatcher(secretInstance);\n\tContainer.set(MicroServiceDispatcher, microserviceDispatcherInstance);\n\n\t// Setup twilio\n\tconst twilioServiceInstance = new TwilioService();\n\tContainer.set(TwilioService, twilioServiceInstance);\n\n\t// Setup map service\n\tconst googleMapsKey = await getLibraries().getSecretsService().getKey('GOOGLE_MAPS_API_KEY');\n\tconst googleMapService = new GoogleMapsService(googleMapsKey as string);\n\tconst mapServiceInstance = new MapService(googleMapService);\n\tContainer.set(MapService, mapServiceInstance);\n\n\t// Setup cash settlement service\n\tconst bobUsername = await getLibraries().getSecretsService().getKey('BOB_USER_NAME');\n\tconst bobPassword = await getLibraries().getSecretsService().getKey('BOB_PASSWORD');\n\tconst bobURL = await getLibraries().getSecretsService().getKey('BOB_URL');\n\n\tconst bobService = new BOBService({\n\t\tBOB_USER_NAME: bobUsername,\n\t\tBOB_PASSWORD: bobPassword,\n\t\tBOB_URL: bobURL,\n\t} as BOBSecrets);\n\tconst cashSettlementServiceInstance = new CashSettlementService(bobService);\n\tContainer.set(CashSettlementService, cashSettlementServiceInstance);\n\n\tconst settingsServiceInstance = new CachedSettingsService(redisInstance);\n\tContainer.set(CachedSettingsService, settingsServiceInstance);\n\n\t// Setup fcm service\n\tconst firebaseService = getLibraries().getFirebaseService();\n\tconst fcmServiceInstance = new FCMService(firebaseService.superApp);\n\tconst fcmServiceInstanceForUser = new FCMService(firebaseService.userApp);\n\tconst fcmServiceInstanceForRider = new FCMService(firebaseService.riderApp);\n\tconst fcmServiceInstanceForShop = new FCMService(firebaseService.shopApp);\n\tContainer.set(FCMService, fcmServiceInstance);\n\tContainer.set(FCMServiceForUser, fcmServiceInstanceForUser);\n\tContainer.set(FCMServiceForRider, fcmServiceInstanceForRider);\n\tContainer.set(FCMServiceForShop, fcmServiceInstanceForShop);\n\n\tconsole.log('Initialized everything');\n\n\tawait initEventBus('amqps://adlvedna:oY_X4qH1AphtB83YNcf9DHMO3UVmX23s@dog.lmq.cloudamqp.com/adlvedna');\n\tconst allSubscriptions = SubscriptionRegistry.getAllSubscriptions();\n\n\tconst instantiatedServices = new Map<Function, any>();\n\n\tfor (const { eventId, targetConstructor, methodName } of allSubscriptions) {\n\t\tlet instance = instantiatedServices.get(targetConstructor);\n\t\tif (!instance) {\n\t\t\tinstance = Container.get(targetConstructor as any);\n\t\t\tinstantiatedServices.set(targetConstructor, instance);\n\t\t}\n\n\t\tawait subscribeToEvent(eventId, async payload => {\n\t\t\treturn instance[methodName](payload);\n\t\t});\n\t}\n}\n\nexport function getLibraries(): LibraryManager {\n\treturn Container.get(LibraryManager);\n}\n"]}
|
|
@@ -11,7 +11,7 @@ import { MapService } from './map';
|
|
|
11
11
|
import { CachedSettingsService } from './cache/settings';
|
|
12
12
|
import { FCMService } from './firebase/fcmService';
|
|
13
13
|
import { BullMQService } from './bullmq/bull-mq-service';
|
|
14
|
-
import {
|
|
14
|
+
import { CashSettlementService } from './cash-settlement';
|
|
15
15
|
export declare class LibraryManager {
|
|
16
16
|
getLogger(): LyxaLogger;
|
|
17
17
|
getMicroServiceDispatcher(): MicroServiceDispatcher;
|
|
@@ -31,5 +31,4 @@ export declare class LibraryManager {
|
|
|
31
31
|
getFCMServiceForShop(): FCMService;
|
|
32
32
|
getBullMQService(): BullMQService;
|
|
33
33
|
getCashSettlementService(): CashSettlementService;
|
|
34
|
-
getBOBService(): BOBService;
|
|
35
34
|
}
|
package/dist/libraries/index.js
CHANGED
|
@@ -77,9 +77,6 @@ let LibraryManager = class LibraryManager {
|
|
|
77
77
|
getCashSettlementService() {
|
|
78
78
|
return typedi_1.Container.get(cash_settlement_1.CashSettlementService);
|
|
79
79
|
}
|
|
80
|
-
getBOBService() {
|
|
81
|
-
return typedi_1.Container.get(cash_settlement_1.BOBService);
|
|
82
|
-
}
|
|
83
80
|
};
|
|
84
81
|
exports.LibraryManager = LibraryManager;
|
|
85
82
|
exports.LibraryManager = LibraryManager = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAA4C;AAC5C,qCAAyC;AACzC,qCAAsC;AACtC,6CAAsD;AACtD,uCAAiD;AACjD,mCAAuC;AACvC,mDAAuD;AACvD,qCAAyC;AACzC,yCAA6C;AAC7C,kDAAoD;AACpD,+BAAmC;AACnC,+CAAyD;AACzD,sDAA6G;AAC7G,8DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAA4C;AAC5C,qCAAyC;AACzC,qCAAsC;AACtC,6CAAsD;AACtD,uCAAiD;AACjD,mCAAuC;AACvC,mDAAuD;AACvD,qCAAyC;AACzC,yCAA6C;AAC7C,kDAAoD;AACpD,+BAAmC;AACnC,+CAAyD;AACzD,sDAA6G;AAC7G,8DAAyD;AACzD,uDAA0D;AAGnD,IAAM,cAAc,GAApB,MAAM,cAAc;IACnB,SAAS;QACf,OAAO,kBAAS,CAAC,GAAG,CAAC,mBAAU,CAAC,CAAC;IAClC,CAAC;IACM,yBAAyB;QAC/B,OAAO,kBAAS,CAAC,GAAG,CAAC,mCAAsB,CAAC,CAAC;IAC9C,CAAC;IACM,gBAAgB;QACtB,OAAO,kBAAS,CAAC,GAAG,CAAC,sBAAa,CAAC,CAAC;IACrC,CAAC;IACM,iBAAiB;QACvB,OAAO,kBAAS,CAAC,GAAG,CAAC,8BAAoB,CAAC,CAAC;IAC5C,CAAC;IACM,eAAe;QACrB,OAAO,kBAAS,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;IACpC,CAAC;IACM,uBAAuB;QAC7B,OAAO,kBAAS,CAAC,GAAG,CAAC,oCAAoB,CAAC,CAAC;IAC5C,CAAC;IACM,kBAAkB;QACxB,OAAO,kBAAS,CAAC,GAAG,CAAC,0BAAe,CAAC,CAAC;IACvC,CAAC;IACM,sBAAsB;QAC5B,OAAO,kBAAS,CAAC,GAAG,CAAC,4BAAe,CAAC,CAAC;IACvC,CAAC;IACM,sBAAsB;QAC5B,OAAO,IAAI,sBAAa,EAAE,CAAC;IAC5B,CAAC;IACM,qBAAqB;QAC3B,OAAO,IAAI,sBAAa,CAAC,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IACM,aAAa;QACnB,OAAO,kBAAS,CAAC,GAAG,CAAC,gBAAU,CAAC,CAAC;IAClC,CAAC;IACM,wBAAwB;QAC9B,OAAO,kBAAS,CAAC,GAAG,CAAC,gCAAqB,CAAC,CAAC;IAC7C,CAAC;IACM,aAAa;QACnB,OAAO,kBAAS,CAAC,GAAG,CAAC,uBAAU,CAAC,CAAC;IAClC,CAAC;IACM,oBAAoB;QAC1B,OAAO,kBAAS,CAAC,GAAG,CAAC,8BAAiB,CAAC,CAAC;IACzC,CAAC;IACM,qBAAqB;QAC3B,OAAO,kBAAS,CAAC,GAAG,CAAC,+BAAkB,CAAC,CAAC;IAC1C,CAAC;IACM,oBAAoB;QAC1B,OAAO,kBAAS,CAAC,GAAG,CAAC,8BAAiB,CAAC,CAAC;IACzC,CAAC;IACM,gBAAgB;QACtB,OAAO,kBAAS,CAAC,GAAG,CAAC,+BAAa,CAAC,CAAC;IACrC,CAAC;IACM,wBAAwB;QAC9B,OAAO,kBAAS,CAAC,GAAG,CAAC,uCAAqB,CAAC,CAAC;IAC7C,CAAC;CACD,CAAA;AAvDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,gBAAO,GAAE;GACG,cAAc,CAuD1B","sourcesContent":["import { Container, Service } from 'typedi';\nimport { TwilioService } from './twilio';\nimport { LyxaLogger } from './logger';\nimport { MicroServiceDispatcher } from './dispatcher';\nimport { SecretManagerService } from './secrets';\nimport { RedisService } from './redis';\nimport { ConfigurationService } from './configuration';\nimport { UploadService } from './upload';\nimport { FirebaseService } from './firebase';\nimport { TokenRepository } from './auth/repository';\nimport { MapService } from './map';\nimport { CachedSettingsService } from './cache/settings';\nimport { FCMService, FCMServiceForRider, FCMServiceForShop, FCMServiceForUser } from './firebase/fcmService';\nimport { BullMQService } from './bullmq/bull-mq-service';\nimport { CashSettlementService } from './cash-settlement';\n\n@Service()\nexport class LibraryManager {\n\tpublic getLogger(): LyxaLogger {\n\t\treturn Container.get(LyxaLogger);\n\t}\n\tpublic getMicroServiceDispatcher(): MicroServiceDispatcher {\n\t\treturn Container.get(MicroServiceDispatcher);\n\t}\n\tpublic getTwilioService(): TwilioService {\n\t\treturn Container.get(TwilioService);\n\t}\n\tpublic getSecretsService(): SecretManagerService {\n\t\treturn Container.get(SecretManagerService);\n\t}\n\tpublic getRedisService(): RedisService {\n\t\treturn Container.get(RedisService);\n\t}\n\tpublic getConfigurationService(): ConfigurationService {\n\t\treturn Container.get(ConfigurationService);\n\t}\n\tpublic getFirebaseService(): FirebaseService {\n\t\treturn Container.get(FirebaseService);\n\t}\n\tpublic getAuthTokenRepository(): TokenRepository {\n\t\treturn Container.get(TokenRepository);\n\t}\n\tpublic getGlobalUploadService(): UploadService {\n\t\treturn new UploadService();\n\t}\n\tpublic getTenetUploadService(): UploadService {\n\t\treturn new UploadService('lyxa-' + this.getConfigurationService().options.tenet);\n\t}\n\tpublic getMapService(): MapService {\n\t\treturn Container.get(MapService);\n\t}\n\tpublic getCachedSettingsService(): CachedSettingsService {\n\t\treturn Container.get(CachedSettingsService);\n\t}\n\tpublic getFCMService(): FCMService {\n\t\treturn Container.get(FCMService);\n\t}\n\tpublic getFCMServiceForUser(): FCMService {\n\t\treturn Container.get(FCMServiceForUser);\n\t}\n\tpublic getFCMServiceForRider(): FCMService {\n\t\treturn Container.get(FCMServiceForRider);\n\t}\n\tpublic getFCMServiceForShop(): FCMService {\n\t\treturn Container.get(FCMServiceForShop);\n\t}\n\tpublic getBullMQService(): BullMQService {\n\t\treturn Container.get(BullMQService);\n\t}\n\tpublic getCashSettlementService(): CashSettlementService {\n\t\treturn Container.get(CashSettlementService);\n\t}\n}\n"]}
|
|
@@ -24,12 +24,10 @@ export declare class LineItem extends TimeStamps {
|
|
|
24
24
|
quantity?: number;
|
|
25
25
|
priceOption?: PriceOption;
|
|
26
26
|
priceBreakdown: OrderPriceBreakdown;
|
|
27
|
-
attributes?: LineItemAttribute[]
|
|
27
|
+
attributes?: LineItemAttribute[];
|
|
28
28
|
removedIngredients?: string[];
|
|
29
29
|
specialInstructions?: string;
|
|
30
30
|
calculationSnap?: Record<string, unknown>;
|
|
31
|
-
isAdjusted
|
|
32
|
-
isB1G1: boolean;
|
|
31
|
+
isAdjusted?: boolean;
|
|
33
32
|
adjustReason?: string;
|
|
34
|
-
lineItemHash: string;
|
|
35
33
|
}
|
|
@@ -41,9 +41,7 @@ let LineItem = class LineItem extends defaultClasses_1.TimeStamps {
|
|
|
41
41
|
specialInstructions;
|
|
42
42
|
calculationSnap;
|
|
43
43
|
isAdjusted;
|
|
44
|
-
isB1G1;
|
|
45
44
|
adjustReason;
|
|
46
|
-
lineItemHash;
|
|
47
45
|
};
|
|
48
46
|
exports.LineItem = LineItem;
|
|
49
47
|
__decorate([
|
|
@@ -95,7 +93,7 @@ __decorate([
|
|
|
95
93
|
__metadata("design:type", price_breakdown_model_1.OrderPriceBreakdown)
|
|
96
94
|
], LineItem.prototype, "priceBreakdown", void 0);
|
|
97
95
|
__decorate([
|
|
98
|
-
(0, typegoose_1.prop)({ type: () => [
|
|
96
|
+
(0, typegoose_1.prop)({ type: () => [line_item_attribute_model_1.LineItemAttribute], default: [] }),
|
|
99
97
|
__metadata("design:type", Array)
|
|
100
98
|
], LineItem.prototype, "attributes", void 0);
|
|
101
99
|
__decorate([
|
|
@@ -114,18 +112,10 @@ __decorate([
|
|
|
114
112
|
(0, typegoose_1.prop)({ type: Boolean, default: false }),
|
|
115
113
|
__metadata("design:type", Boolean)
|
|
116
114
|
], LineItem.prototype, "isAdjusted", void 0);
|
|
117
|
-
__decorate([
|
|
118
|
-
(0, typegoose_1.prop)({ type: Boolean, default: false }),
|
|
119
|
-
__metadata("design:type", Boolean)
|
|
120
|
-
], LineItem.prototype, "isB1G1", void 0);
|
|
121
115
|
__decorate([
|
|
122
116
|
(0, typegoose_1.prop)({ type: String }),
|
|
123
117
|
__metadata("design:type", String)
|
|
124
118
|
], LineItem.prototype, "adjustReason", void 0);
|
|
125
|
-
__decorate([
|
|
126
|
-
(0, typegoose_1.prop)({ type: String, select: false }),
|
|
127
|
-
__metadata("design:type", String)
|
|
128
|
-
], LineItem.prototype, "lineItemHash", void 0);
|
|
129
119
|
exports.LineItem = LineItem = __decorate([
|
|
130
120
|
(0, typegoose_1.modelOptions)({
|
|
131
121
|
schemaOptions: {
|
|
@@ -140,7 +130,6 @@ exports.LineItem = LineItem = __decorate([
|
|
|
140
130
|
(0, typegoose_1.index)({ cart: 1 }),
|
|
141
131
|
(0, typegoose_1.index)({ cart: 1, user: 1 }),
|
|
142
132
|
(0, typegoose_1.index)({ product: 1 }),
|
|
143
|
-
(0, typegoose_1.index)({ lineItemHash: 1 }),
|
|
144
133
|
(0, typegoose_1.index)({ shop: 1, deletedAt: 1 }),
|
|
145
134
|
(0, typegoose_1.index)({ shop: 1, createdAt: 1 })
|
|
146
135
|
], LineItem);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-item.model.js","sourceRoot":"/","sources":["libraries/mongo/models/line-item.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0F;AAC1F,4EAAqE;AACrE,6CAAoC;AACpC,mDAA0C;AAC1C,4EAAuE;AACvE,kDAAgE;AAChE,oFAAyE;AACzE,6CAAoC;AACpC,6CAAoC;AACpC,iDAAwC;AACxC,qDAA4C;AAC5C,uDAA8C;AAC9C,sEAA4D;
|
|
1
|
+
{"version":3,"file":"line-item.model.js","sourceRoot":"/","sources":["libraries/mongo/models/line-item.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { prop, Ref, index, modelOptions, Severity, mongoose } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Cart } from './cart.model';\nimport { Product } from './product.model';\nimport { OrderPriceBreakdown } from './embedded/price-breakdown.model';\nimport { ItemType, PriceOption } from '../../../utilities/enum';\nimport { LineItemAttribute } from './embedded/line-item-attribute.model';\nimport { User } from './user.model';\nimport { Shop } from './shop.model';\nimport { Parent } from './parent.model';\nimport { Category } from './category.model';\nimport { Marketing } from './marketing.model';\nimport { ProductSnap } from './embedded/product-snap.model';\n\n/**\n * LineItem model - Represents individual items in a cart\n */\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'lineItems',\n\t\ttoJSON: { virtuals: true },\n\t\ttoObject: { virtuals: true },\n\t},\n\toptions: {\n\t\tallowMixed: Severity.ALLOW,\n\t},\n})\n@index({ cart: 1 })\n@index({ cart: 1, user: 1 })\n@index({ product: 1 })\n@index({ shop: 1, deletedAt: 1 })\n@index({ shop: 1, createdAt: 1 })\nexport class LineItem extends TimeStamps {\n\t@prop({ required: true, ref: () => Cart })\n\tpublic cart!: Ref<Cart>;\n\n\t@prop({ required: true, ref: () => User })\n\tpublic user!: Ref<User>;\n\n\t@prop({ required: true, ref: () => Shop })\n\tpublic shop!: Ref<Shop>;\n\n\t@prop({ required: true, ref: () => Parent })\n\tpublic parent: Ref<Parent>;\n\n\t@prop({ required: true, type: String, enum: ItemType })\n\tpublic itemType!: ItemType;\n\n\t@prop({ required: true, ref: () => Category })\n\tpublic category!: Ref<Category>;\n\n\t@prop({ required: true, ref: () => Product })\n\tpublic product!: Ref<Product>;\n\n\t@prop({ type: ProductSnap, _id: false })\n\tpublic productSnap?: ProductSnap;\n\n\t@prop({ ref: () => Marketing, default: [] })\n\tpublic marketings?: Ref<Marketing>[];\n\n\t@prop({ min: 1, default: 1 })\n\tpublic quantity?: number;\n\n\t@prop({ type: String, enum: PriceOption, default: PriceOption.SINGLE_PRICE })\n\tpublic priceOption?: PriceOption;\n\n\t@prop({ required: true, type: OrderPriceBreakdown })\n\tpublic priceBreakdown: OrderPriceBreakdown;\n\n\t@prop({ type: () => [LineItemAttribute], default: [] })\n\tpublic attributes?: LineItemAttribute[];\n\n\t@prop({ type: () => [String], default: [] })\n\tpublic removedIngredients?: string[];\n\n\t@prop({ type: String })\n\tpublic specialInstructions?: string;\n\n\t@prop({ type: mongoose.Schema.Types.Mixed })\n\tpublic calculationSnap?: Record<string, unknown>;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic isAdjusted?: boolean;\n\n\t@prop({ type: String })\n\tpublic adjustReason?: string;\n}\n"]}
|
|
@@ -5,13 +5,12 @@ import { Vendor } from './vendor.model';
|
|
|
5
5
|
import { ServiceOrderRecurrencePattern, ServiceCartStatus } from '../../../utilities/enum';
|
|
6
6
|
import { ServiceLineItem } from './service-line-item.model';
|
|
7
7
|
import { UserAddress } from './shared/address.model';
|
|
8
|
-
import { StartEndTime } from './shared/work-hour.model';
|
|
9
8
|
export declare class ServiceCart extends TimeStamps {
|
|
10
9
|
user: Ref<User>;
|
|
11
10
|
vendor: Ref<Vendor>;
|
|
12
11
|
serviceLocation?: UserAddress;
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
timeFrom: Date;
|
|
13
|
+
timeTo: Date;
|
|
15
14
|
recurrencePattern?: ServiceOrderRecurrencePattern;
|
|
16
15
|
status: ServiceCartStatus;
|
|
17
16
|
serviceLineItems: Ref<ServiceLineItem>[];
|
|
@@ -17,13 +17,12 @@ const vendor_model_1 = require("./vendor.model");
|
|
|
17
17
|
const enum_1 = require("../../../utilities/enum");
|
|
18
18
|
const service_line_item_model_1 = require("./service-line-item.model");
|
|
19
19
|
const address_model_1 = require("./shared/address.model");
|
|
20
|
-
const work_hour_model_1 = require("./shared/work-hour.model");
|
|
21
20
|
let ServiceCart = class ServiceCart extends defaultClasses_1.TimeStamps {
|
|
22
21
|
user;
|
|
23
22
|
vendor;
|
|
24
23
|
serviceLocation;
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
timeFrom;
|
|
25
|
+
timeTo;
|
|
27
26
|
recurrencePattern;
|
|
28
27
|
status;
|
|
29
28
|
serviceLineItems;
|
|
@@ -44,11 +43,11 @@ __decorate([
|
|
|
44
43
|
__decorate([
|
|
45
44
|
(0, typegoose_1.prop)({ required: true }),
|
|
46
45
|
__metadata("design:type", Date)
|
|
47
|
-
], ServiceCart.prototype, "
|
|
46
|
+
], ServiceCart.prototype, "timeFrom", void 0);
|
|
48
47
|
__decorate([
|
|
49
48
|
(0, typegoose_1.prop)({ required: true }),
|
|
50
|
-
__metadata("design:type",
|
|
51
|
-
], ServiceCart.prototype, "
|
|
49
|
+
__metadata("design:type", Date)
|
|
50
|
+
], ServiceCart.prototype, "timeTo", void 0);
|
|
52
51
|
__decorate([
|
|
53
52
|
(0, typegoose_1.prop)({ enum: enum_1.ServiceOrderRecurrencePattern, default: enum_1.ServiceOrderRecurrencePattern.ONETIME }),
|
|
54
53
|
__metadata("design:type", String)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-cart.model.js","sourceRoot":"/","sources":["libraries/mongo/models/service-cart.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAgF;AAChF,4EAAqE;AACrE,6CAAoC;AACpC,iDAAwC;AACxC,kDAA2F;AAC3F,uEAA4D;AAC5D,0DAAqD;
|
|
1
|
+
{"version":3,"file":"service-cart.model.js","sourceRoot":"/","sources":["libraries/mongo/models/service-cart.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAgF;AAChF,4EAAqE;AACrE,6CAAoC;AACpC,iDAAwC;AACxC,kDAA2F;AAC3F,uEAA4D;AAC5D,0DAAqD;AAyB9C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,2BAAU;IAEnC,IAAI,CAAa;IAGjB,MAAM,CAAe;IAGrB,eAAe,CAAe;IAG9B,QAAQ,CAAO;IAGf,MAAM,CAAO;IAIb,iBAAiB,CAAgC;IAQjD,MAAM,CAAqB;IAO3B,gBAAgB,CAAyB;CAChD,CAAA;AAlCY,kCAAW;AAEhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;yCAClB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAM,EAAE,CAAC;;2CAChB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,2BAAW,EAAE,CAAC;8BACpB,2BAAW;oDAAC;AAG9B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACP,IAAI;6CAAA;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACT,IAAI;2CAAA;AAIb;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,oCAA6B,EAAE,OAAO,EAAE,oCAA6B,CAAC,OAAO,EAAE,CAAC;;sDACtC;AAQjD;IANN,IAAA,gBAAI,EAAC;QACL,IAAI,EAAE,wBAAiB;QACvB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,wBAAiB,CAAC,MAAM;QACjC,QAAQ,EAAE,IAAI;KACd,CAAC;;2CACgC;AAO3B;IALN,IAAA,gBAAI,EAAC;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,yCAAe;QAC1B,YAAY,EAAE,MAAM;QACpB,UAAU,EAAE,KAAK;KACjB,CAAC;;qDAC8C;sBAjCpC,WAAW;IAvBvB,IAAA,wBAAY,EAAC;QACb,aAAa,EAAE;YACd,UAAU,EAAE,cAAc;YAC1B,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1B,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5B;QACD,OAAO,EAAE;YACR,UAAU,EAAE,oBAAQ,CAAC,KAAK;SAC1B;KACD,CAAC;IACD,IAAA,iBAAK,EAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClB,IAAA,iBAAK,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACpB,IAAA,iBAAK,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACpB,IAAA,iBAAK,EACL,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EACtB;QACC,MAAM,EAAE,IAAI;QACZ,uBAAuB,EAAE;YACxB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,wBAAiB,CAAC,MAAM,EAAE,wBAAiB,CAAC,MAAM,CAAC,EAAE;YACrE,SAAS,EAAE,IAAI;SACf;KACD,CACD;GACY,WAAW,CAkCvB","sourcesContent":["import { Index, modelOptions, prop, Ref, Severity } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { User } from './user.model';\nimport { Vendor } from './vendor.model';\nimport { ServiceOrderRecurrencePattern, ServiceCartStatus } from '../../../utilities/enum';\nimport { ServiceLineItem } from './service-line-item.model';\nimport { UserAddress } from './shared/address.model';\n\n@modelOptions({\n\tschemaOptions: {\n\t\tcollection: 'serviceCarts',\n\t\ttoJSON: { virtuals: true },\n\t\ttoObject: { virtuals: true },\n\t},\n\toptions: {\n\t\tallowMixed: Severity.ALLOW,\n\t},\n})\n@Index({ user: 1 })\n@Index({ vendor: 1 })\n@Index({ status: 1 })\n@Index(\n\t{ user: 1, vendor: 1 },\n\t{\n\t\tunique: true,\n\t\tpartialFilterExpression: {\n\t\t\tstatus: { $in: [ServiceCartStatus.ACTIVE, ServiceCartStatus.LOCKED] },\n\t\t\tdeletedAt: null,\n\t\t},\n\t}\n)\nexport class ServiceCart extends TimeStamps {\n\t@prop({ required: true, ref: () => User })\n\tpublic user!: Ref<User>;\n\n\t@prop({ required: true, ref: () => Vendor })\n\tpublic vendor!: Ref<Vendor>;\n\n\t@prop({ required: false, type: UserAddress })\n\tpublic serviceLocation?: UserAddress;\n\n\t@prop({ required: true })\n\tpublic timeFrom!: Date\n\n\t@prop({ required: true })\n\tpublic timeTo!: Date\n\n\n\t@prop({ enum: ServiceOrderRecurrencePattern, default: ServiceOrderRecurrencePattern.ONETIME })\n\tpublic recurrencePattern?: ServiceOrderRecurrencePattern\n\n\t@prop({\n\t\tenum: ServiceCartStatus,\n\t\ttype: String,\n\t\tdefault: ServiceCartStatus.ACTIVE,\n\t\trequired: true,\n\t})\n\tpublic status!: ServiceCartStatus;\n\n\t@prop({\n\t\tref: () => ServiceLineItem,\n\t\tforeignField: 'cart',\n\t\tlocalField: '_id',\n\t})\n\tpublic serviceLineItems: Ref<ServiceLineItem>[];\n}\n"]}
|
|
@@ -45,7 +45,7 @@ __decorate([
|
|
|
45
45
|
], UserAppSectionSetting.prototype, "sortingOrder", void 0);
|
|
46
46
|
exports.UserAppSectionSetting = UserAppSectionSetting = __decorate([
|
|
47
47
|
(0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'userAppSectionSetting' } }),
|
|
48
|
-
(0, typegoose_1.Index)({ itemType: 1, section: 1 }, { unique: true
|
|
48
|
+
(0, typegoose_1.Index)({ itemType: 1, section: 1 }, { unique: true }),
|
|
49
49
|
(0, typegoose_1.pre)('save', async function (next) {
|
|
50
50
|
await sortingOrderHooks_1.handlePreSaveForSortingWithStatus.call(this, _1.UserAppSectionSettingModel, { itemType: this.itemType });
|
|
51
51
|
next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-app-section-setting.model.js","sourceRoot":"/","sources":["libraries/mongo/models/user-app-section-setting.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsE;AACtE,4EAAqE;AACrE,kDAA6F;AAC7F,wBAA+C;AAE/C,sEAGwC;AAiBjC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,2BAAU;IAE7C,QAAQ,CAA0B;IAGlC,OAAO,CAAsB;IAG7B,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,YAAY,CAAU;CAC7B,CAAA;AAfY,sDAAqB;AAE1B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAAsB,EAAE,CAAC;;uDAC5B;AAGlC;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAkB,EAAE,CAAC;;sDAC7B;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;qDACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2DACM;gCAdjB,qBAAqB;IAfjC,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAE,CAAC;IACxE,IAAA,iBAAK,EAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"user-app-section-setting.model.js","sourceRoot":"/","sources":["libraries/mongo/models/user-app-section-setting.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsE;AACtE,4EAAqE;AACrE,kDAA6F;AAC7F,wBAA+C;AAE/C,sEAGwC;AAiBjC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,2BAAU;IAE7C,QAAQ,CAA0B;IAGlC,OAAO,CAAsB;IAG7B,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,YAAY,CAAU;CAC7B,CAAA;AAfY,sDAAqB;AAE1B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAAsB,EAAE,CAAC;;uDAC5B;AAGlC;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAkB,EAAE,CAAC;;sDAC7B;AAG7B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;qDACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2DACM;gCAdjB,qBAAqB;IAfjC,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAE,CAAC;IACxE,IAAA,iBAAK,EAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpD,IAAA,eAAG,EAAwB,MAAM,EAAE,KAAK,WAAW,IAAI;QACvD,MAAM,qDAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5G,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EACH,kBAAkB,EAClB,KAAK,WAAoD,IAAI;QAC5D,MAAM,uDAAmC,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA0B,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAE/F,IAAI,EAAE,CAAC;IACR,CAAC,CACD;GACY,qBAAqB,CAejC","sourcesContent":["import { Index, modelOptions, pre, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Status, UserAppSectionItemType, UserAppSectionType } from '../../../utilities/enum';\nimport { UserAppSectionSettingModel } from '.';\nimport { Query } from 'mongoose';\nimport {\n\thandlePreSaveForSortingWithStatus,\n\thandlePreUpdateForSortingWithStatus,\n} from '../utilities/sortingOrderHooks';\n\n@modelOptions({ schemaOptions: { collection: 'userAppSectionSetting' } })\n@Index({ itemType: 1, section: 1 }, { unique: true })\n@pre<UserAppSectionSetting>('save', async function (next) {\n\tawait handlePreSaveForSortingWithStatus.call(this, UserAppSectionSettingModel, { itemType: this.itemType });\n\n\tnext();\n})\n@pre<UserAppSectionSetting>(\n\t'findOneAndUpdate',\n\tasync function (this: Query<any, UserAppSectionSetting>, next) {\n\t\tawait handlePreUpdateForSortingWithStatus.call(this, UserAppSectionSettingModel, ['itemType']);\n\n\t\tnext();\n\t}\n)\nexport class UserAppSectionSetting extends TimeStamps {\n\t@prop({ required: true, type: String, enum: UserAppSectionItemType })\n\tpublic itemType!: UserAppSectionItemType;\n\n\t@prop({ required: true, type: String, enum: UserAppSectionType })\n\tpublic section!: UserAppSectionType;\n\n\t@prop({ required: true, type: String })\n\tpublic alias!: string;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n\n\t@prop({ type: Number })\n\tpublic sortingOrder?: number;\n}\n"]}
|
|
@@ -31,7 +31,7 @@ export declare class User extends TimeStamps {
|
|
|
31
31
|
isPhoneVerified?: boolean;
|
|
32
32
|
onlineStatus?: OnlineStatus;
|
|
33
33
|
fcmTokens?: string[];
|
|
34
|
-
static updateWallet(this: ReturnModelType<typeof User>, userId: string, amount: number): Promise<(import("mongoose").Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, User, import("@typegoose/typegoose/lib/types").BeAnyObject
|
|
34
|
+
static updateWallet(this: ReturnModelType<typeof User>, userId: string, amount: number): Promise<(import("mongoose").Document<unknown, import("@typegoose/typegoose/lib/types").BeAnObject, User, import("@typegoose/typegoose/lib/types").BeAnyObject> & Omit<User & {
|
|
35
35
|
_id: import("mongoose").Types.ObjectId;
|
|
36
36
|
} & {
|
|
37
37
|
__v: number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEvent } from '../event/BaseEvent';
|
|
2
2
|
export type SocketEventParams<TData = any> = {
|
|
3
3
|
sockets: string[];
|
|
4
|
-
|
|
4
|
+
socketEmit: string;
|
|
5
5
|
data: TData;
|
|
6
6
|
};
|
|
7
7
|
export declare class SocketEmitEvent<TPayload = any> extends BaseEvent<SocketEventParams<TPayload>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketEmitEvent.js","sourceRoot":"/","sources":["libraries/socket/SocketEmitEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA+C;AAC/C,2DAA6D;AAatD,IAAM,eAAe,GAArB,MAAM,eAAgC,SAAQ,qBAAsC;IAC1F,YAAY,KAAa,EAAE,UAAkB,EAAE,UAAuC;QACrF,KAAK,CAAC,GAAG,KAAK,IAAI,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;CACD,CAAA;AAJY,0CAAe;0BAAf,eAAe;IAL3B,IAAA,wBAAa,EAAC,aAAa,EAAE;QAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1C,CAAC;;GACW,eAAe,CAI3B","sourcesContent":["import { BaseEvent } from '../event/BaseEvent';\nimport { EventMetadata } from '../event/decorators/metadata';\n\nexport type SocketEventParams<TData = any> = {\n\tsockets: string[];\n\
|
|
1
|
+
{"version":3,"file":"SocketEmitEvent.js","sourceRoot":"/","sources":["libraries/socket/SocketEmitEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA+C;AAC/C,2DAA6D;AAatD,IAAM,eAAe,GAArB,MAAM,eAAgC,SAAQ,qBAAsC;IAC1F,YAAY,KAAa,EAAE,UAAkB,EAAE,UAAuC;QACrF,KAAK,CAAC,GAAG,KAAK,IAAI,UAAU,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;CACD,CAAA;AAJY,0CAAe;0BAAf,eAAe;IAL3B,IAAA,wBAAa,EAAC,aAAa,EAAE;QAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1C,CAAC;;GACW,eAAe,CAI3B","sourcesContent":["import { BaseEvent } from '../event/BaseEvent';\nimport { EventMetadata } from '../event/decorators/metadata';\n\nexport type SocketEventParams<TData = any> = {\n\tsockets: string[];\n\tsocketEmit: string;\n\tdata: TData;\n};\n\n@EventMetadata('socket.emit', [\n\t{ name: 'sockets', type: 'array' },\n\t{ name: 'data', type: 'object' },\n\t{ name: 'socketEmitType', type: 'string' },\n])\nexport class SocketEmitEvent<TPayload = any> extends BaseEvent<SocketEventParams<TPayload>> {\n\tconstructor(queue: string, instanceId: string, parameters: SocketEventParams<TPayload>) {\n\t\tsuper(`${queue}.${instanceId}`, parameters);\n\t}\n}\n"]}
|
|
@@ -15,5 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./SocketEmitEvent"), exports);
|
|
18
|
-
__exportStar(require("./socket
|
|
18
|
+
__exportStar(require("./socket.utils"), exports);
|
|
19
|
+
__exportStar(require("./socket.types"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/socket/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,iDAA+B","sourcesContent":["export * from './SocketEmitEvent';\nexport * from './socket
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/socket/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,iDAA+B;AAC/B,iDAA+B","sourcesContent":["export * from './SocketEmitEvent';\nexport * from './socket.utils';\nexport * from './socket.types';\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SocketEmits, SocketSubscriptionType } from '../../utilities/enum';
|
|
2
|
+
export type SocketSubscriptionIdentifiersMap = {
|
|
3
|
+
[SocketSubscriptionType.ON_CHATROOM]: {
|
|
4
|
+
chatroomId: string;
|
|
5
|
+
};
|
|
6
|
+
[SocketSubscriptionType.ON_CHATLIST]: {};
|
|
7
|
+
};
|
|
8
|
+
export type SocketEmitMap = {
|
|
9
|
+
[SocketSubscriptionType.ON_CHATROOM]: SocketEmits.MESSAGE_RECEIVE;
|
|
10
|
+
};
|
|
11
|
+
export type SocketPayloadMap = {
|
|
12
|
+
[SocketEmits.MESSAGE_RECEIVE]: {
|
|
13
|
+
_id: string;
|
|
14
|
+
senderId: string;
|
|
15
|
+
content: string;
|
|
16
|
+
chatroomId: string;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.types.js","sourceRoot":"/","sources":["libraries/socket/socket.types.ts"],"names":[],"mappings":";;AAAA,+CAA2E","sourcesContent":["import { SocketEmits, SocketSubscriptionType } from '../../utilities/enum';\n\nexport type SocketSubscriptionIdentifiersMap = {\n\t[SocketSubscriptionType.ON_CHATROOM]: { chatroomId: string };\n\t[SocketSubscriptionType.ON_CHATLIST]: {};\n};\n\nexport type SocketEmitMap = {\n\t[SocketSubscriptionType.ON_CHATROOM]: SocketEmits.MESSAGE_RECEIVE;\n};\n\nexport type SocketPayloadMap = {\n\t[SocketEmits.MESSAGE_RECEIVE]: {\n\t\t_id: string;\n\t\tsenderId: string;\n\t\tcontent: string;\n\t\tchatroomId: string;\n\t\tcreatedAt: string;\n\t};\n};\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SocketServiceQueue, SocketSubscriptionType } from '../../utilities/enum';
|
|
2
|
+
import { SocketEmitMap, SocketPayloadMap, SocketSubscriptionIdentifiersMap } from './socket.types';
|
|
3
|
+
export interface InstanceSockets {
|
|
4
|
+
instanceId: string;
|
|
5
|
+
socketIds: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function getInstanceSocketsMap(cacheKeys: string[]): Promise<InstanceSockets[]>;
|
|
8
|
+
export declare function publishToSockets<TSub extends keyof SocketEmitMap, TEmit extends SocketEmitMap[TSub] & keyof SocketPayloadMap>({ cacheKeys, data, socketEmit, socketQueue, }: {
|
|
9
|
+
cacheKeys: string[];
|
|
10
|
+
data: SocketPayloadMap[TEmit];
|
|
11
|
+
socketEmit: TEmit;
|
|
12
|
+
socketQueue: SocketServiceQueue;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
export declare function generateCacheKey<T extends SocketSubscriptionType>(userId: string | number, subscriptionType: T, identifiers: SocketSubscriptionIdentifiersMap[T]): string;
|
|
@@ -24,15 +24,15 @@ async function getInstanceSocketsMap(cacheKeys) {
|
|
|
24
24
|
socketIds: [...socketSet],
|
|
25
25
|
}));
|
|
26
26
|
}
|
|
27
|
-
async function publishToSockets({ cacheKeys, data,
|
|
27
|
+
async function publishToSockets({ cacheKeys, data, socketEmit, socketQueue, }) {
|
|
28
28
|
const recipients = await getInstanceSocketsMap(cacheKeys);
|
|
29
29
|
await Promise.all(recipients.map(({ instanceId, socketIds }) => {
|
|
30
30
|
const payload = {
|
|
31
31
|
data,
|
|
32
32
|
sockets: socketIds,
|
|
33
|
-
|
|
33
|
+
socketEmit: socketEmit,
|
|
34
34
|
};
|
|
35
|
-
const event = new SocketEmitEvent_1.SocketEmitEvent(
|
|
35
|
+
const event = new SocketEmitEvent_1.SocketEmitEvent(socketQueue, instanceId, payload);
|
|
36
36
|
return (0, event_1.publishEvent)(event);
|
|
37
37
|
}));
|
|
38
38
|
}
|
|
@@ -44,4 +44,4 @@ function generateCacheKey(userId, subscriptionType, identifiers) {
|
|
|
44
44
|
const serialized = `userId:${userId}|subscriptionType:${subscriptionType}|${serializedIdentifiers}`;
|
|
45
45
|
return (0, crypto_1.createHash)('sha256').update(serialized).digest('hex');
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=socket
|
|
47
|
+
//# sourceMappingURL=socket.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.utils.js","sourceRoot":"/","sources":["libraries/socket/socket.utils.ts"],"names":[],"mappings":";;AAYA,sDAuBC;AAED,4CA4BC;AAED,4CAaC;AAhFD,oCAAwC;AACxC,mCAAoC;AACpC,uDAAuE;AAEvE,uCAA2C;AAQpC,KAAK,UAAU,qBAAqB,CAAC,SAAmB;IAC9D,MAAM,WAAW,GAAgC,EAAE,CAAC;IAEpD,MAAM,KAAK,GAAG,IAAA,oBAAY,GAAE,CAAC,eAAe,EAAE,CAAC;IAE/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,QAAQ,YAAY,CAAC,CAAC;QAEvF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBAAE,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YAElE,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CACjD,YAAY,QAAQ,aAAa,UAAU,UAAU,CACrD,CAAC;YAEF,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,UAAU;QACV,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;KACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAGpC,EACD,SAAS,EACT,IAAI,EACJ,UAAU,EACV,WAAW,GAMX;IACA,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAE1D,MAAM,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAmC;YAC/C,IAAI;YACJ,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,UAAU;SACtB,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,iCAAe,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CACF,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAC/B,MAAuB,EACvB,gBAAmB,EACnB,WAAgD;IAEhD,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;SACxD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,MAAM,UAAU,GAAG,UAAU,MAAM,qBAAqB,gBAAgB,IAAI,qBAAqB,EAAE,CAAC;IAEpG,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC","sourcesContent":["import { publishEvent } from '../event';\nimport { createHash } from 'crypto';\nimport { SocketEmitEvent, SocketEventParams } from './SocketEmitEvent';\nimport { SocketEmits, SocketServiceQueue, SocketSubscriptionType } from '../../utilities/enum';\nimport { getLibraries } from '../../index';\nimport { SocketEmitMap, SocketPayloadMap, SocketSubscriptionIdentifiersMap } from './socket.types';\n\nexport interface InstanceSockets {\n\tinstanceId: string;\n\tsocketIds: string[];\n}\n\nexport async function getInstanceSocketsMap(cacheKeys: string[]): Promise<InstanceSockets[]> {\n\tconst instanceMap: Record<string, Set<string>> = {};\n\n\tconst redis = getLibraries().getRedisService();\n\n\tfor (const cacheKey of cacheKeys) {\n\t\tconst instanceIds = await redis.redisClient.smembers(`cacheKey:${cacheKey}:instances`);\n\n\t\tfor (const instanceId of instanceIds) {\n\t\t\tif (!instanceMap[instanceId]) instanceMap[instanceId] = new Set();\n\n\t\t\tconst socketIds = await redis.redisClient.smembers(\n\t\t\t\t`cacheKey:${cacheKey}:instance:${instanceId}:sockets`\n\t\t\t);\n\n\t\t\tsocketIds.forEach(id => instanceMap[instanceId].add(id));\n\t\t}\n\t}\n\n\treturn Object.entries(instanceMap).map(([instanceId, socketSet]) => ({\n\t\tinstanceId,\n\t\tsocketIds: [...socketSet],\n\t}));\n}\n\nexport async function publishToSockets<\n\tTSub extends keyof SocketEmitMap,\n\tTEmit extends SocketEmitMap[TSub] & keyof SocketPayloadMap,\n>({\n\tcacheKeys,\n\tdata,\n\tsocketEmit,\n\tsocketQueue,\n}: {\n\tcacheKeys: string[];\n\tdata: SocketPayloadMap[TEmit];\n\tsocketEmit: TEmit;\n\tsocketQueue: SocketServiceQueue;\n}) {\n\tconst recipients = await getInstanceSocketsMap(cacheKeys);\n\n\tawait Promise.all(\n\t\trecipients.map(({ instanceId, socketIds }) => {\n\t\t\tconst payload: SocketEventParams<typeof data> = {\n\t\t\t\tdata,\n\t\t\t\tsockets: socketIds,\n\t\t\t\tsocketEmit: socketEmit,\n\t\t\t};\n\n\t\t\tconst event = new SocketEmitEvent(socketQueue, instanceId, payload);\n\t\t\treturn publishEvent(event);\n\t\t})\n\t);\n}\n\nexport function generateCacheKey<T extends SocketSubscriptionType>(\n\tuserId: string | number,\n\tsubscriptionType: T,\n\tidentifiers: SocketSubscriptionIdentifiersMap[T]\n): string {\n\tconst serializedIdentifiers = Object.entries(identifiers)\n\t\t.sort(([keyA], [keyB]) => keyA.localeCompare(keyB))\n\t\t.map(([key, value]) => `${key}:${JSON.stringify(value)}`)\n\t\t.join('|');\n\n\tconst serialized = `userId:${userId}|subscriptionType:${subscriptionType}|${serializedIdentifiers}`;\n\n\treturn createHash('sha256').update(serialized).digest('hex');\n}\n"]}
|
package/dist/types/README.md
CHANGED
package/dist/types/package.json
CHANGED
|
@@ -748,3 +748,10 @@ export declare enum SocketServiceQueue {
|
|
|
748
748
|
NOTIFICATION = "notification.emit",
|
|
749
749
|
ORDER = "order.emit"
|
|
750
750
|
}
|
|
751
|
+
export declare enum SocketSubscriptionType {
|
|
752
|
+
ON_CHATROOM = "on_chatroom",
|
|
753
|
+
ON_CHATLIST = "on_chatlist"
|
|
754
|
+
}
|
|
755
|
+
export declare enum SocketEmits {
|
|
756
|
+
MESSAGE_RECEIVE = "message.receive"
|
|
757
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServiceMarketingType = exports.MarketingType = exports.FavouriteType = exports.CouponExpirationReason = exports.CouponType = exports.BobType = exports.BobChannelType = exports.BobModel = exports.BobSettlementStatus = exports.BobSettlementType = exports.BobAccountType = exports.ZoneStatus = exports.FaqAccountType = exports.CounterType = exports.BannerUserType = exports.BannerLinkType = exports.BannerClickType = exports.VendorRole = exports.ShopRole = exports.OnlineStatus = exports.ShopOnlineStatus = exports.ChargeType = exports.ClickType = exports.NotificationAccountType = exports.DishCategory = exports.ProductDietaryType = exports.PriceOption = exports.ProductType = exports.CoreAuthIdentityType = exports.UserAppSectionItemType = exports.UserAppSectionType = exports.AdminLogsUpdatedFieldsType = exports.UpdatedField = exports.GeoLocationType = exports.RatingAccountType = exports.SubscriptionStatus = exports.SubscriptionPackage = exports.PaidCurrency = exports.PaymentStatus = exports.PaymentMethod = exports.ValueType = exports.HolidayWorkStatus = exports.WorkStatus = exports.WeekDay = exports.GlobalItemType = exports.AdjustmentStatus = exports.ItemType = exports.Status = exports.AccountType = exports.AgentLiveStatus = void 0;
|
|
4
4
|
exports.ServiceOrderPriority = exports.ProfessionalStatus = exports.Service = exports.ServiceCartStatus = exports.SocketEventType = exports.ChatroomType = exports.UserRef = exports.TicketStatus = exports.TicketType = exports.RewardedToTypeEnum = exports.ReplacementType = exports.ReplacementReason = exports.OrderCanceledBy = exports.LogUser = exports.PayoutStatus = exports.PayoutType = exports.AddRemoveCreditAccountType = exports.SettingsReasonStatus = exports.CancellationReasonTypeEnum = exports.SupportReasonTypeEnum = exports.PlusSettingsPackageType = exports.AddRemoveCreditSettlementType = exports.SettlementType = exports.MediaType = exports.WorkingHourSettingsType = exports.ZoneGeometryType = exports.RiderAssignmentStatus = exports.CourierServiceType = exports.TripLegStatus = exports.DeliveryStatus = exports.CourierOrderPaymentFrom = exports.ShopCourierOrderStatus = exports.ServiceOrderStatus = exports.CourierOrderStatus = exports.RegularOrderStatus = exports.OrderType = exports.Language = exports.OrderSize = exports.RiderBagSize = exports.RiderType = exports.ShiftType = exports.CreatedBy = exports.LiveStatus = exports.AreebaCardStatus = exports.CardUserType = exports.CardType = exports.PaymentPreference = exports.CartStatus = exports.AdminRole = exports.MarketingStatus = void 0;
|
|
5
|
-
exports.SocketServiceQueue = exports.OtpMethodType = exports.ReviewType = exports.FoodNutritionType = exports.AdjustmentReason = exports.FlagReasonType = exports.FlagType = exports.PromotionType = exports.ServiceOrderCanceledBy = exports.TRPCErrorEnum = exports.ShopFilterSortByEnum = exports.ProfessionalScheduleType = exports.ServiceOrderRecurrencePattern = exports.ProfessionalRecurrencePattern = void 0;
|
|
5
|
+
exports.SocketEmits = exports.SocketSubscriptionType = exports.SocketServiceQueue = exports.OtpMethodType = exports.ReviewType = exports.FoodNutritionType = exports.AdjustmentReason = exports.FlagReasonType = exports.FlagType = exports.PromotionType = exports.ServiceOrderCanceledBy = exports.TRPCErrorEnum = exports.ShopFilterSortByEnum = exports.ProfessionalScheduleType = exports.ServiceOrderRecurrencePattern = exports.ProfessionalRecurrencePattern = void 0;
|
|
6
6
|
var AgentLiveStatus;
|
|
7
7
|
(function (AgentLiveStatus) {
|
|
8
8
|
AgentLiveStatus["ONLINE"] = "online";
|
|
@@ -867,4 +867,13 @@ var SocketServiceQueue;
|
|
|
867
867
|
SocketServiceQueue["NOTIFICATION"] = "notification.emit";
|
|
868
868
|
SocketServiceQueue["ORDER"] = "order.emit";
|
|
869
869
|
})(SocketServiceQueue || (exports.SocketServiceQueue = SocketServiceQueue = {}));
|
|
870
|
+
var SocketSubscriptionType;
|
|
871
|
+
(function (SocketSubscriptionType) {
|
|
872
|
+
SocketSubscriptionType["ON_CHATROOM"] = "on_chatroom";
|
|
873
|
+
SocketSubscriptionType["ON_CHATLIST"] = "on_chatlist";
|
|
874
|
+
})(SocketSubscriptionType || (exports.SocketSubscriptionType = SocketSubscriptionType = {}));
|
|
875
|
+
var SocketEmits;
|
|
876
|
+
(function (SocketEmits) {
|
|
877
|
+
SocketEmits["MESSAGE_RECEIVE"] = "message.receive";
|
|
878
|
+
})(SocketEmits || (exports.SocketEmits = SocketEmits = {}));
|
|
870
879
|
//# sourceMappingURL=enum.js.map
|