@mavogel/cdk-vscode-server 0.0.65 → 0.0.67
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/.jsii +4 -4
- package/API.md +44 -0
- package/lib/idle-monitor/idle-monitor.js +1 -1
- package/lib/vscode-server.js +1 -1
- package/node_modules/node-html-parser/CHANGELOG.md +23 -0
- package/node_modules/node-html-parser/README.md +12 -4
- package/node_modules/node-html-parser/dist/main.js +72 -8
- package/node_modules/node-html-parser/dist/nodes/html.d.ts +14 -1
- package/node_modules/node-html-parser/dist/nodes/html.js +68 -8
- package/node_modules/node-html-parser/package.json +3 -2
- package/package.json +2 -2
package/.jsii
CHANGED
|
@@ -4083,7 +4083,7 @@
|
|
|
4083
4083
|
"stability": "experimental"
|
|
4084
4084
|
},
|
|
4085
4085
|
"homepage": "https://github.com/MV-Consulting/cdk-vscode-server.git",
|
|
4086
|
-
"jsiiVersion": "5.9.
|
|
4086
|
+
"jsiiVersion": "5.9.34 (build 8773a22)",
|
|
4087
4087
|
"keywords": [
|
|
4088
4088
|
"aws",
|
|
4089
4089
|
"cdk",
|
|
@@ -4115,7 +4115,7 @@
|
|
|
4115
4115
|
},
|
|
4116
4116
|
"python": {
|
|
4117
4117
|
"distName": "cdk-vscode-server",
|
|
4118
|
-
"module": "
|
|
4118
|
+
"module": "cdk_vscode_server"
|
|
4119
4119
|
}
|
|
4120
4120
|
},
|
|
4121
4121
|
"types": {
|
|
@@ -5054,6 +5054,6 @@
|
|
|
5054
5054
|
"symbolId": "src/vscode-server:VSCodeServerProps"
|
|
5055
5055
|
}
|
|
5056
5056
|
},
|
|
5057
|
-
"version": "0.0.
|
|
5058
|
-
"fingerprint": "
|
|
5057
|
+
"version": "0.0.67",
|
|
5058
|
+
"fingerprint": "UWx8nP1TceLVi4Ujkp/EcZXA39iPIlt020boWEJ6+Ws="
|
|
5059
5059
|
}
|
package/API.md
CHANGED
|
@@ -45,6 +45,7 @@ new IdleMonitor(scope: Construct, id: string, props: IdleMonitorProps)
|
|
|
45
45
|
| **Name** | **Description** |
|
|
46
46
|
| --- | --- |
|
|
47
47
|
| <code><a href="#@mavogel/cdk-vscode-server.IdleMonitor.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
48
|
+
| <code><a href="#@mavogel/cdk-vscode-server.IdleMonitor.with">with</a></code> | Applies one or more mixins to this construct. |
|
|
48
49
|
|
|
49
50
|
---
|
|
50
51
|
|
|
@@ -56,6 +57,27 @@ public toString(): string
|
|
|
56
57
|
|
|
57
58
|
Returns a string representation of this construct.
|
|
58
59
|
|
|
60
|
+
##### `with` <a name="with" id="@mavogel/cdk-vscode-server.IdleMonitor.with"></a>
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
public with(mixins: ...IMixin[]): IConstruct
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Applies one or more mixins to this construct.
|
|
67
|
+
|
|
68
|
+
Mixins are applied in order. The list of constructs is captured at the
|
|
69
|
+
start of the call, so constructs added by a mixin will not be visited.
|
|
70
|
+
Use multiple `with()` calls if subsequent mixins should apply to added
|
|
71
|
+
constructs.
|
|
72
|
+
|
|
73
|
+
###### `mixins`<sup>Required</sup> <a name="mixins" id="@mavogel/cdk-vscode-server.IdleMonitor.with.parameter.mixins"></a>
|
|
74
|
+
|
|
75
|
+
- *Type:* ...constructs.IMixin[]
|
|
76
|
+
|
|
77
|
+
The mixins to apply.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
59
81
|
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
60
82
|
|
|
61
83
|
| **Name** | **Description** |
|
|
@@ -186,6 +208,7 @@ new VSCodeServer(scope: Construct, id: string, props?: VSCodeServerProps)
|
|
|
186
208
|
| **Name** | **Description** |
|
|
187
209
|
| --- | --- |
|
|
188
210
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServer.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
211
|
+
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServer.with">with</a></code> | Applies one or more mixins to this construct. |
|
|
189
212
|
|
|
190
213
|
---
|
|
191
214
|
|
|
@@ -197,6 +220,27 @@ public toString(): string
|
|
|
197
220
|
|
|
198
221
|
Returns a string representation of this construct.
|
|
199
222
|
|
|
223
|
+
##### `with` <a name="with" id="@mavogel/cdk-vscode-server.VSCodeServer.with"></a>
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
public with(mixins: ...IMixin[]): IConstruct
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Applies one or more mixins to this construct.
|
|
230
|
+
|
|
231
|
+
Mixins are applied in order. The list of constructs is captured at the
|
|
232
|
+
start of the call, so constructs added by a mixin will not be visited.
|
|
233
|
+
Use multiple `with()` calls if subsequent mixins should apply to added
|
|
234
|
+
constructs.
|
|
235
|
+
|
|
236
|
+
###### `mixins`<sup>Required</sup> <a name="mixins" id="@mavogel/cdk-vscode-server.VSCodeServer.with.parameter.mixins"></a>
|
|
237
|
+
|
|
238
|
+
- *Type:* ...constructs.IMixin[]
|
|
239
|
+
|
|
240
|
+
The mixins to apply.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
200
244
|
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
201
245
|
|
|
202
246
|
| **Name** | **Description** |
|
|
@@ -83,5 +83,5 @@ class IdleMonitor extends constructs_1.Construct {
|
|
|
83
83
|
}
|
|
84
84
|
exports.IdleMonitor = IdleMonitor;
|
|
85
85
|
_a = JSII_RTTI_SYMBOL_1;
|
|
86
|
-
IdleMonitor[_a] = { fqn: "@mavogel/cdk-vscode-server.IdleMonitor", version: "0.0.
|
|
86
|
+
IdleMonitor[_a] = { fqn: "@mavogel/cdk-vscode-server.IdleMonitor", version: "0.0.67" };
|
|
87
87
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lkbGUtbW9uaXRvci9pZGxlLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsNkNBQThDO0FBRzlDLHVEQUF3RDtBQUN4RCx1RUFBd0Y7QUFDeEYsaURBQXNEO0FBQ3RELHVEQUFtRjtBQUNuRixxQ0FBMEM7QUFDMUMsMkNBQXVDO0FBcUN2Qzs7R0FFRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBV3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ25ELE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7WUFDNUIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLCtDQUErQyxDQUFDLENBQUM7WUFDM0YsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixVQUFVLEVBQUUsR0FBRztZQUNmLFdBQVcsRUFBRTtnQkFDWCxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUN0QyxlQUFlLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjO2dCQUNsRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFO2dCQUN6RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzthQUM5RDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUMzQixJQUFJLHlCQUFlLENBQUM7WUFDbEIsT0FBTyxFQUFFO2dCQUNQLGdDQUFnQztnQkFDaEMsMEJBQTBCO2FBQzNCO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBRUYsd0ZBQXdGO1FBQ3hGLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDM0IsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCx1QkFBdUI7Z0JBQ3ZCLDRCQUE0QjthQUM3QjtZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQztRQUVGLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDM0IsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxtQkFBbUI7YUFDcEI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsZUFBZSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxhQUFhLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2FBQ3ZHO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFFRiwyREFBMkQ7UUFDM0QseUVBQXlFO1FBQ3pFLDZFQUE2RTtRQUM3RSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxpQkFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDakQsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUscURBQXFEO1NBQ3RFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksbUNBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFckUsdUJBQXVCO1FBQ3ZCLHlCQUFlLENBQUMsdUJBQXVCLENBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQ2I7WUFDRTtnQkFDRSxFQUFFLEVBQUUsbUJBQW1CO2dCQUN2QixNQUFNLEVBQUUsMkRBQTJEO2FBQ3BFO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsTUFBTSxFQUFFLGlEQUFpRDthQUMxRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLE1BQU0sRUFBRSwrQ0FBK0M7YUFDeEQ7U0FDRixFQUNELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQzs7QUE1Rkgsa0NBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElEaXN0cmlidXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBJSW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IFJ1bGUsIFNjaGVkdWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBMYW1iZGFGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvblRhcmdldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUsIENvZGUsIEZ1bmN0aW9uIGFzIExhbWJkYUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBOYWdTdXBwcmVzc2lvbnMgfSBmcm9tICdjZGstbmFnJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBJZGxlTW9uaXRvciBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJZGxlTW9uaXRvclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBFQzIgaW5zdGFuY2UgdG8gbW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2U6IElJbnN0YW5jZTtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byBtb25pdG9yIGZvciBhY3Rpdml0eVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBJRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgb2YgaW5hY3Rpdml0eSBiZWZvcmUgc3RvcHBpbmcgdGhlIGluc3RhbmNlXG4gICAqL1xuICByZWFkb25seSBpZGxlVGltZW91dE1pbnV0ZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyBvZnRlbiB0byBjaGVjayBmb3IgaWRsZSBhY3Rpdml0eSAoaW4gbWludXRlcylcbiAgICogQGRlZmF1bHQgNSAtIENoZWNrIGV2ZXJ5IDUgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tJbnRlcnZhbE1pbnV0ZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTa2lwIGluc3RhbmNlIHN0YXR1cyBjaGVja3MgYmVmb3JlIHN0b3BwaW5nXG4gICAqIFdoZW4gdHJ1ZSwgSWRsZU1vbml0b3Igd2lsbCBzdG9wIGlkbGUgaW5zdGFuY2VzIGV2ZW4gaWYgc3RhdHVzIGNoZWNrcyBoYXZlbid0IHBhc3NlZFxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgaW50ZWdyYXRpb24gdGVzdHMgd2hlcmUgc3RhdHVzIGNoZWNrIGluaXRpYWxpemF0aW9uIHRpbWVcbiAgICogZXhjZWVkcyB0ZXN0IHRpbWVvdXQgbGltaXRzXG4gICAqXG4gICAqIFdBUk5JTkc6IEZvciB0ZXN0aW5nIG9ubHkgLSBpbiBwcm9kdWN0aW9uLCB5b3Ugc2hvdWxkIHdhaXQgZm9yIHN0YXR1cyBjaGVja3NcbiAgICogdG8gcGFzcyBiZWZvcmUgc3RvcHBpbmcgaW5zdGFuY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwU3RhdHVzQ2hlY2tzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdGhhdCBtb25pdG9ycyBDbG91ZEZyb250IHJlcXVlc3QgbWV0cmljcyBhbmQgc3RvcHMgdGhlIEVDMiBpbnN0YW5jZSB3aGVuIGlkbGVcbiAqL1xuZXhwb3J0IGNsYXNzIElkbGVNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBpZGxlIG1vbml0b3JpbmdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbjogTGFtYmRhRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBFdmVudEJyaWRnZSBydWxlIHRoYXQgdHJpZ2dlcnMgaWRsZSBtb25pdG9yaW5nIGNoZWNrc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlUnVsZTogUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWRsZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vYXNzZXRzL2lkbGUtbW9uaXRvci9pZGxlLW1vbml0b3IubGFtYmRhJykpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBtZW1vcnlTaXplOiAyNTYsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBJTlNUQU5DRV9JRDogcHJvcHMuaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgRElTVFJJQlVUSU9OX0lEOiBwcm9wcy5kaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uSWQsXG4gICAgICAgIElETEVfVElNRU9VVF9NSU5VVEVTOiBwcm9wcy5pZGxlVGltZW91dE1pbnV0ZXMudG9TdHJpbmcoKSxcbiAgICAgICAgU0tJUF9TVEFUVVNfQ0hFQ0tTOiBwcm9wcy5za2lwU3RhdHVzQ2hlY2tzID8gJ3RydWUnIDogJ2ZhbHNlJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2Nsb3Vkd2F0Y2g6R2V0TWV0cmljU3RhdGlzdGljcycsXG4gICAgICAgICAgJ2Nsb3Vkd2F0Y2g6R2V0TWV0cmljRGF0YScsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gRGVzY3JpYmVJbnN0YW5jZXMgYW5kIERlc2NyaWJlSW5zdGFuY2VTdGF0dXMgZG9uJ3Qgc3VwcG9ydCByZXNvdXJjZS1sZXZlbCBwZXJtaXNzaW9uc1xuICAgIC8vIFRoZXkgcmVxdWlyZSB3aWxkY2FyZCByZXNvdXJjZXNcbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlcycsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlU3RhdHVzJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBTdG9wSW5zdGFuY2VzIHN1cHBvcnRzIHJlc291cmNlLWxldmVsIHBlcm1pc3Npb25zLCBzbyB3ZSBjYW4gcmVzdHJpY3QgaXRcbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjMjpTdG9wSW5zdGFuY2VzJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgYGFybjphd3M6ZWMyOiR7U3RhY2sub2YodGhpcykucmVnaW9ufToke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9Omluc3RhbmNlLyR7cHJvcHMuaW5zdGFuY2UuaW5zdGFuY2VJZH1gLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBFdmVudEJyaWRnZSBydWxlIHRvIHRyaWdnZXIgYXQgc3BlY2lmaWVkIGludGVydmFsXG4gICAgLy8gTk9URTogUnVsZSBpcyBjcmVhdGVkIGluIERJU0FCTEVEIHN0YXRlIGFuZCBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZFxuICAgIC8vIGFmdGVyIGluc3RhbGxhdGlvbiBjb21wbGV0ZXMgdG8gcHJldmVudCBzdG9wcGluZyB0aGUgaW5zdGFuY2UgZHVyaW5nIHNldHVwXG4gICAgY29uc3QgY2hlY2tJbnRlcnZhbCA9IHByb3BzLmNoZWNrSW50ZXJ2YWxNaW51dGVzID8/IDU7XG4gICAgdGhpcy5zY2hlZHVsZVJ1bGUgPSBuZXcgUnVsZSh0aGlzLCAnU2NoZWR1bGVSdWxlJywge1xuICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLnJhdGUoRHVyYXRpb24ubWludXRlcyhjaGVja0ludGVydmFsKSksXG4gICAgICBlbmFibGVkOiBmYWxzZSwgLy8gU3RhcnQgZGlzYWJsZWQsIHdpbGwgYmUgZW5hYmxlZCBhZnRlciBpbnN0YWxsYXRpb25cbiAgICB9KTtcblxuICAgIHRoaXMuc2NoZWR1bGVSdWxlLmFkZFRhcmdldChuZXcgTGFtYmRhRnVuY3Rpb25UYXJnZXQodGhpcy5mdW5jdGlvbikpO1xuXG4gICAgLy8gQ0RLLW5hZyBzdXBwcmVzc2lvbnNcbiAgICBOYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoXG4gICAgICB0aGlzLmZ1bmN0aW9uLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNCcsXG4gICAgICAgICAgcmVhc29uOiAnTWFuYWdlZCBwb2xpY2llcyBhY2NlcHRhYmxlIGZvciB3b3Jrc2hvcCBMYW1iZGEgZnVuY3Rpb25zJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgICAgICAgIHJlYXNvbjogJ0Nsb3VkV2F0Y2ggbWV0cmljcyByZXF1aXJlIHdpbGRjYXJkIHBlcm1pc3Npb25zJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUwxJyxcbiAgICAgICAgICByZWFzb246ICdMYXRlc3QgcnVudGltZSBub3QgcmVxdWlyZWQgZm9yIHRoaXMgZnVuY3Rpb24nLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRydWUsXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/lib/vscode-server.js
CHANGED
|
@@ -648,7 +648,7 @@ class VSCodeServer extends constructs_1.Construct {
|
|
|
648
648
|
}
|
|
649
649
|
exports.VSCodeServer = VSCodeServer;
|
|
650
650
|
_a = JSII_RTTI_SYMBOL_1;
|
|
651
|
-
VSCodeServer[_a] = { fqn: "@mavogel/cdk-vscode-server.VSCodeServer", version: "0.0.
|
|
651
|
+
VSCodeServer[_a] = { fqn: "@mavogel/cdk-vscode-server.VSCodeServer", version: "0.0.67" };
|
|
652
652
|
/**
|
|
653
653
|
* Tags all the resources in the construct
|
|
654
654
|
*/
|
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [7.1.0](https://github.com/taoqf/node-fast-html-parser/compare/v7.0.2...v7.1.0) (2026-03-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add option closeAllOnClosing ([44c900a](https://github.com/taoqf/node-fast-html-parser/commit/44c900acc01b8923eb9e45c7b13d6bd148a8e9cd)), closes [#294](https://github.com/taoqf/node-fast-html-parser/issues/294)
|
|
11
|
+
* add preserveTagNesting option to maintain invalid HTML nesting [#295](https://github.com/taoqf/node-fast-html-parser/issues/295) ([d604652](https://github.com/taoqf/node-fast-html-parser/commit/d604652cc7c963118ba16ec6bda1f4e01fb81c9e))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* add missing dev dependency: yarn ([8679d32](https://github.com/taoqf/node-fast-html-parser/commit/8679d3231e6dc1c93f99921d16b728aa9a578ce5))
|
|
17
|
+
|
|
18
|
+
### [7.0.2](https://github.com/taoqf/node-fast-html-parser/compare/v7.0.1...v7.0.2) (2026-01-07)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* [#227](https://github.com/taoqf/node-fast-html-parser/issues/227) ([51528c4](https://github.com/taoqf/node-fast-html-parser/commit/51528c41ef2648d6c4dc1aecd14ee9d2b0083c4f))
|
|
24
|
+
* [#294](https://github.com/taoqf/node-fast-html-parser/issues/294) Closing tag is missing but valid HTML is still not parseable ([950865f](https://github.com/taoqf/node-fast-html-parser/commit/950865fab5f4df7853b36712869b71c90f4d3a1b))
|
|
25
|
+
* add missing dev dependency: yarn ([6d73ea3](https://github.com/taoqf/node-fast-html-parser/commit/6d73ea37c48f4170c35907869ba410c5122a9a1f))
|
|
26
|
+
* test valid.js ([a81fc46](https://github.com/taoqf/node-fast-html-parser/commit/a81fc46fab2507615b0362150d62568a6f52ee4e))
|
|
27
|
+
|
|
5
28
|
### [7.0.1](https://github.com/taoqf/node-fast-html-parser/compare/v7.0.0...v7.0.1) (2024-12-26)
|
|
6
29
|
|
|
7
30
|
|
|
@@ -43,6 +43,7 @@ import { parse } from 'node-html-parser';
|
|
|
43
43
|
|
|
44
44
|
const root = parse('<ul id="list"><li>Hello World</li></ul>');
|
|
45
45
|
|
|
46
|
+
// parse() adds a wrapper node, so the input data's first node is the root's first child node
|
|
46
47
|
console.log(root.firstChild.structure);
|
|
47
48
|
// ul#list
|
|
48
49
|
// li
|
|
@@ -74,7 +75,7 @@ var root = HTMLParser.parse('<ul id="list"><li>Hello World</li></ul>');
|
|
|
74
75
|
|
|
75
76
|
### parse(data[, options])
|
|
76
77
|
|
|
77
|
-
Parse the data provided, and return the root of the generated DOM.
|
|
78
|
+
Parse the data provided, wrap the result in a new node, and return the root of the generated DOM.
|
|
78
79
|
|
|
79
80
|
- **data**, data to parse
|
|
80
81
|
- **options**, parse options
|
|
@@ -85,6 +86,7 @@ Parse the data provided, and return the root of the generated DOM.
|
|
|
85
86
|
comment: false, // retrieve comments (hurts performance slightly)
|
|
86
87
|
fixNestedATags: false, // fix invalid nested <a> HTML tags
|
|
87
88
|
parseNoneClosedTags: false, // close none closed HTML tags instead of removing them
|
|
89
|
+
preserveTagNesting: false, // preserve invalid HTML nesting instead of auto-closing tags (e.g. <p><p>bar</p></p>)
|
|
88
90
|
voidTag: {
|
|
89
91
|
tags: ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'], // optional and case insensitive, default value is ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']
|
|
90
92
|
closingSlash: true // optional, default false. void tag serialisation, add a final slash <br/>
|
|
@@ -94,7 +96,8 @@ Parse the data provided, and return the root of the generated DOM.
|
|
|
94
96
|
noscript: true, // keep text content when parsing
|
|
95
97
|
style: true, // keep text content when parsing
|
|
96
98
|
pre: true // keep text content when parsing
|
|
97
|
-
}
|
|
99
|
+
},
|
|
100
|
+
closeAllOnClosing: false // Close all non-closed tags when containing element closes
|
|
98
101
|
}
|
|
99
102
|
```
|
|
100
103
|
|
|
@@ -112,6 +115,7 @@ class HTMLElement{
|
|
|
112
115
|
this removeWhitespace()
|
|
113
116
|
Node[] querySelectorAll(string selector)
|
|
114
117
|
Node querySelector(string selector)
|
|
118
|
+
boolean matches(string selector)
|
|
115
119
|
HTMLElement[] getElementsByTagName(string tagName)
|
|
116
120
|
Node closest(string selector)
|
|
117
121
|
Node appendChild(Node node)
|
|
@@ -206,6 +210,10 @@ Note: Full range of CSS3 selectors supported since v3.0.0.
|
|
|
206
210
|
|
|
207
211
|
Query CSS Selector to find matching node. `null` if not found.
|
|
208
212
|
|
|
213
|
+
### matches(selector)
|
|
214
|
+
|
|
215
|
+
Tests whether the node matches a given CSS selector.
|
|
216
|
+
|
|
209
217
|
### getElementsByTagName(tagName)
|
|
210
218
|
|
|
211
219
|
Get all elements with the specified tagName.
|
|
@@ -349,11 +357,11 @@ Get all child elements, so all child nodes of type HTMLELement.
|
|
|
349
357
|
|
|
350
358
|
### firstChild
|
|
351
359
|
|
|
352
|
-
Get first child node
|
|
360
|
+
Get first child node of the wrapper node added by `parse()`. `undefined` if the node has no children.
|
|
353
361
|
|
|
354
362
|
### lastChild
|
|
355
363
|
|
|
356
|
-
Get last child node
|
|
364
|
+
Get last child node of the wrapper node added by `parse()`. `undefined` if the node has no children.
|
|
357
365
|
|
|
358
366
|
### firstElementChild
|
|
359
367
|
|
|
@@ -503,7 +503,7 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
503
503
|
_this.nodeType = type_3.default.ELEMENT_NODE;
|
|
504
504
|
_this.rawTagName = tagName;
|
|
505
505
|
_this.rawAttrs = rawAttrs || '';
|
|
506
|
-
_this.
|
|
506
|
+
_this._id = keyAttrs.id || '';
|
|
507
507
|
_this.childNodes = [];
|
|
508
508
|
_this._parseOptions = _parseOptions;
|
|
509
509
|
_this.classList = new DOMTokenList(keyAttrs.class ? keyAttrs.class.split(/\s+/) : [], function (classList) { return _this.setAttribute('class', classList.toString()); } // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
@@ -590,6 +590,16 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
590
590
|
enumerable: false,
|
|
591
591
|
configurable: true
|
|
592
592
|
});
|
|
593
|
+
Object.defineProperty(HTMLElement.prototype, "id", {
|
|
594
|
+
get: function () {
|
|
595
|
+
return this._id;
|
|
596
|
+
},
|
|
597
|
+
set: function (newid) {
|
|
598
|
+
this.setAttribute('id', newid);
|
|
599
|
+
},
|
|
600
|
+
enumerable: false,
|
|
601
|
+
configurable: true
|
|
602
|
+
});
|
|
593
603
|
Object.defineProperty(HTMLElement.prototype, "rawText", {
|
|
594
604
|
/**
|
|
595
605
|
* Get escpaed (as-it) text value of current node and its children.
|
|
@@ -786,7 +796,7 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
786
796
|
res.push(' '.repeat(indention) + str);
|
|
787
797
|
}
|
|
788
798
|
function dfs(node) {
|
|
789
|
-
var idStr = node.
|
|
799
|
+
var idStr = node._id ? "#".concat(node._id) : '';
|
|
790
800
|
var classStr = node.classList.length ? ".".concat(node.classList.value.join('.')) : ''; // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call
|
|
791
801
|
write("".concat(node.rawTagName).concat(idStr).concat(classStr));
|
|
792
802
|
indention++;
|
|
@@ -861,6 +871,17 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
861
871
|
adapter: matcher_1.default,
|
|
862
872
|
});
|
|
863
873
|
};
|
|
874
|
+
/**
|
|
875
|
+
* Tests whether the node matches a given CSS selector.
|
|
876
|
+
* @param {string} selector Simplified CSS selector
|
|
877
|
+
* @return {boolean}
|
|
878
|
+
*/
|
|
879
|
+
HTMLElement.prototype.matches = function (selector) {
|
|
880
|
+
return (0, css_select_1.is)(this, selector, {
|
|
881
|
+
xmlMode: true,
|
|
882
|
+
adapter: matcher_1.default,
|
|
883
|
+
});
|
|
884
|
+
};
|
|
864
885
|
/**
|
|
865
886
|
* find elements by their tagName
|
|
866
887
|
* @param {string} tagName the tagName of the elements to select
|
|
@@ -923,7 +944,7 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
923
944
|
continue;
|
|
924
945
|
}
|
|
925
946
|
if (child.nodeType === type_3.default.ELEMENT_NODE) {
|
|
926
|
-
if (child.
|
|
947
|
+
if (child._id === id) {
|
|
927
948
|
return child;
|
|
928
949
|
}
|
|
929
950
|
// if children are existing push the current status to the stack and keep searching for elements in the level below
|
|
@@ -1073,9 +1094,9 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
1073
1094
|
return "".concat(name, "=").concat(val);
|
|
1074
1095
|
})
|
|
1075
1096
|
.join(' ');
|
|
1076
|
-
// Update this.
|
|
1097
|
+
// Update this._id
|
|
1077
1098
|
if (key === 'id') {
|
|
1078
|
-
this.
|
|
1099
|
+
this._id = '';
|
|
1079
1100
|
}
|
|
1080
1101
|
return this;
|
|
1081
1102
|
};
|
|
@@ -1121,9 +1142,9 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
1121
1142
|
return "".concat(name, "=").concat(val);
|
|
1122
1143
|
})
|
|
1123
1144
|
.join(' ');
|
|
1124
|
-
// Update this.
|
|
1145
|
+
// Update this._id
|
|
1125
1146
|
if (key === 'id') {
|
|
1126
|
-
this.
|
|
1147
|
+
this._id = value;
|
|
1127
1148
|
}
|
|
1128
1149
|
return this;
|
|
1129
1150
|
};
|
|
@@ -1150,6 +1171,10 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
1150
1171
|
return "".concat(name, "=").concat(_this.quoteAttribute(String(val)));
|
|
1151
1172
|
})
|
|
1152
1173
|
.join(' ');
|
|
1174
|
+
// Update this._id
|
|
1175
|
+
if ('id' in attributes) {
|
|
1176
|
+
this._id = attributes['id'];
|
|
1177
|
+
}
|
|
1153
1178
|
return this;
|
|
1154
1179
|
};
|
|
1155
1180
|
HTMLElement.prototype.insertAdjacentHTML = function (where, html) {
|
|
@@ -1421,6 +1446,9 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
1421
1446
|
th: { tr: true, table: true, TR: true, TABLE: true },
|
|
1422
1447
|
TH: { tr: true, table: true, TR: true, TABLE: true },
|
|
1423
1448
|
};
|
|
1449
|
+
var kElementsClosedByClosingExcept = {
|
|
1450
|
+
p: { a: true, audio: true, del: true, ins: true, map: true, noscript: true, video: true },
|
|
1451
|
+
};
|
|
1424
1452
|
var frameflag = 'documentfragmentcontainer';
|
|
1425
1453
|
/**
|
|
1426
1454
|
* Parses HTML and returns a root element
|
|
@@ -1501,7 +1529,7 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
1501
1529
|
attrs[key.toLowerCase()] = isQuoted ? val.slice(1, val.length - 1) : val;
|
|
1502
1530
|
}
|
|
1503
1531
|
var parentTagName = currentParent.rawTagName;
|
|
1504
|
-
if (!closingSlash && kElementsClosedByOpening[parentTagName]) {
|
|
1532
|
+
if (!closingSlash && !options.preserveTagNesting && kElementsClosedByOpening[parentTagName]) {
|
|
1505
1533
|
if (kElementsClosedByOpening[parentTagName][tagName]) {
|
|
1506
1534
|
stack.pop();
|
|
1507
1535
|
currentParent = (0, back_1.default)(stack);
|
|
@@ -1566,6 +1594,42 @@ define("nodes/html", ["require", "exports", "css-select", "he", "back", "matcher
|
|
|
1566
1594
|
continue;
|
|
1567
1595
|
}
|
|
1568
1596
|
}
|
|
1597
|
+
var openTag = currentParent.rawTagName ?
|
|
1598
|
+
currentParent.rawTagName.toLowerCase() :
|
|
1599
|
+
'';
|
|
1600
|
+
if (kElementsClosedByClosingExcept[openTag]) {
|
|
1601
|
+
var closingTag = tagName.toLowerCase();
|
|
1602
|
+
if (stack.length > 1) {
|
|
1603
|
+
var possibleContainer = stack[stack.length - 2];
|
|
1604
|
+
if (possibleContainer &&
|
|
1605
|
+
possibleContainer.rawTagName &&
|
|
1606
|
+
possibleContainer.rawTagName.toLowerCase() === closingTag &&
|
|
1607
|
+
!kElementsClosedByClosingExcept[openTag][closingTag]) {
|
|
1608
|
+
// Update range end for closed tag
|
|
1609
|
+
currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];
|
|
1610
|
+
stack.pop();
|
|
1611
|
+
currentParent = (0, back_1.default)(stack);
|
|
1612
|
+
continue;
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
}
|
|
1616
|
+
if (options.closeAllByClosing === true) {
|
|
1617
|
+
// If tag was opened, close all nested tags
|
|
1618
|
+
var i = void 0;
|
|
1619
|
+
for (i = stack.length - 2; i >= 0; i--) {
|
|
1620
|
+
if (stack[i].rawTagName === tagName)
|
|
1621
|
+
break;
|
|
1622
|
+
}
|
|
1623
|
+
if (i >= 0) {
|
|
1624
|
+
while (stack.length > i) {
|
|
1625
|
+
// Update range end for closed tag
|
|
1626
|
+
currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];
|
|
1627
|
+
stack.pop();
|
|
1628
|
+
currentParent = (0, back_1.default)(stack);
|
|
1629
|
+
}
|
|
1630
|
+
continue;
|
|
1631
|
+
}
|
|
1632
|
+
}
|
|
1569
1633
|
// Use aggressive strategy to handle unmatching markups.
|
|
1570
1634
|
break;
|
|
1571
1635
|
}
|
|
@@ -43,8 +43,8 @@ export default class HTMLElement extends Node {
|
|
|
43
43
|
private _attrs;
|
|
44
44
|
private _rawAttrs;
|
|
45
45
|
private _parseOptions;
|
|
46
|
+
private _id;
|
|
46
47
|
rawTagName: string;
|
|
47
|
-
id: string;
|
|
48
48
|
classList: DOMTokenList;
|
|
49
49
|
/**
|
|
50
50
|
* Node Type declaration.
|
|
@@ -79,6 +79,8 @@ export default class HTMLElement extends Node {
|
|
|
79
79
|
set tagName(newname: string);
|
|
80
80
|
get localName(): string;
|
|
81
81
|
get isVoidElement(): boolean;
|
|
82
|
+
get id(): string;
|
|
83
|
+
set id(newid: string);
|
|
82
84
|
/**
|
|
83
85
|
* Get escpaed (as-it) text value of current node and its children.
|
|
84
86
|
* @return {string} text content
|
|
@@ -130,6 +132,12 @@ export default class HTMLElement extends Node {
|
|
|
130
132
|
* @return {(HTMLElement|null)} matching node
|
|
131
133
|
*/
|
|
132
134
|
querySelector(selector: string): HTMLElement | null;
|
|
135
|
+
/**
|
|
136
|
+
* Tests whether the node matches a given CSS selector.
|
|
137
|
+
* @param {string} selector Simplified CSS selector
|
|
138
|
+
* @return {boolean}
|
|
139
|
+
*/
|
|
140
|
+
matches(selector: string): boolean;
|
|
133
141
|
/**
|
|
134
142
|
* find elements by their tagName
|
|
135
143
|
* @param {string} tagName the tagName of the elements to select
|
|
@@ -231,6 +239,10 @@ export interface Options {
|
|
|
231
239
|
*/
|
|
232
240
|
fixNestedATags?: boolean;
|
|
233
241
|
parseNoneClosedTags?: boolean;
|
|
242
|
+
/**
|
|
243
|
+
* When true, preserves invalid HTML nesting (e.g., <p><p>bar</p></p>) instead of auto-closing tags
|
|
244
|
+
*/
|
|
245
|
+
preserveTagNesting?: boolean;
|
|
234
246
|
blockTextElements: {
|
|
235
247
|
[tag: string]: boolean;
|
|
236
248
|
};
|
|
@@ -244,6 +256,7 @@ export interface Options {
|
|
|
244
256
|
*/
|
|
245
257
|
closingSlash?: boolean;
|
|
246
258
|
};
|
|
259
|
+
closeAllByClosing?: boolean;
|
|
247
260
|
}
|
|
248
261
|
/**
|
|
249
262
|
* Parses HTML and returns a root element
|
|
@@ -126,7 +126,7 @@ class HTMLElement extends node_1.default {
|
|
|
126
126
|
this.nodeType = type_1.default.ELEMENT_NODE;
|
|
127
127
|
this.rawTagName = tagName;
|
|
128
128
|
this.rawAttrs = rawAttrs || '';
|
|
129
|
-
this.
|
|
129
|
+
this._id = keyAttrs.id || '';
|
|
130
130
|
this.childNodes = [];
|
|
131
131
|
this._parseOptions = _parseOptions;
|
|
132
132
|
this.classList = new DOMTokenList(keyAttrs.class ? keyAttrs.class.split(/\s+/) : [], (classList) => this.setAttribute('class', classList.toString()) // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
@@ -185,6 +185,12 @@ class HTMLElement extends node_1.default {
|
|
|
185
185
|
get isVoidElement() {
|
|
186
186
|
return this.voidTag.isVoidElement(this.localName);
|
|
187
187
|
}
|
|
188
|
+
get id() {
|
|
189
|
+
return this._id;
|
|
190
|
+
}
|
|
191
|
+
set id(newid) {
|
|
192
|
+
this.setAttribute('id', newid);
|
|
193
|
+
}
|
|
188
194
|
/**
|
|
189
195
|
* Get escpaed (as-it) text value of current node and its children.
|
|
190
196
|
* @return {string} text content
|
|
@@ -350,7 +356,7 @@ class HTMLElement extends node_1.default {
|
|
|
350
356
|
res.push(' '.repeat(indention) + str);
|
|
351
357
|
}
|
|
352
358
|
function dfs(node) {
|
|
353
|
-
const idStr = node.
|
|
359
|
+
const idStr = node._id ? `#${node._id}` : '';
|
|
354
360
|
const classStr = node.classList.length ? `.${node.classList.value.join('.')}` : ''; // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call
|
|
355
361
|
write(`${node.rawTagName}${idStr}${classStr}`);
|
|
356
362
|
indention++;
|
|
@@ -421,6 +427,17 @@ class HTMLElement extends node_1.default {
|
|
|
421
427
|
adapter: matcher_1.default,
|
|
422
428
|
});
|
|
423
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* Tests whether the node matches a given CSS selector.
|
|
432
|
+
* @param {string} selector Simplified CSS selector
|
|
433
|
+
* @return {boolean}
|
|
434
|
+
*/
|
|
435
|
+
matches(selector) {
|
|
436
|
+
return (0, css_select_1.is)(this, selector, {
|
|
437
|
+
xmlMode: true,
|
|
438
|
+
adapter: matcher_1.default,
|
|
439
|
+
});
|
|
440
|
+
}
|
|
424
441
|
/**
|
|
425
442
|
* find elements by their tagName
|
|
426
443
|
* @param {string} tagName the tagName of the elements to select
|
|
@@ -483,7 +500,7 @@ class HTMLElement extends node_1.default {
|
|
|
483
500
|
continue;
|
|
484
501
|
}
|
|
485
502
|
if (child.nodeType === type_1.default.ELEMENT_NODE) {
|
|
486
|
-
if (child.
|
|
503
|
+
if (child._id === id) {
|
|
487
504
|
return child;
|
|
488
505
|
}
|
|
489
506
|
// if children are existing push the current status to the stack and keep searching for elements in the level below
|
|
@@ -623,9 +640,9 @@ class HTMLElement extends node_1.default {
|
|
|
623
640
|
return `${name}=${val}`;
|
|
624
641
|
})
|
|
625
642
|
.join(' ');
|
|
626
|
-
// Update this.
|
|
643
|
+
// Update this._id
|
|
627
644
|
if (key === 'id') {
|
|
628
|
-
this.
|
|
645
|
+
this._id = '';
|
|
629
646
|
}
|
|
630
647
|
return this;
|
|
631
648
|
}
|
|
@@ -670,9 +687,9 @@ class HTMLElement extends node_1.default {
|
|
|
670
687
|
return `${name}=${val}`;
|
|
671
688
|
})
|
|
672
689
|
.join(' ');
|
|
673
|
-
// Update this.
|
|
690
|
+
// Update this._id
|
|
674
691
|
if (key === 'id') {
|
|
675
|
-
this.
|
|
692
|
+
this._id = value;
|
|
676
693
|
}
|
|
677
694
|
return this;
|
|
678
695
|
}
|
|
@@ -698,6 +715,10 @@ class HTMLElement extends node_1.default {
|
|
|
698
715
|
return `${name}=${this.quoteAttribute(String(val))}`;
|
|
699
716
|
})
|
|
700
717
|
.join(' ');
|
|
718
|
+
// Update this._id
|
|
719
|
+
if ('id' in attributes) {
|
|
720
|
+
this._id = attributes['id'];
|
|
721
|
+
}
|
|
701
722
|
return this;
|
|
702
723
|
}
|
|
703
724
|
insertAdjacentHTML(where, html) {
|
|
@@ -905,6 +926,9 @@ const kElementsClosedByClosing = {
|
|
|
905
926
|
th: { tr: true, table: true, TR: true, TABLE: true },
|
|
906
927
|
TH: { tr: true, table: true, TR: true, TABLE: true },
|
|
907
928
|
};
|
|
929
|
+
const kElementsClosedByClosingExcept = {
|
|
930
|
+
p: { a: true, audio: true, del: true, ins: true, map: true, noscript: true, video: true },
|
|
931
|
+
};
|
|
908
932
|
const frameflag = 'documentfragmentcontainer';
|
|
909
933
|
/**
|
|
910
934
|
* Parses HTML and returns a root element
|
|
@@ -984,7 +1008,7 @@ function base_parse(data, options = {}) {
|
|
|
984
1008
|
attrs[key.toLowerCase()] = isQuoted ? val.slice(1, val.length - 1) : val;
|
|
985
1009
|
}
|
|
986
1010
|
const parentTagName = currentParent.rawTagName;
|
|
987
|
-
if (!closingSlash && kElementsClosedByOpening[parentTagName]) {
|
|
1011
|
+
if (!closingSlash && !options.preserveTagNesting && kElementsClosedByOpening[parentTagName]) {
|
|
988
1012
|
if (kElementsClosedByOpening[parentTagName][tagName]) {
|
|
989
1013
|
stack.pop();
|
|
990
1014
|
currentParent = (0, back_1.default)(stack);
|
|
@@ -1049,6 +1073,42 @@ function base_parse(data, options = {}) {
|
|
|
1049
1073
|
continue;
|
|
1050
1074
|
}
|
|
1051
1075
|
}
|
|
1076
|
+
const openTag = currentParent.rawTagName ?
|
|
1077
|
+
currentParent.rawTagName.toLowerCase() :
|
|
1078
|
+
'';
|
|
1079
|
+
if (kElementsClosedByClosingExcept[openTag]) {
|
|
1080
|
+
const closingTag = tagName.toLowerCase();
|
|
1081
|
+
if (stack.length > 1) {
|
|
1082
|
+
const possibleContainer = stack[stack.length - 2];
|
|
1083
|
+
if (possibleContainer &&
|
|
1084
|
+
possibleContainer.rawTagName &&
|
|
1085
|
+
possibleContainer.rawTagName.toLowerCase() === closingTag &&
|
|
1086
|
+
!kElementsClosedByClosingExcept[openTag][closingTag]) {
|
|
1087
|
+
// Update range end for closed tag
|
|
1088
|
+
currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];
|
|
1089
|
+
stack.pop();
|
|
1090
|
+
currentParent = (0, back_1.default)(stack);
|
|
1091
|
+
continue;
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
if (options.closeAllByClosing === true) {
|
|
1096
|
+
// If tag was opened, close all nested tags
|
|
1097
|
+
let i;
|
|
1098
|
+
for (i = stack.length - 2; i >= 0; i--) {
|
|
1099
|
+
if (stack[i].rawTagName === tagName)
|
|
1100
|
+
break;
|
|
1101
|
+
}
|
|
1102
|
+
if (i >= 0) {
|
|
1103
|
+
while (stack.length > i) {
|
|
1104
|
+
// Update range end for closed tag
|
|
1105
|
+
currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];
|
|
1106
|
+
stack.pop();
|
|
1107
|
+
currentParent = (0, back_1.default)(stack);
|
|
1108
|
+
}
|
|
1109
|
+
continue;
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1052
1112
|
// Use aggressive strategy to handle unmatching markups.
|
|
1053
1113
|
break;
|
|
1054
1114
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-html-parser",
|
|
3
|
-
"version": "7.0
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "A very fast HTML parser, generating a simplified DOM, with basic element query support.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -87,7 +87,8 @@
|
|
|
87
87
|
"standard-version": "^9.5.0",
|
|
88
88
|
"travis-cov": "latest",
|
|
89
89
|
"ts-node": "^10.9.1",
|
|
90
|
-
"typescript": "latest"
|
|
90
|
+
"typescript": "latest",
|
|
91
|
+
"yarn": "^1.22.22"
|
|
91
92
|
},
|
|
92
93
|
"config": {
|
|
93
94
|
"blanket": {
|
package/package.json
CHANGED
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"publishConfig": {
|
|
113
113
|
"access": "public"
|
|
114
114
|
},
|
|
115
|
-
"version": "0.0.
|
|
115
|
+
"version": "0.0.67",
|
|
116
116
|
"jest": {
|
|
117
117
|
"coverageProvider": "v8",
|
|
118
118
|
"testMatch": [
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
"targets": {
|
|
166
166
|
"python": {
|
|
167
167
|
"distName": "cdk-vscode-server",
|
|
168
|
-
"module": "
|
|
168
|
+
"module": "cdk_vscode_server"
|
|
169
169
|
}
|
|
170
170
|
},
|
|
171
171
|
"tsc": {
|