roomzin-js 1.0.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.
Files changed (171) hide show
  1. package/LICENSE +68 -0
  2. package/README.md +467 -0
  3. package/dist/api/client.d.ts +86 -0
  4. package/dist/api/client.d.ts.map +1 -0
  5. package/dist/api/client.js +3 -0
  6. package/dist/api/client.js.map +1 -0
  7. package/dist/cluster/api.d.ts +34 -0
  8. package/dist/cluster/api.d.ts.map +1 -0
  9. package/dist/cluster/api.js +250 -0
  10. package/dist/cluster/api.js.map +1 -0
  11. package/dist/cluster/config.d.ts +30 -0
  12. package/dist/cluster/config.d.ts.map +1 -0
  13. package/dist/cluster/config.js +86 -0
  14. package/dist/cluster/config.js.map +1 -0
  15. package/dist/cluster/index.d.ts +3 -0
  16. package/dist/cluster/index.d.ts.map +1 -0
  17. package/dist/cluster/index.js +21 -0
  18. package/dist/cluster/index.js.map +1 -0
  19. package/dist/index.d.ts +5 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +21 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/internal/cluster/handler.d.ts +60 -0
  24. package/dist/internal/cluster/handler.d.ts.map +1 -0
  25. package/dist/internal/cluster/handler.js +589 -0
  26. package/dist/internal/cluster/handler.js.map +1 -0
  27. package/dist/internal/cluster/httputil.d.ts +25 -0
  28. package/dist/internal/cluster/httputil.d.ts.map +1 -0
  29. package/dist/internal/cluster/httputil.js +193 -0
  30. package/dist/internal/cluster/httputil.js.map +1 -0
  31. package/dist/internal/command/dec_room_avl.d.ts +5 -0
  32. package/dist/internal/command/dec_room_avl.d.ts.map +1 -0
  33. package/dist/internal/command/dec_room_avl.js +49 -0
  34. package/dist/internal/command/dec_room_avl.js.map +1 -0
  35. package/dist/internal/command/del_prop.d.ts +4 -0
  36. package/dist/internal/command/del_prop.d.ts.map +1 -0
  37. package/dist/internal/command/del_prop.js +43 -0
  38. package/dist/internal/command/del_prop.js.map +1 -0
  39. package/dist/internal/command/del_prop_day.d.ts +5 -0
  40. package/dist/internal/command/del_prop_day.d.ts.map +1 -0
  41. package/dist/internal/command/del_prop_day.js +47 -0
  42. package/dist/internal/command/del_prop_day.js.map +1 -0
  43. package/dist/internal/command/del_prop_room.d.ts +5 -0
  44. package/dist/internal/command/del_prop_room.d.ts.map +1 -0
  45. package/dist/internal/command/del_prop_room.js +46 -0
  46. package/dist/internal/command/del_prop_room.js.map +1 -0
  47. package/dist/internal/command/del_room_day.d.ts +5 -0
  48. package/dist/internal/command/del_room_day.d.ts.map +1 -0
  49. package/dist/internal/command/del_room_day.js +47 -0
  50. package/dist/internal/command/del_room_day.js.map +1 -0
  51. package/dist/internal/command/del_segment.d.ts +4 -0
  52. package/dist/internal/command/del_segment.d.ts.map +1 -0
  53. package/dist/internal/command/del_segment.js +43 -0
  54. package/dist/internal/command/del_segment.js.map +1 -0
  55. package/dist/internal/command/get_codecs.d.ts +5 -0
  56. package/dist/internal/command/get_codecs.d.ts.map +1 -0
  57. package/dist/internal/command/get_codecs.js +38 -0
  58. package/dist/internal/command/get_codecs.js.map +1 -0
  59. package/dist/internal/command/get_prop_room_day.d.ts +7 -0
  60. package/dist/internal/command/get_prop_room_day.d.ts.map +1 -0
  61. package/dist/internal/command/get_prop_room_day.js +59 -0
  62. package/dist/internal/command/get_prop_room_day.js.map +1 -0
  63. package/dist/internal/command/get_segments.d.ts +5 -0
  64. package/dist/internal/command/get_segments.d.ts.map +1 -0
  65. package/dist/internal/command/get_segments.js +47 -0
  66. package/dist/internal/command/get_segments.js.map +1 -0
  67. package/dist/internal/command/inc_room_avl.d.ts +5 -0
  68. package/dist/internal/command/inc_room_avl.d.ts.map +1 -0
  69. package/dist/internal/command/inc_room_avl.js +46 -0
  70. package/dist/internal/command/inc_room_avl.js.map +1 -0
  71. package/dist/internal/command/index.d.ts +20 -0
  72. package/dist/internal/command/index.d.ts.map +1 -0
  73. package/dist/internal/command/index.js +61 -0
  74. package/dist/internal/command/index.js.map +1 -0
  75. package/dist/internal/command/prop_exist.d.ts +4 -0
  76. package/dist/internal/command/prop_exist.d.ts.map +1 -0
  77. package/dist/internal/command/prop_exist.js +43 -0
  78. package/dist/internal/command/prop_exist.js.map +1 -0
  79. package/dist/internal/command/prop_room_date_list.d.ts +5 -0
  80. package/dist/internal/command/prop_room_date_list.d.ts.map +1 -0
  81. package/dist/internal/command/prop_room_date_list.js +50 -0
  82. package/dist/internal/command/prop_room_date_list.js.map +1 -0
  83. package/dist/internal/command/prop_room_exist.d.ts +5 -0
  84. package/dist/internal/command/prop_room_exist.d.ts.map +1 -0
  85. package/dist/internal/command/prop_room_exist.js +44 -0
  86. package/dist/internal/command/prop_room_exist.js.map +1 -0
  87. package/dist/internal/command/prop_room_list.d.ts +4 -0
  88. package/dist/internal/command/prop_room_list.d.ts.map +1 -0
  89. package/dist/internal/command/prop_room_list.js +45 -0
  90. package/dist/internal/command/prop_room_list.js.map +1 -0
  91. package/dist/internal/command/search_avail.d.ts +7 -0
  92. package/dist/internal/command/search_avail.d.ts.map +1 -0
  93. package/dist/internal/command/search_avail.js +129 -0
  94. package/dist/internal/command/search_avail.js.map +1 -0
  95. package/dist/internal/command/search_prop.d.ts +5 -0
  96. package/dist/internal/command/search_prop.d.ts.map +1 -0
  97. package/dist/internal/command/search_prop.js +73 -0
  98. package/dist/internal/command/search_prop.js.map +1 -0
  99. package/dist/internal/command/set_prop.d.ts +5 -0
  100. package/dist/internal/command/set_prop.d.ts.map +1 -0
  101. package/dist/internal/command/set_prop.js +47 -0
  102. package/dist/internal/command/set_prop.js.map +1 -0
  103. package/dist/internal/command/set_room_avl.d.ts +5 -0
  104. package/dist/internal/command/set_room_avl.d.ts.map +1 -0
  105. package/dist/internal/command/set_room_avl.js +46 -0
  106. package/dist/internal/command/set_room_avl.js.map +1 -0
  107. package/dist/internal/command/set_room_pkg.d.ts +5 -0
  108. package/dist/internal/command/set_room_pkg.d.ts.map +1 -0
  109. package/dist/internal/command/set_room_pkg.js +76 -0
  110. package/dist/internal/command/set_room_pkg.js.map +1 -0
  111. package/dist/internal/err.d.ts +16 -0
  112. package/dist/internal/err.d.ts.map +1 -0
  113. package/dist/internal/err.js +39 -0
  114. package/dist/internal/err.js.map +1 -0
  115. package/dist/internal/protocol/frame.d.ts +6 -0
  116. package/dist/internal/protocol/frame.d.ts.map +1 -0
  117. package/dist/internal/protocol/frame.js +118 -0
  118. package/dist/internal/protocol/frame.js.map +1 -0
  119. package/dist/internal/protocol/helpers.d.ts +8 -0
  120. package/dist/internal/protocol/helpers.d.ts.map +1 -0
  121. package/dist/internal/protocol/helpers.js +101 -0
  122. package/dist/internal/protocol/helpers.js.map +1 -0
  123. package/dist/internal/protocol/login.d.ts +2 -0
  124. package/dist/internal/protocol/login.d.ts.map +1 -0
  125. package/dist/internal/protocol/login.js +30 -0
  126. package/dist/internal/protocol/login.js.map +1 -0
  127. package/dist/internal/protocol/types.d.ts +19 -0
  128. package/dist/internal/protocol/types.d.ts.map +1 -0
  129. package/dist/internal/protocol/types.js +8 -0
  130. package/dist/internal/protocol/types.js.map +1 -0
  131. package/dist/internal/single/handler.d.ts +30 -0
  132. package/dist/internal/single/handler.d.ts.map +1 -0
  133. package/dist/internal/single/handler.js +197 -0
  134. package/dist/internal/single/handler.js.map +1 -0
  135. package/dist/single/api.d.ts +38 -0
  136. package/dist/single/api.d.ts.map +1 -0
  137. package/dist/single/api.js +240 -0
  138. package/dist/single/api.js.map +1 -0
  139. package/dist/single/config.d.ts +21 -0
  140. package/dist/single/config.d.ts.map +1 -0
  141. package/dist/single/config.js +64 -0
  142. package/dist/single/config.js.map +1 -0
  143. package/dist/single/index.d.ts +3 -0
  144. package/dist/single/index.d.ts.map +1 -0
  145. package/dist/single/index.js +21 -0
  146. package/dist/single/index.js.map +1 -0
  147. package/dist/types/codecs.d.ts +5 -0
  148. package/dist/types/codecs.d.ts.map +1 -0
  149. package/dist/types/codecs.js +16 -0
  150. package/dist/types/codecs.js.map +1 -0
  151. package/dist/types/discovery.d.ts +7 -0
  152. package/dist/types/discovery.d.ts.map +1 -0
  153. package/dist/types/discovery.js +3 -0
  154. package/dist/types/discovery.js.map +1 -0
  155. package/dist/types/err.d.ts +20 -0
  156. package/dist/types/err.d.ts.map +1 -0
  157. package/dist/types/err.js +38 -0
  158. package/dist/types/err.js.map +1 -0
  159. package/dist/types/index.d.ts +5 -0
  160. package/dist/types/index.d.ts.map +1 -0
  161. package/dist/types/index.js +21 -0
  162. package/dist/types/index.js.map +1 -0
  163. package/dist/types/request.d.ts +94 -0
  164. package/dist/types/request.d.ts.map +1 -0
  165. package/dist/types/request.js +207 -0
  166. package/dist/types/request.js.map +1 -0
  167. package/dist/types/response.d.ts +22 -0
  168. package/dist/types/response.d.ts.map +1 -0
  169. package/dist/types/response.js +3 -0
  170. package/dist/types/response.js.map +1 -0
  171. package/package.json +34 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSearchAvailPayload = buildSearchAvailPayload;
4
+ exports.parseSearchAvailResp = parseSearchAvailResp;
5
+ const helpers_1 = require("../protocol/helpers");
6
+ const err_1 = require("../err");
7
+ function buildSearchAvailPayload(p) {
8
+ const cmdName = 'SEARCHAVAIL';
9
+ const fields = [
10
+ // Required fields
11
+ { id: 0x01, type: 0x01, data: Buffer.from(p.segment) },
12
+ { id: 0x02, type: 0x01, data: Buffer.from(p.roomType) },
13
+ ];
14
+ // Optional fields
15
+ if (p.area)
16
+ fields.push({ id: 0x03, type: 0x01, data: Buffer.from(p.area) });
17
+ if (p.propertyID)
18
+ fields.push({ id: 0x04, type: 0x01, data: Buffer.from(p.propertyID) });
19
+ if (p.type)
20
+ fields.push({ id: 0x05, type: 0x01, data: Buffer.from(p.type) });
21
+ if (p.stars !== undefined)
22
+ fields.push({ id: 0x06, type: 0x02, data: Buffer.from([p.stars]) });
23
+ if (p.category)
24
+ fields.push({ id: 0x07, type: 0x01, data: Buffer.from(p.category) });
25
+ if (p.amenities.length > 0)
26
+ fields.push({ id: 0x08, type: 0x01, data: Buffer.from(p.amenities.join(',')) });
27
+ if (p.longitude !== undefined)
28
+ fields.push({ id: 0x09, type: 0x03, data: (0, helpers_1.makeF64)(p.longitude) });
29
+ if (p.latitude !== undefined)
30
+ fields.push({ id: 0x0A, type: 0x03, data: (0, helpers_1.makeF64)(p.latitude) });
31
+ if (p.date.length > 0)
32
+ fields.push({ id: 0x0B, type: 0x01, data: Buffer.from(p.date.join(',')) });
33
+ if (p.availability !== undefined)
34
+ fields.push({ id: 0x0C, type: 0x02, data: Buffer.from([p.availability]) });
35
+ if (p.finalPrice !== undefined)
36
+ fields.push({ id: 0x0D, type: 0x03, data: (0, helpers_1.makeU32)(p.finalPrice) });
37
+ if (p.rateFeature.length > 0)
38
+ fields.push({ id: 0x0E, type: 0x01, data: Buffer.from(p.rateFeature.join(',')) });
39
+ if (p.limit !== undefined)
40
+ fields.push({ id: 0x0F, type: 0x03, data: (0, helpers_1.makeU64)(p.limit) });
41
+ // Dynamic size — safe
42
+ let size = 1 + cmdName.length + 2;
43
+ for (const f of fields)
44
+ size += 2 + 1 + 4 + f.data.length;
45
+ const buf = Buffer.alloc(size);
46
+ let offset = 0;
47
+ buf[offset++] = cmdName.length;
48
+ offset += buf.write(cmdName, offset);
49
+ buf.writeUInt16LE(fields.length, offset);
50
+ offset += 2;
51
+ for (const f of fields) {
52
+ buf.writeUInt16LE(f.id, offset);
53
+ offset += 2;
54
+ buf[offset++] = f.type;
55
+ buf.writeUInt32LE(f.data.length, offset);
56
+ offset += 4;
57
+ f.data.copy(buf, offset);
58
+ offset += f.data.length;
59
+ }
60
+ return buf;
61
+ }
62
+ function parseSearchAvailResp(codecs, status, fields) {
63
+ if (status !== 'SUCCESS') {
64
+ const msg = fields.length > 0 && fields[0].fieldType === 0x01
65
+ ? fields[0].data.toString('utf8')
66
+ : `search failed with status=${status}`;
67
+ throw (0, err_1.RzError)(msg);
68
+ }
69
+ // First field: num_days (id=1, type=0x02, 2 bytes)
70
+ const numDaysField = fields[0];
71
+ if (numDaysField.id !== 1 || numDaysField.fieldType !== 0x02 || numDaysField.data.length !== 2) {
72
+ throw (0, err_1.RzError)('expected num_days field (id=1, type=0x02, len=2)');
73
+ }
74
+ const numDays = numDaysField.data.readUInt16LE(0);
75
+ const result = [];
76
+ let i = 1;
77
+ while (i < fields.length) {
78
+ // Property ID (string)
79
+ const propField = fields[i++];
80
+ if (propField.fieldType !== 0x01) {
81
+ throw (0, err_1.RzError)(`expected property ID string, got type 0x${propField.fieldType.toString(16)}`);
82
+ }
83
+ const propertyID = (0, helpers_1.bytesToPropertyID)(propField.data);
84
+ // Days vector (type 0x08)
85
+ if (i >= fields.length)
86
+ throw (0, err_1.RzError)(`property "${propertyID}" missing days vector`);
87
+ const daysField = fields[i++];
88
+ if (daysField.fieldType !== 0x08) {
89
+ throw (0, err_1.RzError)(`expected days vector (0x08) for property "${propertyID}", got 0x${daysField.fieldType.toString(16)}`);
90
+ }
91
+ const data = daysField.data;
92
+ if (data.length < 2)
93
+ throw (0, err_1.RzError)(`property "${propertyID}" days vector too short`);
94
+ const daysCount = data.readUInt16LE(0);
95
+ if (daysCount !== numDays) {
96
+ throw (0, err_1.RzError)(`property "${propertyID}" days count mismatch: expected ${numDays}, got ${daysCount}`);
97
+ }
98
+ // Updated: 11 bytes per day (date 2 + avail 1 + price 4 + rate_feature u32 4)
99
+ const expectedLen = 2 + daysCount * 11;
100
+ if (data.length !== expectedLen) {
101
+ throw (0, err_1.RzError)(`property "${propertyID}" days vector length mismatch: expected ${expectedLen}, got ${data.length}`);
102
+ }
103
+ const days = [];
104
+ let cursor = 2;
105
+ for (let d = 0; d < daysCount; d++) {
106
+ const datePacked = data.readUInt16LE(cursor);
107
+ cursor += 2;
108
+ const availability = data[cursor];
109
+ cursor += 1;
110
+ const finalPrice = data.readUInt32LE(cursor);
111
+ cursor += 4;
112
+ const rateFeatureMask = data.readUInt32LE(cursor);
113
+ cursor += 4;
114
+ const date = (0, helpers_1.u16ToDate)(datePacked);
115
+ days.push({
116
+ date,
117
+ availability,
118
+ finalPrice,
119
+ rateFeature: (0, helpers_1.bitmaskToRateFeatureStrings)(codecs, rateFeatureMask),
120
+ });
121
+ }
122
+ result.push({ propertyID, days });
123
+ }
124
+ if (i !== fields.length) {
125
+ throw (0, err_1.RzError)(`extra fields after parsing: consumed=${i}, total=${fields.length}`);
126
+ }
127
+ return result;
128
+ }
129
+ //# sourceMappingURL=search_avail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_avail.js","sourceRoot":"","sources":["../../../src/internal/command/search_avail.ts"],"names":[],"mappings":";;AAeA,0DA+CC;AAED,oDA6EC;AAxID,iDAO6B;AAC7B,gCAAiC;AAEjC,SAAgB,uBAAuB,CAAC,CAAqB;IACzD,MAAM,OAAO,GAAG,aAAa,CAAC;IAE9B,MAAM,MAAM,GAAsD;QAC9D,kBAAkB;QAClB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;QACtD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;KAC1D,CAAC;IAEF,kBAAkB;IAClB,IAAI,CAAC,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,CAAC,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5G,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,iBAAO,EAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjG,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,iBAAO,EAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7G,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,iBAAO,EAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnG,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAChH,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,iBAAO,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEzF,sBAAsB;IACtB,IAAI,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAE1D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,CAAC;IAEZ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,CAAC;QACZ,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,oBAAoB,CAChC,MAAqB,EACrB,MAAc,EACd,MAAe;IAEf,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI;YACzD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjC,CAAC,CAAC,6BAA6B,MAAM,EAAE,CAAC;QAC5C,MAAM,IAAA,aAAO,EAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAA,aAAO,EAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,uBAAuB;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAA,aAAO,EAAC,2CAA2C,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,2BAAiB,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErD,0BAA0B;QAC1B,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAA,aAAO,EAAC,aAAa,UAAU,uBAAuB,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAA,aAAO,EAAC,6CAA6C,UAAU,YAAY,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAA,aAAO,EAAC,aAAa,UAAU,yBAAyB,CAAC,CAAC;QAErF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAA,aAAO,EAAC,aAAa,UAAU,mCAAmC,OAAO,SAAS,SAAS,EAAE,CAAC,CAAC;QACzG,CAAC;QAED,8EAA8E;QAC9E,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAA,aAAO,EAAC,aAAa,UAAU,2CAA2C,WAAW,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvH,CAAC;QAED,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;YAE/D,MAAM,IAAI,GAAG,IAAA,mBAAS,EAAC,UAAU,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC;gBACN,IAAI;gBACJ,YAAY;gBACZ,UAAU;gBACV,WAAW,EAAE,IAAA,qCAA2B,EAAC,MAAM,EAAE,eAAe,CAAC;aACpE,CAAC,CAAC;QACP,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,IAAA,aAAO,EAAC,wCAAwC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SearchPropPayload } from '../../types/request';
2
+ import { Field } from '../protocol/types';
3
+ export declare function buildSearchPropPayload(p: SearchPropPayload): Buffer;
4
+ export declare function parseSearchPropResp(status: string, fields: Field[]): string[];
5
+ //# sourceMappingURL=search_prop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_prop.d.ts","sourceRoot":"","sources":["../../../src/internal/command/search_prop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CA2CnE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CA0B7E"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSearchPropPayload = buildSearchPropPayload;
4
+ exports.parseSearchPropResp = parseSearchPropResp;
5
+ const helpers_1 = require("../protocol/helpers");
6
+ const err_1 = require("../err");
7
+ function buildSearchPropPayload(p) {
8
+ const cmdName = 'SEARCHPROP';
9
+ const fields = [
10
+ // Required: segment
11
+ { id: 0x01, type: 0x01, data: Buffer.from(p.segment) },
12
+ ];
13
+ // Optional fields
14
+ if (p.area)
15
+ fields.push({ id: 0x02, type: 0x01, data: Buffer.from(p.area) });
16
+ if (p.type)
17
+ fields.push({ id: 0x03, type: 0x01, data: Buffer.from(p.type) });
18
+ if (p.stars !== undefined)
19
+ fields.push({ id: 0x04, type: 0x02, data: Buffer.from([p.stars]) });
20
+ if (p.category)
21
+ fields.push({ id: 0x05, type: 0x01, data: Buffer.from(p.category) });
22
+ if (p.amenities && p.amenities.length > 0) {
23
+ fields.push({ id: 0x06, type: 0x01, data: Buffer.from(p.amenities.join(',')) });
24
+ }
25
+ if (p.longitude !== undefined)
26
+ fields.push({ id: 0x07, type: 0x03, data: (0, helpers_1.makeF64)(p.longitude) });
27
+ if (p.latitude !== undefined)
28
+ fields.push({ id: 0x08, type: 0x03, data: (0, helpers_1.makeF64)(p.latitude) });
29
+ if (p.limit !== undefined)
30
+ fields.push({ id: 0x09, type: 0x03, data: (0, helpers_1.makeU64)(p.limit) });
31
+ // Dynamic size — no bugs, no math
32
+ let size = 1 + cmdName.length + 2;
33
+ for (const f of fields)
34
+ size += 2 + 1 + 4 + f.data.length;
35
+ const buf = Buffer.alloc(size);
36
+ let offset = 0;
37
+ buf[offset++] = cmdName.length;
38
+ offset += buf.write(cmdName, offset);
39
+ buf.writeUInt16LE(fields.length, offset);
40
+ offset += 2;
41
+ for (const f of fields) {
42
+ buf.writeUInt16LE(f.id, offset);
43
+ offset += 2;
44
+ buf[offset++] = f.type;
45
+ buf.writeUInt32LE(f.data.length, offset);
46
+ offset += 4;
47
+ f.data.copy(buf, offset);
48
+ offset += f.data.length;
49
+ }
50
+ return buf;
51
+ }
52
+ function parseSearchPropResp(status, fields) {
53
+ if (status !== 'SUCCESS') {
54
+ if (fields.length > 0 && fields[0].id === 0x01 && fields[0].fieldType === 0x01) {
55
+ throw (0, err_1.RzError)(`search prop error: ${fields[0].data.toString('utf8')}`);
56
+ }
57
+ throw (0, err_1.RzError)('search prop error: no error message');
58
+ }
59
+ const ids = [];
60
+ for (let i = 0; i < fields.length; i++) {
61
+ const f = fields[i];
62
+ // expects field ID == i+1 (1-based sequential)
63
+ if (f.id !== i + 1) {
64
+ throw (0, err_1.RzError)(`invalid field ID ${f.id}: expected ${i + 1}`);
65
+ }
66
+ if (f.fieldType !== 0x01) {
67
+ throw (0, err_1.RzError)(`invalid field type at ID ${f.id}: expected 0x01`);
68
+ }
69
+ ids.push((0, helpers_1.bytesToPropertyID)(f.data));
70
+ }
71
+ return ids;
72
+ }
73
+ //# sourceMappingURL=search_prop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_prop.js","sourceRoot":"","sources":["../../../src/internal/command/search_prop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { SetPropPayload } from '../../types/request';
2
+ import { Field } from '../protocol/types';
3
+ export declare function buildSetPropPayload(p: SetPropPayload): Buffer;
4
+ export declare function parseSetPropResp(status: string, fields: Field[]): void;
5
+ //# sourceMappingURL=set_prop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_prop.d.ts","sourceRoot":"","sources":["../../../src/internal/command/set_prop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAyC7D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAGtE"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSetPropPayload = buildSetPropPayload;
4
+ exports.parseSetPropResp = parseSetPropResp;
5
+ const err_1 = require("../err");
6
+ const helpers_1 = require("../protocol/helpers");
7
+ function buildSetPropPayload(p) {
8
+ const cmdName = 'SETPROP';
9
+ const amenityStr = p.amenities.join(',');
10
+ const fields = [
11
+ { id: 0x01, type: 0x01, data: Buffer.from(p.segment) },
12
+ { id: 0x02, type: 0x01, data: Buffer.from(p.area) },
13
+ { id: 0x03, type: 0x01, data: Buffer.from(p.propertyID) },
14
+ { id: 0x04, type: 0x01, data: Buffer.from(p.propertyType) },
15
+ { id: 0x05, type: 0x01, data: Buffer.from(p.category) },
16
+ { id: 0x06, type: 0x02, data: Buffer.from([p.stars]) },
17
+ { id: 0x07, type: 0x03, data: (0, helpers_1.makeF64)(p.latitude) },
18
+ { id: 0x08, type: 0x03, data: (0, helpers_1.makeF64)(p.longitude) },
19
+ { id: 0x09, type: 0x01, data: Buffer.from(amenityStr) },
20
+ ];
21
+ let size = 1 + cmdName.length + 2; // cmd len + cmd + field count
22
+ for (const f of fields) {
23
+ size += 2 + 1 + 4 + f.data.length; // id + type + len + data
24
+ }
25
+ const buf = Buffer.alloc(size);
26
+ let offset = 0;
27
+ buf[offset++] = cmdName.length;
28
+ offset += buf.write(cmdName, offset);
29
+ buf.writeUInt16LE(fields.length, offset);
30
+ offset += 2;
31
+ for (const f of fields) {
32
+ buf.writeUInt16LE(f.id, offset);
33
+ offset += 2;
34
+ buf[offset++] = f.type;
35
+ buf.writeUInt32LE(f.data.length, offset);
36
+ offset += 4;
37
+ f.data.copy(buf, offset);
38
+ offset += f.data.length;
39
+ }
40
+ return buf;
41
+ }
42
+ function parseSetPropResp(status, fields) {
43
+ if (status === 'SUCCESS')
44
+ return;
45
+ throw (0, err_1.RzError)(`${fields[0]?.data.toString('utf8') ?? 'unknown'}`);
46
+ }
47
+ //# sourceMappingURL=set_prop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_prop.js","sourceRoot":"","sources":["../../../src/internal/command/set_prop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { UpdRoomAvlPayload } from '../../types/request';
2
+ import { Field } from '../protocol/types';
3
+ export declare function buildSetRoomAvlPayload(p: UpdRoomAvlPayload): Buffer;
4
+ export declare function parseSetRoomAvlResp(status: string, fields: Field[]): number;
5
+ //# sourceMappingURL=set_room_avl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_room_avl.d.ts","sourceRoot":"","sources":["../../../src/internal/command/set_room_avl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAkCnE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAW3E"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSetRoomAvlPayload = buildSetRoomAvlPayload;
4
+ exports.parseSetRoomAvlResp = parseSetRoomAvlResp;
5
+ const err_1 = require("../err");
6
+ function buildSetRoomAvlPayload(p) {
7
+ const cmdName = 'SETROOMAVL';
8
+ const fields = [
9
+ { id: 0x01, type: 0x01, data: Buffer.from(p.propertyID) },
10
+ { id: 0x02, type: 0x01, data: Buffer.from(p.roomType) },
11
+ { id: 0x03, type: 0x01, data: Buffer.from(p.date) },
12
+ { id: 0x04, type: 0x02, data: Buffer.from([p.amount]) },
13
+ ];
14
+ let size = 1 + cmdName.length + 2; // cmd_len + cmd + field_count
15
+ for (const f of fields) {
16
+ size += 2 + 1 + 4 + f.data.length; // id + type + len + data
17
+ }
18
+ const buf = Buffer.alloc(size);
19
+ let offset = 0;
20
+ buf[offset++] = cmdName.length;
21
+ offset += buf.write(cmdName, offset);
22
+ buf.writeUInt16LE(fields.length, offset);
23
+ offset += 2;
24
+ for (const f of fields) {
25
+ buf.writeUInt16LE(f.id, offset);
26
+ offset += 2;
27
+ buf[offset++] = f.type;
28
+ buf.writeUInt32LE(f.data.length, offset);
29
+ offset += 4;
30
+ f.data.copy(buf, offset);
31
+ offset += f.data.length;
32
+ }
33
+ return buf;
34
+ }
35
+ function parseSetRoomAvlResp(status, fields) {
36
+ if (status === 'SUCCESS') {
37
+ const b = fields[0]?.data;
38
+ if (!b || b.length !== 1) {
39
+ throw (0, err_1.RzError)('missing or invalid scalar value');
40
+ }
41
+ return b[0];
42
+ }
43
+ const msg = fields[0]?.data.toString('utf8') ?? 'unknown error';
44
+ throw (0, err_1.RzError)(`${msg}`);
45
+ }
46
+ //# sourceMappingURL=set_room_avl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_room_avl.js","sourceRoot":"","sources":["../../../src/internal/command/set_room_avl.ts"],"names":[],"mappings":";;AAKA,wDAkCC;AAED,kDAWC;AAlDD,gCAAiC;AAGjC,SAAgB,sBAAsB,CAAC,CAAoB;IACvD,MAAM,OAAO,GAAG,YAAY,CAAC;IAE7B,MAAM,MAAM,GAAG;QACX,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;QACzD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QACvD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACnD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;KAC1D,CAAC;IAEF,IAAI,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,8BAA8B;IACjE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,yBAAyB;IAChE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,CAAC;IAEZ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,CAAC;QACZ,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAc,EAAE,MAAe;IAC/D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAA,aAAO,EAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC;IAChE,MAAM,IAAA,aAAO,EAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SetRoomPkgPayload } from '../../types/request';
2
+ import { Field } from '../protocol/types';
3
+ export declare function buildSetRoomPkgPayload(p: SetRoomPkgPayload): Buffer;
4
+ export declare function parseSetRoomPkgResp(status: string, fields: Field[]): void;
5
+ //# sourceMappingURL=set_room_pkg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_room_pkg.d.ts","sourceRoot":"","sources":["../../../src/internal/command/set_room_pkg.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAwEnE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAQzE"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSetRoomPkgPayload = buildSetRoomPkgPayload;
4
+ exports.parseSetRoomPkgResp = parseSetRoomPkgResp;
5
+ const err_1 = require("../err");
6
+ function buildSetRoomPkgPayload(p) {
7
+ if (!p.propertyID || !p.roomType || !p.date) {
8
+ throw (0, err_1.RzError)('missing required fields');
9
+ }
10
+ const cmdName = 'SETROOMPKG';
11
+ const fields = [
12
+ { id: 0x01, type: 0x01, data: Buffer.from(p.propertyID) },
13
+ { id: 0x02, type: 0x01, data: Buffer.from(p.roomType) },
14
+ { id: 0x03, type: 0x01, data: Buffer.from(p.date) },
15
+ ];
16
+ // Optional: Availability (byte)
17
+ if (p.availability !== undefined && p.availability !== null) {
18
+ fields.push({
19
+ id: 0x04,
20
+ type: 0x02,
21
+ data: Buffer.from([p.availability]),
22
+ });
23
+ }
24
+ // Optional: FinalPrice (u32 LE)
25
+ if (p.finalPrice !== undefined && p.finalPrice !== null) {
26
+ const b = Buffer.alloc(4);
27
+ b.writeUInt32LE(p.finalPrice, 0);
28
+ fields.push({
29
+ id: 0x05,
30
+ type: 0x03,
31
+ data: b,
32
+ });
33
+ }
34
+ // Optional: RateFeature list → comma-separated string
35
+ if (p.rateFeature && p.rateFeature.length > 0) {
36
+ const rateFeatureStr = p.rateFeature.join(',');
37
+ fields.push({
38
+ id: 0x06,
39
+ type: 0x01,
40
+ data: Buffer.from(rateFeatureStr),
41
+ });
42
+ }
43
+ // --- Dynamic size calculation (safe) ---
44
+ let size = 1 + cmdName.length + 2; // cmd_len + cmd + field_count
45
+ for (const f of fields) {
46
+ size += 2 + 1 + 4 + f.data.length; // id + type + len + data
47
+ }
48
+ const buf = Buffer.alloc(size);
49
+ let offset = 0;
50
+ // 1. Command name
51
+ buf[offset++] = cmdName.length;
52
+ offset += buf.write(cmdName, offset);
53
+ // 2. Field count
54
+ buf.writeUInt16LE(fields.length, offset);
55
+ offset += 2;
56
+ // 3.Fields
57
+ for (const f of fields) {
58
+ buf.writeUInt16LE(f.id, offset);
59
+ offset += 2;
60
+ buf[offset++] = f.type;
61
+ buf.writeUInt32LE(f.data.length, offset);
62
+ offset += 4;
63
+ f.data.copy(buf, offset);
64
+ offset += f.data.length;
65
+ }
66
+ return buf;
67
+ }
68
+ function parseSetRoomPkgResp(status, fields) {
69
+ if (status === 'SUCCESS') {
70
+ return;
71
+ }
72
+ const msg = fields[0]?.data.toString('utf8') ?? 'unknown error';
73
+ ;
74
+ throw (0, err_1.RzError)(`${msg}`);
75
+ }
76
+ //# sourceMappingURL=set_room_pkg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_room_pkg.js","sourceRoot":"","sources":["../../../src/internal/command/set_room_pkg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { RoomzinError, ErrorKind } from '../types/err';
2
+ type Stringable = string | Error | {
3
+ toString(): string;
4
+ };
5
+ /**
6
+ * RzError turns *anything* into a RoomzinError.
7
+ * RzError('AUTH_ERROR:bad token') -> KindClient
8
+ * RzError(new Error('VALIDATION_ERROR:foo')) -> KindRequest
9
+ * RzError('something else') -> KindInternal
10
+ * RzError(any, ErrorKind.Retry) -> forced bucket
11
+ *
12
+ * Drop-in replacement for `new Error(...)` everywhere.
13
+ */
14
+ export declare function RzError(input: Stringable, kind?: ErrorKind): RoomzinError;
15
+ export {};
16
+ //# sourceMappingURL=err.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"err.d.ts","sourceRoot":"","sources":["../../src/internal/err.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,KAAK,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAyBzE"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RzError = RzError;
4
+ const err_1 = require("../types/err");
5
+ /**
6
+ * RzError turns *anything* into a RoomzinError.
7
+ * RzError('AUTH_ERROR:bad token') -> KindClient
8
+ * RzError(new Error('VALIDATION_ERROR:foo')) -> KindRequest
9
+ * RzError('something else') -> KindInternal
10
+ * RzError(any, ErrorKind.Retry) -> forced bucket
11
+ *
12
+ * Drop-in replacement for `new Error(...)` everywhere.
13
+ */
14
+ function RzError(input, kind) {
15
+ if (input instanceof err_1.RoomzinError)
16
+ return input; // already wrapped
17
+ const str = input instanceof Error ? input.message : String(input);
18
+ const [code = 'INTERNAL_ERROR', msg = str] = str.split(':', 2);
19
+ if (kind)
20
+ return new err_1.RoomzinError(kind, code, msg);
21
+ switch (code) {
22
+ case 'AUTH_ERROR':
23
+ return new err_1.RoomzinError(err_1.ErrorKind.Client, code, msg);
24
+ case 'VALIDATION_ERROR':
25
+ case 'NOT_FOUND':
26
+ case 'OVERFLOW':
27
+ case 'UNDERFLOW':
28
+ case 'FORBIDDEN':
29
+ return new err_1.RoomzinError(err_1.ErrorKind.Request, code, msg);
30
+ case '503':
31
+ case '429':
32
+ case '308':
33
+ case '405':
34
+ return new err_1.RoomzinError(err_1.ErrorKind.Retry, code, msg);
35
+ default:
36
+ return new err_1.RoomzinError(err_1.ErrorKind.Internal, code || 'INTERNAL_ERROR', msg);
37
+ }
38
+ }
39
+ //# sourceMappingURL=err.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"err.js","sourceRoot":"","sources":["../../src/internal/err.ts"],"names":[],"mappings":";;AAaA,0BAyBC;AAtCD,sCAAuD;AAIvD;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAC,KAAiB,EAAE,IAAgB;IACvD,IAAI,KAAK,YAAY,kBAAY;QAAE,OAAO,KAAK,CAAC,CAAG,kBAAkB;IAErE,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,CAAC,IAAI,GAAG,gBAAgB,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAE/D,IAAI,IAAI;QAAE,OAAO,IAAI,kBAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEnD,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,YAAY;YACb,OAAO,IAAI,kBAAY,CAAC,eAAS,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,KAAK,kBAAkB,CAAC;QACxB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACZ,OAAO,IAAI,kBAAY,CAAC,eAAS,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACN,OAAO,IAAI,kBAAY,CAAC,eAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACxD;YACI,OAAO,IAAI,kBAAY,CAAC,eAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACnF,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Header, Field } from './types';
2
+ export declare function prependHeader(clrID: number, payload: Buffer): Buffer;
3
+ export declare function drainFrame(stream: NodeJS.ReadableStream): Promise<[Header, Buffer]>;
4
+ export declare function parseFields(data: Buffer, fieldCount: number): Field[];
5
+ export declare function readFull(stream: NodeJS.ReadableStream, buffer: Buffer): Promise<void>;
6
+ //# sourceMappingURL=frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/internal/protocol/frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkC,MAAM,SAAS,CAAC;AAMxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAUpE;AAID,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqCzF;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE,CAiCrE;AAGD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCrF"}