@jiangdyjp2/common 1.0.11 → 1.0.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.
@@ -0,0 +1,22 @@
1
+ import natsPkg from "node-nats-streaming";
2
+ import { Subjects } from "./subject.js";
3
+ declare const connect: typeof natsPkg.connect, Message: typeof natsPkg.Message;
4
+ type Stan = ReturnType<typeof connect>;
5
+ type Msg = InstanceType<typeof Message>;
6
+ interface Event {
7
+ subject: Subjects;
8
+ data: any;
9
+ }
10
+ export declare abstract class Listener<T extends Event> {
11
+ abstract subject: T['subject'];
12
+ abstract queueGroupName: string;
13
+ abstract onMessage(data: T['data'], msg: Msg): void;
14
+ private client;
15
+ protected ackWait: number;
16
+ constructor(client: Stan);
17
+ subscriptionOptions(): natsPkg.SubscriptionOptions;
18
+ listen(): void;
19
+ parseMessage(msg: Msg): any;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=base-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,QAAA,MAAQ,OAAO,0BAAE,OAAO,wBAAY,CAAC;AACrC,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AACvC,KAAK,GAAG,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC;AAIxC,UAAU,KAAK;IACX,OAAO,EAAE,QAAQ,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;CACb;AAKD,8BAAsB,QAAQ,CAAC,CAAC,SAAS,KAAK;IAI1C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAEnD,OAAO,CAAC,MAAM,CAAO;IACrB,SAAS,CAAC,OAAO,SAAY;gBAEjB,MAAM,EAAE,IAAI;IAIxB,mBAAmB;IASnB,MAAM;IAiBN,YAAY,CAAC,GAAG,EAAE,GAAG;CAMxB"}
@@ -0,0 +1,35 @@
1
+ import natsPkg from "node-nats-streaming";
2
+ import { Subjects } from "./subject.js";
3
+ const { connect, Message } = natsPkg;
4
+ // whenever we try to extend it,
5
+ // we're going to have to provide some custom type of "T" to this.
6
+ // <T extends Event> is a kind of argument for types
7
+ export class Listener {
8
+ client;
9
+ ackWait = 5 * 1000;
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ subscriptionOptions() {
14
+ return this.client
15
+ .subscriptionOptions()
16
+ .setDeliverAllAvailable()
17
+ .setManualAckMode(true)
18
+ .setAckWait(this.ackWait)
19
+ .setDurableName(this.queueGroupName);
20
+ }
21
+ listen() {
22
+ const subscription = this.client.subscribe(this.subject, this.queueGroupName, this.subscriptionOptions());
23
+ subscription.on('message', (msg) => {
24
+ console.log(`Received event #${this.subject} / ${this.queueGroupName}`);
25
+ const parseData = this.parseMessage(msg);
26
+ this.onMessage(parseData, msg);
27
+ });
28
+ }
29
+ parseMessage(msg) {
30
+ const data = msg.getData();
31
+ return typeof data === 'string'
32
+ ? JSON.parse(data) : JSON.parse(data.toString('utf8'));
33
+ }
34
+ }
35
+ //# sourceMappingURL=base-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-listener.js","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;AAWrC,kCAAkC;AAClC,kEAAkE;AAClE,oDAAoD;AACpD,MAAM,OAAgB,QAAQ;IAQlB,MAAM,CAAO;IACX,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;IAE7B,YAAY,MAAY;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM;aACb,mBAAmB,EAAE;aACrB,sBAAsB,EAAE;aACxB,gBAAgB,CAAC,IAAI,CAAC;aACtB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CACtC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,mBAAmB,EAAE,CAC7B,CAAC;QAEF,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAQ,EAAE,EAAE;YACpC,OAAO,CAAC,GAAG,CACP,mBAAmB,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAC7D,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,GAAQ;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;CAEJ"}
@@ -0,0 +1,16 @@
1
+ import natsPkg from "node-nats-streaming";
2
+ import type { Subjects } from "./subject.js";
3
+ declare const connect: typeof natsPkg.connect;
4
+ type Stan = ReturnType<typeof connect>;
5
+ interface Event {
6
+ subject: Subjects;
7
+ data: any;
8
+ }
9
+ export declare abstract class Publisher<T extends Event> {
10
+ abstract subject: T['subject'];
11
+ private client;
12
+ constructor(client: Stan);
13
+ publish(data: T['data']): Promise<void>;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=base-publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-publisher.d.ts","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAQ,OAAO,wBAAY,CAAC;AAC5B,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvC,UAAU,KAAK;IACX,OAAO,EAAE,QAAQ,CAAC;IAClB,IAAI,EAAE,GAAG,CAAA;CACZ;AAED,8BAAsB,SAAS,CAAC,CAAC,SAAS,KAAK;IAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAO;gBAET,MAAM,EAAE,IAAI;IAIxB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAW1C"}
@@ -0,0 +1,36 @@
1
+ import natsPkg from "node-nats-streaming";
2
+ const { connect } = natsPkg;
3
+ export class Publisher {
4
+ client;
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ publish(data) {
9
+ return new Promise((resolve, reject) => {
10
+ this.client.publish(this.subject, JSON.stringify(data), (err) => {
11
+ if (err) {
12
+ return reject(err);
13
+ }
14
+ console.log('Event published to subject.', this.subject);
15
+ resolve();
16
+ });
17
+ });
18
+ }
19
+ }
20
+ // import { EventEmitter } from 'events'; // "types": ["node"],
21
+ // console.clear();
22
+ // const stan: InstanceType<typeof Stan> = connect('ticketing', 'abc', {
23
+ // url: 'http://localhost:4222'
24
+ // }); //client
25
+ // (stan as unknown as EventEmitter).on('connect', () => {
26
+ // console.log('publisher connected to NATS');
27
+ // const data = JSON.stringify({
28
+ // id: '123',
29
+ // title: 'concert',
30
+ // price: 20
31
+ // })
32
+ // stan.publish('ticket:created', data, () => {
33
+ // console.log('Envent published!!!!');
34
+ // });
35
+ // });
36
+ //# sourceMappingURL=base-publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-publisher.js","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAG1C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;AAQ5B,MAAM,OAAgB,SAAS;IAEnB,MAAM,CAAO;IAErB,YAAY,MAAY;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,IAAe;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC5D,IAAI,GAAG,EAAE,CAAC;oBACN,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AACD,+DAA+D;AAE/D,mBAAmB;AAEnB,wEAAwE;AACxE,mCAAmC;AACnC,eAAe;AAEf,0DAA0D;AAC1D,kDAAkD;AAElD,oCAAoC;AACpC,qBAAqB;AACrB,4BAA4B;AAC5B,oBAAoB;AACpB,SAAS;AACT,mDAAmD;AACnD,+CAA+C;AAC/C,UAAU;AACV,MAAM"}
@@ -0,0 +1,5 @@
1
+ export declare enum Subjects {
2
+ TicketCreated = "ticket:created",
3
+ TicketUpdated = "ticket:updated"
4
+ }
5
+ //# sourceMappingURL=subject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../src/events/subject.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAChB,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;CACnC"}
@@ -0,0 +1,6 @@
1
+ export var Subjects;
2
+ (function (Subjects) {
3
+ Subjects["TicketCreated"] = "ticket:created";
4
+ Subjects["TicketUpdated"] = "ticket:updated";
5
+ })(Subjects || (Subjects = {}));
6
+ //# sourceMappingURL=subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/events/subject.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,4CAAgC,CAAA;IAChC,4CAAgC,CAAA;AACpC,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
@@ -0,0 +1,11 @@
1
+ import { Subjects } from "./subject.js";
2
+ export interface TicketCreatedEvent {
3
+ subject: Subjects.TicketCreated;
4
+ data: {
5
+ id: string;
6
+ title: string;
7
+ price: number;
8
+ userId: string;
9
+ };
10
+ }
11
+ //# sourceMappingURL=ticket-created-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-created-event.d.ts","sourceRoot":"","sources":["../../src/events/ticket-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC;IAChC,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;CACJ"}
@@ -0,0 +1,2 @@
1
+ import { Subjects } from "./subject.js";
2
+ //# sourceMappingURL=ticket-created-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-created-event.js","sourceRoot":"","sources":["../../src/events/ticket-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Subjects } from "./subject.js";
2
+ export interface TicketUpdatedEvent {
3
+ subject: Subjects.TicketUpdated;
4
+ data: {
5
+ id: string;
6
+ title: string;
7
+ price: number;
8
+ userId: string;
9
+ };
10
+ }
11
+ //# sourceMappingURL=ticket-updated-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-updated-event.d.ts","sourceRoot":"","sources":["../../src/events/ticket-updated-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC;IAChC,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;CACJ"}
@@ -0,0 +1,2 @@
1
+ import { Subjects } from "./subject.js";
2
+ //# sourceMappingURL=ticket-updated-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-updated-event.js","sourceRoot":"","sources":["../../src/events/ticket-updated-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare enum OrderStatus {
2
+ Created = "created",
3
+ Cancelled = "cancelled",
4
+ AwaitingPayment = "awaiting:payment",
5
+ Complete = "complete"
6
+ }
7
+ //# sourceMappingURL=order-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status.d.ts","sourceRoot":"","sources":["../../../src/events/types/order-status.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IAGnB,OAAO,YAAY;IAKnB,SAAS,cAAc;IAGvB,eAAe,qBAAqB;IAIpC,QAAQ,aAAa;CACxB"}
@@ -0,0 +1,16 @@
1
+ export var OrderStatus;
2
+ (function (OrderStatus) {
3
+ // When the order has been created, but the ticket it is trying
4
+ // to order has not been reserved
5
+ OrderStatus["Created"] = "created";
6
+ // The ticket the order is trying to reserve has already
7
+ // been reserved or when the user has cancelled the order
8
+ // The order expires before payment
9
+ OrderStatus["Cancelled"] = "cancelled";
10
+ // The order has successfully reserved the ticket
11
+ OrderStatus["AwaitingPayment"] = "awaiting:payment";
12
+ // The order has reserved the ticket and the user has provided
13
+ // payment successfully
14
+ OrderStatus["Complete"] = "complete";
15
+ })(OrderStatus || (OrderStatus = {}));
16
+ //# sourceMappingURL=order-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status.js","sourceRoot":"","sources":["../../../src/events/types/order-status.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACnB,gEAAgE;IAChE,iCAAiC;IACjC,kCAAmB,CAAA;IAEnB,wDAAwD;IACxD,yDAAyD;IACzD,mCAAmC;IACnC,sCAAuB,CAAA;IAEvB,kDAAkD;IAClD,mDAAoC,CAAA;IAEpC,8DAA8D;IAC9D,uBAAuB;IACvB,oCAAqB,CAAA;AACzB,CAAC,EAhBW,WAAW,KAAX,WAAW,QAgBtB"}
package/build/index.d.ts CHANGED
@@ -8,4 +8,10 @@ export * from './middlewares/current-user.js';
8
8
  export * from './middlewares/error-handler.js';
9
9
  export * from './middlewares/require-auth.js';
10
10
  export * from './middlewares/validate-request.js';
11
+ export * from './events/base-listener.js';
12
+ export * from './events/base-publisher.js';
13
+ export * from './events/subject.js';
14
+ export * from './events/ticket-created-event.js';
15
+ export * from './events/ticket-updated-event.js';
16
+ export * from './events/types/order-status.js';
11
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAElD,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA"}
package/build/index.js CHANGED
@@ -8,4 +8,10 @@ export * from './middlewares/current-user.js';
8
8
  export * from './middlewares/error-handler.js';
9
9
  export * from './middlewares/require-auth.js';
10
10
  export * from './middlewares/validate-request.js';
11
+ export * from './events/base-listener.js';
12
+ export * from './events/base-publisher.js';
13
+ export * from './events/subject.js';
14
+ export * from './events/ticket-created-event.js';
15
+ export * from './events/ticket-updated-event.js';
16
+ export * from './events/types/order-status.js';
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAElD,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jiangdyjp2/common",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -31,6 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "express-validator": "^7.3.1",
34
- "jsonwebtoken": "^9.0.3"
34
+ "jsonwebtoken": "^9.0.3",
35
+ "node-nats-streaming": "^0.3.2"
35
36
  }
36
37
  }
package/readme.txt CHANGED
@@ -1,3 +1,5 @@
1
+ (0) index.ts contains all exported contents, need to be updated when any change
2
+
1
3
  (1) the following is related to npm common package:
2
4
 
3
5
  "name": "@jiangdyjp2/common",
@@ -112,3 +114,5 @@ npm install -D vitest
112
114
 
113
115
  (14) Libraries ( say @jiangdyjp2/common ) should never ship @types/* in dependencies
114
116
 
117
+ (15) when updated your @jiangdyjp2/common, you need to execute "npm update @jiangdyjp2/common" in auth folder.
118
+