@lakutata/nats 2.2.1 → 2.2.2

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.2.2](https://github.com/lakutata/lakutata-packages/compare/@lakutata/nats@2.2.1...@lakutata/nats@2.2.2) (2026-06-22)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **nats:** never send replicas to object store by default ([af35db3](https://github.com/lakutata/lakutata-packages/commit/af35db304029e8473b62d3430c78ce0b0a1c8d4d))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [2.2.1](https://github.com/lakutata/lakutata-packages/compare/@lakutata/nats@2.2.0...@lakutata/nats@2.2.1) (2026-06-22)
7
18
 
8
19
 
@@ -111,7 +111,9 @@ export declare class NATS extends Component {
111
111
  */
112
112
  protected readonly bulkTTL?: number;
113
113
  /**
114
- * bulk bucket 副本数,默认 1(中转数据用完即弃,不需要高可用副本)。
114
+ * bulk bucket 副本数。默认【不下发】此字段,由 server 用其默认单副本;仅在显式配置时才下发。
115
+ * 重要:绝不能加 .default(),否则字段恒有值、会被无条件下发,在严格校验的 NATS server 上
116
+ * 触发 "invalid json: unknown field replicas" 导致启动失败(2.2.1 曾因加了 default 而修复无效)。
115
117
  * @protected
116
118
  */
117
119
  protected readonly bulkReplicas?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"NATS.d.ts","sourceRoot":"","sources":["../../src/components/NATS.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,SAAS,EAET,uBAAuB,EAE1B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAC,KAAK,KAAK,EAAgC,YAAY,EAAwC,KAAK,iBAAiB,EAAwB,MAAM,MAAM,CAAA;AAChK,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAA;AAQ1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAA;AASjE,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,CAAC,iBAAiB,CAsB7E,CAAA;AAED,qBAAa,IAAK,SAAQ,SAAS;;IAC/B;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;IAEnC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAE7C;;;OAGG;IAKH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEnC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEjC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IAElC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEtC;;;;;;OAMG;IAEH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAEhD;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IAEhC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IAEnC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAExC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAExC;;;;;OAKG;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAEtC;;;;OAIG;IAEH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IAEjC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEtC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEnC;;;OAGG;IAEH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAExC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,YAAY,CAAC,CAAC,CAAY;IAuBpH;;;OAGG;cACa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCrC;;;OAGG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;;OAKG;YACW,eAAe;IAY7B;;;;OAIG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAInD;;;;;;;;;OASG;IACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAwCpF;;;;;;;OAOG;IACI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,YAAY;IAsDjI;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAIrC;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,MAAM,CAGjC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;OAGG;IACU,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD;;;OAGG;IACU,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAYxD;;;OAGG;IACU,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIjE;;;;;OAKG;YACW,WAAW;IASzB;;;;;OAKG;YACW,aAAa;IAU3B;;;;OAIG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAMhE;;;;;;OAMG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,wBAAwB,GAAE,OAAe,GAAG,IAAI;IAYhJ;;;;;OAKG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAavG;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;CAW1G"}
1
+ {"version":3,"file":"NATS.d.ts","sourceRoot":"","sources":["../../src/components/NATS.ts"],"names":[],"mappings":"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"}
@@ -104,23 +104,41 @@ class NATS extends lakutata_1.Component {
104
104
  };
105
105
  this.#conn = await (0, nats_1.connect)(connectOptions);
106
106
  if (this.bulk) {
107
- // 用同一套配置再开一条【独立】连接专供大数据,避免大对象传输堵塞 core RPC 连接;
108
- // get-or-create 一个 Object Store bucket 做大对象中转(短 TTL 自动清理)。
109
- this.#bulkConn = await (0, nats_1.connect)({
110
- ...connectOptions,
111
- name: this.name ? `${this.name}-bulk` : undefined
112
- });
113
- const bucket = this.bulkBucket ?? `lkt-bulk-${this.name ?? 'default'}`;
114
- // 仅在用户【显式】配置了 bulkReplicas 时才下发 replicas;默认(undefined)不发该字段,
115
- // server 用默认单副本。无条件发 replicas 在部分 nats.js / NATS server 组合下会被
116
- // 拒绝(invalid json: unknown field "replicas"),且默认值 1 显式下发本就没有收益。
117
- const osOptions = {
118
- storage: nats_1.StorageType.File,
119
- ttl: (0, nats_1.nanos)(this.bulkTTL ?? 5 * 60 * 1000)
120
- };
121
- if (this.bulkReplicas !== undefined)
122
- osOptions.replicas = this.bulkReplicas;
123
- this.#objectStore = await this.#bulkConn.jetstream().views.os(bucket, osOptions);
107
+ try {
108
+ // 用同一套配置再开一条【独立】连接专供大数据,避免大对象传输堵塞 core RPC 连接;
109
+ // get-or-create 一个 Object Store bucket 做大对象中转( TTL 自动清理)
110
+ this.#bulkConn = await (0, nats_1.connect)({
111
+ ...connectOptions,
112
+ name: this.name ? `${this.name}-bulk` : undefined
113
+ });
114
+ const bucket = this.bulkBucket ?? `lkt-bulk-${this.name ?? 'default'}`;
115
+ // 仅在用户【显式】配置了 bulkReplicas 时才下发 replicas;默认(undefined)不发该字段,
116
+ // server 用默认单副本。无条件发 replicas 在严格校验的 NATS server 上会被
117
+ // 拒绝(invalid json: unknown field "replicas"),且默认单副本显式下发本就没有收益。
118
+ const osOptions = {
119
+ storage: nats_1.StorageType.File,
120
+ ttl: (0, nats_1.nanos)(this.bulkTTL ?? 5 * 60 * 1000)
121
+ };
122
+ if (this.bulkReplicas !== undefined)
123
+ osOptions.replicas = this.bulkReplicas;
124
+ this.#objectStore = await this.#bulkConn.jetstream().views.os(bucket, osOptions);
125
+ }
126
+ catch (e) {
127
+ // 优雅降级:bulk 初始化失败(JetStream 不可用 / 创建被拒 / 超时等)绝不阻塞启动。
128
+ // 清理半建连接并禁用 bulk(bulkEnabled 依赖 #objectStore → 自动转 false),warn 后继续,
129
+ // 核心 RPC/事件照常工作,仅大数据中转不可用。
130
+ this.#objectStore = undefined;
131
+ if (this.#bulkConn) {
132
+ try {
133
+ await this.#bulkConn.close();
134
+ }
135
+ catch {
136
+ // 忽略关闭错误
137
+ }
138
+ this.#bulkConn = undefined;
139
+ }
140
+ console.warn(`[NATS] bulk 旁路初始化失败,已自动禁用 bulk(核心 RPC/事件不受影响,仅大数据中转不可用): ${e?.message ?? e}`);
141
+ }
124
142
  }
125
143
  }
126
144
  /**
@@ -539,6 +557,6 @@ __decorate([
539
557
  __metadata("design:type", Number)
540
558
  ], NATS.prototype, "bulkTTL", void 0);
541
559
  __decorate([
542
- (0, di_1.Configurable)(lakutata_1.DTO.Number().integer().optional().default(1)),
560
+ (0, di_1.Configurable)(lakutata_1.DTO.Number().integer().optional()),
543
561
  __metadata("design:type", Number)
544
562
  ], NATS.prototype, "bulkReplicas", void 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakutata/nats",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "description": "Lakutata NATS Client",
5
5
  "keywords": [
6
6
  "lakutata",
@@ -34,7 +34,7 @@
34
34
  "lakutata": "^2.0.121",
35
35
  "nats": "^2.29.3"
36
36
  },
37
- "gitHead": "4c0990d592a7ce0cc77547b9cc024543ceea7011",
37
+ "gitHead": "cde57f4f8fe53ec0d38a8b22266084e1b3287f32",
38
38
  "devDependencies": {
39
39
  "@types/bun": "^1.3.14",
40
40
  "testcontainers": "^12.0.3"