@hello.nrfcloud.com/proto-map 16.5.44 → 16.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/api/Email.spec.ts +1 -1
  2. package/dist/api/IsoDateType.js +1 -1
  3. package/dist/generator/addDocBlock.js +1 -1
  4. package/dist/generator/generateLwM2MDefinitions.js +3 -3
  5. package/dist/generator/generateLwm2mTimestampResources.js +1 -1
  6. package/dist/generator/generateModels.js +1 -1
  7. package/dist/generator/generateType.js +4 -4
  8. package/dist/generator/generateValidator.js +4 -4
  9. package/dist/generator/generateValidators.js +1 -1
  10. package/dist/generator/lwm2m.js +1 -1
  11. package/dist/generator/models.js +12 -4
  12. package/dist/generator/printNode.js +1 -1
  13. package/dist/generator/tokenizeName.js +1 -1
  14. package/dist/generator/types.js +2 -2
  15. package/dist/lwm2m/aws/instanceMeasuresToRecord.js +1 -1
  16. package/dist/lwm2m/aws/instanceToMeasures.js +1 -1
  17. package/dist/lwm2m/aws/objectsToShadow.js +2 -3
  18. package/dist/lwm2m/aws/shadowToObjects.js +1 -1
  19. package/dist/lwm2m/check-lwm2m-rules.js +33 -17
  20. package/dist/lwm2m/correctOffset.js +1 -1
  21. package/dist/lwm2m/fromXML2JSON.js +13 -5
  22. package/dist/lwm2m/instanceTs.js +2 -2
  23. package/dist/lwm2m/isLwM2MObjectID.js +1 -1
  24. package/dist/lwm2m/isNumber.js +1 -1
  25. package/dist/lwm2m/isNumeric.js +1 -1
  26. package/dist/lwm2m/isUnixTimeInSeconds.js +1 -1
  27. package/dist/lwm2m/object/validate14201.js +1 -1
  28. package/dist/lwm2m/object/validate14202.js +1 -1
  29. package/dist/lwm2m/object/validate14203.js +1 -1
  30. package/dist/lwm2m/object/validate14204.js +1 -1
  31. package/dist/lwm2m/object/validate14205.js +1 -1
  32. package/dist/lwm2m/object/validate14210.js +1 -1
  33. package/dist/lwm2m/object/validate14220.js +1 -1
  34. package/dist/lwm2m/object/validate14230.js +1 -1
  35. package/dist/lwm2m/object/validate14240.js +1 -1
  36. package/dist/lwm2m/object/validate14250.js +1 -1
  37. package/dist/lwm2m/object/validate14301.js +1 -1
  38. package/dist/lwm2m/object/validate14401.js +1 -1
  39. package/dist/lwm2m/object/validate14501.js +1 -1
  40. package/dist/lwm2m/object/validate14502.js +1 -1
  41. package/dist/lwm2m/object/validate14503.js +1 -1
  42. package/dist/lwm2m/parseRangeEnumeration.js +2 -2
  43. package/dist/lwm2m/unwrapNestedArray.js +1 -1
  44. package/dist/lwm2m/validate.js +1 -1
  45. package/dist/lwm2m/validation.js +15 -15
  46. package/dist/markdown/getCodeBlock.js +5 -5
  47. package/dist/markdown/parseREADME.js +3 -3
  48. package/dist/models/check-model-rules.js +1 -1
  49. package/dist/senml/fromCBOR.js +1 -1
  50. package/dist/senml/hasName.js +1 -1
  51. package/dist/senml/hasValue.js +3 -3
  52. package/dist/senml/index.js +1 -0
  53. package/dist/senml/lwm2mToSenML.js +2 -2
  54. package/dist/senml/parseResourceId.js +1 -1
  55. package/dist/senml/senMLtoLwM2M.js +23 -14
  56. package/dist/senml/senMLtoLwM2M.spec.js +11 -3
  57. package/dist/senml/toCBOR.js +174 -0
  58. package/dist/senml/toCBOR.spec.js +75 -0
  59. package/dist/senml/validateSenML.js +1 -1
  60. package/package.json +9 -9
  61. package/senml/index.ts +1 -0
  62. package/senml/toCBOR.spec.ts +38 -0
  63. package/senml/toCBOR.ts +39 -0
@@ -1,10 +1,10 @@
1
1
  import { RangeEnumerationRegExp } from './LWM2MObjectDefinition.js';
2
- export var parseRangeEnumeration = function(re) {
2
+ export var parseRangeEnumeration = function parseRangeEnumeration(re) {
3
+ var _match_groups;
3
4
  var match = RangeEnumerationRegExp.exec(re);
4
5
  if (match === null) return {
5
6
  error: new Error("Could not match '".concat(re, "' against ").concat(RangeEnumerationRegExp, "!"))
6
7
  };
7
- var _match_groups;
8
8
  var _ref = (_match_groups = match.groups) !== null && _match_groups !== void 0 ? _match_groups : {}, minS = _ref.min, maxS = _ref.max;
9
9
  var min = parseFloat(minS);
10
10
  var max = parseFloat(maxS);
@@ -98,7 +98,7 @@ function _unsupported_iterable_to_array(o, minLen) {
98
98
  }
99
99
  /**
100
100
  * A recursive function that walks through the given object and for each property checks if its value is an array and only has one element. If that is the case it takes the first element and uses it instead.
101
- */ export var unwrapNestedArray = function(object) {
101
+ */ export var unwrapNestedArray = function unwrapNestedArray1(object) {
102
102
  if (typeof object === 'string') return object;
103
103
  return Object.entries(object).reduce(function(result, param) {
104
104
  var _param = _sliced_to_array(param, 2), k = _param[0], v = _param[1];
@@ -1,5 +1,5 @@
1
1
  import { isLwM2MObject } from './validation.js';
2
- export var validate = function(validators) {
2
+ export var validate = function validate(validators) {
3
3
  return function(o) {
4
4
  var maybeValidInstance = isLwM2MObject(o);
5
5
  if ('error' in maybeValidInstance) return maybeValidInstance;
@@ -49,9 +49,10 @@ function _unsupported_iterable_to_array(o, minLen) {
49
49
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
50
50
  }
51
51
  import { LwM2MObjectIDs } from './LwM2MObjectID.js';
52
- export var isLwM2MObject = function(object) {
52
+ export var isLwM2MObject = function isLwM2MObject(object) {
53
+ var _ref;
53
54
  var _Object_keys_find;
54
- var error = function(message) {
55
+ var error = function error(message) {
55
56
  return {
56
57
  error: new Error(message)
57
58
  };
@@ -70,11 +71,10 @@ export var isLwM2MObject = function(object) {
70
71
  }
71
72
  // Must have valid resources
72
73
  if (!('Resources' in object) || _type_of(object.Resources) !== 'object' || object.Resources === null) return error("Resources must be an object");
73
- var _Object_keys_find_length;
74
74
  // All keys must be numbers
75
- if (((_Object_keys_find_length = (_Object_keys_find = Object.keys(object.Resources).find(function(k) {
75
+ if (((_ref = (_Object_keys_find = Object.keys(object.Resources).find(function(k) {
76
76
  return /[^\d]/.test(k);
77
- })) === null || _Object_keys_find === void 0 ? void 0 : _Object_keys_find.length) !== null && _Object_keys_find_length !== void 0 ? _Object_keys_find_length : 0) > 0) return error("All resource IDs must be a number");
77
+ })) === null || _Object_keys_find === void 0 ? void 0 : _Object_keys_find.length) !== null && _ref !== void 0 ? _ref : 0) > 0) return error("All resource IDs must be a number");
78
78
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
79
79
  try {
80
80
  // All values must be number, string, boolean
@@ -104,16 +104,17 @@ export var isLwM2MObject = function(object) {
104
104
  object: object
105
105
  };
106
106
  };
107
- var isSimpleResource = function(v) {
107
+ var isSimpleResource = function isSimpleResource(v) {
108
108
  if (v === undefined) return true;
109
109
  if (typeof v === 'string') return true;
110
110
  if (typeof v === 'boolean') return true;
111
111
  if (typeof v === 'number') return true;
112
112
  return false;
113
113
  };
114
- export var validateInstance = function(ObjectID, ObjectVersion, Resources) {
114
+ export var validateInstance = function validateInstance(ObjectID, ObjectVersion, Resources) {
115
115
  return function(o) {
116
- var error = function(message) {
116
+ var _i_ObjectVersion;
117
+ var error = function error(message) {
117
118
  return {
118
119
  error: new Error(message)
119
120
  };
@@ -124,7 +125,6 @@ export var validateInstance = function(ObjectID, ObjectVersion, Resources) {
124
125
  if (i.ObjectID !== ObjectID) {
125
126
  return error("Given Object ID ".concat(i.ObjectID, " does not match expected ").concat(ObjectID));
126
127
  }
127
- var _i_ObjectVersion;
128
128
  if (((_i_ObjectVersion = i.ObjectVersion) !== null && _i_ObjectVersion !== void 0 ? _i_ObjectVersion : '1.0') !== ObjectVersion) {
129
129
  return error("Given Object version ".concat(i.ObjectVersion, " does not match expected ").concat(ObjectVersion));
130
130
  }
@@ -155,24 +155,24 @@ export var validateInstance = function(ObjectID, ObjectVersion, Resources) {
155
155
  };
156
156
  };
157
157
  };
158
- export var NumberResource = function(r) {
158
+ export var NumberResource = function NumberResource(r) {
159
159
  return typeof r === 'number';
160
160
  };
161
- export var TimeResource = function(r) {
161
+ export var TimeResource = function TimeResource(r) {
162
162
  return NumberResource(r) && r > 1700000000 && r < 9999999999;
163
163
  };
164
- export var StringResource = function(r) {
164
+ export var StringResource = function StringResource(r) {
165
165
  return typeof r === 'string';
166
166
  };
167
- export var BooleanResource = function(r) {
167
+ export var BooleanResource = function BooleanResource(r) {
168
168
  return typeof r === 'boolean';
169
169
  };
170
- export var OptionalResource = function(validator) {
170
+ export var OptionalResource = function OptionalResource(validator) {
171
171
  return function(r) {
172
172
  return r === undefined ? true : validator(r);
173
173
  };
174
174
  };
175
- export var MultipleInstanceResource = function(validator) {
175
+ export var MultipleInstanceResource = function MultipleInstanceResource(validator) {
176
176
  return function(r) {
177
177
  return Array.isArray(r) && r.every(validator);
178
178
  };
@@ -1,22 +1,22 @@
1
1
  import { remark } from 'remark';
2
2
  export var parseMarkdown2 = remark();
3
- var isHeading = function(child) {
3
+ var isHeading = function isHeading(child) {
4
4
  return child.type === 'heading';
5
5
  };
6
- var isParagraph = function(child) {
6
+ var isParagraph = function isParagraph(child) {
7
7
  return child.type === 'paragraph';
8
8
  };
9
- var headingWithLevel = function(children, level) {
9
+ var headingWithLevel = function headingWithLevel(children, level) {
10
10
  return children.filter(isHeading).find(function(param) {
11
11
  var depth = param.depth;
12
12
  return depth === level;
13
13
  });
14
14
  };
15
- export var getHeading = function(markdown, level) {
15
+ export var getHeading = function getHeading(markdown, level) {
16
16
  return headingWithLevel(remark().parse(markdown).children, level);
17
17
  };
18
18
  // Find all the paragraphs immediately after the first headline with the given level
19
- export var getParagraphsAfterHeading = function(markdown, level) {
19
+ export var getParagraphsAfterHeading = function getParagraphsAfterHeading(markdown, level) {
20
20
  var headingFound = false;
21
21
  var paragraphs = [];
22
22
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
@@ -1,5 +1,5 @@
1
1
  import { getHeading, getParagraphsAfterHeading } from './getCodeBlock.js';
2
- export var parseREADME = function(markdown) {
2
+ export var parseREADME = function parseREADME(markdown) {
3
3
  var h1 = getHeading(markdown, 1);
4
4
  if (h1 === undefined) throw new Error("No H1 defined!");
5
5
  var descriptionParagraphs = getParagraphsAfterHeading(markdown, 1);
@@ -9,11 +9,11 @@ export var parseREADME = function(markdown) {
9
9
  description: descriptionParagraphs.map(nodeToString).map(toOneLine)
10
10
  };
11
11
  };
12
- var nodeToString = function(node) {
12
+ var nodeToString = function nodeToString1(node) {
13
13
  if ('value' in node) return node.value;
14
14
  if ('children' in node) return node.children.map(nodeToString).join('');
15
15
  return '';
16
16
  };
17
- var toOneLine = function(s) {
17
+ var toOneLine = function toOneLine(s) {
18
18
  return s.trim().replaceAll('\n', ' ');
19
19
  };
@@ -19,7 +19,7 @@ try {
19
19
  // A README.md should exist
20
20
  try {
21
21
  await stat(path.join(modelDir, 'README.md'));
22
- } catch (e) {
22
+ } catch (unused) {
23
23
  throw new Error("No README.md defined for model ".concat(model, "!"));
24
24
  }
25
25
  console.log(chalk.green('✔'), chalk.gray("README.md exists"));
@@ -166,7 +166,7 @@ var labelMap = new Map([
166
166
  * Convert SenML from CBOR notation to JSON notation.
167
167
  *
168
168
  * @see https://www.rfc-editor.org/rfc/rfc8428.html#section-6
169
- */ export var fromCBOR = function(records) {
169
+ */ export var fromCBOR = function fromCBOR(records) {
170
170
  return records.map(function(record) {
171
171
  return Object.entries(record).reduce(function(json, param) {
172
172
  var _param = _sliced_to_array(param, 2), k = _param[0], v = _param[1];
@@ -2,7 +2,7 @@ function _type_of(obj) {
2
2
  "@swc/helpers - typeof";
3
3
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
4
4
  }
5
- export var hasName = function(m) {
5
+ export var hasName = function hasName(m) {
6
6
  if (m === null) return false;
7
7
  if ((typeof m === "undefined" ? "undefined" : _type_of(m)) !== 'object') return false;
8
8
  return 'n' in m;
@@ -2,11 +2,11 @@ function _type_of(obj) {
2
2
  "@swc/helpers - typeof";
3
3
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
4
4
  }
5
- export var hasValue = function(m) {
5
+ export var hasValue = function hasValue(m) {
6
+ var _ref, _ref1, _ref2, _ref3;
6
7
  if (m === null) return false;
7
8
  if ((typeof m === "undefined" ? "undefined" : _type_of(m)) !== 'object') return false;
8
- var _ref, _ref1, _ref2, _ref3;
9
- var v = (_ref3 = (_ref2 = (_ref1 = (_ref = 'bv' in m ? m.bv : undefined) !== null && _ref !== void 0 ? _ref : 'v' in m ? m.v : undefined) !== null && _ref1 !== void 0 ? _ref1 : 'vs' in m ? m.vs : undefined) !== null && _ref2 !== void 0 ? _ref2 : 'vb' in m ? m.vb : undefined) !== null && _ref3 !== void 0 ? _ref3 : 'vd' in m ? m.vd : undefined;
9
+ var v = (_ref = (_ref1 = (_ref2 = (_ref3 = 'bv' in m ? m.bv : undefined) !== null && _ref3 !== void 0 ? _ref3 : 'v' in m ? m.v : undefined) !== null && _ref2 !== void 0 ? _ref2 : 'vs' in m ? m.vs : undefined) !== null && _ref1 !== void 0 ? _ref1 : 'vb' in m ? m.vb : undefined) !== null && _ref !== void 0 ? _ref : 'vd' in m ? m.vd : undefined;
10
10
  if (v === null || v === undefined) return false;
11
11
  return true;
12
12
  };
@@ -2,3 +2,4 @@ export * from './fromCBOR.js';
2
2
  export * from './lwm2mToSenML.js';
3
3
  export * from './SenMLSchema.js';
4
4
  export * from './senMLtoLwM2M.js';
5
+ export * from './toCBOR.js';
@@ -81,7 +81,7 @@ import { ResourceType } from '../lwm2m/LWM2MObjectInfo.js';
81
81
  import { timestampResources } from '../lwm2m/timestampResources.js';
82
82
  /**
83
83
  * Convert LwM2M Object Instances to senML
84
- */ export var lwm2mToSenML = function(lwm2m) {
84
+ */ export var lwm2mToSenML = function lwm2mToSenML(lwm2m) {
85
85
  var def = definitions[lwm2m.ObjectID];
86
86
  var i = instanceTs(lwm2m);
87
87
  var tsResourceId = timestampResources.get(lwm2m.ObjectID)// All registered objects must have a timestamp resource
@@ -144,7 +144,7 @@ import { timestampResources } from '../lwm2m/timestampResources.js';
144
144
  senML: senML
145
145
  };
146
146
  };
147
- var toKey = function(def, resourceId) {
147
+ var toKey = function toKey(def, resourceId) {
148
148
  var _def_Resources_resourceId;
149
149
  switch((_def_Resources_resourceId = def.Resources[resourceId]) === null || _def_Resources_resourceId === void 0 ? void 0 : _def_Resources_resourceId.Type){
150
150
  case ResourceType.String:
@@ -44,7 +44,7 @@ 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
- export var parseResourceId = function(resourceId) {
47
+ export var parseResourceId = function parseResourceId(resourceId) {
48
48
  if (!/^\d+\/\d+\/\d+\/\d+$/.test(resourceId)) return null;
49
49
  var _resourceId_split_map = _sliced_to_array(resourceId.split('/').map(function(s) {
50
50
  return parseInt(s, 10);
@@ -52,12 +52,22 @@ function _object_spread_props(target, source) {
52
52
  }
53
53
  function _object_without_properties(source, excluded) {
54
54
  if (source == null) return {};
55
- var target = _object_without_properties_loose(source, excluded);
56
- var key, i;
55
+ var target = {}, sourceKeys, key, i;
56
+ if (typeof Reflect !== "undefined" && Reflect.ownKeys) {
57
+ sourceKeys = Reflect.ownKeys(source);
58
+ for(i = 0; i < sourceKeys.length; i++){
59
+ key = sourceKeys[i];
60
+ if (excluded.indexOf(key) >= 0) continue;
61
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
62
+ target[key] = source[key];
63
+ }
64
+ return target;
65
+ }
66
+ target = _object_without_properties_loose(source, excluded);
57
67
  if (Object.getOwnPropertySymbols) {
58
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
59
- for(i = 0; i < sourceSymbolKeys.length; i++){
60
- key = sourceSymbolKeys[i];
68
+ sourceKeys = Object.getOwnPropertySymbols(source);
69
+ for(i = 0; i < sourceKeys.length; i++){
70
+ key = sourceKeys[i];
61
71
  if (excluded.indexOf(key) >= 0) continue;
62
72
  if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
63
73
  target[key] = source[key];
@@ -67,12 +77,11 @@ function _object_without_properties(source, excluded) {
67
77
  }
68
78
  function _object_without_properties_loose(source, excluded) {
69
79
  if (source == null) return {};
70
- var target = {};
71
- var sourceKeys = Object.keys(source);
72
- var key, i;
80
+ var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
73
81
  for(i = 0; i < sourceKeys.length; i++){
74
82
  key = sourceKeys[i];
75
83
  if (excluded.indexOf(key) >= 0) continue;
84
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
76
85
  target[key] = source[key];
77
86
  }
78
87
  return target;
@@ -81,16 +90,16 @@ import { timestampResources } from '../lwm2m/timestampResources.js';
81
90
  import { hasName } from './hasName.js';
82
91
  import { hasValue } from './hasValue.js';
83
92
  import { parseResourceId } from './parseResourceId.js';
84
- var isInfoForDifferentInstance = function(currentObject, resourceID, currentBaseTime, tsRes) {
93
+ var isInfoForDifferentInstance = function isInfoForDifferentInstance(currentObject, resourceID, currentBaseTime, tsRes) {
94
+ var _currentObject_ObjectInstanceID;
85
95
  var _currentObject_Resources;
86
96
  if (currentObject === undefined) return true;
87
97
  if (currentObject.ObjectID !== resourceID.ObjectID) return true;
88
- var _currentObject_ObjectInstanceID;
89
98
  if (((_currentObject_ObjectInstanceID = currentObject.ObjectInstanceID) !== null && _currentObject_ObjectInstanceID !== void 0 ? _currentObject_ObjectInstanceID : 0) !== resourceID.ObjectInstanceID) return true;
90
99
  if (currentBaseTime !== ((_currentObject_Resources = currentObject.Resources) === null || _currentObject_Resources === void 0 ? void 0 : _currentObject_Resources[tsRes])) return true;
91
100
  return false;
92
101
  };
93
- var getValue = function(measurement) {
102
+ var getValue = function getValue(measurement) {
94
103
  if ('bv' in measurement && !('v' in measurement)) return measurement.bv;
95
104
  if ('bv' in measurement && 'v' in measurement) return measurement.bv + measurement.v;
96
105
  if ('v' in measurement) return measurement.v;
@@ -99,7 +108,7 @@ var getValue = function(measurement) {
99
108
  if ('vd' in measurement) return measurement.vd;
100
109
  return undefined;
101
110
  };
102
- export var senMLtoLwM2M = function(senML) {
111
+ export var senMLtoLwM2M = function senMLtoLwM2M(senML) {
103
112
  var currentBaseName = '';
104
113
  var currentBaseTime = undefined;
105
114
  var currentObject = undefined;
@@ -115,11 +124,11 @@ export var senMLtoLwM2M = function(senML) {
115
124
  try {
116
125
  for(var _iterator = senML[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
117
126
  var item = _step.value;
127
+ var _item_n;
118
128
  if ('bn' in item && item.bn !== undefined) currentBaseName = item.bn;
119
129
  if ('bt' in item && item.bt !== undefined) currentBaseTime = item.bt;
120
130
  if (!hasValue(item)) continue;
121
131
  if (!hasName(item)) continue;
122
- var _item_n;
123
132
  var itemResourceId = "".concat(currentBaseName).concat((_item_n = item.n) !== null && _item_n !== void 0 ? _item_n : '', "/0");
124
133
  var resourceId = parseResourceId(itemResourceId);
125
134
  if (resourceId === null) {
@@ -174,7 +183,7 @@ export var senMLtoLwM2M = function(senML) {
174
183
  };
175
184
  /**
176
185
  * Handle objects which are only `bt` (base time) and `bn` (base name)
177
- */ var parseTimestampOnly = function(senML) {
186
+ */ var parseTimestampOnly = function parseTimestampOnly(senML) {
178
187
  if (senML.length !== 1) return null;
179
188
  var item = senML[0];
180
189
  if (!('bn' in item) || !('bt' in item)) return null;
@@ -36,9 +36,17 @@ function _ts_generator(thisArg, body) {
36
36
  },
37
37
  trys: [],
38
38
  ops: []
39
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
40
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
41
- return this;
39
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
40
+ return d(g, "next", {
41
+ value: verb(0)
42
+ }), d(g, "throw", {
43
+ value: verb(1)
44
+ }), d(g, "return", {
45
+ value: verb(2)
46
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
47
+ value: function() {
48
+ return this;
49
+ }
42
50
  }), g;
43
51
  function verb(n) {
44
52
  return function(v) {
@@ -0,0 +1,174 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _define_property(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
22
+ function _iterable_to_array_limit(arr, i) {
23
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24
+ if (_i == null) return;
25
+ var _arr = [];
26
+ var _n = true;
27
+ var _d = false;
28
+ var _s, _e;
29
+ try {
30
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
31
+ _arr.push(_s.value);
32
+ if (i && _arr.length === i) break;
33
+ }
34
+ } catch (err) {
35
+ _d = true;
36
+ _e = err;
37
+ } finally{
38
+ try {
39
+ if (!_n && _i["return"] != null) _i["return"]();
40
+ } finally{
41
+ if (_d) throw _e;
42
+ }
43
+ }
44
+ return _arr;
45
+ }
46
+ function _non_iterable_rest() {
47
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
+ }
49
+ function _object_spread(target) {
50
+ for(var i = 1; i < arguments.length; i++){
51
+ var source = arguments[i] != null ? arguments[i] : {};
52
+ var ownKeys = Object.keys(source);
53
+ if (typeof Object.getOwnPropertySymbols === "function") {
54
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
55
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
56
+ }));
57
+ }
58
+ ownKeys.forEach(function(key) {
59
+ _define_property(target, key, source[key]);
60
+ });
61
+ }
62
+ return target;
63
+ }
64
+ function ownKeys(object, enumerableOnly) {
65
+ var keys = Object.keys(object);
66
+ if (Object.getOwnPropertySymbols) {
67
+ var symbols = Object.getOwnPropertySymbols(object);
68
+ if (enumerableOnly) {
69
+ symbols = symbols.filter(function(sym) {
70
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
71
+ });
72
+ }
73
+ keys.push.apply(keys, symbols);
74
+ }
75
+ return keys;
76
+ }
77
+ function _object_spread_props(target, source) {
78
+ source = source != null ? source : {};
79
+ if (Object.getOwnPropertyDescriptors) {
80
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
81
+ } else {
82
+ ownKeys(Object(source)).forEach(function(key) {
83
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
84
+ });
85
+ }
86
+ return target;
87
+ }
88
+ function _sliced_to_array(arr, i) {
89
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
90
+ }
91
+ function _unsupported_iterable_to_array(o, minLen) {
92
+ if (!o) return;
93
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
94
+ var n = Object.prototype.toString.call(o).slice(8, -1);
95
+ if (n === "Object" && o.constructor) n = o.constructor.name;
96
+ if (n === "Map" || n === "Set") return Array.from(n);
97
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
98
+ }
99
+ var reverseLabelMap = new Map([
100
+ [
101
+ 'bver',
102
+ -1
103
+ ],
104
+ [
105
+ 'bn',
106
+ -2
107
+ ],
108
+ [
109
+ 'bt',
110
+ -3
111
+ ],
112
+ [
113
+ 'bu',
114
+ -4
115
+ ],
116
+ [
117
+ 'bv',
118
+ -5
119
+ ],
120
+ [
121
+ 'bs',
122
+ -6
123
+ ],
124
+ [
125
+ 'n',
126
+ 0
127
+ ],
128
+ [
129
+ 'u',
130
+ 1
131
+ ],
132
+ [
133
+ 'v',
134
+ 2
135
+ ],
136
+ [
137
+ 'vs',
138
+ 3
139
+ ],
140
+ [
141
+ 'vb',
142
+ 4
143
+ ],
144
+ [
145
+ 's',
146
+ 5
147
+ ],
148
+ [
149
+ 't',
150
+ 6
151
+ ],
152
+ [
153
+ 'ut',
154
+ 7
155
+ ],
156
+ [
157
+ 'vd',
158
+ 8
159
+ ]
160
+ ]);
161
+ /**
162
+ * Convert SenML from JSON notation to CBOR notation.
163
+ *
164
+ * @see https://www.rfc-editor.org/rfc/rfc8428.html#section-6
165
+ */ export var toCBOR = function toCBOR(records) {
166
+ return records.map(function(record) {
167
+ return Object.entries(record).reduce(function(cbor, param) {
168
+ var _param = _sliced_to_array(param, 2), label = _param[0], v = _param[1];
169
+ var key = reverseLabelMap.get(label);
170
+ if (key === undefined) return cbor;
171
+ return _object_spread_props(_object_spread({}, cbor), _define_property({}, String(key), v));
172
+ }, {});
173
+ });
174
+ };
@@ -0,0 +1,75 @@
1
+ import assert from 'node:assert/strict';
2
+ import { describe, it } from 'node:test';
3
+ import { fromCBOR } from './fromCBOR.js';
4
+ import { toCBOR } from './toCBOR.js';
5
+ void describe('toCBOR()', function() {
6
+ void it('should convert JSON encoding to CBOR encoding', function() {
7
+ return assert.deepEqual(toCBOR([
8
+ {
9
+ n: '0',
10
+ v: 28.904369,
11
+ bn: '14205/0/'
12
+ },
13
+ {
14
+ n: '1',
15
+ v: 17.66905
16
+ },
17
+ {
18
+ n: '2',
19
+ v: 100562.21875
20
+ },
21
+ {
22
+ n: '10',
23
+ v: 57
24
+ }
25
+ ]), [
26
+ {
27
+ '0': '0',
28
+ '2': 28.904369,
29
+ '-2': '14205/0/'
30
+ },
31
+ {
32
+ '0': '1',
33
+ '2': 17.66905
34
+ },
35
+ {
36
+ '0': '2',
37
+ '2': 100562.21875
38
+ },
39
+ {
40
+ '0': '10',
41
+ '2': 57
42
+ }
43
+ ]);
44
+ });
45
+ void it('should round-trip through fromCBOR', function() {
46
+ var json = [
47
+ {
48
+ n: '0',
49
+ v: 28.904369,
50
+ bn: '14205/0/'
51
+ },
52
+ {
53
+ n: '1',
54
+ v: 17.66905,
55
+ u: 'lat'
56
+ }
57
+ ];
58
+ assert.deepEqual(fromCBOR(toCBOR(json)), json);
59
+ });
60
+ void it('should round-trip through toCBOR', function() {
61
+ var cbor = [
62
+ {
63
+ '0': '0',
64
+ '2': 28.904369,
65
+ '-2': '14205/0/'
66
+ },
67
+ {
68
+ '0': '1',
69
+ '2': 17.66905,
70
+ '1': 'lat'
71
+ }
72
+ ];
73
+ assert.deepEqual(toCBOR(fromCBOR(cbor)), cbor);
74
+ });
75
+ });
@@ -1,6 +1,6 @@
1
1
  import { SenML } from '../senml/SenMLSchema.js';
2
2
  import { validate } from '../validate.js';
3
3
  var validator = validate(SenML);
4
- export var validateSenML = function(maybeSenML) {
4
+ export var validateSenML = function validateSenML(maybeSenML) {
5
5
  return validator(maybeSenML);
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hello.nrfcloud.com/proto-map",
3
- "version": "16.5.44",
3
+ "version": "16.6.0",
4
4
  "description": "Documents the communication protocol between devices, the hello.nrfcloud.com/map backend and web application",
5
5
  "type": "module",
6
6
  "exports": {
@@ -36,11 +36,11 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@bifravst/eslint-config-typescript": "6.4.4",
39
- "@bifravst/prettier-config": "1.1.16",
40
- "@commitlint/config-conventional": "19.8.1",
41
- "@swc/cli": "0.7.9",
42
- "@swc/core": "1.15.3",
43
- "@types/node": "22.19.1",
39
+ "@bifravst/prettier-config": "1.1.17",
40
+ "@commitlint/config-conventional": "20.4.1",
41
+ "@swc/cli": "0.8.0",
42
+ "@swc/core": "1.15.11",
43
+ "@types/node": "25.2.3",
44
44
  "@types/xml2js": "0.4.14",
45
45
  "chalk": "5.6.2",
46
46
  "globstar": "1.0.0",
@@ -49,7 +49,7 @@
49
49
  "remark": "15.0.1",
50
50
  "remark-frontmatter": "5.0.0",
51
51
  "tsx": "4.21.0",
52
- "typescript": "5.7.3",
52
+ "typescript": "5.9.3",
53
53
  "xml2js": "0.6.2",
54
54
  "yaml": "2.8.2"
55
55
  },
@@ -97,7 +97,7 @@
97
97
  "lwm2m"
98
98
  ],
99
99
  "peerDependencies": {
100
- "@aws-sdk/client-timestream-write": "^3.943.0",
101
- "@sinclair/typebox": "^0.34.41"
100
+ "@aws-sdk/client-timestream-write": "^3.986.0",
101
+ "@sinclair/typebox": "^0.34.48"
102
102
  }
103
103
  }