@hello.nrfcloud.com/proto-map 5.6.1 → 5.6.3

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 (68) hide show
  1. package/api/Context.ts +1 -1
  2. package/api/{ResourceUpdate.spec.ts → ObjectUpdate.spec.ts} +5 -5
  3. package/api/{ResourceUpdate.ts → ObjectUpdate.ts} +6 -6
  4. package/dist/api/Context.js +1 -1
  5. package/dist/api/DeviceId.js +7 -7
  6. package/dist/api/Devices.js +11 -11
  7. package/dist/api/History.js +10 -10
  8. package/dist/api/History.spec.js +17 -17
  9. package/dist/api/LwM2M.js +11 -11
  10. package/dist/api/ObjectUpdate.js +17 -0
  11. package/dist/api/ObjectUpdate.spec.js +26 -0
  12. package/dist/api/ShareDeviceOwnershipConfirmed.js +4 -4
  13. package/dist/api/ShareDeviceRequest.js +4 -4
  14. package/dist/api/Timestamp.js +3 -3
  15. package/dist/api/Timestamp.spec.js +9 -9
  16. package/dist/api/index.js +8 -8
  17. package/dist/generator/addDocBlock.js +2 -2
  18. package/dist/generator/generateLwM2MDefinitions.js +27 -27
  19. package/dist/generator/generateLwM2MDefinitions.spec.js +32 -32
  20. package/dist/generator/generateLwm2mTimestampResources.js +7 -7
  21. package/dist/generator/generateModels.js +37 -37
  22. package/dist/generator/generateType.js +21 -21
  23. package/dist/generator/generateValidator.js +29 -29
  24. package/dist/generator/generateValidators.js +9 -9
  25. package/dist/generator/isDir.js +1 -1
  26. package/dist/generator/isDir.spec.js +13 -13
  27. package/dist/generator/lwm2m.js +23 -23
  28. package/dist/generator/models.js +23 -23
  29. package/dist/generator/printNode.js +2 -2
  30. package/dist/generator/tokenizeName.js +2 -2
  31. package/dist/generator/tokenizeName.spec.js +20 -20
  32. package/dist/generator/types.js +37 -37
  33. package/dist/lwm2m/LWM2MObjectDefinition.js +30 -30
  34. package/dist/lwm2m/check-lwm2m-rules.js +34 -34
  35. package/dist/lwm2m/definitions.js +4 -4
  36. package/dist/lwm2m/fromXML2JSON.js +4 -4
  37. package/dist/lwm2m/instanceTs.js +2 -2
  38. package/dist/lwm2m/instanceTs.spec.js +10 -10
  39. package/dist/lwm2m/isRegisteredLwM2MObject.js +2 -2
  40. package/dist/lwm2m/isRegisteredLwM2MObject.spec.js +12 -12
  41. package/dist/lwm2m/parseRangeEnumeration.js +1 -1
  42. package/dist/lwm2m/parseRangeEnumeration.spec.js +11 -11
  43. package/dist/lwm2m/unwrapNestedArray.js +2 -2
  44. package/dist/lwm2m/unwrapNestedArray.spec.js +155 -155
  45. package/dist/lwm2m/validate.js +1 -1
  46. package/dist/lwm2m/validation.js +16 -16
  47. package/dist/markdown/getCodeBlock.js +5 -5
  48. package/dist/markdown/getFrontMatter.js +6 -6
  49. package/dist/markdown/parseREADME.js +5 -5
  50. package/dist/models/asset_tracker_v2+AWS/examples/examples.spec.js +21 -21
  51. package/dist/models/check-model-rules.js +42 -42
  52. package/dist/models/models.js +20 -20
  53. package/dist/models/types.js +3 -3
  54. package/dist/senml/SenMLSchema.js +16 -16
  55. package/dist/senml/SenMLSchema.spec.js +11 -11
  56. package/dist/senml/hasValue.js +2 -2
  57. package/dist/senml/hasValue.spec.js +4 -4
  58. package/dist/senml/lwm2mToSenML.js +8 -8
  59. package/dist/senml/lwm2mToSenML.spec.js +42 -42
  60. package/dist/senml/parseResourceId.js +1 -1
  61. package/dist/senml/parseResourceId.spec.js +6 -6
  62. package/dist/senml/senMLtoLwM2M.js +14 -14
  63. package/dist/senml/senMLtoLwM2M.spec.js +53 -53
  64. package/dist/senml/validateSenML.js +2 -2
  65. package/dist/senml/validateSenML.spec.js +11 -11
  66. package/package.json +4 -8
  67. package/dist/api/ResourceUpdate.js +0 -17
  68. package/dist/api/ResourceUpdate.spec.js +0 -26
@@ -122,13 +122,13 @@ function _ts_generator(thisArg, body) {
122
122
  };
123
123
  }
124
124
  }
125
- import { isDir } from "./isDir.js";
126
- import { describe, it, before } from "node:test";
127
- import assert from "node:assert/strict";
128
- import os from "node:os";
129
- import { mkdtemp } from "node:fs/promises";
130
- import path from "node:path";
131
- void describe("isDir()", function() {
125
+ import { isDir } from './isDir.js';
126
+ import { describe, it, before } from 'node:test';
127
+ import assert from 'node:assert/strict';
128
+ import os from 'node:os';
129
+ import { mkdtemp } from 'node:fs/promises';
130
+ import path from 'node:path';
131
+ void describe('isDir()', function() {
132
132
  var dir;
133
133
  void before(/*#__PURE__*/ _async_to_generator(function() {
134
134
  return _ts_generator(this, function(_state) {
@@ -136,7 +136,7 @@ void describe("isDir()", function() {
136
136
  case 0:
137
137
  return [
138
138
  4,
139
- mkdtemp(path.join(os.tmpdir(), "isdir-"))
139
+ mkdtemp(path.join(os.tmpdir(), 'isdir-'))
140
140
  ];
141
141
  case 1:
142
142
  dir = _state.sent();
@@ -146,7 +146,7 @@ void describe("isDir()", function() {
146
146
  }
147
147
  });
148
148
  }));
149
- void it("should return true if the path is a directory", /*#__PURE__*/ _async_to_generator(function() {
149
+ void it('should return true if the path is a directory', /*#__PURE__*/ _async_to_generator(function() {
150
150
  var _;
151
151
  return _ts_generator(this, function(_state) {
152
152
  switch(_state.label){
@@ -167,7 +167,7 @@ void describe("isDir()", function() {
167
167
  }
168
168
  });
169
169
  }));
170
- void it("should return false if the path is not a directory", /*#__PURE__*/ _async_to_generator(function() {
170
+ void it('should return false if the path is not a directory', /*#__PURE__*/ _async_to_generator(function() {
171
171
  var _;
172
172
  return _ts_generator(this, function(_state) {
173
173
  switch(_state.label){
@@ -175,7 +175,7 @@ void describe("isDir()", function() {
175
175
  _ = assert.strictEqual;
176
176
  return [
177
177
  4,
178
- isDir(path.join(dir, "foo.txt"))
178
+ isDir(path.join(dir, 'foo.txt'))
179
179
  ];
180
180
  case 1:
181
181
  return [
@@ -188,7 +188,7 @@ void describe("isDir()", function() {
188
188
  }
189
189
  });
190
190
  }));
191
- void it("should return false if an error occurs", /*#__PURE__*/ _async_to_generator(function() {
191
+ void it('should return false if an error occurs', /*#__PURE__*/ _async_to_generator(function() {
192
192
  var _;
193
193
  return _ts_generator(this, function(_state) {
194
194
  switch(_state.label){
@@ -196,7 +196,7 @@ void describe("isDir()", function() {
196
196
  _ = assert.strictEqual;
197
197
  return [
198
198
  4,
199
- isDir(path.join(dir, "foo"))
199
+ isDir(path.join(dir, 'foo'))
200
200
  ];
201
201
  case 1:
202
202
  return [
@@ -24,15 +24,15 @@ function _unsupported_iterable_to_array(o, minLen) {
24
24
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
25
25
  }
26
26
  var _path;
27
- import chalk from "chalk";
28
- import { readFile, readdir, writeFile } from "node:fs/promises";
29
- import path from "node:path";
30
- import { unwrapNestedArray } from "../lwm2m/unwrapNestedArray.js";
31
- import xml2js from "xml2js";
32
- import { generateLwm2mTimestampResources } from "./generateLwm2mTimestampResources.js";
33
- import { printNode } from "./printNode.js";
34
- import os from "node:os";
35
- import { generateLwM2MDefinitions } from "./generateLwM2MDefinitions.js";
27
+ import chalk from 'chalk';
28
+ import { readFile, readdir, writeFile } from 'node:fs/promises';
29
+ import path from 'node:path';
30
+ import { unwrapNestedArray } from '../lwm2m/unwrapNestedArray.js';
31
+ import xml2js from 'xml2js';
32
+ import { generateLwm2mTimestampResources } from './generateLwm2mTimestampResources.js';
33
+ import { printNode } from './printNode.js';
34
+ import os from 'node:os';
35
+ import { generateLwM2MDefinitions } from './generateLwM2MDefinitions.js';
36
36
  var baseDir = process.cwd();
37
37
  var subDir = function() {
38
38
  for(var _len = arguments.length, tree = new Array(_len), _key = 0; _key < _len; _key++){
@@ -42,16 +42,16 @@ var subDir = function() {
42
42
  baseDir
43
43
  ].concat(_to_consumable_array(tree)));
44
44
  };
45
- console.log(chalk.gray("LwM2M"));
45
+ console.log(chalk.gray('LwM2M'));
46
46
  // Load definitions
47
47
  var definitions = [];
48
48
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
49
49
  try {
50
- for(var _iterator = (await readdir(subDir("lwm2m"))).filter(function(s) {
51
- return s.endsWith(".xml");
50
+ for(var _iterator = (await readdir(subDir('lwm2m'))).filter(function(s) {
51
+ return s.endsWith('.xml');
52
52
  })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
53
53
  var objectDefinitionFile = _step.value;
54
- var definition = unwrapNestedArray(await xml2js.parseStringPromise(await readFile(subDir("lwm2m", objectDefinitionFile), "utf-8"))).LWM2M.Object;
54
+ var definition = unwrapNestedArray(await xml2js.parseStringPromise(await readFile(subDir('lwm2m', objectDefinitionFile), 'utf-8'))).LWM2M.Object;
55
55
  definitions.push(definition);
56
56
  }
57
57
  } catch (err) {
@@ -68,7 +68,7 @@ try {
68
68
  }
69
69
  }
70
70
  }
71
- console.log(chalk.gray("", "\xb7"), chalk.gray("timestamp resources map"));
71
+ console.log(chalk.gray('', '·'), chalk.gray('timestamp resources map'));
72
72
  var timestampResources = {};
73
73
  var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
74
74
  try {
@@ -78,10 +78,10 @@ try {
78
78
  var ObjectID = parseInt(definition1.ObjectID, 10);
79
79
  var ResourceId = parseInt((_definition_Resources_Item_find = definition1.Resources.Item.find(function(param) {
80
80
  var Type = param.Type;
81
- return Type === "Time";
81
+ return Type === 'Time';
82
82
  })) === null || _definition_Resources_Item_find === void 0 ? void 0 : _definition_Resources_Item_find.$.ID, 10);
83
83
  timestampResources[ObjectID] = ResourceId;
84
- console.log(" ", chalk.gray("\xb7"), "".concat(chalk.white(ObjectID)).concat(chalk.gray(".")).concat(chalk.white(ResourceId)));
84
+ console.log(' ', chalk.gray('·'), "".concat(chalk.white(ObjectID)).concat(chalk.gray('.')).concat(chalk.white(ResourceId)));
85
85
  }
86
86
  } catch (err) {
87
87
  _didIteratorError1 = true;
@@ -97,10 +97,10 @@ try {
97
97
  }
98
98
  }
99
99
  }
100
- var timestampResourcesFile = subDir("lwm2m", "timestampResources.ts");
101
- console.log(chalk.green("Writing"), chalk.blue(timestampResourcesFile.replace(baseDir, "")));
102
- await writeFile(timestampResourcesFile, generateLwm2mTimestampResources(timestampResources).map(printNode).join(os.EOL), "utf-8");
103
- console.log(chalk.gray("", "\xb7"), chalk.gray("static object information"));
104
- var definitionsFile = subDir("lwm2m", "definitions.ts");
105
- console.log(chalk.green("Writing"), chalk.blue(definitionsFile.replace(baseDir, "")));
106
- await writeFile(definitionsFile, generateLwM2MDefinitions(definitions).map(printNode).join(os.EOL), "utf-8");
100
+ var timestampResourcesFile = subDir('lwm2m', 'timestampResources.ts');
101
+ console.log(chalk.green('Writing'), chalk.blue(timestampResourcesFile.replace(baseDir, '')));
102
+ await writeFile(timestampResourcesFile, generateLwm2mTimestampResources(timestampResources).map(printNode).join(os.EOL), 'utf-8');
103
+ console.log(chalk.gray('', '·'), chalk.gray('static object information'));
104
+ var definitionsFile = subDir('lwm2m', 'definitions.ts');
105
+ console.log(chalk.green('Writing'), chalk.blue(definitionsFile.replace(baseDir, '')));
106
+ await writeFile(definitionsFile, generateLwM2MDefinitions(definitions).map(printNode).join(os.EOL), 'utf-8');
@@ -150,16 +150,16 @@ function _ts_generator(thisArg, body) {
150
150
  }
151
151
  }
152
152
  var _path;
153
- import chalk from "chalk";
154
- import { readFile, readdir, stat, writeFile } from "node:fs/promises";
155
- import os from "node:os";
156
- import path from "node:path";
157
- import { getCodeBlock } from "../markdown/getCodeBlock.js";
158
- import { getFrontMatter } from "../markdown/getFrontMatter.js";
159
- import { generateModels } from "./generateModels.js";
160
- import { printNode } from "./printNode.js";
161
- import { FrontMatter } from "../models/types.js";
162
- import { isDir } from "./isDir.js";
153
+ import chalk from 'chalk';
154
+ import { readFile, readdir, stat, writeFile } from 'node:fs/promises';
155
+ import os from 'node:os';
156
+ import path from 'node:path';
157
+ import { getCodeBlock } from '../markdown/getCodeBlock.js';
158
+ import { getFrontMatter } from '../markdown/getFrontMatter.js';
159
+ import { generateModels } from './generateModels.js';
160
+ import { printNode } from './printNode.js';
161
+ import { FrontMatter } from '../models/types.js';
162
+ import { isDir } from './isDir.js';
163
163
  var baseDir = process.cwd();
164
164
  var subDir = function() {
165
165
  for(var _len = arguments.length, tree = new Array(_len), _key = 0; _key < _len; _key++){
@@ -169,14 +169,14 @@ var subDir = function() {
169
169
  baseDir
170
170
  ].concat(_to_consumable_array(tree)));
171
171
  };
172
- console.log(chalk.gray("Models"));
172
+ console.log(chalk.gray('Models'));
173
173
  var loadModelTransforms = function() {
174
174
  var _ref = _async_to_generator(function(model) {
175
175
  var transformersDir, _;
176
176
  return _ts_generator(this, function(_state) {
177
177
  switch(_state.label){
178
178
  case 0:
179
- transformersDir = subDir("models", model, "transforms");
179
+ transformersDir = subDir('models', model, 'transforms');
180
180
  return [
181
181
  4,
182
182
  isDir(transformersDir)
@@ -198,7 +198,7 @@ var loadModelTransforms = function() {
198
198
  _state.sent()
199
199
  ]).then(function(entries) {
200
200
  return entries.filter(function(e) {
201
- return e.endsWith(".md");
201
+ return e.endsWith('.md');
202
202
  });
203
203
  }).then(function() {
204
204
  var _ref = _async_to_generator(function(expressions) {
@@ -210,7 +210,7 @@ var loadModelTransforms = function() {
210
210
  return _ts_generator(this, function(_state) {
211
211
  return [
212
212
  2,
213
- readFile(subDir("models", model, "transforms", expression), "utf-8")
213
+ readFile(subDir('models', model, 'transforms', expression), 'utf-8')
214
214
  ];
215
215
  });
216
216
  });
@@ -229,8 +229,8 @@ var loadModelTransforms = function() {
229
229
  var findBlock = getCodeBlock(markdown);
230
230
  return {
231
231
  type: getFrontMatter(markdown, FrontMatter).type,
232
- match: findBlock("jsonata", "Match Expression"),
233
- transform: findBlock("jsonata", "Transform Expression")
232
+ match: findBlock('jsonata', 'Match Expression'),
233
+ transform: findBlock('jsonata', 'Transform Expression')
234
234
  };
235
235
  });
236
236
  })
@@ -242,7 +242,7 @@ var loadModelTransforms = function() {
242
242
  return _ref.apply(this, arguments);
243
243
  };
244
244
  }();
245
- var models = await Promise.all((await Promise.all((await readdir(subDir("models"))).map(function() {
245
+ var models = await Promise.all((await Promise.all((await readdir(subDir('models'))).map(function() {
246
246
  var _ref = _async_to_generator(function(f) {
247
247
  var _tmp;
248
248
  return _ts_generator(this, function(_state) {
@@ -253,7 +253,7 @@ var models = await Promise.all((await Promise.all((await readdir(subDir("models"
253
253
  };
254
254
  return [
255
255
  4,
256
- stat(subDir("models", f))
256
+ stat(subDir('models', f))
257
257
  ];
258
258
  case 1:
259
259
  return [
@@ -275,7 +275,7 @@ var models = await Promise.all((await Promise.all((await readdir(subDir("models"
275
275
  return _ts_generator(this, function(_state) {
276
276
  switch(_state.label){
277
277
  case 0:
278
- console.log(chalk.gray("\xb7"), chalk.white(model.name));
278
+ console.log(chalk.gray('·'), chalk.white(model.name));
279
279
  _tmp = {
280
280
  id: model.name
281
281
  };
@@ -287,7 +287,7 @@ var models = await Promise.all((await Promise.all((await readdir(subDir("models"
287
287
  _tmp.transforms = _state.sent();
288
288
  return [
289
289
  4,
290
- readFile(path.join(subDir("models"), model.name, "README.md"), "utf-8")
290
+ readFile(path.join(subDir('models'), model.name, 'README.md'), 'utf-8')
291
291
  ];
292
292
  case 2:
293
293
  return [
@@ -301,6 +301,6 @@ var models = await Promise.all((await Promise.all((await readdir(subDir("models"
301
301
  return _ref.apply(this, arguments);
302
302
  };
303
303
  }()));
304
- var modelsFile = subDir("models", "models.ts");
305
- console.log(chalk.green("Writing"), chalk.blue(modelsFile.replace(baseDir, "")));
306
- await writeFile(modelsFile, generateModels(models).map(printNode).join(os.EOL), "utf-8");
304
+ var modelsFile = subDir('models', 'models.ts');
305
+ console.log(chalk.green('Writing'), chalk.blue(modelsFile.replace(baseDir, '')));
306
+ await writeFile(modelsFile, generateModels(models).map(printNode).join(os.EOL), 'utf-8');
@@ -1,5 +1,5 @@
1
- import ts from "typescript";
2
- var resultFile = ts.createSourceFile("stub.ts", "", ts.ScriptTarget.Latest, /*setParentNodes*/ false, ts.ScriptKind.TS);
1
+ import ts from 'typescript';
2
+ var resultFile = ts.createSourceFile("stub.ts", '', ts.ScriptTarget.Latest, /*setParentNodes*/ false, ts.ScriptKind.TS);
3
3
  var printer = ts.createPrinter({
4
4
  newLine: ts.NewLineKind.LineFeed
5
5
  });
@@ -1,5 +1,5 @@
1
1
  export var tokenizeName = function(name) {
2
- return name.split(" ").map(function(s) {
2
+ return name.split(' ').map(function(s) {
3
3
  return "".concat(s.slice(0, 1).toUpperCase()).concat(s.slice(1));
4
- }).join(" ").replaceAll(" ", "").replaceAll("&", "and").replace(/^(\d)(.+)/, "n$1$2").replaceAll(/[^a-z0-9]/gi, "_").replaceAll(/_{2,}/g, "_").replaceAll(/_+$/g, "").trim();
4
+ }).join(' ').replaceAll(' ', '').replaceAll('&', 'and').replace(/^(\d)(.+)/, 'n$1$2').replaceAll(/[^a-z0-9]/gi, '_').replaceAll(/_{2,}/g, '_').replaceAll(/_+$/g, '').trim();
5
5
  };
@@ -44,10 +44,10 @@ function _unsupported_iterable_to_array(o, minLen) {
44
44
  if (n === "Map" || n === "Set") return Array.from(n);
45
45
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
46
46
  }
47
- import { tokenizeName } from "./tokenizeName.js";
48
- import { describe, it } from "node:test";
49
- import assert from "node:assert/strict";
50
- void describe("tokenizeName", function() {
47
+ import { tokenizeName } from './tokenizeName.js';
48
+ import { describe, it } from 'node:test';
49
+ import assert from 'node:assert/strict';
50
+ void describe('tokenizeName', function() {
51
51
  var _loop = function(_i, _iter) {
52
52
  var _iter__i = _sliced_to_array(_iter[_i], 2), name = _iter__i[0], expected = _iter__i[1];
53
53
  void it("should replaced ".concat(name, " to ").concat(expected), function() {
@@ -57,42 +57,42 @@ void describe("tokenizeName", function() {
57
57
  for(var _i = 0, _iter = [
58
58
  // Uppercase words
59
59
  [
60
- "Battery and Power",
61
- "BatteryAndPower"
60
+ 'Battery and Power',
61
+ 'BatteryAndPower'
62
62
  ],
63
63
  [
64
- "LwM2M Server",
65
- "LwM2MServer"
64
+ 'LwM2M Server',
65
+ 'LwM2MServer'
66
66
  ],
67
67
  // Dash -> underline
68
68
  [
69
- "LTE-MTC Band Config",
70
- "LTE_MTCBandConfig"
69
+ 'LTE-MTC Band Config',
70
+ 'LTE_MTCBandConfig'
71
71
  ],
72
72
  // Number at the Beginning, prefix with n
73
73
  [
74
- "5GNR Connectivity",
75
- "n5GNRConnectivity"
74
+ '5GNR Connectivity',
75
+ 'n5GNRConnectivity'
76
76
  ],
77
77
  // Slash -> underline
78
78
  [
79
- "On/Off Switch",
80
- "On_OffSwitch"
79
+ 'On/Off Switch',
80
+ 'On_OffSwitch'
81
81
  ],
82
82
  // Dot -> underline
83
83
  [
84
- "LwM2M v1.1 Test Object",
85
- "LwM2MV1_1TestObject"
84
+ 'LwM2M v1.1 Test Object',
85
+ 'LwM2MV1_1TestObject'
86
86
  ],
87
87
  // & -> and
88
88
  [
89
- "AT&T Connectivity Extension",
90
- "ATandTConnectivityExtension"
89
+ 'AT&T Connectivity Extension',
90
+ 'ATandTConnectivityExtension'
91
91
  ],
92
92
  // Remove whitespace
93
93
  [
94
- " Server ",
95
- "Server"
94
+ ' Server ',
95
+ 'Server'
96
96
  ]
97
97
  ]; _i < _iter.length; _i++)_loop(_i, _iter);
98
98
  });
@@ -24,19 +24,19 @@ function _unsupported_iterable_to_array(o, minLen) {
24
24
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
25
25
  }
26
26
  var _path;
27
- import chalk from "chalk";
28
- import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
29
- import path from "node:path";
30
- import { unwrapNestedArray } from "../lwm2m/unwrapNestedArray.js";
31
- import xml2js from "xml2js";
32
- import ts from "typescript";
33
- import { printNode } from "./printNode.js";
34
- import os from "node:os";
35
- import { generateType } from "./generateType.js";
36
- import { addDocBlock } from "./addDocBlock.js";
37
- import { generateName } from "./generateType.js";
38
- import { generateValidator } from "./generateValidator.js";
39
- import { generateValidators } from "./generateValidators.js";
27
+ import chalk from 'chalk';
28
+ import { mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
29
+ import path from 'node:path';
30
+ import { unwrapNestedArray } from '../lwm2m/unwrapNestedArray.js';
31
+ import xml2js from 'xml2js';
32
+ import ts from 'typescript';
33
+ import { printNode } from './printNode.js';
34
+ import os from 'node:os';
35
+ import { generateType } from './generateType.js';
36
+ import { addDocBlock } from './addDocBlock.js';
37
+ import { generateName } from './generateType.js';
38
+ import { generateValidator } from './generateValidator.js';
39
+ import { generateValidators } from './generateValidators.js';
40
40
  var baseDir = process.cwd();
41
41
  var subDir = function() {
42
42
  for(var _len = arguments.length, tree = new Array(_len), _key = 0; _key < _len; _key++){
@@ -48,14 +48,14 @@ var subDir = function() {
48
48
  };
49
49
  var idMembers = [];
50
50
  var objects = [];
51
- console.log(chalk.gray("Creating TypeBox definition for LwM2M objects"));
51
+ console.log(chalk.gray('Creating TypeBox definition for LwM2M objects'));
52
52
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
53
53
  try {
54
- for(var _iterator = (await readdir(subDir("lwm2m"))).filter(function(s) {
55
- return s.endsWith(".xml");
54
+ for(var _iterator = (await readdir(subDir('lwm2m'))).filter(function(s) {
55
+ return s.endsWith('.xml');
56
56
  })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
57
57
  var objectDefinitionFile = _step.value;
58
- var definition = unwrapNestedArray(await xml2js.parseStringPromise(await readFile(subDir("lwm2m", objectDefinitionFile), "utf-8"))).LWM2M.Object;
58
+ var definition = unwrapNestedArray(await xml2js.parseStringPromise(await readFile(subDir('lwm2m', objectDefinitionFile), 'utf-8'))).LWM2M.Object;
59
59
  var ObjectID = parseInt(definition.ObjectID, 10);
60
60
  var member = ts.factory.createEnumMember(generateName(definition), ts.factory.createNumericLiteral(ObjectID));
61
61
  addDocBlock([
@@ -65,18 +65,18 @@ try {
65
65
  ], member);
66
66
  idMembers.push(member);
67
67
  try {
68
- await mkdir(subDir("lwm2m", "object"));
68
+ await mkdir(subDir('lwm2m', "object"));
69
69
  } catch (e) {
70
70
  // pass
71
71
  }
72
72
  // Type
73
- var typeFile = subDir("lwm2m", "object", "".concat(ObjectID, ".d.ts"));
74
- console.log(chalk.green("Writing"), chalk.blue(typeFile.replace(baseDir, "")));
75
- await writeFile(typeFile, generateType(definition).map(printNode).join(os.EOL), "utf-8");
73
+ var typeFile = subDir('lwm2m', "object", "".concat(ObjectID, ".d.ts"));
74
+ console.log(chalk.green('Writing'), chalk.blue(typeFile.replace(baseDir, '')));
75
+ await writeFile(typeFile, generateType(definition).map(printNode).join(os.EOL), 'utf-8');
76
76
  // Validator
77
- var validatorFile = subDir("lwm2m", "object", "validate".concat(ObjectID, ".ts"));
78
- console.log(chalk.green("Writing"), chalk.blue(validatorFile.replace(baseDir, "")));
79
- await writeFile(validatorFile, generateValidator(definition).map(printNode).join(os.EOL), "utf-8");
77
+ var validatorFile = subDir('lwm2m', "object", "validate".concat(ObjectID, ".ts"));
78
+ console.log(chalk.green('Writing'), chalk.blue(validatorFile.replace(baseDir, '')));
79
+ await writeFile(validatorFile, generateValidator(definition).map(printNode).join(os.EOL), 'utf-8');
80
80
  objects.push(definition);
81
81
  }
82
82
  } catch (err) {
@@ -93,36 +93,36 @@ try {
93
93
  }
94
94
  }
95
95
  }
96
- var validatorsFile = subDir("lwm2m", "validators.ts");
97
- console.log(chalk.green("Writing"), chalk.blue(validatorsFile.replace(baseDir, "")));
98
- await writeFile(validatorsFile, generateValidators(objects).map(printNode).join(os.EOL), "utf-8");
99
- var idFile = subDir("lwm2m", "LwM2MObjectID.ts");
100
- console.log(chalk.green("Writing"), chalk.blue(idFile.replace(baseDir, "")));
96
+ var validatorsFile = subDir('lwm2m', "validators.ts");
97
+ console.log(chalk.green('Writing'), chalk.blue(validatorsFile.replace(baseDir, '')));
98
+ await writeFile(validatorsFile, generateValidators(objects).map(printNode).join(os.EOL), 'utf-8');
99
+ var idFile = subDir('lwm2m', "LwM2MObjectID.ts");
100
+ console.log(chalk.green('Writing'), chalk.blue(idFile.replace(baseDir, '')));
101
101
  var enumNode = ts.factory.createEnumDeclaration([
102
102
  ts.factory.createToken(ts.SyntaxKind.ExportKeyword)
103
- ], ts.factory.createIdentifier("LwM2MObjectID"), idMembers);
103
+ ], ts.factory.createIdentifier('LwM2MObjectID'), idMembers);
104
104
  addDocBlock([
105
- "The LwM2M Object IDs defined in this repo."
105
+ 'The LwM2M Object IDs defined in this repo.'
106
106
  ], enumNode);
107
107
  var objectIdArray = ts.factory.createVariableStatement([
108
108
  ts.factory.createToken(ts.SyntaxKind.ExportKeyword)
109
109
  ], ts.factory.createVariableDeclarationList([
110
110
  ts.factory.createVariableDeclaration(ts.factory.createIdentifier("LwM2MObjectIDs"), undefined, undefined, ts.factory.createArrayLiteralExpression(objects.map(function(definition) {
111
111
  // const id = ts.factory.createNumericLiteral(ObjectID)
112
- var id = ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier("LwM2MObjectID"), ts.factory.createIdentifier(generateName(definition)));
112
+ var id = ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier('LwM2MObjectID'), ts.factory.createIdentifier(generateName(definition)));
113
113
  ts.addSyntheticLeadingComment(id, ts.SyntaxKind.SingleLineCommentTrivia, " ".concat(definition.Name, " (").concat(definition.ObjectID, ")"), true);
114
114
  return id;
115
115
  })))
116
116
  ], ts.NodeFlags.Const));
117
117
  addDocBlock([
118
- "The LwM2M Object IDs defined in this repo."
118
+ 'The LwM2M Object IDs defined in this repo.'
119
119
  ], objectIdArray);
120
120
  await writeFile(idFile, [
121
121
  enumNode,
122
122
  objectIdArray
123
- ].map(printNode).join(os.EOL), "utf-8");
124
- var objectsFile = subDir("lwm2m", "objects.ts");
125
- console.log(chalk.green("Writing"), chalk.blue(objectsFile.replace(baseDir, "")));
123
+ ].map(printNode).join(os.EOL), 'utf-8');
124
+ var objectsFile = subDir('lwm2m', "objects.ts");
125
+ console.log(chalk.green('Writing'), chalk.blue(objectsFile.replace(baseDir, '')));
126
126
  await writeFile(objectsFile, objects.map(function(param) {
127
127
  var ObjectID = param.ObjectID, Name = param.Name;
128
128
  var name = generateName({
@@ -137,4 +137,4 @@ await writeFile(objectsFile, objects.map(function(param) {
137
137
  ts.factory.createExportSpecifier(false, undefined, ts.factory.createIdentifier("validate".concat(ObjectID)))
138
138
  ]), ts.factory.createStringLiteral("./object/validate".concat(ObjectID, ".js")))
139
139
  ];
140
- }).flat().map(printNode).join(os.EOL), "utf-8");
140
+ }).flat().map(printNode).join(os.EOL), 'utf-8');
@@ -1,45 +1,45 @@
1
- import { Type } from "@sinclair/typebox";
1
+ import { Type } from '@sinclair/typebox';
2
2
  var ResourceType = Type.Union([
3
- Type.Literal("String"),
4
- Type.Literal("Integer"),
5
- Type.Literal("Float"),
6
- Type.Literal("Boolean"),
7
- Type.Literal("Opaque"),
8
- Type.Literal("Time")
3
+ Type.Literal('String'),
4
+ Type.Literal('Integer'),
5
+ Type.Literal('Float'),
6
+ Type.Literal('Boolean'),
7
+ Type.Literal('Opaque'),
8
+ Type.Literal('Time')
9
9
  ]);
10
10
  export var RangeEnumerationRegExp = RegExp("^(?<min>-?[0-9]+(?:\\.[0-9]+)?)\\.\\.(?<max>-?[0-9]+(?:\\.[0-9]+)?)$");
11
11
  var RangeEnumeration = Type.RegExp(RangeEnumerationRegExp, {
12
- title: "RangeEnumeration"
12
+ title: 'RangeEnumeration'
13
13
  });
14
14
  export var LWM2MObjectDefinition = Type.Object({
15
15
  Name: Type.String({
16
16
  minLength: 1,
17
17
  examples: [
18
- "Location"
18
+ 'Location'
19
19
  ]
20
20
  }),
21
21
  Description1: Type.String({
22
22
  minLength: 1,
23
23
  examples: [
24
- "This LwM2M Object provides a range of location telemetry related information which can be queried by the LwM2M Server."
24
+ 'This LwM2M Object provides a range of location telemetry related information which can be queried by the LwM2M Server.'
25
25
  ]
26
26
  }),
27
27
  ObjectID: Type.RegExp(/^14[0-9]{3}$/),
28
28
  ObjectURN: Type.RegExp(/^urn:oma:lwm2m:x:14[0-9]{3}$/),
29
- LWM2MVersion: Type.Literal("1.1", {
30
- title: "LwM2M version",
31
- description: "Defaults to 1.1"
29
+ LWM2MVersion: Type.Literal('1.1', {
30
+ title: 'LwM2M version',
31
+ description: 'Defaults to 1.1'
32
32
  }),
33
33
  ObjectVersion: Type.Optional(Type.String({
34
34
  minLength: 1,
35
35
  examples: [
36
- "1.1"
36
+ '1.1'
37
37
  ],
38
- title: "ObjectVersion",
39
- description: "Defaults to 1.0"
38
+ title: 'ObjectVersion',
39
+ description: 'Defaults to 1.0'
40
40
  })),
41
- MultipleInstances: Type.Literal("Multiple"),
42
- Mandatory: Type.Literal("Optional"),
41
+ MultipleInstances: Type.Literal('Multiple'),
42
+ Mandatory: Type.Literal('Optional'),
43
43
  Resources: Type.Record(Type.Integer({
44
44
  minimum: 0,
45
45
  maximum: 65534
@@ -47,42 +47,42 @@ export var LWM2MObjectDefinition = Type.Object({
47
47
  Name: Type.String({
48
48
  minLength: 1,
49
49
  examples: [
50
- "Latitude"
50
+ 'Latitude'
51
51
  ]
52
52
  }),
53
- Operations: Type.Literal("R", {
54
- description: "Only read-properties are supported"
53
+ Operations: Type.Literal('R', {
54
+ description: 'Only read-properties are supported'
55
55
  }),
56
- MultipleInstances: Type.Literal("Single"),
56
+ MultipleInstances: Type.Literal('Single'),
57
57
  Mandatory: Type.Union([
58
- Type.Literal("Optional"),
59
- Type.Literal("Mandatory")
58
+ Type.Literal('Optional'),
59
+ Type.Literal('Mandatory')
60
60
  ]),
61
61
  Type: ResourceType,
62
62
  RangeEnumeration: Type.Union([
63
63
  Type.String({
64
64
  maxLength: 0,
65
- title: "an empty string"
65
+ title: 'an empty string'
66
66
  }),
67
67
  RangeEnumeration
68
68
  ]),
69
69
  Units: Type.String({
70
70
  examples: [
71
- "lat"
71
+ 'lat'
72
72
  ],
73
- title: "Units"
73
+ title: 'Units'
74
74
  }),
75
75
  Description: Type.String({
76
76
  minLength: 1,
77
77
  examples: [
78
- "The decimal notation of latitude, e.g. -43.5723 [World Geodetic System 1984]."
78
+ 'The decimal notation of latitude, e.g. -43.5723 [World Geodetic System 1984].'
79
79
  ]
80
80
  })
81
81
  }), {
82
82
  minProperties: 1,
83
- description: "Defines the object resources as a map"
83
+ description: 'Defines the object resources as a map'
84
84
  }),
85
85
  Description2: Type.String()
86
86
  }, {
87
- description: "LwM2M Object definitions with additional limitations applied to suit the hello.nrfcloud.com/map use-case"
87
+ description: 'LwM2M Object definitions with additional limitations applied to suit the hello.nrfcloud.com/map use-case'
88
88
  });