@caspertech/node-metaverse 0.6.4 → 0.6.5

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 (52) hide show
  1. package/dist/lib/classes/ObjectStoreLite.js +6 -6
  2. package/dist/lib/classes/ObjectStoreLite.js.map +1 -1
  3. package/dist/lib/classes/commands/CommunicationsCommands.js +21 -0
  4. package/dist/lib/classes/commands/CommunicationsCommands.js.map +1 -1
  5. package/dist/lib/classes/commands/FriendCommands.js +3 -0
  6. package/dist/lib/classes/commands/FriendCommands.js.map +1 -1
  7. package/dist/lib/classes/commands/GroupCommands.js +9 -0
  8. package/dist/lib/classes/commands/GroupCommands.js.map +1 -1
  9. package/dist/lib/classes/llsd/LLSDArray.d.ts +5 -0
  10. package/dist/lib/classes/llsd/LLSDArray.js +45 -0
  11. package/dist/lib/classes/llsd/LLSDArray.js.map +1 -0
  12. package/dist/lib/classes/llsd/LLSDMap.d.ts +10 -0
  13. package/dist/lib/classes/llsd/LLSDMap.js +94 -0
  14. package/dist/lib/classes/llsd/LLSDMap.js.map +1 -0
  15. package/dist/lib/classes/llsd/LLSDNotationParser.d.ts +9 -0
  16. package/dist/lib/classes/llsd/LLSDNotationParser.js +183 -0
  17. package/dist/lib/classes/llsd/LLSDNotationParser.js.map +1 -0
  18. package/dist/lib/classes/llsd/LLSDNotationParser.spec.d.ts +1 -0
  19. package/dist/lib/classes/llsd/LLSDNotationParser.spec.js +167 -0
  20. package/dist/lib/classes/llsd/LLSDNotationParser.spec.js.map +1 -0
  21. package/dist/lib/classes/llsd/LLSDObject.d.ts +4 -0
  22. package/dist/lib/classes/llsd/LLSDObject.js +10 -0
  23. package/dist/lib/classes/llsd/LLSDObject.js.map +1 -0
  24. package/dist/lib/classes/llsd/LLSDToken.d.ts +10 -0
  25. package/dist/lib/classes/llsd/LLSDToken.js +3 -0
  26. package/dist/lib/classes/llsd/LLSDToken.js.map +1 -0
  27. package/dist/lib/classes/llsd/LLSDTokenContainer.d.ts +7 -0
  28. package/dist/lib/classes/llsd/LLSDTokenContainer.js +3 -0
  29. package/dist/lib/classes/llsd/LLSDTokenContainer.js.map +1 -0
  30. package/dist/lib/classes/llsd/LLSDTokenGenerator.d.ts +2 -0
  31. package/dist/lib/classes/llsd/LLSDTokenGenerator.js +3 -0
  32. package/dist/lib/classes/llsd/LLSDTokenGenerator.js.map +1 -0
  33. package/dist/lib/classes/llsd/LLSDTokenSpec.d.ts +5 -0
  34. package/dist/lib/classes/llsd/LLSDTokenSpec.js +3 -0
  35. package/dist/lib/classes/llsd/LLSDTokenSpec.js.map +1 -0
  36. package/dist/lib/classes/llsd/LLSDTokenType.d.ts +22 -0
  37. package/dist/lib/classes/llsd/LLSDTokenType.js +27 -0
  38. package/dist/lib/classes/llsd/LLSDTokenType.js.map +1 -0
  39. package/dist/lib/classes/llsd/LLSDType.d.ts +4 -0
  40. package/dist/lib/classes/llsd/LLSDType.js +3 -0
  41. package/dist/lib/classes/llsd/LLSDType.js.map +1 -0
  42. package/dist/lib/classes/python/PythonDict.js +6 -2
  43. package/dist/lib/classes/python/PythonDict.js.map +1 -1
  44. package/dist/lib/classes/python/PythonParser.js +5 -4
  45. package/dist/lib/classes/python/PythonParser.js.map +1 -1
  46. package/dist/lib/classes/python/PythonParser.spec.js +8 -0
  47. package/dist/lib/classes/python/PythonParser.spec.js.map +1 -1
  48. package/dist/lib/classes/python/PythonSet.js +2 -0
  49. package/dist/lib/classes/python/PythonSet.js.map +1 -1
  50. package/dist/lib/classes/python/PythonTokenType.js +2 -2
  51. package/dist/lib/classes/python/PythonTokenType.js.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLSDMap = void 0;
4
+ const LLSDObject_1 = require("./LLSDObject");
5
+ const LLSDTokenType_1 = require("./LLSDTokenType");
6
+ const LLSDNotationParser_1 = require("./LLSDNotationParser");
7
+ class LLSDMap extends LLSDObject_1.LLSDObject {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.data = new Map();
11
+ }
12
+ static parse(gen) {
13
+ const m = new LLSDMap();
14
+ let expectsKey = true;
15
+ let key = undefined;
16
+ let value = undefined;
17
+ while (true) {
18
+ const token = gen();
19
+ if (token === undefined) {
20
+ throw new Error('Unexpected end of input in map');
21
+ }
22
+ switch (token.type) {
23
+ case LLSDTokenType_1.LLSDTokenType.WHITESPACE:
24
+ {
25
+ continue;
26
+ }
27
+ case LLSDTokenType_1.LLSDTokenType.MAP_END:
28
+ {
29
+ if (expectsKey) {
30
+ throw new Error('Unexpected end of map');
31
+ }
32
+ if (key !== undefined && value !== undefined) {
33
+ m.data.set(key, value);
34
+ }
35
+ else if (m.data.size > 0) {
36
+ throw new Error('Expected value before end of map');
37
+ }
38
+ return m;
39
+ }
40
+ case LLSDTokenType_1.LLSDTokenType.COLON:
41
+ {
42
+ if (!expectsKey) {
43
+ throw new Error('Unexpected symbol: :');
44
+ }
45
+ if (key === undefined) {
46
+ throw new Error('Empty key not allowed');
47
+ }
48
+ expectsKey = false;
49
+ continue;
50
+ }
51
+ case LLSDTokenType_1.LLSDTokenType.COMMA:
52
+ {
53
+ if (expectsKey) {
54
+ throw new Error('Empty map entry not allowed');
55
+ }
56
+ if (value === undefined) {
57
+ throw new Error('Empty map value not allowed');
58
+ }
59
+ if (key !== undefined) {
60
+ m.data.set(key, value);
61
+ }
62
+ key = undefined;
63
+ value = undefined;
64
+ expectsKey = true;
65
+ continue;
66
+ }
67
+ }
68
+ if (expectsKey && key !== undefined) {
69
+ throw new Error('Colon expected');
70
+ }
71
+ else if (value !== undefined) {
72
+ throw new Error('Comma or end brace expected');
73
+ }
74
+ const val = LLSDNotationParser_1.LLSDNotationParser.parseValueToken(gen, token);
75
+ if (expectsKey) {
76
+ key = val;
77
+ }
78
+ else {
79
+ value = val;
80
+ }
81
+ }
82
+ }
83
+ get length() {
84
+ return Object.keys(this.data).length;
85
+ }
86
+ get(key) {
87
+ return this.data.get(key);
88
+ }
89
+ toJSON() {
90
+ return Object.fromEntries(this.data);
91
+ }
92
+ }
93
+ exports.LLSDMap = LLSDMap;
94
+ //# sourceMappingURL=LLSDMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDMap.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDMap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { LLSDType } from './LLSDType';
2
+ import { LLSDToken } from './LLSDToken';
3
+ import { LLSDTokenGenerator } from './LLSDTokenGenerator';
4
+ export declare class LLSDNotationParser {
5
+ private static tokenSpecs;
6
+ private static tokenize;
7
+ static parseValueToken(gen: LLSDTokenGenerator, initialToken?: LLSDToken): LLSDType;
8
+ static parse(input: string): LLSDType;
9
+ }
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLSDNotationParser = void 0;
4
+ const LLSDTokenType_1 = require("./LLSDTokenType");
5
+ const LLSDMap_1 = require("./LLSDMap");
6
+ const UUID_1 = require("../UUID");
7
+ const LLSDArray_1 = require("./LLSDArray");
8
+ class LLSDNotationParser {
9
+ static *tokenize(inpt) {
10
+ const dataContainer = {
11
+ input: inpt,
12
+ index: 0
13
+ };
14
+ while (dataContainer.index < dataContainer.input.length) {
15
+ const currentInput = dataContainer.input.slice(dataContainer.index);
16
+ if (currentInput.length === 0) {
17
+ return;
18
+ }
19
+ let matched = false;
20
+ for (const { regex, type } of this.tokenSpecs) {
21
+ const tokenMatch = currentInput.match(regex);
22
+ if (tokenMatch) {
23
+ matched = true;
24
+ let value = tokenMatch[0];
25
+ if (tokenMatch.length > 1) {
26
+ value = tokenMatch[tokenMatch.length - 1];
27
+ }
28
+ dataContainer.index += tokenMatch[0].length;
29
+ yield { type, value, rawValue: tokenMatch[0], dataContainer };
30
+ break;
31
+ }
32
+ }
33
+ if (!matched) {
34
+ dataContainer.index++;
35
+ yield { type: LLSDTokenType_1.LLSDTokenType.UNKNOWN, value: dataContainer.input[dataContainer.index - 1], rawValue: dataContainer.input[dataContainer.index - 1], dataContainer };
36
+ }
37
+ }
38
+ }
39
+ static parseValueToken(gen, initialToken) {
40
+ while (true) {
41
+ let t;
42
+ if (initialToken !== undefined) {
43
+ t = initialToken;
44
+ initialToken = undefined;
45
+ }
46
+ else {
47
+ t = gen();
48
+ if (t === undefined) {
49
+ throw new Error('Unexpected end of input');
50
+ }
51
+ }
52
+ switch (t.type) {
53
+ case LLSDTokenType_1.LLSDTokenType.UNKNOWN:
54
+ {
55
+ throw new Error('Unexpected token: ' + t.value);
56
+ }
57
+ case LLSDTokenType_1.LLSDTokenType.WHITESPACE:
58
+ {
59
+ continue;
60
+ }
61
+ case LLSDTokenType_1.LLSDTokenType.NULL:
62
+ {
63
+ return null;
64
+ }
65
+ case LLSDTokenType_1.LLSDTokenType.BOOLEAN:
66
+ {
67
+ return t.value === 'true' || t.value === 'TRUE' || t.value === 'T' || t.value === 't' || t.value === '1';
68
+ }
69
+ case LLSDTokenType_1.LLSDTokenType.INTEGER:
70
+ {
71
+ return parseInt(t.value, 10);
72
+ }
73
+ case LLSDTokenType_1.LLSDTokenType.REAL:
74
+ {
75
+ return parseFloat(t.value);
76
+ }
77
+ case LLSDTokenType_1.LLSDTokenType.UUID:
78
+ {
79
+ return new UUID_1.UUID(t.value);
80
+ }
81
+ case LLSDTokenType_1.LLSDTokenType.STRING_FIXED_SINGLE:
82
+ {
83
+ return t.value.replace(/\\'/, '\'')
84
+ .replace(/\\\\/g, '\\');
85
+ }
86
+ case LLSDTokenType_1.LLSDTokenType.STRING_FIXED_DOUBLE:
87
+ {
88
+ return t.value.replace(/\\"/, '"')
89
+ .replace(/\\\\/g, '\\');
90
+ }
91
+ case LLSDTokenType_1.LLSDTokenType.URI:
92
+ {
93
+ return t.value;
94
+ }
95
+ case LLSDTokenType_1.LLSDTokenType.DATE:
96
+ {
97
+ return new Date(t.value);
98
+ }
99
+ case LLSDTokenType_1.LLSDTokenType.BINARY_STATIC:
100
+ {
101
+ const b = t.value.match(/^b([0-9]{2})"([0-9a-zA-Z+\/=]*?)"/);
102
+ if (b === null || b.length < 3) {
103
+ throw new Error('Invalid BINARY_STATIC');
104
+ }
105
+ const base = parseInt(b[1], 10);
106
+ if (base !== 16 && base !== 64) {
107
+ throw new Error('Unsupported base ' + String(base));
108
+ }
109
+ return Buffer.from(b[2], base === 64 ? 'base64' : 'hex');
110
+ }
111
+ case LLSDTokenType_1.LLSDTokenType.STRING_DYNAMIC_START:
112
+ {
113
+ const length = parseInt(t.value, 10);
114
+ const s = t.dataContainer.input.slice(t.dataContainer.index, t.dataContainer.index + length);
115
+ t.dataContainer.index += length;
116
+ if (t.dataContainer.input[t.dataContainer.index] !== '"') {
117
+ throw new Error('Expected " at end of dynamic string');
118
+ }
119
+ t.dataContainer.index += 1;
120
+ return s;
121
+ }
122
+ case LLSDTokenType_1.LLSDTokenType.BINARY_DYNAMIC_START:
123
+ {
124
+ const length = parseInt(t.value, 10);
125
+ const s = t.dataContainer.input.slice(t.dataContainer.index, t.dataContainer.index + length);
126
+ t.dataContainer.index += length;
127
+ if (t.dataContainer.input[t.dataContainer.index] !== '"') {
128
+ throw new Error('Expected " at end of dynamic binary string');
129
+ }
130
+ t.dataContainer.index += 1;
131
+ return Buffer.from(s, 'binary');
132
+ }
133
+ case LLSDTokenType_1.LLSDTokenType.MAP_START:
134
+ {
135
+ return LLSDMap_1.LLSDMap.parse(gen);
136
+ }
137
+ case LLSDTokenType_1.LLSDTokenType.ARRAY_START:
138
+ {
139
+ return LLSDArray_1.LLSDArray.parse(gen);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ static parse(input) {
145
+ const generator = this.tokenize(input);
146
+ const getToken = () => {
147
+ return generator.next().value;
148
+ };
149
+ const data = this.parseValueToken(getToken);
150
+ do {
151
+ const t = getToken();
152
+ if (t === undefined) {
153
+ return data;
154
+ }
155
+ if (t.type !== LLSDTokenType_1.LLSDTokenType.WHITESPACE) {
156
+ throw new Error('Unexpected token at end of document: ' + t.value);
157
+ }
158
+ } while (true);
159
+ }
160
+ }
161
+ exports.LLSDNotationParser = LLSDNotationParser;
162
+ LLSDNotationParser.tokenSpecs = [
163
+ { regex: /^\s+/, type: LLSDTokenType_1.LLSDTokenType.WHITESPACE },
164
+ { regex: /^!/, type: LLSDTokenType_1.LLSDTokenType.NULL },
165
+ { regex: /^\{/, type: LLSDTokenType_1.LLSDTokenType.MAP_START },
166
+ { regex: /^}/, type: LLSDTokenType_1.LLSDTokenType.MAP_END },
167
+ { regex: /^:/, type: LLSDTokenType_1.LLSDTokenType.COLON },
168
+ { regex: /^,/, type: LLSDTokenType_1.LLSDTokenType.COMMA },
169
+ { regex: /^\[/, type: LLSDTokenType_1.LLSDTokenType.ARRAY_START },
170
+ { regex: /^]/, type: LLSDTokenType_1.LLSDTokenType.ARRAY_END },
171
+ { regex: /^(?:true|false|TRUE|FALSE|1|0|T|F|t|f)/, type: LLSDTokenType_1.LLSDTokenType.BOOLEAN },
172
+ { regex: /^i(-?[0-9]+)/, type: LLSDTokenType_1.LLSDTokenType.INTEGER },
173
+ { regex: /^r(-?[0-9.]+)/, type: LLSDTokenType_1.LLSDTokenType.REAL },
174
+ { regex: /^u([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/, type: LLSDTokenType_1.LLSDTokenType.UUID },
175
+ { regex: /^'([^'\\]*(?:\\.[^'\\\n]*)*)'/, type: LLSDTokenType_1.LLSDTokenType.STRING_FIXED_SINGLE },
176
+ { regex: /^"([^"\\]*(?:\\.[^"\\\n]*)*)"/, type: LLSDTokenType_1.LLSDTokenType.STRING_FIXED_DOUBLE },
177
+ { regex: /^s\(([0-9]+)\)"/, type: LLSDTokenType_1.LLSDTokenType.STRING_DYNAMIC_START },
178
+ { regex: /^l"([^"]*?)"/, type: LLSDTokenType_1.LLSDTokenType.URI },
179
+ { regex: /^d"([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{2}Z)"/, type: LLSDTokenType_1.LLSDTokenType.DATE },
180
+ { regex: /^b[0-9]{2}"[0-9a-zA-Z+\/=]*?"/, type: LLSDTokenType_1.LLSDTokenType.BINARY_STATIC },
181
+ { regex: /^b\(([0-9]+)\)"/, type: LLSDTokenType_1.LLSDTokenType.BINARY_DYNAMIC_START }
182
+ ];
183
+ //# sourceMappingURL=LLSDNotationParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDNotationParser.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDNotationParser.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAKhD,uCAAoC;AACpC,kCAA+B;AAC/B,2CAAwC;AAExC,MAAa,kBAAkB;IAyBnB,MAAM,CAAA,CAAE,QAAQ,CAAC,IAAY;QAEjC,MAAM,aAAa,GAAG;YAClB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;SACX,CAAA;QACD,OAAO,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EACvD;YACI,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEpE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAC7B;gBACI,OAAO;aACV;YAED,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAC7C;gBACI,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,UAAU,EACd;oBACI,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EACzB;wBACI,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBAC7C;oBACD,aAAa,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAE5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC9D,MAAM;iBACT;aACJ;YACD,IAAI,CAAC,OAAO,EACZ;gBACI,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,EAAE,6BAAa,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;aACrK;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,GAAuB,EAAE,YAAwB;QAE3E,OAAO,IAAI,EACX;YACI,IAAI,CAAwB,CAAC;YAC7B,IAAI,YAAY,KAAK,SAAS,EAC9B;gBACI,CAAC,GAAG,YAAY,CAAC;gBACjB,YAAY,GAAG,SAAS,CAAC;aAC5B;iBAED;gBACI,CAAC,GAAG,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,SAAS,EACnB;oBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;iBAC9C;aACJ;YACD,QAAQ,CAAC,CAAC,IAAI,EACd;gBACI,KAAK,6BAAa,CAAC,OAAO;oBAC1B;wBACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;qBACnD;gBACD,KAAK,6BAAa,CAAC,UAAU;oBAC7B;wBACI,SAAS;qBACZ;gBACD,KAAK,6BAAa,CAAC,IAAI;oBACvB;wBACI,OAAO,IAAI,CAAC;qBACf;gBACD,KAAK,6BAAa,CAAC,OAAO;oBAC1B;wBACI,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;qBAC5G;gBACD,KAAK,6BAAa,CAAC,OAAO;oBAC1B;wBACI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;qBAChC;gBACD,KAAK,6BAAa,CAAC,IAAI;oBACvB;wBACI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC9B;gBACD,KAAK,6BAAa,CAAC,IAAI;oBACvB;wBACI,OAAO,IAAI,WAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC5B;gBACD,KAAK,6BAAa,CAAC,mBAAmB;oBACtC;wBACI,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;6BAC9B,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBAC/B;gBACD,KAAK,6BAAa,CAAC,mBAAmB;oBACtC;wBACI,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;6BAC7B,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBAC/B;gBACD,KAAK,6BAAa,CAAC,GAAG;oBACtB;wBACI,OAAO,CAAC,CAAC,KAAK,CAAC;qBAClB;gBACD,KAAK,6BAAa,CAAC,IAAI;oBACvB;wBACI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC5B;gBACD,KAAK,6BAAa,CAAC,aAAa;oBAChC;wBACI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;wBAC7D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAC9B;4BACI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;yBAC5C;wBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,EAC9B;4BACI,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;yBACvD;wBACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC5D;gBACD,KAAK,6BAAa,CAAC,oBAAoB;oBACvC;wBACI,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;wBAC7F,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC;wBAChC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,EACxD;4BACI,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;yBACzD;wBACD,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC;wBAC3B,OAAO,CAAC,CAAC;qBACZ;gBACD,KAAK,6BAAa,CAAC,oBAAoB;oBACvC;wBACI,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;wBAC7F,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC;wBAChC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,EACxD;4BACI,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;yBAChE;wBACD,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC;wBAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;qBACnC;gBACD,KAAK,6BAAa,CAAC,SAAS;oBAC5B;wBACI,OAAO,iBAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBAC7B;gBACD,KAAK,6BAAa,CAAC,WAAW;oBAC9B;wBACI,OAAO,qBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBAC/B;aACJ;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAa;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAuB,GAA0B,EAAE;YAE7D,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAClC,CAAC,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5C,GACA;YACI,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,SAAS,EACnB;gBACI,OAAO,IAAI,CAAC;aACf;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,6BAAa,CAAC,UAAU,EACvC;gBACI,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;aACtE;SACJ,QACM,IAAI,EAAE;IACjB,CAAC;;AA3ML,gDAsTC;AApTkB,6BAAU,GACrB;IACI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,6BAAa,CAAC,UAAU,EAAE;IACjD,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,6BAAa,CAAC,IAAI,EAAE;IACzC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,6BAAa,CAAC,SAAS,EAAE;IAC/C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,6BAAa,CAAC,OAAO,EAAE;IAC5C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,6BAAa,CAAC,KAAK,EAAE;IAC1C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,6BAAa,CAAC,KAAK,EAAE;IAC1C,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,6BAAa,CAAC,WAAW,EAAE;IACjD,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,6BAAa,CAAC,SAAS,EAAE;IAC9C,EAAE,KAAK,EAAE,wCAAwC,EAAE,IAAI,EAAE,6BAAa,CAAC,OAAO,EAAE;IAChF,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,6BAAa,CAAC,OAAO,EAAE;IACtD,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,6BAAa,CAAC,IAAI,EAAE;IACpD,EAAE,KAAK,EAAE,kEAAkE,EAAE,IAAI,EAAE,6BAAa,CAAC,IAAI,EAAE;IACvG,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,6BAAa,CAAC,mBAAmB,EAAE;IACnF,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,6BAAa,CAAC,mBAAmB,EAAE;IACnF,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,6BAAa,CAAC,oBAAoB,EAAE;IACtE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,6BAAa,CAAC,GAAG,EAAE;IAClD,EAAE,KAAK,EAAE,wEAAwE,EAAE,IAAI,EAAE,6BAAa,CAAC,IAAI,EAAE;IAC7G,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,6BAAa,CAAC,aAAa,EAAE;IAC7E,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,6BAAa,CAAC,oBAAoB,EAAE;CAC7E,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const LLSDNotationParser_1 = require("./LLSDNotationParser");
5
+ const LLSDMap_1 = require("./LLSDMap");
6
+ const UUID_1 = require("../UUID");
7
+ describe('LLSDNotationParser', () => {
8
+ describe('parse', () => {
9
+ it('can parse a complex LLSD Notation document', () => {
10
+ const notationDoc = `{
11
+ 'nested_map': {
12
+ 'nested_again': {
13
+ 'array': [
14
+ i0,
15
+ 'string',
16
+ "string2",
17
+ [
18
+ "another",
19
+ "array",
20
+ r4.3,
21
+ i22,
22
+ !,
23
+ {
24
+ 'isThis': i42
25
+ }
26
+ ]
27
+ ]
28
+ }
29
+ },
30
+ 'undef': !,
31
+ 'booleans': [
32
+ true,
33
+ false,
34
+ 1,
35
+ 0,
36
+ T,
37
+ F,
38
+ t,
39
+ f,
40
+ TRUE,
41
+ FALSE
42
+ ],
43
+ 'integer': i69,
44
+ 'negInt': i-69,
45
+ 'real': r3.141,
46
+ 'realNeg': r-3.141,
47
+ 'uuid': ufb54f6b1-8120-40c9-9aa3-f9abef1a168f,
48
+ 'string1': "gday\\"mate",
49
+ 'string2': 'gday\\'mate',
50
+ 'string3': s(11)"hello"there",
51
+ 'uri': l"https://secondlife.com/",
52
+ 'date': d"2023-11-10T13:32:32.93Z",
53
+ 'binary': b64"amVsbHlmaXNo",
54
+ 'binary2': b16"6261636F6E62697473",
55
+ 'binary3': b(32)"KÚ~¬\béGÀt|ϓ˜h,9µEK¹*;]ÆÁåb/"
56
+ }`;
57
+ const parsed = LLSDNotationParser_1.LLSDNotationParser.parse(notationDoc);
58
+ if (!(parsed instanceof LLSDMap_1.LLSDMap)) {
59
+ assert('Parsed document is not a map');
60
+ return;
61
+ }
62
+ const nested = parsed.get('nested_map');
63
+ if (nested instanceof LLSDMap_1.LLSDMap) {
64
+ const nestedAgain = nested.get('nested_again');
65
+ if (nestedAgain instanceof LLSDMap_1.LLSDMap) {
66
+ const arr = nestedAgain.get('array');
67
+ if (!Array.isArray(arr)) {
68
+ assert(false, 'Nested array is not an array');
69
+ }
70
+ else {
71
+ assert.equal(arr.length, 4);
72
+ assert.equal(arr[0], 0);
73
+ assert.equal(arr[1], 'string');
74
+ assert.equal(arr[2], 'string2');
75
+ const nestedAgainArr = arr[3];
76
+ if (!Array.isArray(nestedAgainArr)) {
77
+ assert(false, 'Nested again array is not an array');
78
+ }
79
+ else {
80
+ assert.equal(nestedAgainArr.length, 6);
81
+ assert.equal(nestedAgainArr[0], 'another');
82
+ assert.equal(nestedAgainArr[1], 'array');
83
+ assert.equal(nestedAgainArr[2], 4.3);
84
+ assert.equal(nestedAgainArr[3], 22);
85
+ assert.equal(nestedAgainArr[4], null);
86
+ const thirdNestedMap = nestedAgainArr[5];
87
+ if (thirdNestedMap instanceof LLSDMap_1.LLSDMap) {
88
+ assert.equal(thirdNestedMap.get('isThis'), 42);
89
+ }
90
+ else {
91
+ assert(false, 'Third nested map is not a map');
92
+ }
93
+ }
94
+ }
95
+ }
96
+ else {
97
+ assert(false, 'NestedAgain is not a map');
98
+ }
99
+ }
100
+ else {
101
+ assert(false, 'Nested is not a map');
102
+ }
103
+ assert.equal(parsed.get('undef'), null);
104
+ const bools = parsed.get('booleans');
105
+ if (!Array.isArray(bools)) {
106
+ assert(false, 'Booleans array is not bools');
107
+ }
108
+ else {
109
+ assert.equal(bools.length, 10);
110
+ assert.equal(bools[0], true);
111
+ assert.equal(bools[1], false);
112
+ assert.equal(bools[2], true);
113
+ assert.equal(bools[3], false);
114
+ assert.equal(bools[4], true);
115
+ assert.equal(bools[5], false);
116
+ assert.equal(bools[6], true);
117
+ assert.equal(bools[7], false);
118
+ assert.equal(bools[8], true);
119
+ assert.equal(bools[9], false);
120
+ }
121
+ assert.equal(parsed.get('integer'), 69);
122
+ assert.equal(parsed.get('negInt'), -69);
123
+ assert.equal(parsed.get('real'), 3.141);
124
+ assert.equal(parsed.get('realNeg'), -3.141);
125
+ const u = parsed.get('uuid');
126
+ if (u instanceof UUID_1.UUID) {
127
+ assert.equal(u.equals('fb54f6b1-8120-40c9-9aa3-f9abef1a168f'), true);
128
+ }
129
+ else {
130
+ assert(false, 'UUID is not a UUID');
131
+ }
132
+ assert.equal(parsed.get('string1'), 'gday"mate');
133
+ assert.equal(parsed.get('string2'), 'gday\'mate');
134
+ assert.equal(parsed.get('string3'), 'hello"there');
135
+ assert.equal(parsed.get('uri'), 'https://secondlife.com/');
136
+ const d = parsed.get('date');
137
+ if (d instanceof Date) {
138
+ assert.equal(d.getTime(), 1699623152930);
139
+ }
140
+ else {
141
+ assert(false, 'Date entry is not a date');
142
+ }
143
+ const buf1 = parsed.get('binary');
144
+ if (buf1 instanceof Buffer) {
145
+ assert.equal(buf1.toString('utf-8'), 'jellyfish');
146
+ }
147
+ else {
148
+ assert(false, 'Buf1 is not a buffer');
149
+ }
150
+ const buf2 = parsed.get('binary2');
151
+ if (buf2 instanceof Buffer) {
152
+ assert.equal(buf2.toString('utf-8'), 'baconbits');
153
+ }
154
+ else {
155
+ assert(false, 'Buf2 is not a buffer');
156
+ }
157
+ const buf3 = parsed.get('binary3');
158
+ if (buf3 instanceof Buffer) {
159
+ assert.equal(buf3.equals(Buffer.from('KÚ~¬\béGÀt|ϓ˜h,9µEK¹*;]ÆÁåb/', 'binary')), true);
160
+ }
161
+ else {
162
+ assert(false, 'Buf3 is not a buffer');
163
+ }
164
+ });
165
+ });
166
+ });
167
+ //# sourceMappingURL=LLSDNotationParser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDNotationParser.spec.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDNotationParser.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare abstract class LLSDObject {
2
+ toString(): string;
3
+ abstract toJSON(): unknown;
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLSDObject = void 0;
4
+ class LLSDObject {
5
+ toString() {
6
+ return JSON.stringify(this.toJSON());
7
+ }
8
+ }
9
+ exports.LLSDObject = LLSDObject;
10
+ //# sourceMappingURL=LLSDObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDObject.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDObject.ts"],"names":[],"mappings":";;;AAAA,MAAsB,UAAU;IAErB,QAAQ;QAEX,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;CAGJ;AARD,gCAQC"}
@@ -0,0 +1,10 @@
1
+ import { LLSDTokenType } from './LLSDTokenType';
2
+ export interface LLSDToken {
3
+ type: LLSDTokenType;
4
+ value: string;
5
+ rawValue: string;
6
+ dataContainer: {
7
+ input: string;
8
+ index: number;
9
+ };
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LLSDToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDToken.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDToken.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { LLSDToken } from './LLSDToken';
2
+ import { LLSDTokenGenerator } from './LLSDTokenGenerator';
3
+ export interface LLSDTokenContainer {
4
+ tokens: LLSDToken[];
5
+ index: number;
6
+ gen: LLSDTokenGenerator;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LLSDTokenContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDTokenContainer.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDTokenContainer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { LLSDToken } from './LLSDToken';
2
+ export type LLSDTokenGenerator = () => LLSDToken | undefined;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LLSDTokenGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDTokenGenerator.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDTokenGenerator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { LLSDTokenType } from './LLSDTokenType';
2
+ export interface LLSDTokenSpec {
3
+ regex: RegExp;
4
+ type: LLSDTokenType;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LLSDTokenSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDTokenSpec.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDTokenSpec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ export declare enum LLSDTokenType {
2
+ UNKNOWN = 0,
3
+ WHITESPACE = 1,
4
+ NULL = 2,
5
+ MAP_START = 3,
6
+ MAP_END = 4,
7
+ COLON = 5,
8
+ COMMA = 6,
9
+ ARRAY_START = 7,
10
+ ARRAY_END = 8,
11
+ BOOLEAN = 9,
12
+ INTEGER = 10,
13
+ REAL = 11,
14
+ UUID = 12,
15
+ STRING_FIXED_SINGLE = 13,
16
+ STRING_FIXED_DOUBLE = 14,
17
+ STRING_DYNAMIC_START = 15,
18
+ URI = 16,
19
+ DATE = 17,
20
+ BINARY_STATIC = 18,
21
+ BINARY_DYNAMIC_START = 19
22
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLSDTokenType = void 0;
4
+ var LLSDTokenType;
5
+ (function (LLSDTokenType) {
6
+ LLSDTokenType[LLSDTokenType["UNKNOWN"] = 0] = "UNKNOWN";
7
+ LLSDTokenType[LLSDTokenType["WHITESPACE"] = 1] = "WHITESPACE";
8
+ LLSDTokenType[LLSDTokenType["NULL"] = 2] = "NULL";
9
+ LLSDTokenType[LLSDTokenType["MAP_START"] = 3] = "MAP_START";
10
+ LLSDTokenType[LLSDTokenType["MAP_END"] = 4] = "MAP_END";
11
+ LLSDTokenType[LLSDTokenType["COLON"] = 5] = "COLON";
12
+ LLSDTokenType[LLSDTokenType["COMMA"] = 6] = "COMMA";
13
+ LLSDTokenType[LLSDTokenType["ARRAY_START"] = 7] = "ARRAY_START";
14
+ LLSDTokenType[LLSDTokenType["ARRAY_END"] = 8] = "ARRAY_END";
15
+ LLSDTokenType[LLSDTokenType["BOOLEAN"] = 9] = "BOOLEAN";
16
+ LLSDTokenType[LLSDTokenType["INTEGER"] = 10] = "INTEGER";
17
+ LLSDTokenType[LLSDTokenType["REAL"] = 11] = "REAL";
18
+ LLSDTokenType[LLSDTokenType["UUID"] = 12] = "UUID";
19
+ LLSDTokenType[LLSDTokenType["STRING_FIXED_SINGLE"] = 13] = "STRING_FIXED_SINGLE";
20
+ LLSDTokenType[LLSDTokenType["STRING_FIXED_DOUBLE"] = 14] = "STRING_FIXED_DOUBLE";
21
+ LLSDTokenType[LLSDTokenType["STRING_DYNAMIC_START"] = 15] = "STRING_DYNAMIC_START";
22
+ LLSDTokenType[LLSDTokenType["URI"] = 16] = "URI";
23
+ LLSDTokenType[LLSDTokenType["DATE"] = 17] = "DATE";
24
+ LLSDTokenType[LLSDTokenType["BINARY_STATIC"] = 18] = "BINARY_STATIC";
25
+ LLSDTokenType[LLSDTokenType["BINARY_DYNAMIC_START"] = 19] = "BINARY_DYNAMIC_START";
26
+ })(LLSDTokenType = exports.LLSDTokenType || (exports.LLSDTokenType = {}));
27
+ //# sourceMappingURL=LLSDTokenType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDTokenType.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDTokenType.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAsBX;AAtBD,WAAY,aAAa;IAErB,uDAAW,CAAA;IACX,6DAAU,CAAA;IACV,iDAAI,CAAA;IACJ,2DAAS,CAAA;IACT,uDAAO,CAAA;IACP,mDAAK,CAAA;IACL,mDAAK,CAAA;IACL,+DAAW,CAAA;IACX,2DAAS,CAAA;IACT,uDAAO,CAAA;IACP,wDAAO,CAAA;IACP,kDAAI,CAAA;IACJ,kDAAI,CAAA;IACJ,gFAAmB,CAAA;IACnB,gFAAmB,CAAA;IACnB,kFAAoB,CAAA;IACpB,gDAAG,CAAA;IACH,kDAAI,CAAA;IACJ,oEAAa,CAAA;IACb,kFAAoB,CAAA;AACxB,CAAC,EAtBW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAsBxB"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { LLSDObject } from './LLSDObject';
3
+ import { UUID } from '../UUID';
4
+ export type LLSDType = number | boolean | string | Buffer | LLSDObject | null | UUID | Date | LLSDType[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LLSDType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLSDType.js","sourceRoot":"","sources":["../../../../lib/classes/llsd/LLSDType.ts"],"names":[],"mappings":""}