@appneurox/notification-service 0.0.0-stage → 0.1.0

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/README.md CHANGED
@@ -1,3 +1,32 @@
1
- # Temporary Holding Version
1
+ # @appneurox/notification-service
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Notification Service as one NestJS module. The same code runs in two ways:
4
+
5
+ | Mode | How | Routes |
6
+ | --- | --- | --- |
7
+ | Microservice | `node dist/standalone.js`, deployed at `https://notification-service.appneurox.com` | `/v1/module`, `/v1/execute` |
8
+ | Inside a brand API | `servicePackage()` mounted by a modular monolith | `/notification-service/v1/module`, `/notification-service/v1/execute` |
9
+
10
+ ```ts
11
+ // Brand API (modular monolith)
12
+ import { bootstrapMonolith } from '@appneurox/service-composition';
13
+ import { servicePackage } from '@appneurox/notification-service';
14
+
15
+ await bootstrapMonolith({ services: [servicePackage()] });
16
+ ```
17
+
18
+ ```ts
19
+ // Another module in the same process can inject the application directly
20
+ import { NotificationServiceApplication } from '@appneurox/notification-service';
21
+ ```
22
+
23
+ `servicePackage(options)` passes `options` (extra `providers`, `imports`, `controllers`) to
24
+ `NotificationServiceModule.register()`, which is how a brand configures this service without forking it.
25
+
26
+ The host owns HTTP, authentication, tenant context, validation, errors, logging and shutdown
27
+ through `@appneurox/service-runtime`. Importing this package opens no listener.
28
+
29
+ **Status: boilerplate.** `GET /v1/module` works; authorized `POST /v1/execute` returns
30
+ `501 NOT_IMPLEMENTED` until the business code is written in `src/`.
31
+
32
+ Client: [`@appneurox/notification-service-sdk`](../sdk/README.md).
@@ -0,0 +1,4 @@
1
+ import { BaseServiceApplication } from '@appneurox/service-composition';
2
+ export declare class NotificationServiceApplication extends BaseServiceApplication {
3
+ constructor();
4
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NotificationServiceApplication = void 0;
13
+ // Scaffolded by nestjs-fleet scripts/service_packages.py. This file belongs to the service; edit it freely.
14
+ const common_1 = require("@nestjs/common");
15
+ const service_composition_1 = require("@appneurox/service-composition");
16
+ const definition_1 = require("./definition");
17
+ let NotificationServiceApplication = class NotificationServiceApplication extends service_composition_1.BaseServiceApplication {
18
+ constructor() { super(definition_1.definition); }
19
+ };
20
+ exports.NotificationServiceApplication = NotificationServiceApplication;
21
+ exports.NotificationServiceApplication = NotificationServiceApplication = __decorate([
22
+ (0, common_1.Injectable)(),
23
+ __metadata("design:paramtypes", [])
24
+ ], NotificationServiceApplication);
25
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4GAA4G;AAC5G,2CAA4C;AAC5C,wEAAwE;AACxE,6CAA0C;AAGnC,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,4CAAsB;IACxE,gBAAgB,KAAK,CAAC,uBAAU,CAAC,CAAC,CAAC,CAAC;CACrC,CAAA;AAFY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;;GACA,8BAA8B,CAE1C"}
@@ -0,0 +1,16 @@
1
+ import { ExecuteOperationDto } from '@appneurox/service-composition';
2
+ import { NotificationServiceApplication } from './application';
3
+ export declare class NotificationServiceController {
4
+ private readonly application;
5
+ constructor(application: NotificationServiceApplication);
6
+ metadata(): Readonly<{
7
+ service: string;
8
+ catalogSlug: string;
9
+ runtime: "BOILERPLATE";
10
+ businessImplementation: "not_implemented";
11
+ businessReady: false;
12
+ slug: string;
13
+ label: string;
14
+ }>;
15
+ execute(input: ExecuteOperationDto): Promise<unknown>;
16
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NotificationServiceController = void 0;
16
+ // Scaffolded by nestjs-fleet scripts/service_packages.py. This file belongs to the service; edit it freely.
17
+ const common_1 = require("@nestjs/common");
18
+ const service_composition_1 = require("@appneurox/service-composition");
19
+ const service_runtime_1 = require("@appneurox/service-runtime");
20
+ const definition_1 = require("./definition");
21
+ const application_1 = require("./application");
22
+ let NotificationServiceController = class NotificationServiceController {
23
+ application;
24
+ constructor(application) {
25
+ this.application = application;
26
+ }
27
+ metadata() { return this.application.metadata(); }
28
+ execute(input) { return this.application.execute(input); }
29
+ };
30
+ exports.NotificationServiceController = NotificationServiceController;
31
+ __decorate([
32
+ (0, service_runtime_1.Public)(),
33
+ (0, common_1.Get)('module'),
34
+ __metadata("design:type", Function),
35
+ __metadata("design:paramtypes", []),
36
+ __metadata("design:returntype", void 0)
37
+ ], NotificationServiceController.prototype, "metadata", null);
38
+ __decorate([
39
+ (0, service_runtime_1.RequireTenant)(),
40
+ (0, service_runtime_1.RequireScopes)("notification-service:invoke"),
41
+ (0, common_1.Post)('execute'),
42
+ __param(0, (0, common_1.Body)()),
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", [service_composition_1.ExecuteOperationDto]),
45
+ __metadata("design:returntype", void 0)
46
+ ], NotificationServiceController.prototype, "execute", null);
47
+ exports.NotificationServiceController = NotificationServiceController = __decorate([
48
+ (0, common_1.Controller)('v1'),
49
+ __param(0, (0, common_1.Inject)(definition_1.SERVICE_PORT)),
50
+ __metadata("design:paramtypes", [application_1.NotificationServiceApplication])
51
+ ], NotificationServiceController);
52
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4GAA4G;AAC5G,2CAAqE;AACrE,wEAAqE;AACrE,gEAAkF;AAClF,6CAA4C;AAC5C,+CAA+D;AAGxD,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACW;IAAnD,YAAmD,WAA2C;QAA3C,gBAAW,GAAX,WAAW,CAAgC;IAAG,CAAC;IAIlG,QAAQ,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAKlD,OAAO,CAAS,KAA0B,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACxF,CAAA;AAXY,sEAA6B;AAKxC;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;6DACoC;AAKlD;IAHC,IAAA,+BAAa,GAAE;IACf,IAAA,+BAAa,EAAC,6BAA6B,CAAC;IAC5C,IAAA,aAAI,EAAC,SAAS,CAAC;IACP,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAQ,yCAAmB;;4DAA6C;wCAV5E,6BAA6B;IADzC,IAAA,mBAAU,EAAC,IAAI,CAAC;IAEF,WAAA,IAAA,eAAM,EAAC,yBAAY,CAAC,CAAA;qCAA+B,4CAA8B;GADnF,6BAA6B,CAWzC"}
@@ -0,0 +1,3 @@
1
+ import type { ServiceDefinition } from '@appneurox/service-composition';
2
+ export declare const definition: Readonly<ServiceDefinition>;
3
+ export declare const SERVICE_PORT: symbol;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SERVICE_PORT = exports.definition = void 0;
4
+ // Scaffolded by nestjs-fleet scripts/service_packages.py. This file belongs to the service; edit it freely.
5
+ const service_composition_1 = require("@appneurox/service-composition");
6
+ exports.definition = Object.freeze({
7
+ slug: "notification-service",
8
+ label: "Notification Service",
9
+ });
10
+ exports.SERVICE_PORT = (0, service_composition_1.serviceApplicationToken)(exports.definition.slug);
11
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":";;;AAAA,4GAA4G;AAC5G,wEAAyE;AAG5D,QAAA,UAAU,GAAgC,MAAM,CAAC,MAAM,CAAC;IACnE,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,sBAAsB;CAC9B,CAAC,CAAC;AACU,QAAA,YAAY,GAAG,IAAA,6CAAuB,EAAC,kBAAU,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ServicePackage, ServiceModuleOptions } from '@appneurox/service-composition';
2
+ export { definition, SERVICE_PORT } from './definition';
3
+ export { NotificationServiceModule } from './module';
4
+ export { NotificationServiceApplication } from './application';
5
+ export { NotificationServiceController } from './controller';
6
+ /** What a modular monolith mounts. Options are passed to `NotificationServiceModule.register()`. */
7
+ export declare function servicePackage(options?: ServiceModuleOptions): ServicePackage;
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotificationServiceController = exports.NotificationServiceApplication = exports.NotificationServiceModule = exports.SERVICE_PORT = exports.definition = void 0;
4
+ exports.servicePackage = servicePackage;
5
+ const definition_1 = require("./definition");
6
+ const module_1 = require("./module");
7
+ var definition_2 = require("./definition");
8
+ Object.defineProperty(exports, "definition", { enumerable: true, get: function () { return definition_2.definition; } });
9
+ Object.defineProperty(exports, "SERVICE_PORT", { enumerable: true, get: function () { return definition_2.SERVICE_PORT; } });
10
+ var module_2 = require("./module");
11
+ Object.defineProperty(exports, "NotificationServiceModule", { enumerable: true, get: function () { return module_2.NotificationServiceModule; } });
12
+ var application_1 = require("./application");
13
+ Object.defineProperty(exports, "NotificationServiceApplication", { enumerable: true, get: function () { return application_1.NotificationServiceApplication; } });
14
+ var controller_1 = require("./controller");
15
+ Object.defineProperty(exports, "NotificationServiceController", { enumerable: true, get: function () { return controller_1.NotificationServiceController; } });
16
+ /** What a modular monolith mounts. Options are passed to `NotificationServiceModule.register()`. */
17
+ function servicePackage(options = {}) {
18
+ return { definition: definition_1.definition, module: module_1.NotificationServiceModule.register(options), applicationToken: definition_1.SERVICE_PORT };
19
+ }
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAWA,wCAEC;AAXD,6CAAwD;AACxD,qCAAqD;AAErD,2CAAwD;AAA/C,wGAAA,UAAU,OAAA;AAAE,0GAAA,YAAY,OAAA;AACjC,mCAAqD;AAA5C,mHAAA,yBAAyB,OAAA;AAClC,6CAA+D;AAAtD,6HAAA,8BAA8B,OAAA;AACvC,2CAA6D;AAApD,2HAAA,6BAA6B,OAAA;AAEtC,oGAAoG;AACpG,SAAgB,cAAc,CAAC,UAAgC,EAAE;IAC/D,OAAO,EAAE,UAAU,EAAV,uBAAU,EAAE,MAAM,EAAE,kCAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,yBAAY,EAAE,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { DynamicModule } from '@nestjs/common';
2
+ import type { ServiceModuleOptions } from '@appneurox/service-composition';
3
+ export declare class NotificationServiceModule {
4
+ private static defaultRegistration;
5
+ static register(options?: ServiceModuleOptions): DynamicModule;
6
+ }
package/dist/module.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var NotificationServiceModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NotificationServiceModule = void 0;
11
+ // Scaffolded by nestjs-fleet scripts/service_packages.py. This file belongs to the service; edit it freely.
12
+ const common_1 = require("@nestjs/common");
13
+ const service_composition_1 = require("@appneurox/service-composition");
14
+ const definition_1 = require("./definition");
15
+ const application_1 = require("./application");
16
+ const controller_1 = require("./controller");
17
+ let NotificationServiceModule = class NotificationServiceModule {
18
+ static { NotificationServiceModule_1 = this; }
19
+ static defaultRegistration;
20
+ static register(options = {}) {
21
+ if (Reflect.ownKeys(options).length === 0) {
22
+ if (NotificationServiceModule_1.defaultRegistration === undefined) {
23
+ NotificationServiceModule_1.defaultRegistration = (0, service_composition_1.composeServiceModule)(NotificationServiceModule_1, definition_1.definition, application_1.NotificationServiceApplication, { controllers: [controller_1.NotificationServiceController] });
24
+ }
25
+ return NotificationServiceModule_1.defaultRegistration;
26
+ }
27
+ // Register custom options once and re-export that explicit registration.
28
+ return (0, service_composition_1.composeServiceModule)(NotificationServiceModule_1, definition_1.definition, application_1.NotificationServiceApplication, { ...options, controllers: [controller_1.NotificationServiceController, ...(options.controllers ?? [])] });
29
+ }
30
+ };
31
+ exports.NotificationServiceModule = NotificationServiceModule;
32
+ exports.NotificationServiceModule = NotificationServiceModule = NotificationServiceModule_1 = __decorate([
33
+ (0, common_1.Module)({})
34
+ ], NotificationServiceModule);
35
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,4GAA4G;AAC5G,2CAAwC;AAExC,wEAAsE;AAEtE,6CAA0C;AAC1C,+CAA+D;AAC/D,6CAA6D;AAGtD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;;IAC5B,MAAM,CAAC,mBAAmB,CAA4B;IAE9D,MAAM,CAAC,QAAQ,CAAC,UAAgC,EAAE;QAChD,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,2BAAyB,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBAChE,2BAAyB,CAAC,mBAAmB,GAAG,IAAA,0CAAoB,EAAC,2BAAyB,EAAE,uBAAU,EAAE,4CAA8B,EAAE,EAAE,WAAW,EAAE,CAAC,0CAA6B,CAAC,EAAE,CAAC,CAAC;YAChM,CAAC;YACD,OAAO,2BAAyB,CAAC,mBAAmB,CAAC;QACvD,CAAC;QACD,yEAAyE;QACzE,OAAO,IAAA,0CAAoB,EAAC,2BAAyB,EAAE,uBAAU,EAAE,4CAA8B,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,0CAA6B,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACnM,CAAC;CACF,CAAA;AAbY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,yBAAyB,CAarC"}
@@ -0,0 +1,5 @@
1
+ import type { BootstrapOptions, ServiceApplicationOptions } from '@appneurox/service-runtime';
2
+ export type StandaloneApplicationOptions = Pick<ServiceApplicationOptions, 'env' | 'logger' | 'authVerifier'>;
3
+ export type StandaloneBootstrapOptions = StandaloneApplicationOptions & Pick<BootstrapOptions, 'handleSignals'>;
4
+ export declare function createStandaloneApplication(options?: StandaloneApplicationOptions): Promise<import("@nestjs/platform-express").NestExpressApplication<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>>>;
5
+ export declare function bootstrapStandalone(options?: StandaloneBootstrapOptions): Promise<import("@appneurox/service-runtime").ServiceHandle>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStandaloneApplication = createStandaloneApplication;
4
+ exports.bootstrapStandalone = bootstrapStandalone;
5
+ // Scaffolded by nestjs-fleet scripts/service_packages.py. This file belongs to the service; edit it freely.
6
+ const service_runtime_1 = require("@appneurox/service-runtime");
7
+ const definition_1 = require("./definition");
8
+ const module_1 = require("./module");
9
+ function fixedConfiguration(env = process.env) {
10
+ return (0, service_runtime_1.loadServiceConfig)({ ...env, SERVICE_NAME: definition_1.definition.slug, CATALOG_SLUG: definition_1.definition.slug,
11
+ SERVICE_CAPABILITY_LABEL: definition_1.definition.label });
12
+ }
13
+ async function createStandaloneApplication(options = {}) {
14
+ return (0, service_runtime_1.createServiceApplication)({ config: fixedConfiguration(options.env), imports: [module_1.NotificationServiceModule.register()],
15
+ ...(options.logger === undefined ? {} : { logger: options.logger }),
16
+ ...(options.authVerifier === undefined ? {} : { authVerifier: options.authVerifier }) });
17
+ }
18
+ async function bootstrapStandalone(options = {}) {
19
+ return (0, service_runtime_1.bootstrapService)({ config: fixedConfiguration(options.env), imports: [module_1.NotificationServiceModule.register()],
20
+ ...(options.logger === undefined ? {} : { logger: options.logger }),
21
+ ...(options.authVerifier === undefined ? {} : { authVerifier: options.authVerifier }),
22
+ ...(options.handleSignals === undefined ? {} : { handleSignals: options.handleSignals }) });
23
+ }
24
+ if (require.main === module) {
25
+ void bootstrapStandalone().catch(() => { console.error('Standalone service startup failed'); process.exitCode = 1; });
26
+ }
27
+ //# sourceMappingURL=standalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":";;AAcA,kEAIC;AAED,kDAKC;AAzBD,4GAA4G;AAC5G,gEAA2G;AAE3G,6CAA0C;AAC1C,qCAAqD;AAKrD,SAAS,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,OAAO,IAAA,mCAAiB,EAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,uBAAU,CAAC,IAAI,EAAE,YAAY,EAAE,uBAAU,CAAC,IAAI;QAC7F,wBAAwB,EAAE,uBAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAAC,UAAwC,EAAE;IAC1F,OAAO,IAAA,0CAAwB,EAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,kCAAyB,CAAC,QAAQ,EAAE,CAAC;QACxH,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,UAAsC,EAAE;IAChF,OAAO,IAAA,kCAAgB,EAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,kCAAyB,CAAC,QAAQ,EAAE,CAAC;QAChH,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,KAAK,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,63 @@
1
1
  {
2
2
  "name": "@appneurox/notification-service",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Notification Service: NestJS module that runs as its own microservice or inside a modular monolith.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/APPNEURAL-Microservices/notification-service.git",
9
+ "directory": "packages/service"
10
+ },
11
+ "main": "dist/index.js",
12
+ "types": "dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "require": "./dist/index.js",
17
+ "default": "./dist/index.js"
18
+ },
19
+ "./standalone": {
20
+ "types": "./dist/standalone.d.ts",
21
+ "require": "./dist/standalone.js",
22
+ "default": "./dist/standalone.js"
23
+ }
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "README.md"
28
+ ],
29
+ "engines": {
30
+ "node": ">=24 <25"
31
+ },
32
+ "scripts": {
33
+ "build": "tsc -p tsconfig.json",
34
+ "typecheck": "tsc -p tsconfig.json --noEmit",
35
+ "start": "node dist/standalone.js",
36
+ "prepublishOnly": "npm run build"
37
+ },
38
+ "peerDependencies": {
39
+ "@appneurox/service-runtime": "^0.1.0",
40
+ "@appneurox/service-composition": "^0.1.0",
41
+ "@nestjs/common": "^12.2.0",
42
+ "@nestjs/core": "^12.2.0"
43
+ },
44
+ "devDependencies": {
45
+ "@appneurox/service-runtime": "0.1.0",
46
+ "@appneurox/service-composition": "0.1.0",
47
+ "@nestjs/common": "12.2.0",
48
+ "@nestjs/core": "12.2.0",
49
+ "@nestjs/platform-express": "12.2.0",
50
+ "class-transformer": "0.5.1",
51
+ "class-validator": "0.15.1",
52
+ "reflect-metadata": "0.2.2",
53
+ "rxjs": "7.8.2",
54
+ "@types/node": "24.19.2",
55
+ "typescript": "5.9.3"
56
+ },
57
+ "overrides": {
58
+ "multer": "2.5.0"
59
+ },
60
+ "publishConfig": {
61
+ "access": "public"
62
+ }
63
+ }