property-accessor 2.1.2 → 2.2.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
+ ## [2.2.0] - 2025-05-19
9
+
10
+ ### Fixed
11
+
12
+ - Fixed parsing keys when using floating numbers [final cut]
13
+
8
14
  ## [2.1.2] - 2025-05-19
9
15
 
10
16
  ### Fixed
@@ -63,17 +63,51 @@ class PropertyAccessor {
63
63
  return flat;
64
64
  }
65
65
  static parsePath(path) {
66
- if ((!path.includes('.') && !path.includes('[')) ||
67
- (!path.includes('[') && /^\d+\.\d+$/.test(path))) {
68
- return [path];
69
- }
70
66
  const parts = [];
71
- const regex = /[^.[\]]+/g;
72
- let match;
73
- while ((match = regex.exec(path)) !== null) {
74
- parts.push(match[0]);
67
+ let buffer = '';
68
+ let insideBracket = false;
69
+ for (let i = 0; i < path.length; i++) {
70
+ const char = path[i];
71
+ if (char === '.' && !insideBracket) {
72
+ if (buffer !== '') {
73
+ parts.push(buffer);
74
+ buffer = '';
75
+ }
76
+ }
77
+ else if (char === '[') {
78
+ if (buffer !== '') {
79
+ parts.push(buffer);
80
+ buffer = '';
81
+ }
82
+ insideBracket = true;
83
+ }
84
+ else if (char === ']') {
85
+ if (buffer !== '') {
86
+ parts.push(buffer);
87
+ buffer = '';
88
+ }
89
+ insideBracket = false;
90
+ }
91
+ else {
92
+ buffer += char;
93
+ }
94
+ }
95
+ if (buffer !== '') {
96
+ parts.push(buffer);
97
+ }
98
+ const mergedParts = [];
99
+ for (let i = 0; i < parts.length; i++) {
100
+ const cur = parts[i];
101
+ const next = parts[i + 1];
102
+ if (next && /^\d+$/.test(cur) && /^\d+$/.test(next)) {
103
+ mergedParts.push(`${cur}.${next}`);
104
+ i++;
105
+ }
106
+ else {
107
+ mergedParts.push(cur);
108
+ }
75
109
  }
76
- return parts;
110
+ return mergedParts;
77
111
  }
78
112
  }
79
113
  exports.PropertyAccessor = PropertyAccessor;
@@ -1 +1 @@
1
- {"version":3,"file":"property-accessor.js","sourceRoot":"","sources":["../../src/library/property-accessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"property-accessor.js","sourceRoot":"","sources":["../../src/library/property-accessor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "property-accessor",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "This package evaluates path to nested object properties like 'prop1[0].prop2[9]['name']' and returns value ",
5
5
  "keywords": [
6
6
  "proxy",