pw-js-world 0.4.5-dev.85d024b → 0.4.5-dev.e92914f

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/cm/Block.d.ts CHANGED
@@ -39,6 +39,26 @@ export default class Block {
39
39
  */
40
40
  static getArgsAsArray(block: Block): BlockArg[];
41
41
  static getArgsAsArray(bId: number, args?: Record<string, BlockArg>): BlockArg[];
42
+ /**
43
+ * Checks if all required fields are present, it will also check if there are extra fields that are not used.
44
+ *
45
+ * Returns an object with two lists: values and keys. The indexes of values also point to keys.
46
+ *
47
+ * For example:
48
+ * ```js
49
+ * { values: [3, "Text is awesome."], keys: ["rotation", "text"] }
50
+ * ```
51
+ *
52
+ * NOTE: This will not error if a required field is missing. This also doesn't validate string against patterns for now.
53
+ */
54
+ static validateArgs(block: Block): {
55
+ values: BlockArg[];
56
+ keys: string[];
57
+ };
58
+ static validateArgs(bId: number, args?: Record<string, BlockArg>): {
59
+ values: BlockArg[];
60
+ keys: string[];
61
+ };
42
62
  /**
43
63
  * This is sort of for internal use,
44
64
  * this will convert the packet form of fields
package/cm/Block.js CHANGED
@@ -65,9 +65,12 @@ class Block {
65
65
  args !== null && args !== void 0 ? args : (args = bId.args);
66
66
  bId = bId.bId;
67
67
  }
68
- if (args === undefined)
69
- return {};
70
68
  const fields = Block.getFieldsByBlockId(bId);
69
+ if (args === undefined) {
70
+ if (fields.length > 0)
71
+ throw Error(`Missing arguments: ${(0, Misc_js_1.map)(fields, v => v.Name).join(", ")}.`);
72
+ return [];
73
+ }
71
74
  const obj = {};
72
75
  for (let i = 0, len = fields.length; i < len; i++) {
73
76
  const f = fields[i];
@@ -86,13 +89,16 @@ class Block {
86
89
  }
87
90
  static getArgsAsArray(bId, args) {
88
91
  if (bId instanceof Block) {
89
- args = bId.args;
92
+ args !== null && args !== void 0 ? args : (args = bId.args);
90
93
  bId = bId.bId;
91
94
  }
92
- if (args === undefined)
93
- return [];
94
95
  const arr = [];
95
96
  const fields = Block.getFieldsByBlockId(bId);
97
+ if (args === undefined) {
98
+ if (fields.length > 0)
99
+ throw Error(`Missing arguments: ${(0, Misc_js_1.map)(fields, v => v.Name).join(", ")}.`);
100
+ return [];
101
+ }
96
102
  for (let i = 0, len = fields.length; i < len; i++) {
97
103
  const f = fields[i];
98
104
  const val = args[f.Name];
@@ -104,6 +110,60 @@ class Block {
104
110
  }
105
111
  return arr;
106
112
  }
113
+ static validateArgs(bId, args) {
114
+ var _a;
115
+ if (bId instanceof Block) {
116
+ args !== null && args !== void 0 ? args : (args = bId.args);
117
+ bId = bId.bId;
118
+ }
119
+ const obj = { keys: [], values: [] };
120
+ const fields = Block.getFieldsByBlockId(bId);
121
+ if (args === undefined) {
122
+ if (fields.length > 0)
123
+ throw Error(`Missing arguments: ${(0, Misc_js_1.map)(fields, v => v.Name).join(", ")}.`);
124
+ return obj;
125
+ }
126
+ const argNames = Object.keys(args);
127
+ for (let i = 0, len = fields.length; i < len; i++) {
128
+ const f = fields[i];
129
+ const val = args[f.Name];
130
+ if (f.Required === true && val === undefined)
131
+ throw Error(`Missing required argument: ${f.Name} (Type: ${f.Type})`);
132
+ ;
133
+ // else if (f.Required === false && args[f.Name] === undefined) arr.push(undefined);
134
+ if (val !== undefined)
135
+ switch (f.Type) {
136
+ case "String":
137
+ if (typeof val !== "string")
138
+ throw new Error_js_1.LegacyIncorrectArgError(`Argument '${f.Name}' is not of correct type (${f.Type})`, bId, val);
139
+ break;
140
+ case "Int32":
141
+ case "UInt32":
142
+ if (typeof val !== "number")
143
+ throw new Error_js_1.LegacyIncorrectArgError(`Argument '${f.Name}' is not of correct type (${f.Type})`, bId, val);
144
+ if ((_a = f.ExcludedValues) === null || _a === void 0 ? void 0 : _a.includes(val))
145
+ throw new Error_js_1.LegacyIncorrectArgError(`Argument '${f.Name}' value is in the excluded values`, bId, val);
146
+ if (f.MinValue > val)
147
+ throw new Error_js_1.LegacyIncorrectArgError(`Argument '${f.Name}' value lower than the minimum value (${f.MinValue})`, bId, val);
148
+ if (f.MaxValue < val)
149
+ throw new Error_js_1.LegacyIncorrectArgError(`Argument '${f.Name}' value lower than the maximum value (${f.MaxValue})`, bId, val);
150
+ break;
151
+ case "Boolean":
152
+ if (typeof val !== "boolean")
153
+ throw new Error_js_1.LegacyIncorrectArgError(`Argument '${f.Name}' is not of correct type (${f.Type})`, bId, val);
154
+ break;
155
+ }
156
+ for (let j = 0; j < argNames.length; j++) {
157
+ if (argNames[j] === f.Name) {
158
+ obj.keys.push(f.Name);
159
+ obj.values.push(val);
160
+ argNames.splice(j, 1);
161
+ break;
162
+ }
163
+ }
164
+ }
165
+ return obj;
166
+ }
107
167
  /**
108
168
  * This is sort of for internal use,
109
169
  * this will convert the packet form of fields
@@ -230,4 +290,4 @@ class Block {
230
290
  }
231
291
  }
232
292
  exports.default = Block;
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvQmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSx5Q0FBa0c7QUFDbEcsOENBQTBHO0FBQzFHLDRDQUF3RTtBQUV4RSxNQUFxQixLQUFLO0lBaUJ0Qjs7O09BR0c7SUFDSCxZQUFZLEdBQWdDLEVBQUUsSUFBNEM7UUFuQjFGOzs7O1dBSUc7UUFDSCxTQUFJLEdBQTZCLEVBQUUsQ0FBQztRQWVoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUN2QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsaUJBQWlCO1lBQ2pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVsRCxnREFBZ0Q7Z0JBRWhELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtvQkFBRSxNQUFNLElBQUksc0NBQTJCLENBQUMsNkRBQTZELEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFOUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoRCxvQ0FBb0M7b0JBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxHQUFHLEdBQUcs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
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvQmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSx5Q0FBa0c7QUFDbEcsOENBQTBHO0FBQzFHLDRDQUE2RTtBQUU3RSxNQUFxQixLQUFLO0lBaUJ0Qjs7O09BR0c7SUFDSCxZQUFZLEdBQWdDLEVBQUUsSUFBNEM7UUFuQjFGOzs7O1dBSUc7UUFDSCxTQUFJLEdBQTZCLEVBQUUsQ0FBQztRQWVoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUN2QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsaUJBQWlCO1lBQ2pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVsRCxnREFBZ0Q7Z0JBRWhELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtvQkFBRSxNQUFNLElBQUksc0NBQTJCLENBQUMsNkRBQTZELEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFOUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoRCxvQ0FBb0M7b0JBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxHQUFHLEdBQUcs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
package/cm/Structure.d.ts CHANGED
@@ -39,7 +39,7 @@ export declare class DeserialisedStructure {
39
39
  *
40
40
  * NOTE: This requires you to have called API getlistblocks (unless you have joined the world)
41
41
  */
42
- getSerialisedBlocks(): IStructureBlocks;
42
+ getSerialisedBlocks(): IStructureBlocksV2;
43
43
  /**
44
44
  * This will return the structure form, giving you the freedom to choose your own way of saving.
45
45
  */
@@ -75,11 +75,12 @@ export declare class DeserialisedStructure {
75
75
  */
76
76
  toPackets(x: number, y: number, helper: PWGameWorldHelper): SendableBlockPacket[];
77
77
  }
78
- export interface IStructure {
78
+ export type IStructure = IStructureV1 | IStructureV2;
79
+ export interface IStructureV1 {
79
80
  /**
80
81
  * Version of the structure object, not the world.
81
82
  */
82
- version: number;
83
+ version: 1;
83
84
  /**
84
85
  * The maximum width of the structure.
85
86
  */
@@ -91,11 +92,30 @@ export interface IStructure {
91
92
  /**
92
93
  * Object containing the mappings and the blocks.
93
94
  */
94
- blocks: IStructureBlocks;
95
+ blocks: IStructureBlocksV1;
95
96
  }
96
- export interface IStructureBlocks {
97
+ export interface IStructureV2 {
97
98
  /**
98
- * Index starts at 0, this is the mapping of blocks (in block name ids in UPPER_CASE)
99
+ * Version of the structure object, not the world.
100
+ */
101
+ version: 2;
102
+ /**
103
+ * The maximum width of the structure.
104
+ */
105
+ width: number;
106
+ /**
107
+ * The maximum height of the structure.
108
+ */
109
+ height: number;
110
+ /**
111
+ * Object containing the mappings and the blocks.
112
+ */
113
+ blocks: IStructureBlocksV2;
114
+ }
115
+ export type IStructureBlocks = IStructureBlocksV1 | IStructureBlocksV2;
116
+ export interface IStructureBlocksV1 {
117
+ /**
118
+ * Index starts at 0, this is the mapping of palette IDs (block name ids in UPPER_CASE)
99
119
  */
100
120
  mapping: string[];
101
121
  /**
@@ -107,8 +127,49 @@ export interface IStructureBlocks {
107
127
  * (while impossible, it's for possible compatibility with mirrored blocks, foreground block in background layer etc)
108
128
  *
109
129
  * If argMapping exists in a block, it'll be an index that corresponds to the block's arguments in args array.
130
+ */
131
+ blocks: [
132
+ [
133
+ x: number,
134
+ y: number,
135
+ ...argMapping: number[]
136
+ ][],
137
+ [
138
+ x: number,
139
+ y: number,
140
+ ...argMapping: number[]
141
+ ][],
142
+ [
143
+ x: number,
144
+ y: number,
145
+ ...argMapping: number[]
146
+ ][]
147
+ ][];
148
+ }
149
+ export interface IStructureBlocksV2 {
150
+ /**
151
+ * Version of the structured blocks.
152
+ */
153
+ version: 2;
154
+ /**
155
+ * Index starts at 0, this is the mapping of palette IDs (block name ids in UPPER_CASE)
156
+ */
157
+ mapping: string[];
158
+ /**
159
+ * Index starts at 0, this is the mapping of field names (for example, a portal block will have "rotation" and "id" so 0 - rotation, 1 - id)
160
+ */
161
+ fieldsMapping: string[];
162
+ /**
163
+ * Index starts at 0, this is the mapping of args in blocks, after the y (see blocks for further desc)
164
+ */
165
+ argsMapping: BlockArg[];
166
+ /**
167
+ * If array, it's index corresponds to the mapping, the element will be array of locations and args indexed by layers
168
+ * (while impossible, it's for possible compatibility with mirrored blocks, foreground block in background layer etc)
110
169
  *
111
- * If string, it's the encoded version of the object, use atob then JSON parse.
170
+ * If argMapping exists in a block, there will be 2 elements for every arg
171
+ * - 1st is the pointer to the field/arg value in argsMapping.
172
+ * - 2nd is the pointer to the field/arg name in fieldsMapping.
112
173
  */
113
174
  blocks: [
114
175
  [
package/cm/Structure.js CHANGED
@@ -4,6 +4,7 @@ exports.DeserialisedStructure = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const Block_js_1 = tslib_1.__importDefault(require("./Block.js"));
6
6
  const Misc_js_1 = require("./util/Misc.js");
7
+ const Error_js_1 = require("./util/Error.js");
7
8
  /**
8
9
  * This is external to the main Helper, it will allow developers to use the structure without needing to use helper if they so wish.
9
10
  *
@@ -23,10 +24,14 @@ class StructureHelper {
23
24
  data = JSON.parse(decoder.decode(data));
24
25
  }
25
26
  const json = "version" in data ? data : JSON.parse(data.toString());
26
- if (json.version === undefined || json.version < 1 || json.version > 1)
27
- throw Error("Unknown file format");
28
- const desed = this.deserialiseStructBlocks(json.blocks, json.width, json.height);
29
- return new DeserialisedStructure(desed.blocks, { width: desed.width, height: desed.height });
27
+ switch (json.version) {
28
+ case 1:
29
+ case 2:
30
+ const desed = this.deserialiseStructBlocks(json.blocks, json.width, json.height);
31
+ return new DeserialisedStructure(desed.blocks, { width: desed.width, height: desed.height });
32
+ default:
33
+ throw Error("Unknown file format");
34
+ }
30
35
  }
31
36
  /**
32
37
  * If width or height are not provided, the structure may be trimmed (empty blocks).
@@ -36,7 +41,6 @@ class StructureHelper {
36
41
  static deserialiseStructBlocks(struct, width, height) {
37
42
  var _a, _b, _c, _d, _e, _f;
38
43
  var _g, _h, _j, _k, _l, _m;
39
- const { args, blocks, mapping } = struct;
40
44
  const deBlocks = [[], [], []];
41
45
  let isMissing = width === undefined || height === undefined;
42
46
  if (width !== undefined && height !== undefined) {
@@ -52,6 +56,22 @@ class StructureHelper {
52
56
  }
53
57
  }
54
58
  let big = { x: 0, y: 0 };
59
+ const { blocks, mapping } = struct;
60
+ // TODO: if v3 is created in the future, this will require a significant code revamp but for now this will work
61
+ let version = -1;
62
+ let argsMapping;
63
+ let fieldsMapping = [];
64
+ if ("version" in struct) {
65
+ // TODO: change if v3 or above
66
+ version = struct.version;
67
+ argsMapping = struct.argsMapping;
68
+ fieldsMapping = struct.fieldsMapping;
69
+ }
70
+ else {
71
+ // legacy support
72
+ argsMapping = struct.args;
73
+ version = 1;
74
+ }
55
75
  for (let i = 0, ien = blocks.length; i < ien; i++) {
56
76
  // While foreground and background layers are only supported for now, it's possible there are more layers in the future.
57
77
  for (let l = 0, len = blocks[i].length; l < len; l++) {
@@ -72,10 +92,19 @@ class StructureHelper {
72
92
  const deBlock = deBlocks[l][block[0]][block[1]] = new Block_js_1.default(mapping[i]);
73
93
  const fields = Block_js_1.default.getFieldsByBlockId(deBlock.bId);
74
94
  for (let a = 2, alen = block.length; a < alen; a++) {
75
- let arg = args[block[a]];
76
- const field = fields[a - 2];
95
+ let arg = argsMapping[block[a]];
96
+ let field;
97
+ if (version > 1) {
98
+ const fieldName = fieldsMapping[block[++a]];
99
+ field = (0, Misc_js_1.find)(fields, v => v.Name === fieldName);
100
+ if (field === undefined)
101
+ throw new Error_js_1.LegacyIncorrectArgError(`The field '${fieldName}' no longer exists for block '${mapping[i]}'`, deBlock.bId, fieldName);
102
+ }
103
+ else {
104
+ field = fields[a - 2];
105
+ }
77
106
  if (typeof arg === "string" && arg.startsWith("\x00"))
78
- arg = Uint8Array.from(arg.slice(1));
107
+ arg = Uint8Array.from(arg.slice(1).split(","));
79
108
  else {
80
109
  switch (field.Type) {
81
110
  case "Boolean":
@@ -86,7 +115,7 @@ class StructureHelper {
86
115
  break; // legacy support: world portal ids are now string.
87
116
  }
88
117
  }
89
- deBlock.args[fields[a - 2].Name] = arg;
118
+ deBlock.args[field.Name] = arg;
90
119
  }
91
120
  }
92
121
  }
@@ -131,11 +160,13 @@ class DeserialisedStructure {
131
160
  getSerialisedBlocks() {
132
161
  var _a;
133
162
  const blocks = [];
134
- const args = [];
163
+ const argsMapping = [];
164
+ const fieldsMapping = [];
135
165
  const mapping = [];
136
166
  // corresponds to the index in mapping array.
137
- const mappingDone = {};
138
167
  const argDone = new Map();
168
+ const fieldDone = new Map();
169
+ const mappingDone = {};
139
170
  for (let l = 0; l < this.blocks.length; l++) {
140
171
  for (let x = 0; x < this.width; x++) {
141
172
  for (let y = 0; y < this.height; y++) {
@@ -151,35 +182,35 @@ class DeserialisedStructure {
151
182
  if (blocks[index][l] === undefined)
152
183
  blocks[index][l] = [];
153
184
  const toPut = [x, y];
154
- // const keys = Object.keys(block.args);
155
- const args = Block_js_1.default.getArgsAsArray(block);
156
- for (let a = 0, argsLen = args.length; a < argsLen; a++) {
157
- const arg = (args[a] instanceof Uint8Array) ? "\x00" + ((_a = args[a]) === null || _a === void 0 ? void 0 : _a.toString()) : args[a];
158
- let argIndex = argDone.get(arg);
185
+ const blockArgs = Block_js_1.default.validateArgs(block);
186
+ for (let a = 0, len = blockArgs.keys.length; a < len; a++) {
187
+ const key = blockArgs.keys[a];
188
+ const val = (blockArgs.values[a] instanceof Uint8Array) ? "\x00" + ((_a = blockArgs.values[a]) === null || _a === void 0 ? void 0 : _a.toString()) : blockArgs.values[a];
189
+ let argIndex = argDone.get(val);
190
+ let fieldIndex = fieldDone.get(key);
159
191
  if (argIndex === undefined) {
160
- argIndex = argDone.set(arg, args.push(arg) - 1).get(arg);
192
+ argIndex = argDone.set(val, argsMapping.push(val) - 1).get(val);
193
+ }
194
+ if (fieldIndex === undefined) {
195
+ fieldIndex = fieldDone.set(key, fieldsMapping.push(key) - 1).get(key);
161
196
  }
162
- if (argIndex === undefined)
197
+ if (argIndex === undefined || fieldIndex === undefined)
163
198
  throw Error("This should be impossible at this point, but left for type safety.");
164
- toPut[2 + a] = argIndex;
199
+ // 0 - 2, 3
200
+ // 1 - 4, 5
201
+ // 2 - 6, 7
202
+ toPut[2 + (a * 2)] = argIndex;
203
+ toPut[2 + (a * 2) + 1] = fieldIndex;
165
204
  }
166
- // for (let a = 0, argsLen = keys.length; a < argsLen; a++) {
167
- // const arg = Buffer.isBuffer(block.args[keys[a]]) ? "\x00" + block.args[keys[a]].toString() : block.args[keys[a]];
168
- // let argIndex = argDone.get(arg);
169
- // if (argIndex === undefined) {
170
- // argDone.set(arg, args.push(arg) - 1);
171
- // argIndex = argDone.get(arg);
172
- // }
173
- // if (argIndex === undefined)
174
- // toPut[2 + a] = argIndex;
175
- // }
176
205
  blocks[index][l].push(toPut);
177
206
  }
178
207
  }
179
208
  }
180
209
  return {
210
+ version: 2,
211
+ argsMapping,
212
+ fieldsMapping,
181
213
  mapping,
182
- args,
183
214
  blocks
184
215
  };
185
216
  }
@@ -189,9 +220,9 @@ class DeserialisedStructure {
189
220
  toStruct() {
190
221
  const struct = this.getSerialisedBlocks();
191
222
  return {
223
+ version: 2,
192
224
  width: this.width,
193
225
  height: this.height,
194
- version: 1,
195
226
  blocks: struct
196
227
  };
197
228
  }
@@ -254,4 +285,4 @@ class DeserialisedStructure {
254
285
  }
255
286
  }
256
287
  exports.DeserialisedStructure = DeserialisedStructure;
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL1N0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsa0VBQStCO0FBSS9CLDRDQUFvRDtBQUVwRDs7OztHQUlHO0FBQ0gsTUFBcUIsZUFBZTtJQUNoQzs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQXNDO1FBQzlDLElBQUksSUFBSSxZQUFZLFVBQVUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDbEMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFlLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7WUFBRSxNQUFNLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTNHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpGLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFD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
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL1N0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0Esa0VBQStCO0FBSS9CLDRDQUEwRDtBQUMxRCw4Q0FBMEQ7QUFFMUQ7Ozs7R0FJRztBQUNILE1BQXFCLGVBQWU7SUFDaEM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFzQztRQUM5QyxJQUFJLElBQUksWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBZSxDQUFDO1FBRWxGLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxDQUFDO1lBQUMsS0FBSyxDQUFDO2dCQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVqRixPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNqRztnQkFDSSxNQUFNLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1B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LE1BQU0sUUFBUSxHQUFvRCxFQUFFLENBQUM7UUFFckUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWxDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM1QyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUcsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQ3hELEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzt3QkFDMUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBRW5ELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQzs0QkFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxRixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQzthQUNJLENBQUM7WUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDMUMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDckMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzt3QkFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzlGLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFBLDRCQUFrQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDSjtBQW5MRCxzREFtTEMifQ==
@@ -43,9 +43,9 @@ export declare class LegacyIncorrectArgError extends Error {
43
43
  */
44
44
  arg: any;
45
45
  /**
46
- * The expected field.
46
+ * The expected field. This may be undefined if it no longer exists.
47
47
  */
48
- field: AnyBlockField;
48
+ field?: AnyBlockField | undefined;
49
49
  constructor(msg: string,
50
50
  /**
51
51
  * The offending block ID.
@@ -56,7 +56,7 @@ export declare class LegacyIncorrectArgError extends Error {
56
56
  */
57
57
  arg: any,
58
58
  /**
59
- * The expected field.
59
+ * The expected field. This may be undefined if it no longer exists.
60
60
  */
61
- field: AnyBlockField);
61
+ field?: AnyBlockField | undefined);
62
62
  }
package/cm/util/Error.js CHANGED
@@ -40,7 +40,7 @@ class LegacyIncorrectArgError extends Error {
40
40
  */
41
41
  arg,
42
42
  /**
43
- * The expected field.
43
+ * The expected field. This may be undefined if it no longer exists.
44
44
  */
45
45
  field) {
46
46
  super(msg);
@@ -50,4 +50,4 @@ class LegacyIncorrectArgError extends Error {
50
50
  }
51
51
  }
52
52
  exports.LegacyIncorrectArgError = LegacyIncorrectArgError;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbC9FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFNeEMsWUFBWSxHQUFXLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBVkQsOENBVUM7QUFFRCxNQUFhLDJCQUE0QixTQUFRLEtBQUs7SUFDbEQsWUFBWSxHQUFXO0lBQ25COztPQUVHO0lBQ0ksT0FBd0I7SUFDL0I7O09BRUc7SUFDSSxXQUFtQjtJQUMxQjs7T0FFRztJQUNJLGVBQXVCO1FBRTlCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQVZKLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBSXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBSW5CLG9CQUFlLEdBQWYsZUFBZSxDQUFRO0lBR2xDLENBQUM7Q0FDSjtBQWpCRCxrRUFpQkM7QUFFRCxNQUFhLHVCQUF3QixTQUFRLEtBQUs7SUFDOUMsWUFBWSxHQUFXO0lBQ25COztPQUVHO0lBQ0ksT0FBd0I7SUFDL0I7O09BRUc7SUFDSSxHQUFRO0lBQ2Y7O09BRUc7SUFDSSxLQUFvQjtRQUUzQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFWSixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUl4QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBSVIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUcvQixDQUFDO0NBQ0o7QUFqQkQsMERBaUJDIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbC9FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFNeEMsWUFBWSxHQUFXLEVBQUUsT0FBd0I7UUFDN0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBVkQsOENBVUM7QUFFRCxNQUFhLDJCQUE0QixTQUFRLEtBQUs7SUFDbEQsWUFBWSxHQUFXO0lBQ25COztPQUVHO0lBQ0ksT0FBd0I7SUFDL0I7O09BRUc7SUFDSSxXQUFtQjtJQUMxQjs7T0FFRztJQUNJLGVBQXVCO1FBRTlCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQVZKLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBSXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBSW5CLG9CQUFlLEdBQWYsZUFBZSxDQUFRO0lBR2xDLENBQUM7Q0FDSjtBQWpCRCxrRUFpQkM7QUFFRCxNQUFhLHVCQUF3QixTQUFRLEtBQUs7SUFDOUMsWUFBWSxHQUFXO0lBQ25COztPQUVHO0lBQ0ksT0FBd0I7SUFDL0I7O09BRUc7SUFDSSxHQUFRO0lBQ2Y7O09BRUc7SUFDSSxLQUFxQjtRQUU1QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFWSixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUl4QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBSVIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFHaEMsQ0FBQztDQUNKO0FBakJELDBEQWlCQyJ9
package/esm/Block.d.ts CHANGED
@@ -39,6 +39,26 @@ export default class Block {
39
39
  */
40
40
  static getArgsAsArray(block: Block): BlockArg[];
41
41
  static getArgsAsArray(bId: number, args?: Record<string, BlockArg>): BlockArg[];
42
+ /**
43
+ * Checks if all required fields are present, it will also check if there are extra fields that are not used.
44
+ *
45
+ * Returns an object with two lists: values and keys. The indexes of values also point to keys.
46
+ *
47
+ * For example:
48
+ * ```js
49
+ * { values: [3, "Text is awesome."], keys: ["rotation", "text"] }
50
+ * ```
51
+ *
52
+ * NOTE: This will not error if a required field is missing. This also doesn't validate string against patterns for now.
53
+ */
54
+ static validateArgs(block: Block): {
55
+ values: BlockArg[];
56
+ keys: string[];
57
+ };
58
+ static validateArgs(bId: number, args?: Record<string, BlockArg>): {
59
+ values: BlockArg[];
60
+ keys: string[];
61
+ };
42
62
  /**
43
63
  * This is sort of for internal use,
44
64
  * this will convert the packet form of fields
package/esm/Block.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PWApiClient } from "pw-js-api";
2
2
  import { LegacyIncorrectArgError, LegacyIncorrectArgsLenError, MissingBlockError } from "./util/Error.js";
3
- import { compareObjs, listedFieldTypeToGameType } from "./util/Misc.js";
3
+ import { compareObjs, listedFieldTypeToGameType, map } from "./util/Misc.js";
4
4
  export default class Block {
5
5
  /**
6
6
  * @param bId ID of the block, can be the current numeric block ID, or string ID (from /listblocks).
@@ -63,9 +63,12 @@ export default class Block {
63
63
  args !== null && args !== void 0 ? args : (args = bId.args);
64
64
  bId = bId.bId;
65
65
  }
66
- if (args === undefined)
67
- return {};
68
66
  const fields = Block.getFieldsByBlockId(bId);
67
+ if (args === undefined) {
68
+ if (fields.length > 0)
69
+ throw Error(`Missing arguments: ${map(fields, v => v.Name).join(", ")}.`);
70
+ return [];
71
+ }
69
72
  const obj = {};
70
73
  for (let i = 0, len = fields.length; i < len; i++) {
71
74
  const f = fields[i];
@@ -84,13 +87,16 @@ export default class Block {
84
87
  }
85
88
  static getArgsAsArray(bId, args) {
86
89
  if (bId instanceof Block) {
87
- args = bId.args;
90
+ args !== null && args !== void 0 ? args : (args = bId.args);
88
91
  bId = bId.bId;
89
92
  }
90
- if (args === undefined)
91
- return [];
92
93
  const arr = [];
93
94
  const fields = Block.getFieldsByBlockId(bId);
95
+ if (args === undefined) {
96
+ if (fields.length > 0)
97
+ throw Error(`Missing arguments: ${map(fields, v => v.Name).join(", ")}.`);
98
+ return [];
99
+ }
94
100
  for (let i = 0, len = fields.length; i < len; i++) {
95
101
  const f = fields[i];
96
102
  const val = args[f.Name];
@@ -102,6 +108,60 @@ export default class Block {
102
108
  }
103
109
  return arr;
104
110
  }
111
+ static validateArgs(bId, args) {
112
+ var _a;
113
+ if (bId instanceof Block) {
114
+ args !== null && args !== void 0 ? args : (args = bId.args);
115
+ bId = bId.bId;
116
+ }
117
+ const obj = { keys: [], values: [] };
118
+ const fields = Block.getFieldsByBlockId(bId);
119
+ if (args === undefined) {
120
+ if (fields.length > 0)
121
+ throw Error(`Missing arguments: ${map(fields, v => v.Name).join(", ")}.`);
122
+ return obj;
123
+ }
124
+ const argNames = Object.keys(args);
125
+ for (let i = 0, len = fields.length; i < len; i++) {
126
+ const f = fields[i];
127
+ const val = args[f.Name];
128
+ if (f.Required === true && val === undefined)
129
+ throw Error(`Missing required argument: ${f.Name} (Type: ${f.Type})`);
130
+ ;
131
+ // else if (f.Required === false && args[f.Name] === undefined) arr.push(undefined);
132
+ if (val !== undefined)
133
+ switch (f.Type) {
134
+ case "String":
135
+ if (typeof val !== "string")
136
+ throw new LegacyIncorrectArgError(`Argument '${f.Name}' is not of correct type (${f.Type})`, bId, val);
137
+ break;
138
+ case "Int32":
139
+ case "UInt32":
140
+ if (typeof val !== "number")
141
+ throw new LegacyIncorrectArgError(`Argument '${f.Name}' is not of correct type (${f.Type})`, bId, val);
142
+ if ((_a = f.ExcludedValues) === null || _a === void 0 ? void 0 : _a.includes(val))
143
+ throw new LegacyIncorrectArgError(`Argument '${f.Name}' value is in the excluded values`, bId, val);
144
+ if (f.MinValue > val)
145
+ throw new LegacyIncorrectArgError(`Argument '${f.Name}' value lower than the minimum value (${f.MinValue})`, bId, val);
146
+ if (f.MaxValue < val)
147
+ throw new LegacyIncorrectArgError(`Argument '${f.Name}' value lower than the maximum value (${f.MaxValue})`, bId, val);
148
+ break;
149
+ case "Boolean":
150
+ if (typeof val !== "boolean")
151
+ throw new LegacyIncorrectArgError(`Argument '${f.Name}' is not of correct type (${f.Type})`, bId, val);
152
+ break;
153
+ }
154
+ for (let j = 0; j < argNames.length; j++) {
155
+ if (argNames[j] === f.Name) {
156
+ obj.keys.push(f.Name);
157
+ obj.values.push(val);
158
+ argNames.splice(j, 1);
159
+ break;
160
+ }
161
+ }
162
+ }
163
+ return obj;
164
+ }
105
165
  /**
106
166
  * This is sort of for internal use,
107
167
  * this will convert the packet form of fields
@@ -227,4 +287,4 @@ export default class Block {
227
287
  return (_b = (_a = PWApiClient.listBlocksObj) === null || _a === void 0 ? void 0 : _a[paletteId].Fields) !== null && _b !== void 0 ? _b : [];
228
288
  }
229
289
  }
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvQmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUE0QyxXQUFXLEVBQWtCLE1BQU0sV0FBVyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxNQUFNLENBQUMsT0FBTyxPQUFPLEtBQUs7SUFpQnRCOzs7T0FHRztJQUNILFlBQVksR0FBZ0MsRUFBRSxJQUE0QztRQW5CMUY7Ozs7V0FJRztRQUNILFNBQUksR0FBNkIsRUFBRSxDQUFDO1FBZWhDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO2FBQ3ZDLENBQUM7WUFDRixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxpQkFBaUI7WUFDakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRWxELGdEQUFnRDtnQkFFaEQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNO29CQUFFLE1BQU0sSUFBSSwyQkFBMkIsQ0FBQyw2REFBNkQsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUU5SyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFB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
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvQmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUE0QyxXQUFXLEVBQWtCLE1BQU0sV0FBVyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsTUFBTSxDQUFDLE9BQU8sT0FBTyxLQUFLO0lBaUJ0Qjs7O09BR0c7SUFDSCxZQUFZLEdBQWdDLEVBQUUsSUFBNEM7UUFuQjFGOzs7O1dBSUc7UUFDSCxTQUFJLEdBQTZCLEVBQUUsQ0FBQztRQWVoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUN2QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsaUJBQWlCO1lBQ2pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVsRCxnREFBZ0Q7Z0JBRWhELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtvQkFBRSxNQUFNLElBQUksMkJBQTJCLENBQUMsNkRBQTZELEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFOUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FB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
@@ -39,7 +39,7 @@ export declare class DeserialisedStructure {
39
39
  *
40
40
  * NOTE: This requires you to have called API getlistblocks (unless you have joined the world)
41
41
  */
42
- getSerialisedBlocks(): IStructureBlocks;
42
+ getSerialisedBlocks(): IStructureBlocksV2;
43
43
  /**
44
44
  * This will return the structure form, giving you the freedom to choose your own way of saving.
45
45
  */
@@ -75,11 +75,12 @@ export declare class DeserialisedStructure {
75
75
  */
76
76
  toPackets(x: number, y: number, helper: PWGameWorldHelper): SendableBlockPacket[];
77
77
  }
78
- export interface IStructure {
78
+ export type IStructure = IStructureV1 | IStructureV2;
79
+ export interface IStructureV1 {
79
80
  /**
80
81
  * Version of the structure object, not the world.
81
82
  */
82
- version: number;
83
+ version: 1;
83
84
  /**
84
85
  * The maximum width of the structure.
85
86
  */
@@ -91,11 +92,30 @@ export interface IStructure {
91
92
  /**
92
93
  * Object containing the mappings and the blocks.
93
94
  */
94
- blocks: IStructureBlocks;
95
+ blocks: IStructureBlocksV1;
95
96
  }
96
- export interface IStructureBlocks {
97
+ export interface IStructureV2 {
97
98
  /**
98
- * Index starts at 0, this is the mapping of blocks (in block name ids in UPPER_CASE)
99
+ * Version of the structure object, not the world.
100
+ */
101
+ version: 2;
102
+ /**
103
+ * The maximum width of the structure.
104
+ */
105
+ width: number;
106
+ /**
107
+ * The maximum height of the structure.
108
+ */
109
+ height: number;
110
+ /**
111
+ * Object containing the mappings and the blocks.
112
+ */
113
+ blocks: IStructureBlocksV2;
114
+ }
115
+ export type IStructureBlocks = IStructureBlocksV1 | IStructureBlocksV2;
116
+ export interface IStructureBlocksV1 {
117
+ /**
118
+ * Index starts at 0, this is the mapping of palette IDs (block name ids in UPPER_CASE)
99
119
  */
100
120
  mapping: string[];
101
121
  /**
@@ -107,8 +127,49 @@ export interface IStructureBlocks {
107
127
  * (while impossible, it's for possible compatibility with mirrored blocks, foreground block in background layer etc)
108
128
  *
109
129
  * If argMapping exists in a block, it'll be an index that corresponds to the block's arguments in args array.
130
+ */
131
+ blocks: [
132
+ [
133
+ x: number,
134
+ y: number,
135
+ ...argMapping: number[]
136
+ ][],
137
+ [
138
+ x: number,
139
+ y: number,
140
+ ...argMapping: number[]
141
+ ][],
142
+ [
143
+ x: number,
144
+ y: number,
145
+ ...argMapping: number[]
146
+ ][]
147
+ ][];
148
+ }
149
+ export interface IStructureBlocksV2 {
150
+ /**
151
+ * Version of the structured blocks.
152
+ */
153
+ version: 2;
154
+ /**
155
+ * Index starts at 0, this is the mapping of palette IDs (block name ids in UPPER_CASE)
156
+ */
157
+ mapping: string[];
158
+ /**
159
+ * Index starts at 0, this is the mapping of field names (for example, a portal block will have "rotation" and "id" so 0 - rotation, 1 - id)
160
+ */
161
+ fieldsMapping: string[];
162
+ /**
163
+ * Index starts at 0, this is the mapping of args in blocks, after the y (see blocks for further desc)
164
+ */
165
+ argsMapping: BlockArg[];
166
+ /**
167
+ * If array, it's index corresponds to the mapping, the element will be array of locations and args indexed by layers
168
+ * (while impossible, it's for possible compatibility with mirrored blocks, foreground block in background layer etc)
110
169
  *
111
- * If string, it's the encoded version of the object, use atob then JSON parse.
170
+ * If argMapping exists in a block, there will be 2 elements for every arg
171
+ * - 1st is the pointer to the field/arg value in argsMapping.
172
+ * - 2nd is the pointer to the field/arg name in fieldsMapping.
112
173
  */
113
174
  blocks: [
114
175
  [
package/esm/Structure.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import Block from "./Block.js";
2
- import { createBlockPackets } from "./util/Misc.js";
2
+ import { createBlockPackets, find } from "./util/Misc.js";
3
+ import { LegacyIncorrectArgError } from "./util/Error.js";
3
4
  /**
4
5
  * This is external to the main Helper, it will allow developers to use the structure without needing to use helper if they so wish.
5
6
  *
@@ -19,10 +20,14 @@ export default class StructureHelper {
19
20
  data = JSON.parse(decoder.decode(data));
20
21
  }
21
22
  const json = "version" in data ? data : JSON.parse(data.toString());
22
- if (json.version === undefined || json.version < 1 || json.version > 1)
23
- throw Error("Unknown file format");
24
- const desed = this.deserialiseStructBlocks(json.blocks, json.width, json.height);
25
- return new DeserialisedStructure(desed.blocks, { width: desed.width, height: desed.height });
23
+ switch (json.version) {
24
+ case 1:
25
+ case 2:
26
+ const desed = this.deserialiseStructBlocks(json.blocks, json.width, json.height);
27
+ return new DeserialisedStructure(desed.blocks, { width: desed.width, height: desed.height });
28
+ default:
29
+ throw Error("Unknown file format");
30
+ }
26
31
  }
27
32
  /**
28
33
  * If width or height are not provided, the structure may be trimmed (empty blocks).
@@ -32,7 +37,6 @@ export default class StructureHelper {
32
37
  static deserialiseStructBlocks(struct, width, height) {
33
38
  var _a, _b, _c, _d, _e, _f;
34
39
  var _g, _h, _j, _k, _l, _m;
35
- const { args, blocks, mapping } = struct;
36
40
  const deBlocks = [[], [], []];
37
41
  let isMissing = width === undefined || height === undefined;
38
42
  if (width !== undefined && height !== undefined) {
@@ -48,6 +52,22 @@ export default class StructureHelper {
48
52
  }
49
53
  }
50
54
  let big = { x: 0, y: 0 };
55
+ const { blocks, mapping } = struct;
56
+ // TODO: if v3 is created in the future, this will require a significant code revamp but for now this will work
57
+ let version = -1;
58
+ let argsMapping;
59
+ let fieldsMapping = [];
60
+ if ("version" in struct) {
61
+ // TODO: change if v3 or above
62
+ version = struct.version;
63
+ argsMapping = struct.argsMapping;
64
+ fieldsMapping = struct.fieldsMapping;
65
+ }
66
+ else {
67
+ // legacy support
68
+ argsMapping = struct.args;
69
+ version = 1;
70
+ }
51
71
  for (let i = 0, ien = blocks.length; i < ien; i++) {
52
72
  // While foreground and background layers are only supported for now, it's possible there are more layers in the future.
53
73
  for (let l = 0, len = blocks[i].length; l < len; l++) {
@@ -68,10 +88,19 @@ export default class StructureHelper {
68
88
  const deBlock = deBlocks[l][block[0]][block[1]] = new Block(mapping[i]);
69
89
  const fields = Block.getFieldsByBlockId(deBlock.bId);
70
90
  for (let a = 2, alen = block.length; a < alen; a++) {
71
- let arg = args[block[a]];
72
- const field = fields[a - 2];
91
+ let arg = argsMapping[block[a]];
92
+ let field;
93
+ if (version > 1) {
94
+ const fieldName = fieldsMapping[block[++a]];
95
+ field = find(fields, v => v.Name === fieldName);
96
+ if (field === undefined)
97
+ throw new LegacyIncorrectArgError(`The field '${fieldName}' no longer exists for block '${mapping[i]}'`, deBlock.bId, fieldName);
98
+ }
99
+ else {
100
+ field = fields[a - 2];
101
+ }
73
102
  if (typeof arg === "string" && arg.startsWith("\x00"))
74
- arg = Uint8Array.from(arg.slice(1));
103
+ arg = Uint8Array.from(arg.slice(1).split(","));
75
104
  else {
76
105
  switch (field.Type) {
77
106
  case "Boolean":
@@ -82,7 +111,7 @@ export default class StructureHelper {
82
111
  break; // legacy support: world portal ids are now string.
83
112
  }
84
113
  }
85
- deBlock.args[fields[a - 2].Name] = arg;
114
+ deBlock.args[field.Name] = arg;
86
115
  }
87
116
  }
88
117
  }
@@ -126,11 +155,13 @@ export class DeserialisedStructure {
126
155
  getSerialisedBlocks() {
127
156
  var _a;
128
157
  const blocks = [];
129
- const args = [];
158
+ const argsMapping = [];
159
+ const fieldsMapping = [];
130
160
  const mapping = [];
131
161
  // corresponds to the index in mapping array.
132
- const mappingDone = {};
133
162
  const argDone = new Map();
163
+ const fieldDone = new Map();
164
+ const mappingDone = {};
134
165
  for (let l = 0; l < this.blocks.length; l++) {
135
166
  for (let x = 0; x < this.width; x++) {
136
167
  for (let y = 0; y < this.height; y++) {
@@ -146,35 +177,35 @@ export class DeserialisedStructure {
146
177
  if (blocks[index][l] === undefined)
147
178
  blocks[index][l] = [];
148
179
  const toPut = [x, y];
149
- // const keys = Object.keys(block.args);
150
- const args = Block.getArgsAsArray(block);
151
- for (let a = 0, argsLen = args.length; a < argsLen; a++) {
152
- const arg = (args[a] instanceof Uint8Array) ? "\x00" + ((_a = args[a]) === null || _a === void 0 ? void 0 : _a.toString()) : args[a];
153
- let argIndex = argDone.get(arg);
180
+ const blockArgs = Block.validateArgs(block);
181
+ for (let a = 0, len = blockArgs.keys.length; a < len; a++) {
182
+ const key = blockArgs.keys[a];
183
+ const val = (blockArgs.values[a] instanceof Uint8Array) ? "\x00" + ((_a = blockArgs.values[a]) === null || _a === void 0 ? void 0 : _a.toString()) : blockArgs.values[a];
184
+ let argIndex = argDone.get(val);
185
+ let fieldIndex = fieldDone.get(key);
154
186
  if (argIndex === undefined) {
155
- argIndex = argDone.set(arg, args.push(arg) - 1).get(arg);
187
+ argIndex = argDone.set(val, argsMapping.push(val) - 1).get(val);
188
+ }
189
+ if (fieldIndex === undefined) {
190
+ fieldIndex = fieldDone.set(key, fieldsMapping.push(key) - 1).get(key);
156
191
  }
157
- if (argIndex === undefined)
192
+ if (argIndex === undefined || fieldIndex === undefined)
158
193
  throw Error("This should be impossible at this point, but left for type safety.");
159
- toPut[2 + a] = argIndex;
194
+ // 0 - 2, 3
195
+ // 1 - 4, 5
196
+ // 2 - 6, 7
197
+ toPut[2 + (a * 2)] = argIndex;
198
+ toPut[2 + (a * 2) + 1] = fieldIndex;
160
199
  }
161
- // for (let a = 0, argsLen = keys.length; a < argsLen; a++) {
162
- // const arg = Buffer.isBuffer(block.args[keys[a]]) ? "\x00" + block.args[keys[a]].toString() : block.args[keys[a]];
163
- // let argIndex = argDone.get(arg);
164
- // if (argIndex === undefined) {
165
- // argDone.set(arg, args.push(arg) - 1);
166
- // argIndex = argDone.get(arg);
167
- // }
168
- // if (argIndex === undefined)
169
- // toPut[2 + a] = argIndex;
170
- // }
171
200
  blocks[index][l].push(toPut);
172
201
  }
173
202
  }
174
203
  }
175
204
  return {
205
+ version: 2,
206
+ argsMapping,
207
+ fieldsMapping,
176
208
  mapping,
177
- args,
178
209
  blocks
179
210
  };
180
211
  }
@@ -184,9 +215,9 @@ export class DeserialisedStructure {
184
215
  toStruct() {
185
216
  const struct = this.getSerialisedBlocks();
186
217
  return {
218
+ version: 2,
187
219
  width: this.width,
188
220
  height: this.height,
189
- version: 1,
190
221
  blocks: struct
191
222
  };
192
223
  }
@@ -248,4 +279,4 @@ export class DeserialisedStructure {
248
279
  return createBlockPackets(blockies);
249
280
  }
250
281
  }
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL1N0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFJL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sZUFBZTtJQUNoQzs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQXNDO1FBQzlDLElBQUksSUFBSSxZQUFZLFVBQVUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDbEMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFlLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7WUFBRSxNQUFNLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTNHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpGLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FB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
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL1N0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFJL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLGVBQWU7SUFDaEM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFzQztRQUM5QyxJQUFJLElBQUksWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBZSxDQUFDO1FBRWxGLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxDQUFDO1lBQUMsS0FBSyxDQUFDO2dCQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVqRixPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFB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
@@ -43,9 +43,9 @@ export declare class LegacyIncorrectArgError extends Error {
43
43
  */
44
44
  arg: any;
45
45
  /**
46
- * The expected field.
46
+ * The expected field. This may be undefined if it no longer exists.
47
47
  */
48
- field: AnyBlockField;
48
+ field?: AnyBlockField | undefined;
49
49
  constructor(msg: string,
50
50
  /**
51
51
  * The offending block ID.
@@ -56,7 +56,7 @@ export declare class LegacyIncorrectArgError extends Error {
56
56
  */
57
57
  arg: any,
58
58
  /**
59
- * The expected field.
59
+ * The expected field. This may be undefined if it no longer exists.
60
60
  */
61
- field: AnyBlockField);
61
+ field?: AnyBlockField | undefined);
62
62
  }
package/esm/util/Error.js CHANGED
@@ -35,7 +35,7 @@ export class LegacyIncorrectArgError extends Error {
35
35
  */
36
36
  arg,
37
37
  /**
38
- * The expected field.
38
+ * The expected field. This may be undefined if it no longer exists.
39
39
  */
40
40
  field) {
41
41
  super(msg);
@@ -44,4 +44,4 @@ export class LegacyIncorrectArgError extends Error {
44
44
  this.field = field;
45
45
  }
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbC9FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsS0FBSztJQU14QyxZQUFZLEdBQVcsRUFBRSxPQUF3QjtRQUM3QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsS0FBSztJQUNsRCxZQUFZLEdBQVc7SUFDbkI7O09BRUc7SUFDSSxPQUF3QjtJQUMvQjs7T0FFRztJQUNJLFdBQW1CO0lBQzFCOztPQUVHO0lBQ0ksZUFBdUI7UUFFOUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBVkosWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFJeEIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFJbkIsb0JBQWUsR0FBZixlQUFlLENBQVE7SUFHbEMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDOUMsWUFBWSxHQUFXO0lBQ25COztPQUVHO0lBQ0ksT0FBd0I7SUFDL0I7O09BRUc7SUFDSSxHQUFRO0lBQ2Y7O09BRUc7SUFDSSxLQUFvQjtRQUUzQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFWSixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUl4QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBSVIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUcvQixDQUFDO0NBQ0oifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbC9FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsS0FBSztJQU14QyxZQUFZLEdBQVcsRUFBRSxPQUF3QjtRQUM3QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsS0FBSztJQUNsRCxZQUFZLEdBQVc7SUFDbkI7O09BRUc7SUFDSSxPQUF3QjtJQUMvQjs7T0FFRztJQUNJLFdBQW1CO0lBQzFCOztPQUVHO0lBQ0ksZUFBdUI7UUFFOUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBVkosWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFJeEIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFJbkIsb0JBQWUsR0FBZixlQUFlLENBQVE7SUFHbEMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDOUMsWUFBWSxHQUFXO0lBQ25COztPQUVHO0lBQ0ksT0FBd0I7SUFDL0I7O09BRUc7SUFDSSxHQUFRO0lBQ2Y7O09BRUc7SUFDSSxLQUFxQjtRQUU1QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFWSixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUl4QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBSVIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFHaEMsQ0FBQztDQUNKIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pw-js-world",
3
- "version": "0.4.5-dev.85d024b",
3
+ "version": "0.4.5-dev.e92914f",
4
4
  "description": "An optional package for PW-JS-Api, aims to serve world purposes.",
5
5
  "exports": {
6
6
  "types": "./esm/index.js",