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.
- package/LICENSE +68 -0
- package/README.md +467 -0
- package/dist/api/client.d.ts +86 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +3 -0
- package/dist/api/client.js.map +1 -0
- package/dist/cluster/api.d.ts +34 -0
- package/dist/cluster/api.d.ts.map +1 -0
- package/dist/cluster/api.js +250 -0
- package/dist/cluster/api.js.map +1 -0
- package/dist/cluster/config.d.ts +30 -0
- package/dist/cluster/config.d.ts.map +1 -0
- package/dist/cluster/config.js +86 -0
- package/dist/cluster/config.js.map +1 -0
- package/dist/cluster/index.d.ts +3 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +21 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/cluster/handler.d.ts +60 -0
- package/dist/internal/cluster/handler.d.ts.map +1 -0
- package/dist/internal/cluster/handler.js +589 -0
- package/dist/internal/cluster/handler.js.map +1 -0
- package/dist/internal/cluster/httputil.d.ts +25 -0
- package/dist/internal/cluster/httputil.d.ts.map +1 -0
- package/dist/internal/cluster/httputil.js +193 -0
- package/dist/internal/cluster/httputil.js.map +1 -0
- package/dist/internal/command/dec_room_avl.d.ts +5 -0
- package/dist/internal/command/dec_room_avl.d.ts.map +1 -0
- package/dist/internal/command/dec_room_avl.js +49 -0
- package/dist/internal/command/dec_room_avl.js.map +1 -0
- package/dist/internal/command/del_prop.d.ts +4 -0
- package/dist/internal/command/del_prop.d.ts.map +1 -0
- package/dist/internal/command/del_prop.js +43 -0
- package/dist/internal/command/del_prop.js.map +1 -0
- package/dist/internal/command/del_prop_day.d.ts +5 -0
- package/dist/internal/command/del_prop_day.d.ts.map +1 -0
- package/dist/internal/command/del_prop_day.js +47 -0
- package/dist/internal/command/del_prop_day.js.map +1 -0
- package/dist/internal/command/del_prop_room.d.ts +5 -0
- package/dist/internal/command/del_prop_room.d.ts.map +1 -0
- package/dist/internal/command/del_prop_room.js +46 -0
- package/dist/internal/command/del_prop_room.js.map +1 -0
- package/dist/internal/command/del_room_day.d.ts +5 -0
- package/dist/internal/command/del_room_day.d.ts.map +1 -0
- package/dist/internal/command/del_room_day.js +47 -0
- package/dist/internal/command/del_room_day.js.map +1 -0
- package/dist/internal/command/del_segment.d.ts +4 -0
- package/dist/internal/command/del_segment.d.ts.map +1 -0
- package/dist/internal/command/del_segment.js +43 -0
- package/dist/internal/command/del_segment.js.map +1 -0
- package/dist/internal/command/get_codecs.d.ts +5 -0
- package/dist/internal/command/get_codecs.d.ts.map +1 -0
- package/dist/internal/command/get_codecs.js +38 -0
- package/dist/internal/command/get_codecs.js.map +1 -0
- package/dist/internal/command/get_prop_room_day.d.ts +7 -0
- package/dist/internal/command/get_prop_room_day.d.ts.map +1 -0
- package/dist/internal/command/get_prop_room_day.js +59 -0
- package/dist/internal/command/get_prop_room_day.js.map +1 -0
- package/dist/internal/command/get_segments.d.ts +5 -0
- package/dist/internal/command/get_segments.d.ts.map +1 -0
- package/dist/internal/command/get_segments.js +47 -0
- package/dist/internal/command/get_segments.js.map +1 -0
- package/dist/internal/command/inc_room_avl.d.ts +5 -0
- package/dist/internal/command/inc_room_avl.d.ts.map +1 -0
- package/dist/internal/command/inc_room_avl.js +46 -0
- package/dist/internal/command/inc_room_avl.js.map +1 -0
- package/dist/internal/command/index.d.ts +20 -0
- package/dist/internal/command/index.d.ts.map +1 -0
- package/dist/internal/command/index.js +61 -0
- package/dist/internal/command/index.js.map +1 -0
- package/dist/internal/command/prop_exist.d.ts +4 -0
- package/dist/internal/command/prop_exist.d.ts.map +1 -0
- package/dist/internal/command/prop_exist.js +43 -0
- package/dist/internal/command/prop_exist.js.map +1 -0
- package/dist/internal/command/prop_room_date_list.d.ts +5 -0
- package/dist/internal/command/prop_room_date_list.d.ts.map +1 -0
- package/dist/internal/command/prop_room_date_list.js +50 -0
- package/dist/internal/command/prop_room_date_list.js.map +1 -0
- package/dist/internal/command/prop_room_exist.d.ts +5 -0
- package/dist/internal/command/prop_room_exist.d.ts.map +1 -0
- package/dist/internal/command/prop_room_exist.js +44 -0
- package/dist/internal/command/prop_room_exist.js.map +1 -0
- package/dist/internal/command/prop_room_list.d.ts +4 -0
- package/dist/internal/command/prop_room_list.d.ts.map +1 -0
- package/dist/internal/command/prop_room_list.js +45 -0
- package/dist/internal/command/prop_room_list.js.map +1 -0
- package/dist/internal/command/search_avail.d.ts +7 -0
- package/dist/internal/command/search_avail.d.ts.map +1 -0
- package/dist/internal/command/search_avail.js +129 -0
- package/dist/internal/command/search_avail.js.map +1 -0
- package/dist/internal/command/search_prop.d.ts +5 -0
- package/dist/internal/command/search_prop.d.ts.map +1 -0
- package/dist/internal/command/search_prop.js +73 -0
- package/dist/internal/command/search_prop.js.map +1 -0
- package/dist/internal/command/set_prop.d.ts +5 -0
- package/dist/internal/command/set_prop.d.ts.map +1 -0
- package/dist/internal/command/set_prop.js +47 -0
- package/dist/internal/command/set_prop.js.map +1 -0
- package/dist/internal/command/set_room_avl.d.ts +5 -0
- package/dist/internal/command/set_room_avl.d.ts.map +1 -0
- package/dist/internal/command/set_room_avl.js +46 -0
- package/dist/internal/command/set_room_avl.js.map +1 -0
- package/dist/internal/command/set_room_pkg.d.ts +5 -0
- package/dist/internal/command/set_room_pkg.d.ts.map +1 -0
- package/dist/internal/command/set_room_pkg.js +76 -0
- package/dist/internal/command/set_room_pkg.js.map +1 -0
- package/dist/internal/err.d.ts +16 -0
- package/dist/internal/err.d.ts.map +1 -0
- package/dist/internal/err.js +39 -0
- package/dist/internal/err.js.map +1 -0
- package/dist/internal/protocol/frame.d.ts +6 -0
- package/dist/internal/protocol/frame.d.ts.map +1 -0
- package/dist/internal/protocol/frame.js +118 -0
- package/dist/internal/protocol/frame.js.map +1 -0
- package/dist/internal/protocol/helpers.d.ts +8 -0
- package/dist/internal/protocol/helpers.d.ts.map +1 -0
- package/dist/internal/protocol/helpers.js +101 -0
- package/dist/internal/protocol/helpers.js.map +1 -0
- package/dist/internal/protocol/login.d.ts +2 -0
- package/dist/internal/protocol/login.d.ts.map +1 -0
- package/dist/internal/protocol/login.js +30 -0
- package/dist/internal/protocol/login.js.map +1 -0
- package/dist/internal/protocol/types.d.ts +19 -0
- package/dist/internal/protocol/types.d.ts.map +1 -0
- package/dist/internal/protocol/types.js +8 -0
- package/dist/internal/protocol/types.js.map +1 -0
- package/dist/internal/single/handler.d.ts +30 -0
- package/dist/internal/single/handler.d.ts.map +1 -0
- package/dist/internal/single/handler.js +197 -0
- package/dist/internal/single/handler.js.map +1 -0
- package/dist/single/api.d.ts +38 -0
- package/dist/single/api.d.ts.map +1 -0
- package/dist/single/api.js +240 -0
- package/dist/single/api.js.map +1 -0
- package/dist/single/config.d.ts +21 -0
- package/dist/single/config.d.ts.map +1 -0
- package/dist/single/config.js +64 -0
- package/dist/single/config.js.map +1 -0
- package/dist/single/index.d.ts +3 -0
- package/dist/single/index.d.ts.map +1 -0
- package/dist/single/index.js +21 -0
- package/dist/single/index.js.map +1 -0
- package/dist/types/codecs.d.ts +5 -0
- package/dist/types/codecs.d.ts.map +1 -0
- package/dist/types/codecs.js +16 -0
- package/dist/types/codecs.js.map +1 -0
- package/dist/types/discovery.d.ts +7 -0
- package/dist/types/discovery.d.ts.map +1 -0
- package/dist/types/discovery.js +3 -0
- package/dist/types/discovery.js.map +1 -0
- package/dist/types/err.d.ts +20 -0
- package/dist/types/err.d.ts.map +1 -0
- package/dist/types/err.js +38 -0
- package/dist/types/err.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/request.d.ts +94 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +207 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/response.d.ts +22 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +3 -0
- package/dist/types/response.js.map +1 -0
- 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":"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"}
|
|
@@ -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":";;AAMA,wDA2CC;AAED,kDA0BC;AA1ED,iDAA0E;AAC1E,gCAAiC;AAEjC,SAAgB,sBAAsB,CAAC,CAAoB;IACvD,MAAM,OAAO,GAAG,YAAY,CAAC;IAE7B,MAAM,MAAM,GAAsD;QAC9D,oBAAoB;QACpB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;KACzD,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,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,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,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;IACpF,CAAC;IACD,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,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,kCAAkC;IAClC,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,mBAAmB,CAAC,MAAc,EAAE,MAAe;IAC/D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7E,MAAM,IAAA,aAAO,EAAC,sBAAsB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,IAAA,aAAO,EAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,+CAA+C;QAC/C,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAA,aAAO,EAAC,oBAAoB,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAA,aAAO,EAAC,4BAA4B,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACrE,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAiB,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -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":";;AAKA,wDAwEC;AAED,kDAQC;AArFD,gCAAiC;AAGjC,SAAgB,sBAAsB,CAAC,CAAoB;IACvD,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAA,aAAO,EAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC;IAE7B,MAAM,MAAM,GAAsD;QAC9D,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;KACtD,CAAC;IAEF,gCAAgC;IAChC,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;SACtC,CAAC,CAAC;IACP,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAC;SACV,CAAC,CAAC;IACP,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IAED,0CAA0C;IAC1C,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,kBAAkB;IAClB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAErC,iBAAiB;IACjB,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,CAAC;IAEZ,WAAW;IACX,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,OAAO;IACX,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC;IAChE,CAAC;IACD,MAAM,IAAA,aAAO,EAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -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"}
|