repository-provider 33.0.0 → 33.0.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 +1 -1
- package/package.json +7 -7
- package/src/attribute.mjs +130 -46
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "repository-provider",
|
|
3
|
-
"version": "33.0.
|
|
3
|
+
"version": "33.0.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"license": "BSD-2-Clause",
|
|
22
22
|
"scripts": {
|
|
23
23
|
"test": "npm run test:browser-ava && npm run test:ava",
|
|
24
|
-
"test:ava": "ava --timeout 2m tests/*-ava.mjs tests/*-ava-node.mjs",
|
|
24
|
+
"test:ava": "ava --timeout 2m tests/*-ava.mjs tests/*-ava-node.mjs && ava --timeout 4m tests/*-ava.mjs tests/*-ava-node.mjs",
|
|
25
25
|
"test:browser-ava": "browser-ava --headless --no-keep-open tests/*-ava.mjs tests/*-ava-browser.mjs",
|
|
26
|
-
"cover": "c8 -x 'tests/**/*' --temp-directory build/tmp ava --timeout
|
|
26
|
+
"cover": "c8 -x 'tests/**/*' --temp-directory build/tmp ava --timeout 4m tests/*-ava.mjs tests/*-ava-node.mjs && c8 report -r lcov -o build/coverage --temp-directory build/tmp",
|
|
27
27
|
"docs": "documentation readme --section=API ./src/**/*.mjs",
|
|
28
28
|
"lint": "npm run lint:docs && npm run lint:tsc",
|
|
29
29
|
"lint:docs": "documentation lint ./src/**/*.mjs",
|
|
@@ -34,15 +34,15 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"ava": "^5.3.1",
|
|
37
|
-
"browser-ava": "^1.3.
|
|
37
|
+
"browser-ava": "^1.3.60",
|
|
38
38
|
"c8": "^8.0.1",
|
|
39
39
|
"documentation": "^14.0.2",
|
|
40
|
-
"repository-provider-test-support": "^2.4.
|
|
41
|
-
"semantic-release": "^
|
|
40
|
+
"repository-provider-test-support": "^2.4.3",
|
|
41
|
+
"semantic-release": "^22.0.5",
|
|
42
42
|
"typescript": "^5.2.2"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
|
-
"node": ">=18.
|
|
45
|
+
"node": ">=18.18.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|
package/src/attribute.mjs
CHANGED
|
@@ -20,54 +20,109 @@
|
|
|
20
20
|
* @yields {string}
|
|
21
21
|
*/
|
|
22
22
|
export function* tokens(string) {
|
|
23
|
-
let
|
|
24
|
-
let identifier = "";
|
|
25
|
-
let last;
|
|
23
|
+
let state, buffer;
|
|
26
24
|
|
|
27
25
|
for (const c of string) {
|
|
26
|
+
switch (state) {
|
|
27
|
+
case "string-escaping":
|
|
28
|
+
const esc = {
|
|
29
|
+
"\\": "\\",
|
|
30
|
+
t: "\t",
|
|
31
|
+
b: "\b",
|
|
32
|
+
r: "\r",
|
|
33
|
+
n: "\n",
|
|
34
|
+
f: "\f"
|
|
35
|
+
};
|
|
36
|
+
buffer += esc[c];
|
|
37
|
+
state = "string";
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
|
|
28
41
|
switch (c) {
|
|
29
42
|
case "\t":
|
|
30
43
|
case " ":
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
switch (state) {
|
|
45
|
+
case undefined:
|
|
46
|
+
break;
|
|
47
|
+
case "string":
|
|
48
|
+
buffer += c;
|
|
49
|
+
break;
|
|
50
|
+
case "identifier":
|
|
51
|
+
yield buffer;
|
|
52
|
+
buffer = "";
|
|
53
|
+
state = undefined;
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
yield state;
|
|
57
|
+
state = undefined;
|
|
42
58
|
}
|
|
43
59
|
break;
|
|
44
60
|
|
|
61
|
+
case "\\":
|
|
62
|
+
switch (state) {
|
|
63
|
+
case "string":
|
|
64
|
+
state = "string-escaping";
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
45
68
|
case '"':
|
|
46
69
|
case "'":
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
70
|
+
switch (state) {
|
|
71
|
+
case undefined:
|
|
72
|
+
buffer = "";
|
|
73
|
+
state = "string";
|
|
74
|
+
break;
|
|
75
|
+
case "string":
|
|
76
|
+
yield buffer;
|
|
77
|
+
state = undefined;
|
|
78
|
+
break;
|
|
79
|
+
case "identifier":
|
|
80
|
+
yield buffer;
|
|
81
|
+
buffer = "";
|
|
82
|
+
state = "string";
|
|
83
|
+
break;
|
|
84
|
+
default:
|
|
85
|
+
yield state;
|
|
86
|
+
buffer = "";
|
|
87
|
+
state = "string";
|
|
53
88
|
}
|
|
54
89
|
break;
|
|
55
90
|
case "!":
|
|
56
91
|
case ">":
|
|
57
92
|
case "<":
|
|
58
|
-
|
|
59
|
-
|
|
93
|
+
switch (state) {
|
|
94
|
+
case undefined:
|
|
95
|
+
state = c;
|
|
96
|
+
break;
|
|
97
|
+
case "string":
|
|
98
|
+
buffer += c;
|
|
99
|
+
break;
|
|
100
|
+
case "identifier":
|
|
101
|
+
yield buffer;
|
|
102
|
+
state = c;
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
yield state;
|
|
106
|
+
state = c;
|
|
60
107
|
}
|
|
61
|
-
last = c;
|
|
62
108
|
break;
|
|
63
109
|
|
|
64
110
|
case "=":
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
111
|
+
switch (state) {
|
|
112
|
+
case undefined:
|
|
113
|
+
state = c;
|
|
114
|
+
break;
|
|
115
|
+
case "string":
|
|
116
|
+
buffer += c;
|
|
117
|
+
break;
|
|
118
|
+
case "identifier":
|
|
119
|
+
yield buffer;
|
|
120
|
+
state = c;
|
|
121
|
+
break;
|
|
122
|
+
default:
|
|
123
|
+
state += c;
|
|
69
124
|
}
|
|
70
|
-
|
|
125
|
+
break;
|
|
71
126
|
case ".":
|
|
72
127
|
case "+":
|
|
73
128
|
case "-":
|
|
@@ -77,30 +132,59 @@ export function* tokens(string) {
|
|
|
77
132
|
case ")":
|
|
78
133
|
case "[":
|
|
79
134
|
case "]":
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
135
|
+
switch (state) {
|
|
136
|
+
case undefined:
|
|
137
|
+
state = c;
|
|
138
|
+
break;
|
|
139
|
+
case "string":
|
|
140
|
+
buffer += c;
|
|
141
|
+
break;
|
|
142
|
+
case "identifier":
|
|
143
|
+
yield buffer;
|
|
144
|
+
state = c;
|
|
145
|
+
break;
|
|
146
|
+
default:
|
|
147
|
+
yield state;
|
|
148
|
+
state = c;
|
|
83
149
|
}
|
|
84
|
-
if (identifier.length) {
|
|
85
|
-
yield identifier;
|
|
86
|
-
identifier = "";
|
|
87
|
-
}
|
|
88
|
-
yield c;
|
|
89
150
|
break;
|
|
90
151
|
default:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
152
|
+
switch (state) {
|
|
153
|
+
case undefined:
|
|
154
|
+
buffer = c;
|
|
155
|
+
state = "identifier";
|
|
156
|
+
break;
|
|
157
|
+
case "string":
|
|
158
|
+
case "identifier":
|
|
159
|
+
buffer += c;
|
|
160
|
+
break;
|
|
161
|
+
default:
|
|
162
|
+
if (
|
|
163
|
+
(c >= "a" && c <= "z") ||
|
|
164
|
+
(c >= "A" && c <= "Z") ||
|
|
165
|
+
(c >= "0" && c <= "9") ||
|
|
166
|
+
c === "_"
|
|
167
|
+
) {
|
|
168
|
+
yield state;
|
|
169
|
+
state = "identifier";
|
|
170
|
+
buffer = c;
|
|
171
|
+
} else {
|
|
172
|
+
state += c;
|
|
173
|
+
}
|
|
94
174
|
}
|
|
95
|
-
identifier += c;
|
|
96
175
|
}
|
|
97
176
|
}
|
|
98
177
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
178
|
+
switch (state) {
|
|
179
|
+
case undefined:
|
|
180
|
+
break;
|
|
181
|
+
case "string":
|
|
182
|
+
throw new Error("unterminated string");
|
|
183
|
+
case "identifier":
|
|
184
|
+
yield buffer;
|
|
185
|
+
break;
|
|
186
|
+
default:
|
|
187
|
+
yield state;
|
|
104
188
|
}
|
|
105
189
|
}
|
|
106
190
|
|
|
@@ -143,7 +227,7 @@ export function setAttribute(object, name, value) {
|
|
|
143
227
|
|
|
144
228
|
/**
|
|
145
229
|
* Deliver attribute value.
|
|
146
|
-
* The name may be a property path like 'a.b.c'
|
|
230
|
+
* The name may be a property path like 'a.b.c' or a[2]
|
|
147
231
|
* @param {Object} object
|
|
148
232
|
* @param {string} name
|
|
149
233
|
* @returns {any} value associated with the given property name
|