pacc 4.7.0 → 4.7.2

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/README.md CHANGED
@@ -68,6 +68,7 @@ const result = getAttribute({ a: [0,{ b: 4 }]}, "a[1].b");
68
68
  * [integer\_attribute\_writable](#integer_attribute_writable)
69
69
  * [object\_attribute](#object_attribute)
70
70
  * [url\_attribute](#url_attribute)
71
+ * [url\_attribute\_writble](#url_attribute_writble)
71
72
  * [hostname\_attribute](#hostname_attribute)
72
73
  * [port\_attribute](#port_attribute)
73
74
  * [id\_attribute](#id_attribute)
@@ -309,6 +310,10 @@ Type: [AttributeDefinition](#attributedefinition)
309
310
 
310
311
  Type: [AttributeDefinition](#attributedefinition)
311
312
 
313
+ ## url\_attribute\_writble
314
+
315
+ Type: [AttributeDefinition](#attributedefinition)
316
+
312
317
  ## hostname\_attribute
313
318
 
314
319
  Type: [AttributeDefinition](#attributedefinition)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pacc",
3
- "version": "4.7.0",
3
+ "version": "4.7.2",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
package/src/tokens.mjs CHANGED
@@ -53,7 +53,7 @@ export /** @type {Token} */ const DOUBLE_BAR = createToken("||");
53
53
  * @yields {Token}
54
54
  */
55
55
  export function* tokens(string) {
56
- let state, buffer, hex;
56
+ let state, value, hex, divider;
57
57
 
58
58
  for (const c of string) {
59
59
  switch (state) {
@@ -62,7 +62,7 @@ export function* tokens(string) {
62
62
  // @ts-ignore
63
63
  if (hex.length === 4) {
64
64
  // @ts-ignore
65
- buffer += String.fromCharCode(parseInt(hex, 16));
65
+ value += String.fromCharCode(parseInt(hex, 16));
66
66
  state = "string";
67
67
  }
68
68
  continue;
@@ -78,7 +78,7 @@ export function* tokens(string) {
78
78
  r: "\r",
79
79
  t: "\t"
80
80
  };
81
- buffer += esc[c] || c;
81
+ value += esc[c] || c;
82
82
  state = "string";
83
83
  }
84
84
  continue;
@@ -91,12 +91,13 @@ export function* tokens(string) {
91
91
  case undefined:
92
92
  break;
93
93
  case "string":
94
- buffer += c;
94
+ value += c;
95
95
  break;
96
+ case "number-fraction":
96
97
  case "number":
97
98
  case "identifier":
98
- yield buffer;
99
- buffer = "";
99
+ yield value;
100
+ value = undefined;
100
101
  state = undefined;
101
102
  break;
102
103
  default:
@@ -116,22 +117,23 @@ export function* tokens(string) {
116
117
  case "'":
117
118
  switch (state) {
118
119
  case undefined:
119
- buffer = "";
120
+ value = "";
120
121
  state = "string";
121
122
  break;
122
123
  case "string":
123
- yield buffer;
124
+ yield value;
124
125
  state = undefined;
125
126
  break;
127
+ case "number-fraction":
126
128
  case "number":
127
129
  case "identifier":
128
- yield buffer;
129
- buffer = "";
130
+ yield value;
131
+ value = "";
130
132
  state = "string";
131
133
  break;
132
134
  default:
133
135
  yield lookup[state];
134
- buffer = "";
136
+ value = "";
135
137
  state = "string";
136
138
  }
137
139
  break;
@@ -156,11 +158,13 @@ export function* tokens(string) {
156
158
  state = c;
157
159
  break;
158
160
  case "string":
159
- buffer += c;
161
+ value += c;
160
162
  break;
163
+
164
+ case "number-fraction":
161
165
  case "number":
162
166
  case "identifier":
163
- yield buffer;
167
+ yield value;
164
168
  state = c;
165
169
  break;
166
170
  default:
@@ -175,21 +179,27 @@ export function* tokens(string) {
175
179
  state = c;
176
180
  break;
177
181
  case "string":
178
- buffer += c;
182
+ value += c;
179
183
  break;
184
+ case "number-fraction":
180
185
  case "number":
181
186
  case "identifier":
182
- yield buffer;
187
+ yield value;
183
188
  state = c;
184
189
  break;
185
190
  default:
186
191
  state += c;
187
192
  }
188
193
  break;
194
+ case ".":
195
+ if (state === "number") {
196
+ state = "number-fraction";
197
+ divider = 10;
198
+ break;
199
+ }
189
200
  case ":":
190
201
  case ";":
191
202
  case ",":
192
- case ".":
193
203
  case "+":
194
204
  case "-":
195
205
  case "*":
@@ -205,11 +215,12 @@ export function* tokens(string) {
205
215
  state = c;
206
216
  break;
207
217
  case "string":
208
- buffer += c;
218
+ value += c;
209
219
  break;
210
220
  case "number":
221
+ case "number-fraction":
211
222
  case "identifier":
212
- yield buffer;
223
+ yield value;
213
224
  state = c;
214
225
  break;
215
226
  default:
@@ -217,7 +228,6 @@ export function* tokens(string) {
217
228
  state = c;
218
229
  }
219
230
  break;
220
-
221
231
  case "0":
222
232
  case "1":
223
233
  case "2":
@@ -232,16 +242,24 @@ export function* tokens(string) {
232
242
  default:
233
243
  yield lookup[state];
234
244
  case undefined:
235
- buffer = c.charCodeAt(0) - 48;
245
+ value = c.charCodeAt(0) - 48;
236
246
  state = "number";
237
247
  break;
248
+ case '.':
249
+ state = "number-fraction";
250
+ value = 0;
251
+ divider = 10;
252
+ case "number-fraction":
253
+ value = value + (c.charCodeAt(0) - 48) / divider;
254
+ divider *= 10;
255
+ break;
238
256
  case "number":
239
257
  // @ts-ignore
240
- buffer = buffer * 10 + c.charCodeAt(0) - 48;
258
+ value = value * 10 + c.charCodeAt(0) - 48;
241
259
  break;
242
260
  case "string":
243
261
  case "identifier":
244
- buffer += c;
262
+ value += c;
245
263
  break;
246
264
  }
247
265
  break;
@@ -249,17 +267,17 @@ export function* tokens(string) {
249
267
  default:
250
268
  switch (state) {
251
269
  case undefined:
252
- buffer = c;
270
+ value = c;
253
271
  state = "identifier";
254
272
  break;
255
273
  case "string":
256
274
  case "identifier":
257
- buffer += c;
275
+ value += c;
258
276
  break;
259
277
  default:
260
278
  yield lookup[state];
261
279
  state = "identifier";
262
- buffer = c;
280
+ value = c;
263
281
  }
264
282
  }
265
283
  }
@@ -272,9 +290,10 @@ export function* tokens(string) {
272
290
  // @ts-ignore
273
291
  error.expression = string;
274
292
  throw error;
293
+ case "number-fraction":
275
294
  case "number":
276
295
  case "identifier":
277
- yield buffer;
296
+ yield value;
278
297
  break;
279
298
  default:
280
299
  yield lookup[state];