tmc.js 0.3.9 → 0.3.10

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/lib/message.js CHANGED
@@ -89,25 +89,25 @@ class Encoder {
89
89
  }
90
90
 
91
91
  put(value) {
92
- this[kBuffer].push(['writeInt8', Number(value), (this[kOffset] += 1) - 1, 1]);
92
+ this[kBuffer].push(['writeInt8', Number(value), (this[kOffset] += 1) - 1]);
93
93
 
94
94
  return this;
95
95
  }
96
96
 
97
97
  putShort(value) {
98
- this[kBuffer].push(['writeInt16LE', Number(value), (this[kOffset] += 2) - 2, 2]);
98
+ this[kBuffer].push(['writeInt16LE', Number(value), (this[kOffset] += 2) - 2]);
99
99
 
100
100
  return this;
101
101
  }
102
102
 
103
103
  putInt(value) {
104
- this[kBuffer].push(['writeInt32LE', Number(value), (this[kOffset] += 4) - 4, 4]);
104
+ this[kBuffer].push(['writeInt32LE', Number(value), (this[kOffset] += 4) - 4]);
105
105
 
106
106
  return this;
107
107
  }
108
108
 
109
109
  putLong(value) {
110
- this[kBuffer].push(['writeBigInt64LE', BigInt(value), (this[kOffset] += 8) - 8, 8]);
110
+ this[kBuffer].push(['writeBigInt64LE', BigInt(value), (this[kOffset] += 8) - 8]);
111
111
 
112
112
  return this;
113
113
  }
@@ -120,6 +120,11 @@ class Encoder {
120
120
  return this;
121
121
  }
122
122
 
123
+ /**
124
+ * Only Support kind of `number`(integer), `bigint`, `string`(utf-8), `Date` and `Buffer` values
125
+ * @param {number|bigint|string|Date|Buffer} value - The value
126
+ * @returns {this} This instance
127
+ */
123
128
  writeCustomValue(value) {
124
129
  const type = typeof value;
125
130
  if (value === null || ['undefined', 'symbol', 'boolean', 'function'].includes(type)) {
@@ -157,10 +162,11 @@ class Encoder {
157
162
  if (Buffer.isBuffer(value)) {
158
163
  const len = value.length;
159
164
  this.put(ByteArray).putInt(len);
160
- this[kBuffer].push(['fill', value, (this[kOffset] += len) - len, len]);
165
+ this[kBuffer].push(['fill', value, this[kOffset], this[kOffset] += len]);
166
+ return this;
161
167
  }
162
168
 
163
- return this;
169
+ return this.put(Void);
164
170
  }
165
171
 
166
172
  get buffer() {
@@ -220,26 +226,26 @@ class Decoder {
220
226
  }
221
227
 
222
228
  get() {
223
- const value = this[kBuffer].readInt8(this[kOffset]);
224
- this[kOffset] += 1;
229
+ const value = this[kBuffer].readInt8((this[kOffset] += 1) - 1);
230
+
225
231
  return Number(value);
226
232
  }
227
233
 
228
234
  getShort() {
229
- const value = this[kBuffer].readInt16LE(this[kOffset]);
230
- this[kOffset] += 2;
235
+ const value = this[kBuffer].readInt16LE((this[kOffset] += 2) - 2);
236
+
231
237
  return Number(value);
232
238
  }
233
239
 
234
240
  getInt() {
235
- const value = this[kBuffer].readInt32LE(this[kOffset]);
236
- this[kOffset] += 4;
241
+ const value = this[kBuffer].readInt32LE((this[kOffset] += 4) - 4);
242
+
237
243
  return Number(value);
238
244
  }
239
245
 
240
246
  getLong() {
241
- const value = this[kBuffer].readBigInt64LE(this[kOffset]);
242
- this[kOffset] += 8;
247
+ const value = this[kBuffer].readBigInt64LE((this[kOffset] += 8) - 8);
248
+
243
249
  return BigInt(value);
244
250
  }
245
251
 
@@ -248,9 +254,8 @@ class Decoder {
248
254
  if (size === 0) {
249
255
  return null;
250
256
  }
251
- const buf = this[kBuffer].subarray(this[kOffset], this[kOffset] + size);
252
- this[kOffset] += size;
253
- return buf;
257
+
258
+ return this[kBuffer].subarray(this[kOffset], this[kOffset] += size);
254
259
  }
255
260
 
256
261
  readCountedString() { return this.readBuffer()?.toString(utf8); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tmc.js",
3
- "version": "0.3.9",
3
+ "version": "0.3.10",
4
4
  "description": "Events driven and chained Taobao Message Channel(TMC) for NodeJS",
5
5
  "author": "James ZHANG",
6
6
  "license": "MIT",
@@ -340,6 +340,26 @@ declare namespace Alibaba.Aliqin {
340
340
  oper_type: string;
341
341
  }
342
342
 
343
+ /** 语音呼叫结果推送 */
344
+ interface TaFcCallCdr {
345
+ /** 任务主键 */
346
+ biz_id: string;
347
+ /** DTMF */
348
+ dtmf: string;
349
+ /** 通话时长,未接通为0 */
350
+ duration: string;
351
+ /** 通话结束时间,未接通则为空 */
352
+ end_time: string;
353
+ /** 扩展字段回传,将调用api时传入的字段返回 */
354
+ extend: string;
355
+ /** 通话开始时间,未接通则为空 */
356
+ start_time: string;
357
+ /** 呼叫结果状态码 */
358
+ status_code: string;
359
+ /** 结果描述 */
360
+ status_msg: string;
361
+ }
362
+
343
363
  /** 聚石塔短消息发送结果报告 */
344
364
  interface TaFcSmsDR {
345
365
  /** 任务主键 */
@@ -1233,7 +1253,7 @@ declare namespace Alibaba.Nlife {
1233
1253
  /** 商品的商家编码 */
1234
1254
  outer_id: string;
1235
1255
  /** 商品的skuId */
1236
- sku_id: number;
1256
+ sku_id: number | bigint;
1237
1257
  /** 门店id */
1238
1258
  store_id: string;
1239
1259
  /** 商品的变动类型:PRICE_CHANGE-价格变化; INVENTORY_CHANGE-库存变化; ONSALE_CHANGE-上架变化; OFFSALE_CHANGE-下架变化; NEWSKU_CHANGE-新增sku变化; DELSKU_CHANGE-删除sku变化 */
package/types/fliggy.d.ts CHANGED
@@ -83,7 +83,7 @@ declare namespace Fliggy.Ticket {
83
83
  /** 产品价格 */
84
84
  product_price: number;
85
85
  /** skuId */
86
- sku_id: number;
86
+ sku_id: number | bigint;
87
87
  }
88
88
 
89
89
  /** 域外分销订单码核销消息 */
package/types/index.d.ts CHANGED
@@ -109,6 +109,8 @@ declare interface TaoTopicsDescriptor {
109
109
  alibaba_aliqin_IotPersonalConfirmNotice(fn: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinIotPersonalConfirmNotice) => void): TaoMessageConsumer;
110
110
  /** {@link IncomingMessage.AlibabaAliqinIotStatusNotice 阿里通信 > 物联网停机消息通知} */
111
111
  alibaba_aliqin_IotStatusNotice(fn: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinIotStatusNotice) => void): TaoMessageConsumer;
112
+ /** {@link IncomingMessage.AlibabaAliqinTaFcCallCdr 阿里通信 > 语音呼叫结果推送} */
113
+ alibaba_aliqin_TaFcCallCdr(fn: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinTaFcCallCdr) => void): TaoMessageConsumer;
112
114
  /** {@link IncomingMessage.AlibabaAliqinTaFcSmsDR 阿里通信 > 聚石塔短消息发送结果报告} */
113
115
  alibaba_aliqin_TaFcSmsDR(fn: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinTaFcSmsDR) => void): TaoMessageConsumer;
114
116
  /** {@link IncomingMessage.AlibabaEinvoiceApplyUpdate 电子发票 > 发票申请单状态变更通知} */
@@ -535,6 +537,8 @@ declare interface TaoTopicsDescriptor {
535
537
  taobao_homeai_CaseSyncResult(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiCaseSyncResult) => void): TaoMessageConsumer;
536
538
  /** {@link IncomingMessage.TaobaoHomeaiLayoutTransferResult HOMEAI消息对接 > 居然之家接受迁移结果} */
537
539
  taobao_homeai_LayoutTransferResult(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiLayoutTransferResult) => void): TaoMessageConsumer;
540
+ /** {@link IncomingMessage.TaobaoHomeaiModelSkuRelation HOMEAI消息对接 > 推送模型与商品关系} */
541
+ taobao_homeai_ModelSkuRelation(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiModelSkuRelation) => void): TaoMessageConsumer;
538
542
  /** {@link IncomingMessage.TaobaoHomeaiRenderRequest HOMEAI消息对接 > HS渲染消息} */
539
543
  taobao_homeai_RenderRequest(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiRenderRequest) => void): TaoMessageConsumer;
540
544
  /** {@link IncomingMessage.TaobaoHotelCreditToPreHotelStatus 酒店签约中心消息 > 信用住转预付酒店签约状态消息} */
@@ -707,6 +711,8 @@ declare interface TaoTopicsDescriptor {
707
711
  taobao_top_AuthCancel(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTopAuthCancel) => void): TaoMessageConsumer;
708
712
  /** {@link IncomingMessage.TaobaoTopatsTaskComplete 平台消息 > 异步任务执行完成} */
709
713
  taobao_topats_TaskComplete(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTopatsTaskComplete) => void): TaoMessageConsumer;
714
+ /** {@link IncomingMessage.TaobaoTradeAdvanceDisburse 淘宝交易 > 订单极速放款成功消息} */
715
+ taobao_trade_AdvanceDisburse(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTradeAdvanceDisburse) => void): TaoMessageConsumer;
710
716
  /** {@link IncomingMessage.TaobaoTradeTradeAlipayCreate 淘宝交易 > 创建支付宝订单消息} */
711
717
  taobao_trade_TradeAlipayCreate(fn: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTradeTradeAlipayCreate) => void): TaoMessageConsumer;
712
718
  /** {@link IncomingMessage.TaobaoTradeTradeBuyerPay 淘宝交易 > 买家付完款,或万人团买家付完尾款} */
@@ -1238,6 +1244,8 @@ declare interface TaoEventsListener {
1238
1244
  on(topic: 'alibaba_aliqin_IotPersonalConfirmNotice', listener: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinIotPersonalConfirmNotice) => void): TaoMessageConsumer;
1239
1245
  /** {@link IncomingMessage.AlibabaAliqinIotStatusNotice 阿里通信 > 物联网停机消息通知} */
1240
1246
  on(topic: 'alibaba_aliqin_IotStatusNotice', listener: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinIotStatusNotice) => void): TaoMessageConsumer;
1247
+ /** {@link IncomingMessage.AlibabaAliqinTaFcCallCdr 阿里通信 > 语音呼叫结果推送} */
1248
+ on(topic: 'alibaba_aliqin_TaFcCallCdr', listener: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinTaFcCallCdr) => void): TaoMessageConsumer;
1241
1249
  /** {@link IncomingMessage.AlibabaAliqinTaFcSmsDR 阿里通信 > 聚石塔短消息发送结果报告} */
1242
1250
  on(topic: 'alibaba_aliqin_TaFcSmsDR', listener: (this: TaoMessageConsumer, message: IncomingMessage.AlibabaAliqinTaFcSmsDR) => void): TaoMessageConsumer;
1243
1251
  /** {@link IncomingMessage.AlibabaEinvoiceApplyUpdate 电子发票 > 发票申请单状态变更通知} */
@@ -1664,6 +1672,8 @@ declare interface TaoEventsListener {
1664
1672
  on(topic: 'taobao_homeai_CaseSyncResult', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiCaseSyncResult) => void): TaoMessageConsumer;
1665
1673
  /** {@link IncomingMessage.TaobaoHomeaiLayoutTransferResult HOMEAI消息对接 > 居然之家接受迁移结果} */
1666
1674
  on(topic: 'taobao_homeai_LayoutTransferResult', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiLayoutTransferResult) => void): TaoMessageConsumer;
1675
+ /** {@link IncomingMessage.TaobaoHomeaiModelSkuRelation HOMEAI消息对接 > 推送模型与商品关系} */
1676
+ on(topic: 'taobao_homeai_ModelSkuRelation', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiModelSkuRelation) => void): TaoMessageConsumer;
1667
1677
  /** {@link IncomingMessage.TaobaoHomeaiRenderRequest HOMEAI消息对接 > HS渲染消息} */
1668
1678
  on(topic: 'taobao_homeai_RenderRequest', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoHomeaiRenderRequest) => void): TaoMessageConsumer;
1669
1679
  /** {@link IncomingMessage.TaobaoHotelCreditToPreHotelStatus 酒店签约中心消息 > 信用住转预付酒店签约状态消息} */
@@ -1836,6 +1846,8 @@ declare interface TaoEventsListener {
1836
1846
  on(topic: 'taobao_top_AuthCancel', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTopAuthCancel) => void): TaoMessageConsumer;
1837
1847
  /** {@link IncomingMessage.TaobaoTopatsTaskComplete 平台消息 > 异步任务执行完成} */
1838
1848
  on(topic: 'taobao_topats_TaskComplete', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTopatsTaskComplete) => void): TaoMessageConsumer;
1849
+ /** {@link IncomingMessage.TaobaoTradeAdvanceDisburse 淘宝交易 > 订单极速放款成功消息} */
1850
+ on(topic: 'taobao_trade_AdvanceDisburse', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTradeAdvanceDisburse) => void): TaoMessageConsumer;
1839
1851
  /** {@link IncomingMessage.TaobaoTradeTradeAlipayCreate 淘宝交易 > 创建支付宝订单消息} */
1840
1852
  on(topic: 'taobao_trade_TradeAlipayCreate', listener: (this: TaoMessageConsumer, message: IncomingMessage.TaobaoTradeTradeAlipayCreate) => void): TaoMessageConsumer;
1841
1853
  /** {@link IncomingMessage.TaobaoTradeTradeBuyerPay 淘宝交易 > 买家付完款,或万人团买家付完尾款} */
@@ -60,7 +60,7 @@ declare namespace Message {
60
60
  getShort(): number;
61
61
  getInt(): number;
62
62
  getLong(): bigint;
63
- readBuffer(): Buffer;
63
+ readBuffer(): null | Buffer;
64
64
  readCountedString(): null | string;
65
65
  readCustomValue(): null | number | bigint | string | Buffer | Date;
66
66
  parse0(): null;