@caspertech/node-metaverse 0.6.2 → 0.6.4

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 (37) hide show
  1. package/dist/lib/classes/LLGLTFMaterial.d.ts +8 -0
  2. package/dist/lib/classes/LLGLTFMaterial.js +31 -0
  3. package/dist/lib/classes/LLGLTFMaterial.js.map +1 -0
  4. package/dist/lib/classes/LLGLTFMaterial.spec.d.ts +1 -0
  5. package/dist/lib/classes/LLGLTFMaterial.spec.js +33 -0
  6. package/dist/lib/classes/LLGLTFMaterial.spec.js.map +1 -0
  7. package/dist/lib/classes/LLGLTFMaterialData.d.ts +27 -0
  8. package/dist/lib/classes/LLGLTFMaterialData.js +3 -0
  9. package/dist/lib/classes/LLGLTFMaterialData.js.map +1 -0
  10. package/dist/lib/classes/messages/ImprovedInstantMessage.d.ts +3 -0
  11. package/dist/lib/classes/messages/ImprovedInstantMessage.js +9 -1
  12. package/dist/lib/classes/messages/ImprovedInstantMessage.js.map +1 -1
  13. package/dist/lib/classes/python/PythonList.d.ts +1 -0
  14. package/dist/lib/classes/python/PythonList.js +3 -0
  15. package/dist/lib/classes/python/PythonList.js.map +1 -1
  16. package/dist/lib/classes/python/PythonParser.d.ts +0 -1
  17. package/dist/lib/classes/python/PythonParser.js +21 -55
  18. package/dist/lib/classes/python/PythonParser.js.map +1 -1
  19. package/dist/lib/classes/python/PythonParser.spec.d.ts +1 -0
  20. package/dist/lib/classes/python/PythonParser.spec.js +118 -0
  21. package/dist/lib/classes/python/PythonParser.spec.js.map +1 -0
  22. package/dist/lib/classes/python/PythonTokenType.d.ts +7 -7
  23. package/dist/lib/classes/python/PythonTokenType.js +7 -7
  24. package/dist/lib/classes/python/PythonTokenType.js.map +1 -1
  25. package/dist/lib/classes/python/PythonTuple.d.ts +1 -0
  26. package/dist/lib/classes/python/PythonTuple.js +4 -1
  27. package/dist/lib/classes/python/PythonTuple.js.map +1 -1
  28. package/dist/lib/index.d.ts +5 -1
  29. package/dist/lib/index.js +11 -3
  30. package/dist/lib/index.js.map +1 -1
  31. package/dist/lib/tests/packets.spec.d.ts +1 -0
  32. package/dist/lib/tests/packets.spec.js +124 -0
  33. package/dist/lib/tests/packets.spec.js.map +1 -0
  34. package/dist/lib/tests/uuid.spec.d.ts +1 -0
  35. package/dist/lib/tests/uuid.spec.js +86 -0
  36. package/dist/lib/tests/uuid.spec.js.map +1 -0
  37. package/package.json +2 -2
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { LLGLTFMaterialData } from './LLGLTFMaterialData';
3
+ export declare class LLGLTFMaterial {
4
+ type?: string;
5
+ version?: string;
6
+ data?: LLGLTFMaterialData;
7
+ constructor(data?: Buffer);
8
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLGLTFMaterial = void 0;
4
+ const LLSD = require("@caspertech/llsd");
5
+ class LLGLTFMaterial {
6
+ constructor(data) {
7
+ if (data !== undefined) {
8
+ const header = data.slice(0, 18).toString('utf-8');
9
+ if (header.length !== 18 || header !== '<? LLSD/Binary ?>\n') {
10
+ throw new Error('Failed to parse LLGLTFMaterial');
11
+ }
12
+ const body = new LLSD.Binary(Array.from(data.slice(18)), 'BINARY');
13
+ const llsd = LLSD.LLSD.parseBinary(body);
14
+ if (!llsd.result) {
15
+ throw new Error('Failed to decode LLGLTFMaterial');
16
+ }
17
+ if (llsd.result.type) {
18
+ this.type = String(llsd.result.type);
19
+ }
20
+ if (llsd.result.version) {
21
+ this.version = String(llsd.result.version);
22
+ }
23
+ if (llsd.result.data) {
24
+ const assetData = String(llsd.result.data);
25
+ this.data = JSON.parse(assetData);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ exports.LLGLTFMaterial = LLGLTFMaterial;
31
+ //# sourceMappingURL=LLGLTFMaterial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLGLTFMaterial.js","sourceRoot":"","sources":["../../../lib/classes/LLGLTFMaterial.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAGzC,MAAa,cAAc;IAMvB,YAAmB,IAAa;QAE5B,IAAI,IAAI,KAAK,SAAS,EACtB;YACI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,qBAAqB,EAC5D;gBACI,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACrD;YAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB;gBACI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;aACtD;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EACpB;gBACI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EACvB;gBACI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAC9C;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EACpB;gBACI,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;CACJ;AArCD,wCAqCC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const LLGLTFMaterial_1 = require("./LLGLTFMaterial");
4
+ const assert = require("assert");
5
+ describe('LLGLTFMaterial', () => {
6
+ describe('parse', () => {
7
+ it('should parse a valid GLTF material asset', () => {
8
+ const buf = Buffer.from('PD8gTExTRC9CaW5hcnkgPz4KewAAAANrAAAABGRhdGFzAAABznsiYXNzZXQiOnsidmVyc2lvbiI6IjIuMCJ9LCJpbWFnZXMiOlt7InVyaSI6IjJjN2U3MzMyLTM3MTctNWY0ZS04ZjIyLTZlZTlkYTUyNzVmYiJ9LHsidXJpIjoiMTA3OGY1ZWMtMWM1Ni1lNzNmLThmOGYtYmUzNmM0MGU1MTIxIn0seyJ1cmkiOiIyMzBkMmQyZC1iMDkyLTliZjUtYmE3ZS1iMzE5NTY2MzIyYTYifSx7InVyaSI6IjIzMGQyZDJkLWIwOTItOWJmNS1iYTdlLWIzMTk1NjYzMjJhNiJ9XSwibWF0ZXJpYWxzIjpbeyJub3JtYWxUZXh0dXJlIjp7ImluZGV4IjoxfSwib2NjbHVzaW9uVGV4dHVyZSI6eyJpbmRleCI6M30sInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvclRleHR1cmUiOnsiaW5kZXgiOjB9LCJtZXRhbGxpY1JvdWdobmVzc1RleHR1cmUiOnsiaW5kZXgiOjJ9fX1dLCJ0ZXh0dXJlcyI6W3sic291cmNlIjowfSx7InNvdXJjZSI6MX0seyJzb3VyY2UiOjJ9LHsic291cmNlIjozfV19CmsAAAAEdHlwZXMAAAAIR0xURiAyLjBrAAAAB3ZlcnNpb25zAAAAAzEuMX0A', 'base64');
9
+ const mat = new LLGLTFMaterial_1.LLGLTFMaterial(buf);
10
+ assert.equal(mat.version, '1.1');
11
+ assert.equal(mat.type, 'GLTF 2.0');
12
+ assert.ok(mat.data);
13
+ assert.equal(mat.data.asset.version, '2.0');
14
+ assert.equal(mat.data.images.length, 4);
15
+ assert.equal(mat.data.images[0].uri, '2c7e7332-3717-5f4e-8f22-6ee9da5275fb');
16
+ assert.equal(mat.data.images[1].uri, '1078f5ec-1c56-e73f-8f8f-be36c40e5121');
17
+ assert.equal(mat.data.images[2].uri, '230d2d2d-b092-9bf5-ba7e-b319566322a6');
18
+ assert.equal(mat.data.images[3].uri, '230d2d2d-b092-9bf5-ba7e-b319566322a6');
19
+ assert.equal(mat.data.materials.length, 1);
20
+ const mat0 = mat.data.materials[0];
21
+ assert.equal(mat0.normalTexture.index, 1);
22
+ assert.equal(mat0.occlusionTexture.index, 3);
23
+ assert.equal(mat0.pbrMetallicRoughness.baseColorTexture.index, 0);
24
+ assert.equal(mat0.pbrMetallicRoughness.metallicRoughnessTexture.index, 2);
25
+ assert.equal(mat.data.textures.length, 4);
26
+ assert.equal(mat.data.textures[0].source, 0);
27
+ assert.equal(mat.data.textures[1].source, 1);
28
+ assert.equal(mat.data.textures[2].source, 2);
29
+ assert.equal(mat.data.textures[3].source, 3);
30
+ });
31
+ });
32
+ });
33
+ //# sourceMappingURL=LLGLTFMaterial.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLGLTFMaterial.spec.js","sourceRoot":"","sources":["../../../lib/classes/LLGLTFMaterial.spec.ts"],"names":[],"mappings":";;AAAA,qDAAkD;AAClD,iCAAiC;AAEjC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE5B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QAEnB,EAAE,CAAE,0CAA0C,EAAE,GAAG,EAAE;YAEjD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,stBAAstB,EAAE,QAAQ,CAAC,CAAC;YAC1vB,MAAM,GAAG,GAAG,IAAI,+BAAc,CAAC,GAAG,CAAC,CAAC;YAEpC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACnC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAE3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE1E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface LLGLTFMaterialData {
2
+ asset: {
3
+ version: string;
4
+ };
5
+ images: {
6
+ uri: string;
7
+ }[];
8
+ materials: {
9
+ normalTexture: {
10
+ index: number;
11
+ };
12
+ occlusionTexture: {
13
+ index: number;
14
+ };
15
+ pbrMetallicRoughness: {
16
+ baseColorTexture: {
17
+ index: number;
18
+ };
19
+ metallicRoughnessTexture: {
20
+ index: number;
21
+ };
22
+ };
23
+ }[];
24
+ textures: {
25
+ source: number;
26
+ }[];
27
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LLGLTFMaterialData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLGLTFMaterialData.js","sourceRoot":"","sources":["../../../lib/classes/LLGLTFMaterialData.ts"],"names":[],"mappings":""}
@@ -25,6 +25,9 @@ export declare class ImprovedInstantMessageMessage implements MessageBase {
25
25
  Message: Buffer;
26
26
  BinaryBucket: Buffer;
27
27
  };
28
+ EstateBlock: {
29
+ EstateID: number;
30
+ };
28
31
  getSize(): number;
29
32
  writeToBuffer(buf: Buffer, pos: number): number;
30
33
  readFromBuffer(buf: Buffer, pos: number): number;
@@ -12,7 +12,7 @@ class ImprovedInstantMessageMessage {
12
12
  this.id = Message_1.Message.ImprovedInstantMessage;
13
13
  }
14
14
  getSize() {
15
- return (this.MessageBlock['FromAgentName'].length + 1 + this.MessageBlock['Message'].length + 2 + this.MessageBlock['BinaryBucket'].length + 2) + 103;
15
+ return (this.MessageBlock['FromAgentName'].length + 1 + this.MessageBlock['Message'].length + 2 + this.MessageBlock['BinaryBucket'].length + 2) + 107;
16
16
  }
17
17
  writeToBuffer(buf, pos) {
18
18
  const startPos = pos;
@@ -46,6 +46,8 @@ class ImprovedInstantMessageMessage {
46
46
  pos += 2;
47
47
  this.MessageBlock['BinaryBucket'].copy(buf, pos);
48
48
  pos += this.MessageBlock['BinaryBucket'].length;
49
+ buf.writeUInt32LE(this.EstateBlock['EstateID'], pos);
50
+ pos += 4;
49
51
  return pos - startPos;
50
52
  }
51
53
  readFromBuffer(buf, pos) {
@@ -101,6 +103,12 @@ class ImprovedInstantMessageMessage {
101
103
  newObjMessageBlock['BinaryBucket'] = buf.slice(pos, pos + varLength);
102
104
  pos += varLength;
103
105
  this.MessageBlock = newObjMessageBlock;
106
+ const newObjEstateBlock = {
107
+ EstateID: 0
108
+ };
109
+ newObjEstateBlock['EstateID'] = buf.readUInt32LE(pos);
110
+ pos += 4;
111
+ this.EstateBlock = newObjEstateBlock;
104
112
  return pos - startPos;
105
113
  }
106
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImprovedInstantMessage.js","sourceRoot":"","sources":["../../../../lib/classes/messages/ImprovedInstantMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImprovedInstantMessage.js","sourceRoot":"","sources":["../../../../lib/classes/messages/ImprovedInstantMessage.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { PythonType } from './PythonType';
4
4
  export declare class PythonList extends PythonObject {
5
5
  data: PythonType[];
6
6
  static parse(container: PythonTokenContainer): PythonList;
7
+ get(index: number): PythonType | undefined;
7
8
  get length(): number;
8
9
  toString(): string;
9
10
  toJSON(): unknown;
@@ -41,6 +41,9 @@ class PythonList extends PythonObject_1.PythonObject {
41
41
  } while (container.index < container.tokens.length);
42
42
  throw new Error('Expected ] end bracket in list');
43
43
  }
44
+ get(index) {
45
+ return this.data[index];
46
+ }
44
47
  get length() {
45
48
  return this.data.length;
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PythonList.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonList.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,iDAA8C;AAE9C,iDAA8C;AAE9C,MAAa,UAAW,SAAQ,2BAAY;IAA5C;;QAEW,SAAI,GAAiB,EAAE,CAAC;IAuDnC,CAAC;IArDU,MAAM,CAAC,KAAK,CAAC,SAA+B;QAE/C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,GACA;YACI,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,QAAQ,KAAK,CAAC,IAAI,EAClB;gBACI,KAAK,iCAAe,CAAC,QAAQ;oBAC7B;wBACI,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,IAAI,CAAC;qBACf;gBACD,KAAK,iCAAe,CAAC,KAAK;oBAC1B;wBACI,IAAI,CAAC,cAAc,EACnB;4BACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;yBAC/C;wBACD,cAAc,GAAG,KAAK,CAAC;wBACvB,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,MAAM;qBACT;gBACD;oBACA;wBACI,IAAI,cAAc,EAClB;4BACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;yBACtC;wBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;wBACxD,cAAc,GAAG,IAAI,CAAC;qBACzB;aACJ;SACJ,QACM,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,MAAM;QAEN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,QAAQ;QAEX,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5C,CAAC;IAEM,MAAM;QAET,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AAzDD,gCAyDC"}
1
+ {"version":3,"file":"PythonList.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonList.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,iDAA8C;AAE9C,iDAA8C;AAE9C,MAAa,UAAW,SAAQ,2BAAY;IAA5C;;QAEW,SAAI,GAAiB,EAAE,CAAC;IA4DnC,CAAC;IA1DU,MAAM,CAAC,KAAK,CAAC,SAA+B;QAE/C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,GACA;YACI,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,QAAQ,KAAK,CAAC,IAAI,EAClB;gBACI,KAAK,iCAAe,CAAC,QAAQ;oBAC7B;wBACI,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,IAAI,CAAC;qBACf;gBACD,KAAK,iCAAe,CAAC,KAAK;oBAC1B;wBACI,IAAI,CAAC,cAAc,EACnB;4BACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;yBAC/C;wBACD,cAAc,GAAG,KAAK,CAAC;wBACvB,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,MAAM;qBACT;gBACD;oBACA;wBACI,IAAI,cAAc,EAClB;4BACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;yBACtC;wBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;wBACxD,cAAc,GAAG,IAAI,CAAC;qBACzB;aACJ;SACJ,QACM,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IAEM,GAAG,CAAC,KAAa;QAEpB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QAEN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,QAAQ;QAEX,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5C,CAAC;IAEM,MAAM;QAET,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AA9DD,gCA8DC"}
@@ -3,7 +3,6 @@ import { PythonType } from './PythonType';
3
3
  export declare class PythonParser {
4
4
  private static tokenSpecs;
5
5
  private static tokenize;
6
- private static interpretEscapes;
7
6
  static parseValueToken(container: PythonTokenContainer): PythonType;
8
7
  static parse(input: string): PythonType;
9
8
  }
@@ -35,40 +35,6 @@ class PythonParser {
35
35
  }
36
36
  }
37
37
  }
38
- static interpretEscapes(byteString) {
39
- const byteArray = [];
40
- const regex = /\\x([0-9A-Fa-f]{2})|\\([0-7]{1,3})|\\(['"abfnrtv\\])|([^\\]+)/g;
41
- let match;
42
- while ((match = regex.exec(byteString)) !== null) {
43
- if (match[1]) {
44
- byteArray.push(parseInt(match[1], 16));
45
- }
46
- else if (match[2]) {
47
- byteArray.push(parseInt(match[2], 8));
48
- }
49
- else if (match[3]) {
50
- const specialChars = {
51
- 'a': 7,
52
- 'b': 8,
53
- 'f': 12,
54
- 'n': 10,
55
- 'r': 13,
56
- 't': 9,
57
- 'v': 11,
58
- '\\': 92,
59
- '\'': 39,
60
- '"': 34,
61
- };
62
- byteArray.push(specialChars[match[3]]);
63
- }
64
- else if (match[4]) {
65
- for (let i = 0; i < match[4].length; ++i) {
66
- byteArray.push(match[4].charCodeAt(i));
67
- }
68
- }
69
- }
70
- return Buffer.from(byteArray);
71
- }
72
38
  static parseValueToken(container) {
73
39
  const t = container.tokens[container.index++];
74
40
  switch (t.type) {
@@ -80,6 +46,14 @@ class PythonParser {
80
46
  {
81
47
  return t.value;
82
48
  }
49
+ case PythonTokenType_1.PythonTokenType.BINARY_STRING:
50
+ {
51
+ return Buffer.from(t.value, 'binary');
52
+ }
53
+ case PythonTokenType_1.PythonTokenType.RAW_STRING:
54
+ {
55
+ return t.value;
56
+ }
83
57
  case PythonTokenType_1.PythonTokenType.BOOLEAN:
84
58
  {
85
59
  return t.value === 'True';
@@ -92,10 +66,6 @@ class PythonParser {
92
66
  {
93
67
  return PythonTuple_1.PythonTuple.parse(container);
94
68
  }
95
- case PythonTokenType_1.PythonTokenType.BYTES:
96
- {
97
- return this.interpretEscapes(t.value);
98
- }
99
69
  case PythonTokenType_1.PythonTokenType.NONE:
100
70
  {
101
71
  return null;
@@ -116,10 +86,6 @@ class PythonParser {
116
86
  {
117
87
  return parseFloat(t.value);
118
88
  }
119
- case PythonTokenType_1.PythonTokenType.COMPLEX:
120
- {
121
- throw new Error('Complex numbers are currently unhandled');
122
- }
123
89
  default:
124
90
  throw new Error('Unexpected token: ' + PythonTokenType_1.PythonTokenType[t.type]);
125
91
  }
@@ -145,27 +111,27 @@ PythonParser.tokenSpecs = [
145
111
  { regex: /^[,]/, type: PythonTokenType_1.PythonTokenType.COMMA },
146
112
  { regex: /^None\b/, type: PythonTokenType_1.PythonTokenType.NONE },
147
113
  { regex: /^(True|False)\b/, type: PythonTokenType_1.PythonTokenType.BOOLEAN },
114
+ { regex: /^((?:-?[0-9]+\.[0-9]*)|(?:-?[0.9]*\.[0-9]+))/, type: PythonTokenType_1.PythonTokenType.FLOAT },
148
115
  { regex: /^\d+\b/, type: PythonTokenType_1.PythonTokenType.INTEGER },
149
116
  { regex: /^0x([0-9a-fA-F]+\b)/, type: PythonTokenType_1.PythonTokenType.HEX },
150
117
  { regex: /^0o([0-7]+)/, type: PythonTokenType_1.PythonTokenType.OCTAL },
151
- { regex: /^b'(\\[0-7]{3}|\\x[0-9A-Fa-f]{2}|\\['"abfnrtv\\]|[^'\\])*'/, type: PythonTokenType_1.PythonTokenType.BYTES },
152
- { regex: /^b"(\\[0-7]{3}|\\x[0-9A-Fa-f]{2}|\\["'abfnrtv\\]|[^"\\])*"/, type: PythonTokenType_1.PythonTokenType.BYTES },
153
- { regex: /^-?\d+\.\d+\b/, type: PythonTokenType_1.PythonTokenType.FLOAT },
154
- { regex: /^-?\d+\.?\d*[jJ]\b/, type: PythonTokenType_1.PythonTokenType.COMPLEX },
155
118
  { regex: /^\(/, type: PythonTokenType_1.PythonTokenType.TUPLE_START },
156
119
  { regex: /^\)/, type: PythonTokenType_1.PythonTokenType.TUPLE_END },
157
120
  { regex: /^\[/, type: PythonTokenType_1.PythonTokenType.LIST_START },
158
121
  { regex: /^\]/, type: PythonTokenType_1.PythonTokenType.LIST_END },
159
- { regex: /^'((?:\\.|[^'\\])*)'/, type: PythonTokenType_1.PythonTokenType.STRING },
160
- { regex: /^"((?:\\.|[^"\\])*)"/, type: PythonTokenType_1.PythonTokenType.STRING },
161
- { regex: /^'''((?:\\.|[^'\\]|'{1,2}(?![']))*)'''/, type: PythonTokenType_1.PythonTokenType.STRING },
162
- { regex: /^"""((?:\\.|[^"\\]|"{1,2}(?!["]))*)"""/, type: PythonTokenType_1.PythonTokenType.STRING },
163
- { regex: /^r'((?:\\.|[^'\\])*)'/, type: PythonTokenType_1.PythonTokenType.STRING },
164
- { regex: /^r"((?:\\.|[^"\\])*)"/, type: PythonTokenType_1.PythonTokenType.STRING },
165
- { regex: /^\\u[\dA-Fa-f]{4}/, type: PythonTokenType_1.PythonTokenType.STRING },
166
- { regex: /^\\U[\dA-Fa-f]{8}/, type: PythonTokenType_1.PythonTokenType.STRING },
122
+ { regex: /^"""((?:[^"]*|\n|\\"|")*?)"""/, type: PythonTokenType_1.PythonTokenType.STRING },
123
+ { regex: /^'''((?:[^']*|\n|\\'|')*?)'''/, type: PythonTokenType_1.PythonTokenType.STRING },
124
+ { regex: /^'([^'\\]*(?:\\.[^'\\\n]*)*)'/, type: PythonTokenType_1.PythonTokenType.STRING },
125
+ { regex: /^"([^"\\]*(?:\\.[^"\\\n]*)*)"/, type: PythonTokenType_1.PythonTokenType.STRING },
126
+ { regex: /^b"""((?:[^"]*|\n|\\"|")*?)"""/, type: PythonTokenType_1.PythonTokenType.BINARY_STRING },
127
+ { regex: /^b'''((?:[^']*|\n|\\'|')*?)'''/, type: PythonTokenType_1.PythonTokenType.BINARY_STRING },
128
+ { regex: /^b'([^'\\]*(?:\\.[^'\\\n]*)*)'/, type: PythonTokenType_1.PythonTokenType.BINARY_STRING },
129
+ { regex: /^b"([^"\\]*(?:\\.[^"\\\n]*)*)"/, type: PythonTokenType_1.PythonTokenType.BINARY_STRING },
130
+ { regex: /^r"""((?:[^"]*|\n|")*?)"""/, type: PythonTokenType_1.PythonTokenType.RAW_STRING },
131
+ { regex: /^r'''((?:[^']*|\n|')*?)'''/, type: PythonTokenType_1.PythonTokenType.RAW_STRING },
132
+ { regex: /^r'([^'\n]*?)'/, type: PythonTokenType_1.PythonTokenType.RAW_STRING },
133
+ { regex: /^r"([^"\n]*?)"/, type: PythonTokenType_1.PythonTokenType.RAW_STRING },
167
134
  { regex: /^-?\d+\.?\d*[eE][-+]?\d+/, type: PythonTokenType_1.PythonTokenType.FLOAT },
168
- { regex: /^-?\.\d+\b/, type: PythonTokenType_1.PythonTokenType.FLOAT },
169
135
  { regex: /^\d+(_\d+)*\b/, type: PythonTokenType_1.PythonTokenType.INTEGER },
170
136
  { regex: /^[^\s:{},"'\[\]\(\)]+/, type: PythonTokenType_1.PythonTokenType.UNKNOWN }
171
137
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"PythonParser.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PythonParser.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const PythonParser_1 = require("./PythonParser");
4
+ const assert = require("assert");
5
+ const PythonDict_1 = require("./PythonDict");
6
+ const PythonList_1 = require("./PythonList");
7
+ const PythonTuple_1 = require("./PythonTuple");
8
+ describe('PythonParser', () => {
9
+ describe('parse', () => {
10
+ it('can parse a complex python dictionary notation', () => {
11
+ const notationDoc = `{
12
+ "nested_dict": {
13
+ "key1": "value1",
14
+ "key2": {
15
+ "inner_key": "inner_value"
16
+ }
17
+ },
18
+ "list": [1, 2, 3, [4, 5]],
19
+ "boolean": True,
20
+ "tuple": (1, 2, ("nested_tuple", 3)),
21
+ "bytes": b'hello',
22
+ "float": 3.14,
23
+ 'integer': 42,
24
+ "hex_number": 0x1A,
25
+ "octal_number": 0o52,
26
+ "string_single": 'single-quoted\\' string',
27
+ "string_double": "double-quoted \\" string",
28
+ "string_triple_single": '''triple-quoted\'
29
+ single-quoted string''',
30
+ "string_triple_double": """triple-quoted\"
31
+ double-quoted string""",
32
+ "raw_string_single": r'raw single-quoted\\ string',
33
+ "raw_string_double": r"raw double-quoted\\ string",
34
+ "raw_string_triple_single": r'''raw triple\\''-quoted
35
+ single-quoted string''',
36
+ "raw_string_triple_double": r"""raw triple\\""-quoted
37
+ double-quoted string"""
38
+ }`;
39
+ const parsed = PythonParser_1.PythonParser.parse(notationDoc);
40
+ if (!(parsed instanceof PythonDict_1.PythonDict)) {
41
+ assert(false);
42
+ return;
43
+ }
44
+ const nested = parsed.get('nested_dict');
45
+ assert.ok(nested);
46
+ if (!(nested instanceof PythonDict_1.PythonDict)) {
47
+ assert(false);
48
+ }
49
+ else {
50
+ assert.equal(nested.get('key1'), 'value1');
51
+ const key2 = nested.get('key2');
52
+ if (!(key2 instanceof PythonDict_1.PythonDict)) {
53
+ assert(false);
54
+ }
55
+ else {
56
+ assert.equal(key2.get('inner_key'), 'inner_value');
57
+ }
58
+ }
59
+ const list = parsed.get('list');
60
+ if (!(list instanceof PythonList_1.PythonList)) {
61
+ assert(false);
62
+ }
63
+ else {
64
+ assert.equal(list.length, 4);
65
+ assert.equal(list.get(0), 1);
66
+ assert.equal(list.get(1), 2);
67
+ assert.equal(list.get(2), 3);
68
+ const nestedList = list.get(3);
69
+ if (!(nestedList instanceof PythonList_1.PythonList)) {
70
+ assert(false);
71
+ }
72
+ else {
73
+ assert.equal(nestedList.get(0), 4);
74
+ assert.equal(nestedList.get(1), 5);
75
+ }
76
+ assert.equal(list.get(4), undefined);
77
+ }
78
+ assert.equal(parsed.get('boolean'), true);
79
+ const tuple = parsed.get('tuple');
80
+ if (!(tuple instanceof PythonTuple_1.PythonTuple)) {
81
+ assert(false);
82
+ }
83
+ else {
84
+ assert.equal(tuple.get(0), 1);
85
+ assert.equal(tuple.get(1), 2);
86
+ const nestedTuple = tuple.get(2);
87
+ if (!(nestedTuple instanceof PythonTuple_1.PythonTuple)) {
88
+ assert(false);
89
+ }
90
+ else {
91
+ assert.equal(nestedTuple.get(0), 'nested_tuple');
92
+ assert.equal(nestedTuple.get(1), 3);
93
+ }
94
+ assert.equal(tuple.get(3), undefined);
95
+ }
96
+ const buf = parsed.get('bytes');
97
+ if (buf instanceof Buffer) {
98
+ assert.equal(Buffer.from('hello', 'binary').compare(buf), 0);
99
+ }
100
+ else {
101
+ assert(false);
102
+ }
103
+ assert.equal(parsed.get('float'), 3.14);
104
+ assert.equal(parsed.get('integer'), 42);
105
+ assert.equal(parsed.get('hex_number'), 26);
106
+ assert.equal(parsed.get('octal_number'), 42);
107
+ assert.equal(parsed.get('string_single'), 'single-quoted\\\' string');
108
+ assert.equal(parsed.get('string_double'), 'double-quoted \\" string');
109
+ assert.equal(parsed.get('string_triple_single'), 'triple-quoted\'\nsingle-quoted string');
110
+ assert.equal(parsed.get('string_triple_double'), 'triple-quoted\"\ndouble-quoted string');
111
+ assert.equal(parsed.get('raw_string_single'), 'raw single-quoted\\ string');
112
+ assert.equal(parsed.get('raw_string_double'), 'raw double-quoted\\ string');
113
+ assert.equal(parsed.get('raw_string_triple_single'), 'raw triple\\\'\'-quoted\nsingle-quoted string');
114
+ assert.equal(parsed.get('raw_string_triple_double'), 'raw triple\\""-quoted\ndouble-quoted string');
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=PythonParser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PythonParser.spec.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonParser.spec.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,13 @@ export declare enum PythonTokenType {
7
7
  BOOLEAN = 5,
8
8
  INTEGER = 6,
9
9
  FLOAT = 7,
10
- COMPLEX = 8,
11
- STRING = 9,
12
- LIST_START = 10,
13
- LIST_END = 11,
14
- TUPLE_START = 12,
15
- TUPLE_END = 13,
16
- BYTES = 14,
10
+ STRING = 8,
11
+ BINARY_STRING = 9,
12
+ RAW_STRING = 10,
13
+ LIST_START = 11,
14
+ LIST_END = 12,
15
+ TUPLE_START = 13,
16
+ TUPLE_END = 14,
17
17
  HEX = 15,
18
18
  OCTAL = 16,
19
19
  UNKNOWN = 17
@@ -11,13 +11,13 @@ var PythonTokenType;
11
11
  PythonTokenType[PythonTokenType["BOOLEAN"] = 5] = "BOOLEAN";
12
12
  PythonTokenType[PythonTokenType["INTEGER"] = 6] = "INTEGER";
13
13
  PythonTokenType[PythonTokenType["FLOAT"] = 7] = "FLOAT";
14
- PythonTokenType[PythonTokenType["COMPLEX"] = 8] = "COMPLEX";
15
- PythonTokenType[PythonTokenType["STRING"] = 9] = "STRING";
16
- PythonTokenType[PythonTokenType["LIST_START"] = 10] = "LIST_START";
17
- PythonTokenType[PythonTokenType["LIST_END"] = 11] = "LIST_END";
18
- PythonTokenType[PythonTokenType["TUPLE_START"] = 12] = "TUPLE_START";
19
- PythonTokenType[PythonTokenType["TUPLE_END"] = 13] = "TUPLE_END";
20
- PythonTokenType[PythonTokenType["BYTES"] = 14] = "BYTES";
14
+ PythonTokenType[PythonTokenType["STRING"] = 8] = "STRING";
15
+ PythonTokenType[PythonTokenType["BINARY_STRING"] = 9] = "BINARY_STRING";
16
+ PythonTokenType[PythonTokenType["RAW_STRING"] = 10] = "RAW_STRING";
17
+ PythonTokenType[PythonTokenType["LIST_START"] = 11] = "LIST_START";
18
+ PythonTokenType[PythonTokenType["LIST_END"] = 12] = "LIST_END";
19
+ PythonTokenType[PythonTokenType["TUPLE_START"] = 13] = "TUPLE_START";
20
+ PythonTokenType[PythonTokenType["TUPLE_END"] = 14] = "TUPLE_END";
21
21
  PythonTokenType[PythonTokenType["HEX"] = 15] = "HEX";
22
22
  PythonTokenType[PythonTokenType["OCTAL"] = 16] = "OCTAL";
23
23
  PythonTokenType[PythonTokenType["UNKNOWN"] = 17] = "UNKNOWN";
@@ -1 +1 @@
1
- {"version":3,"file":"PythonTokenType.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonTokenType.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAoBX;AApBD,WAAY,eAAe;IAEvB,qDAAI,CAAA;IACJ,mEAAW,CAAA;IACX,+DAAS,CAAA;IACT,uDAAK,CAAA;IACL,uDAAK,CAAA;IACL,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,uDAAK,CAAA;IACL,2DAAO,CAAA;IACP,yDAAM,CAAA;IACN,kEAAU,CAAA;IACV,8DAAQ,CAAA;IACR,oEAAW,CAAA;IACX,gEAAS,CAAA;IACT,wDAAK,CAAA;IACL,oDAAG,CAAA;IACH,wDAAK,CAAA;IACL,4DAAO,CAAA;AACX,CAAC,EApBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAoB1B"}
1
+ {"version":3,"file":"PythonTokenType.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonTokenType.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAoBX;AApBD,WAAY,eAAe;IAEvB,qDAAI,CAAA;IACJ,mEAAW,CAAA;IACX,+DAAS,CAAA;IACT,uDAAK,CAAA;IACL,uDAAK,CAAA;IACL,2DAAO,CAAA;IACP,2DAAO,CAAA;IACP,uDAAK,CAAA;IACL,yDAAM,CAAA;IACN,uEAAa,CAAA;IACb,kEAAU,CAAA;IACV,kEAAU,CAAA;IACV,8DAAQ,CAAA;IACR,oEAAW,CAAA;IACX,gEAAS,CAAA;IACT,oDAAG,CAAA;IACH,wDAAK,CAAA;IACL,4DAAO,CAAA;AACX,CAAC,EApBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAoB1B"}
@@ -4,6 +4,7 @@ import { PythonType } from './PythonType';
4
4
  export declare class PythonTuple extends PythonObject {
5
5
  data: PythonType[];
6
6
  static parse(container: PythonTokenContainer): PythonTuple;
7
+ get(index: number): PythonType | undefined;
7
8
  get length(): number;
8
9
  toString(): string;
9
10
  toJSON(): unknown;
@@ -10,7 +10,7 @@ class PythonTuple extends PythonObject_1.PythonObject {
10
10
  this.data = [];
11
11
  }
12
12
  static parse(container) {
13
- let expectingComma = true;
13
+ let expectingComma = false;
14
14
  const tuple = new PythonTuple();
15
15
  do {
16
16
  const token = container.tokens[container.index];
@@ -42,6 +42,9 @@ class PythonTuple extends PythonObject_1.PythonObject {
42
42
  } while (container.index < container.tokens.length);
43
43
  throw new Error('Expected ) end bracket in tuple');
44
44
  }
45
+ get(index) {
46
+ return this.data[index];
47
+ }
45
48
  get length() {
46
49
  return this.data.length;
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PythonTuple.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonTuple.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,iDAA8C;AAE9C,iDAA8C;AAE9C,MAAa,WAAY,SAAQ,2BAAY;IAA7C;;QAEW,SAAI,GAAiB,EAAE,CAAC;IAwDnC,CAAC;IAtDU,MAAM,CAAC,KAAK,CAAC,SAA+B;QAE/C,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,GACA;YACI,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,QAAQ,KAAK,CAAC,IAAI,EAClB;gBACI,KAAK,iCAAe,CAAC,SAAS;oBAC9B;wBACI,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,KAAK,CAAC;qBAChB;gBACD,KAAK,iCAAe,CAAC,KAAK;oBAC1B;wBACI,IAAI,CAAC,cAAc,EACnB;4BACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;yBAC/C;wBACD,cAAc,GAAG,KAAK,CAAC;wBACvB,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,MAAM;qBACT;gBACD;oBACA;wBACI,IAAI,cAAc,EAClB;4BACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;yBACtC;wBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;wBACzD,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM;qBACT;aACJ;SACJ,QACM,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,MAAM;QAEN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,QAAQ;QAEX,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5C,CAAC;IAEM,MAAM;QAET,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AA1DD,kCA0DC"}
1
+ {"version":3,"file":"PythonTuple.js","sourceRoot":"","sources":["../../../../lib/classes/python/PythonTuple.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,iDAA8C;AAE9C,iDAA8C;AAE9C,MAAa,WAAY,SAAQ,2BAAY;IAA7C;;QAEW,SAAI,GAAiB,EAAE,CAAC;IA6DnC,CAAC;IA3DU,MAAM,CAAC,KAAK,CAAC,SAA+B;QAE/C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,GACA;YACI,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,QAAQ,KAAK,CAAC,IAAI,EAClB;gBACI,KAAK,iCAAe,CAAC,SAAS;oBAC9B;wBACI,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,KAAK,CAAC;qBAChB;gBACD,KAAK,iCAAe,CAAC,KAAK;oBAC1B;wBACI,IAAI,CAAC,cAAc,EACnB;4BACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;yBAC/C;wBACD,cAAc,GAAG,KAAK,CAAC;wBACvB,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClB,MAAM;qBACT;gBACD;oBACA;wBACI,IAAI,cAAc,EAClB;4BACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;yBACtC;wBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;wBACzD,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM;qBACT;aACJ;SACJ,QACM,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC;IAEM,GAAG,CAAC,KAAa;QAEpB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QAEN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,QAAQ;QAEX,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5C,CAAC;IAEM,MAAM;QAET,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AA/DD,kCA+DC"}
@@ -104,4 +104,8 @@ import { LLGestureWaitStep } from './classes/LLGestureWaitStep';
104
104
  import { LLGestureChatStep } from './classes/LLGestureChatStep';
105
105
  import { LLGestureStepType } from './enums/LLGestureStepType';
106
106
  import { LLLindenText } from './classes/LLLindenText';
107
- export { Bot, LoginParameters, ClientEvents, BVH, ChatSourceType, UUID, Vector3, Vector2, Utils, TextureEntry, LLWearable, LLLindenText, LLGesture, LLGestureAnimationStep, LLGestureSoundStep, LLGestureChatStep, LLGestureWaitStep, ParticleSystem, ExtraParams, AgentFlags, BotOptionFlags, CompressedFlags, ControlFlags, DecodeFlags, InstantMessageEventFlags, InventoryItemFlags, LoginFlags, MessageFlags, ParcelInfoFlags, PacketFlags, RegionProtocolFlags, SoundFlags, TeleportFlags, RegionFlags, RightsFlags, ParticleDataFlags, TextureFlags, PrimFlags, ParcelFlags, SimAccessFlags, TextureAnimFlags, InventoryType, AssetType, HTTPAssets, FolderType, TransferStatus, SourcePattern, BlendFunc, PCode, Bumpiness, HoleType, LayerType, MappingType, PhysicsShapeType, ProfileShape, SculptType, Shininess, LLGestureStepType, ChatEvent, DisconnectEvent, FriendRequestEvent, FriendResponseEvent, GroupChatEvent, GroupChatSessionAgentListEvent, GroupChatSessionJoinEvent, GroupNoticeEvent, GroupInviteEvent, InstantMessageEvent, InventoryOfferedEvent, LureEvent, MapInfoRangeReplyEvent, MapInfoReplyEvent, ParcelInfoReplyEvent, RegionInfoReplyEvent, TeleportEvent, ScriptDialogEvent, EventQueueStateChangeEvent, FriendOnlineEvent, FriendRightsEvent, FriendRemovedEvent, ObjectPhysicsDataEvent, ParcelPropertiesEvent, NewObjectEvent, ObjectKilledEvent, ObjectUpdatedEvent, GroupProfileReplyEvent, AvatarPropertiesReplyEvent, Avatar, Friend, FlexibleData, LightData, LightImageData, GameObject, Material, Parcel, RegionEnvironment, SculptData, MeshData, LLMesh, InventoryItem, TarReader, TarWriter, GlobalPosition, MapLocation, SkyPreset, WaterPreset };
107
+ import { LLGLTFMaterial } from './classes/LLGLTFMaterial';
108
+ import { ExtendedMeshData } from './classes/public/ExtendedMeshData';
109
+ import { ReflectionProbeData } from './classes/public/ReflectionProbeData';
110
+ import { RenderMaterialData } from './classes/public/RenderMaterialData';
111
+ export { Bot, LoginParameters, ClientEvents, BVH, ChatSourceType, UUID, Vector3, Vector2, Utils, TextureEntry, LLWearable, LLLindenText, LLGLTFMaterial, LLGesture, LLGestureAnimationStep, LLGestureSoundStep, LLGestureChatStep, LLGestureWaitStep, ParticleSystem, ExtraParams, AgentFlags, BotOptionFlags, CompressedFlags, ControlFlags, DecodeFlags, InstantMessageEventFlags, InventoryItemFlags, LoginFlags, MessageFlags, ParcelInfoFlags, PacketFlags, RegionProtocolFlags, SoundFlags, TeleportFlags, RegionFlags, RightsFlags, ParticleDataFlags, TextureFlags, PrimFlags, ParcelFlags, SimAccessFlags, TextureAnimFlags, InventoryType, AssetType, HTTPAssets, FolderType, TransferStatus, SourcePattern, BlendFunc, PCode, Bumpiness, HoleType, LayerType, MappingType, PhysicsShapeType, ProfileShape, SculptType, Shininess, LLGestureStepType, ChatEvent, DisconnectEvent, FriendRequestEvent, FriendResponseEvent, GroupChatEvent, GroupChatSessionAgentListEvent, GroupChatSessionJoinEvent, GroupNoticeEvent, GroupInviteEvent, InstantMessageEvent, InventoryOfferedEvent, LureEvent, MapInfoRangeReplyEvent, MapInfoReplyEvent, ParcelInfoReplyEvent, RegionInfoReplyEvent, TeleportEvent, ScriptDialogEvent, EventQueueStateChangeEvent, FriendOnlineEvent, FriendRightsEvent, FriendRemovedEvent, ObjectPhysicsDataEvent, ParcelPropertiesEvent, NewObjectEvent, ObjectKilledEvent, ObjectUpdatedEvent, GroupProfileReplyEvent, AvatarPropertiesReplyEvent, Avatar, Friend, FlexibleData, LightData, LightImageData, GameObject, Material, Parcel, RegionEnvironment, SculptData, MeshData, LLMesh, InventoryItem, TarReader, TarWriter, ExtendedMeshData, ReflectionProbeData, RenderMaterialData, GlobalPosition, MapLocation, SkyPreset, WaterPreset };
package/dist/lib/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Bumpiness = exports.PCode = exports.BlendFunc = exports.SourcePattern = exports.TransferStatus = exports.FolderType = exports.HTTPAssets = exports.AssetType = exports.InventoryType = exports.TextureAnimFlags = exports.SimAccessFlags = exports.ParcelFlags = exports.PrimFlags = exports.TextureFlags = exports.ParticleDataFlags = exports.RightsFlags = exports.RegionFlags = exports.TeleportFlags = exports.SoundFlags = exports.RegionProtocolFlags = exports.PacketFlags = exports.ParcelInfoFlags = exports.MessageFlags = exports.LoginFlags = exports.InventoryItemFlags = exports.InstantMessageEventFlags = exports.DecodeFlags = exports.ControlFlags = exports.CompressedFlags = exports.BotOptionFlags = exports.AgentFlags = exports.ExtraParams = exports.ParticleSystem = exports.LLGestureWaitStep = exports.LLGestureChatStep = exports.LLGestureSoundStep = exports.LLGestureAnimationStep = exports.LLGesture = exports.LLLindenText = exports.LLWearable = exports.TextureEntry = exports.Utils = exports.Vector2 = exports.Vector3 = exports.UUID = exports.ChatSourceType = exports.BVH = exports.ClientEvents = exports.LoginParameters = exports.Bot = void 0;
4
- exports.InventoryItem = exports.LLMesh = exports.MeshData = exports.SculptData = exports.RegionEnvironment = exports.Parcel = exports.Material = exports.GameObject = exports.LightImageData = exports.LightData = exports.FlexibleData = exports.Friend = exports.Avatar = exports.AvatarPropertiesReplyEvent = exports.GroupProfileReplyEvent = exports.ObjectUpdatedEvent = exports.ObjectKilledEvent = exports.NewObjectEvent = exports.ParcelPropertiesEvent = exports.ObjectPhysicsDataEvent = exports.FriendRemovedEvent = exports.FriendRightsEvent = exports.FriendOnlineEvent = exports.EventQueueStateChangeEvent = exports.ScriptDialogEvent = exports.TeleportEvent = exports.RegionInfoReplyEvent = exports.ParcelInfoReplyEvent = exports.MapInfoReplyEvent = exports.MapInfoRangeReplyEvent = exports.LureEvent = exports.InventoryOfferedEvent = exports.InstantMessageEvent = exports.GroupInviteEvent = exports.GroupNoticeEvent = exports.GroupChatSessionJoinEvent = exports.GroupChatSessionAgentListEvent = exports.GroupChatEvent = exports.FriendResponseEvent = exports.FriendRequestEvent = exports.DisconnectEvent = exports.ChatEvent = exports.LLGestureStepType = exports.Shininess = exports.SculptType = exports.ProfileShape = exports.PhysicsShapeType = exports.MappingType = exports.LayerType = exports.HoleType = void 0;
5
- exports.TarWriter = exports.TarReader = void 0;
3
+ exports.PCode = exports.BlendFunc = exports.SourcePattern = exports.TransferStatus = exports.FolderType = exports.HTTPAssets = exports.AssetType = exports.InventoryType = exports.TextureAnimFlags = exports.SimAccessFlags = exports.ParcelFlags = exports.PrimFlags = exports.TextureFlags = exports.ParticleDataFlags = exports.RightsFlags = exports.RegionFlags = exports.TeleportFlags = exports.SoundFlags = exports.RegionProtocolFlags = exports.PacketFlags = exports.ParcelInfoFlags = exports.MessageFlags = exports.LoginFlags = exports.InventoryItemFlags = exports.InstantMessageEventFlags = exports.DecodeFlags = exports.ControlFlags = exports.CompressedFlags = exports.BotOptionFlags = exports.AgentFlags = exports.ExtraParams = exports.ParticleSystem = exports.LLGestureWaitStep = exports.LLGestureChatStep = exports.LLGestureSoundStep = exports.LLGestureAnimationStep = exports.LLGesture = exports.LLGLTFMaterial = exports.LLLindenText = exports.LLWearable = exports.TextureEntry = exports.Utils = exports.Vector2 = exports.Vector3 = exports.UUID = exports.ChatSourceType = exports.BVH = exports.ClientEvents = exports.LoginParameters = exports.Bot = void 0;
4
+ exports.LLMesh = exports.MeshData = exports.SculptData = exports.RegionEnvironment = exports.Parcel = exports.Material = exports.GameObject = exports.LightImageData = exports.LightData = exports.FlexibleData = exports.Friend = exports.Avatar = exports.AvatarPropertiesReplyEvent = exports.GroupProfileReplyEvent = exports.ObjectUpdatedEvent = exports.ObjectKilledEvent = exports.NewObjectEvent = exports.ParcelPropertiesEvent = exports.ObjectPhysicsDataEvent = exports.FriendRemovedEvent = exports.FriendRightsEvent = exports.FriendOnlineEvent = exports.EventQueueStateChangeEvent = exports.ScriptDialogEvent = exports.TeleportEvent = exports.RegionInfoReplyEvent = exports.ParcelInfoReplyEvent = exports.MapInfoReplyEvent = exports.MapInfoRangeReplyEvent = exports.LureEvent = exports.InventoryOfferedEvent = exports.InstantMessageEvent = exports.GroupInviteEvent = exports.GroupNoticeEvent = exports.GroupChatSessionJoinEvent = exports.GroupChatSessionAgentListEvent = exports.GroupChatEvent = exports.FriendResponseEvent = exports.FriendRequestEvent = exports.DisconnectEvent = exports.ChatEvent = exports.LLGestureStepType = exports.Shininess = exports.SculptType = exports.ProfileShape = exports.PhysicsShapeType = exports.MappingType = exports.LayerType = exports.HoleType = exports.Bumpiness = void 0;
5
+ exports.RenderMaterialData = exports.ReflectionProbeData = exports.ExtendedMeshData = exports.TarWriter = exports.TarReader = exports.InventoryItem = void 0;
6
6
  const Bot_1 = require("./Bot");
7
7
  Object.defineProperty(exports, "Bot", { enumerable: true, get: function () { return Bot_1.Bot; } });
8
8
  const LoginParameters_1 = require("./classes/LoginParameters");
@@ -207,4 +207,12 @@ const LLGestureStepType_1 = require("./enums/LLGestureStepType");
207
207
  Object.defineProperty(exports, "LLGestureStepType", { enumerable: true, get: function () { return LLGestureStepType_1.LLGestureStepType; } });
208
208
  const LLLindenText_1 = require("./classes/LLLindenText");
209
209
  Object.defineProperty(exports, "LLLindenText", { enumerable: true, get: function () { return LLLindenText_1.LLLindenText; } });
210
+ const LLGLTFMaterial_1 = require("./classes/LLGLTFMaterial");
211
+ Object.defineProperty(exports, "LLGLTFMaterial", { enumerable: true, get: function () { return LLGLTFMaterial_1.LLGLTFMaterial; } });
212
+ const ExtendedMeshData_1 = require("./classes/public/ExtendedMeshData");
213
+ Object.defineProperty(exports, "ExtendedMeshData", { enumerable: true, get: function () { return ExtendedMeshData_1.ExtendedMeshData; } });
214
+ const ReflectionProbeData_1 = require("./classes/public/ReflectionProbeData");
215
+ Object.defineProperty(exports, "ReflectionProbeData", { enumerable: true, get: function () { return ReflectionProbeData_1.ReflectionProbeData; } });
216
+ const RenderMaterialData_1 = require("./classes/public/RenderMaterialData");
217
+ Object.defineProperty(exports, "RenderMaterialData", { enumerable: true, get: function () { return RenderMaterialData_1.RenderMaterialData; } });
210
218
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import 'mocha';
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("mocha");
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+ const Packet_1 = require("../classes/Packet");
7
+ const DecodeFlags_1 = require("../enums/DecodeFlags");
8
+ const PacketFlags_1 = require("../enums/PacketFlags");
9
+ function compareArrays(arr1, arr2) {
10
+ if (arr1.length === arr2.length
11
+ && arr1.every(function (u, i) {
12
+ return u === arr2[i];
13
+ })) {
14
+ return true;
15
+ }
16
+ else {
17
+ return false;
18
+ }
19
+ }
20
+ describe('Packets', () => {
21
+ const p = path.resolve(__dirname + '/../../../testing/packets');
22
+ const files = fs.readdirSync(p);
23
+ for (const file of files) {
24
+ if (file.substr(file.length - 7) === '.packet') {
25
+ const fullPath = p + '/' + file;
26
+ const stats = fs.statSync(fullPath);
27
+ if (!stats.isDirectory()) {
28
+ describe(file, () => {
29
+ let pos = 0;
30
+ let data = Buffer.allocUnsafe(0);
31
+ const packet = new Packet_1.Packet();
32
+ const acksReceived = [];
33
+ const acksSent = [];
34
+ it('should decode correctly', (done) => {
35
+ try {
36
+ data = fs.readFileSync(fullPath);
37
+ pos = packet.readFromBuffer(data, 0, (number) => {
38
+ acksReceived.push(number);
39
+ }, (number) => {
40
+ acksSent.push(number);
41
+ });
42
+ done();
43
+ }
44
+ catch (err) {
45
+ done(err);
46
+ }
47
+ });
48
+ it('should have read the entire packet', (done) => {
49
+ if (pos < data.length) {
50
+ done('Finished reading but we\'re not at the end of the packet (' + pos + ' < ' + data.length + ', seq ' + packet.sequenceNumber + ')');
51
+ }
52
+ else {
53
+ done();
54
+ }
55
+ });
56
+ const jsonFN = fullPath.replace('.packet', '.json');
57
+ const jsFile = fs.readFileSync(jsonFN);
58
+ const json = JSON.parse(jsFile.toString('utf8'));
59
+ it('should have sent the correct number of packet ACKs', (done) => {
60
+ if (!compareArrays(json.sentAcks, acksSent)) {
61
+ done('Sent acks does not match expected');
62
+ }
63
+ else {
64
+ done();
65
+ }
66
+ });
67
+ it('should have received the correct number of packet ACKs', (done) => {
68
+ if (!compareArrays(json.receivedAcks, acksReceived)) {
69
+ done('Received acks does not match expected');
70
+ }
71
+ else {
72
+ done();
73
+ }
74
+ });
75
+ it('should match our expected decoded data', (done) => {
76
+ let pckt = json['packet'];
77
+ pckt = JSON.stringify(pckt);
78
+ if (JSON.stringify(packet) !== pckt) {
79
+ done('JSON strings do not match');
80
+ }
81
+ else {
82
+ done();
83
+ }
84
+ });
85
+ let buf = Buffer.allocUnsafe(0);
86
+ let extra = 0;
87
+ it('should encode back to binary', (done) => {
88
+ try {
89
+ buf = Buffer.alloc(packet.getSize());
90
+ buf = packet.writeToBuffer(buf, 0, DecodeFlags_1.DecodeFlags.DontChangeFlags);
91
+ let bl = buf.length;
92
+ if (packet.packetFlags & PacketFlags_1.PacketFlags.Ack) {
93
+ extra += 4 * acksReceived.length;
94
+ extra++;
95
+ }
96
+ bl += extra;
97
+ if (data.length !== bl) {
98
+ console.log(buf.toString('hex'));
99
+ console.log(data.toString('hex'));
100
+ done('Packet size ' + bl + ' but expected length was ' + data.length + ' sentAcks: ' + acksSent.length + ', receivedAcks: ' + acksReceived.length + ', getSize: ' + packet.getSize());
101
+ }
102
+ else {
103
+ done();
104
+ }
105
+ }
106
+ catch (err) {
107
+ done(err);
108
+ }
109
+ });
110
+ it('should match the original packet byte-for-byte', (done) => {
111
+ const trimmedData = data.slice(0, data.length - extra);
112
+ if (trimmedData.compare(buf) !== 0) {
113
+ done('Buffers do not match');
114
+ }
115
+ else {
116
+ done();
117
+ }
118
+ });
119
+ });
120
+ }
121
+ }
122
+ }
123
+ });
124
+ //# sourceMappingURL=packets.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packets.spec.js","sourceRoot":"","sources":["../../../lib/tests/packets.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import 'mocha';
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("mocha");
4
+ const validator_1 = require("validator");
5
+ const assert = require("assert");
6
+ const UUID_1 = require("../classes/UUID");
7
+ describe('UUID', () => {
8
+ describe('random', () => {
9
+ it('should generate a random, valid v4 UUID', () => {
10
+ const uuid = UUID_1.UUID.random().toString();
11
+ const secondUUID = UUID_1.UUID.random().toString();
12
+ if (typeof uuid !== 'string') {
13
+ assert.fail('Returned UUID is not a string');
14
+ }
15
+ if (!validator_1.default.isUUID(uuid)) {
16
+ assert.fail('Returned string is not a valid UUID');
17
+ }
18
+ if (uuid === '00000000-0000-0000-0000-000000000000') {
19
+ assert.fail('Random UUID should not be zero');
20
+ }
21
+ if (typeof secondUUID !== 'string') {
22
+ assert.fail('Returned second UUID is not a string');
23
+ }
24
+ if (!validator_1.default.isUUID(secondUUID)) {
25
+ assert.fail('Second UUID is not a valid UUID');
26
+ }
27
+ if (secondUUID === '00000000-0000-0000-0000-000000000000') {
28
+ assert.fail('Random UUID should not be zero');
29
+ }
30
+ if (uuid === secondUUID) {
31
+ assert.fail('Two random UUIDs match! (Not random)');
32
+ }
33
+ assert.ok(true);
34
+ });
35
+ });
36
+ describe('zero', () => {
37
+ it('should generate a zeroed, valid v4 UUID', () => {
38
+ const uuid = UUID_1.UUID.zero().toString();
39
+ if (typeof uuid !== 'string') {
40
+ assert.fail('Returned UUID is not a string');
41
+ }
42
+ if (!validator_1.default.isUUID(uuid)) {
43
+ assert.fail('Returned string is not a valid UUID');
44
+ }
45
+ if (uuid !== '00000000-0000-0000-0000-000000000000') {
46
+ assert.fail('UUID is not zero');
47
+ }
48
+ assert.ok(true);
49
+ });
50
+ });
51
+ describe('encode/decode', () => {
52
+ it('should correctly decode a 16-byte UUID from a buffer', () => {
53
+ const buf = Buffer.from('00004af668bb6fe34893881408f586c5657c4e1c9910', 'hex');
54
+ const uuid = new UUID_1.UUID(buf, 2);
55
+ const str = uuid.toString();
56
+ if (typeof str !== 'string') {
57
+ assert.fail('Returned UUID is not a string');
58
+ }
59
+ if (!validator_1.default.isUUID(str)) {
60
+ assert.fail('Returned string is not a valid UUID');
61
+ }
62
+ if (str !== '4af668bb-6fe3-4893-8814-08f586c5657c') {
63
+ assert.fail('UUID decoded incorrectly');
64
+ }
65
+ assert.ok(true);
66
+ });
67
+ it('should correct encode a UUID into the correct position in a buffer', () => {
68
+ const buf = Buffer.alloc(22);
69
+ const uuid = new UUID_1.UUID('4af668bb-6fe3-4893-8814-08f586c5657c');
70
+ uuid.writeToBuffer(buf, 2);
71
+ const bufCmp = Buffer.from('00004af668bb6fe34893881408f586c5657c00000000', 'hex');
72
+ if (buf.compare(bufCmp) !== 0) {
73
+ assert.fail('Encoded buffer does not match expected output');
74
+ }
75
+ const result = uuid.toString();
76
+ if (typeof result !== 'string') {
77
+ assert.fail('Returned UUID is not a string');
78
+ }
79
+ if (!validator_1.default.isUUID(result)) {
80
+ assert.fail('Returned string is not a valid UUID');
81
+ }
82
+ assert.ok(true);
83
+ });
84
+ });
85
+ });
86
+ //# sourceMappingURL=uuid.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.spec.js","sourceRoot":"","sources":["../../../lib/tests/uuid.spec.ts"],"names":[],"mappings":";;AAAA,iBAAe;AACf,yCAAkC;AAClC,iCAAiC;AACjC,0CAAuC;AAEvC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAElB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QAEpB,EAAE,CAAE,yCAAyC,EAAE,GAAG,EAAE;YAEhD,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;YAE5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAC5B;gBACI,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,mBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3B;gBACI,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;aACtD;YACD,IAAI,IAAI,KAAK,sCAAsC,EACnD;gBACI,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;aACjD;YACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAClC;gBACI,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;aACvD;YACD,IAAI,CAAC,mBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EACjC;gBACI,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;aAClD;YACD,IAAI,UAAU,KAAK,sCAAsC,EACzD;gBACI,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;aACjD;YACD,IAAI,IAAI,KAAK,UAAU,EACvB;gBACI,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;aACvD;YACD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAElB,EAAE,CAAE,yCAAyC,EAAE,GAAG,EAAE;YAEhD,MAAM,IAAI,GAAG,WAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAC5B;gBACI,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,mBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3B;gBACI,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;aACtD;YACD,IAAI,IAAI,KAAK,sCAAsC,EACnD;gBACI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;aAClC;YACD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAE3B,EAAE,CAAE,sDAAsD,EAAE,GAAG,EAAE;YAE7D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAC3B;gBACI,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,mBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B;gBACI,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;aACtD;YACD,IAAI,GAAG,KAAK,sCAAsC,EAClD;gBACI,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;aAC3C;YACD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,EAAE,CAAE,oEAAoE,EAAE,GAAG,EAAE;YAE3E,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,sCAAsC,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YAClF,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7B;gBACI,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;aAChE;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAC9B;gBACI,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7B;gBACI,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;aACtD;YACD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@caspertech/node-metaverse",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "A node.js interface for Second Life.",
5
5
  "main": "dist/lib/index.js",
6
6
  "types": "dist/lib/index.d.ts",
7
7
  "scripts": {
8
8
  "setup": "npm install",
9
9
  "prepublish": "npm run build",
10
- "test-only": "mocha -r source-map-support/register dist/lib/tests/",
10
+ "test-only": "mocha -r source-map-support/register 'dist/**/*.spec.js'",
11
11
  "pretest": "npm run build",
12
12
  "test": "npm run test-only",
13
13
  "build": "tsc --removeComments",