@mavogel/cdk-vscode-server 0.0.65 → 0.0.66

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 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.11 (build e3d2007)",
4086
+ "jsiiVersion": "5.9.33 (build 8ebb533)",
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": "cdk-vscode-server"
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.65",
5058
- "fingerprint": "7vbIqLB8Ot4WaR5BJMRcdxC62yqLMBmLo5+GQVZqV0I="
5057
+ "version": "0.0.66",
5058
+ "fingerprint": "2m3lRN9OAX6gqVbnVlWcun4tv6f6ZBr2k5Rr1zemQI0="
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.65" };
86
+ IdleMonitor[_a] = { fqn: "@mavogel/cdk-vscode-server.IdleMonitor", version: "0.0.66" };
87
87
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lkbGUtbW9uaXRvci9pZGxlLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsNkNBQThDO0FBRzlDLHVEQUF3RDtBQUN4RCx1RUFBd0Y7QUFDeEYsaURBQXNEO0FBQ3RELHVEQUFtRjtBQUNuRixxQ0FBMEM7QUFDMUMsMkNBQXVDO0FBcUN2Qzs7R0FFRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBV3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ25ELE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7WUFDNUIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLCtDQUErQyxDQUFDLENBQUM7WUFDM0YsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixVQUFVLEVBQUUsR0FBRztZQUNmLFdBQVcsRUFBRTtnQkFDWCxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUN0QyxlQUFlLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjO2dCQUNsRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFO2dCQUN6RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzthQUM5RDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUMzQixJQUFJLHlCQUFlLENBQUM7WUFDbEIsT0FBTyxFQUFFO2dCQUNQLGdDQUFnQztnQkFDaEMsMEJBQTBCO2FBQzNCO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBRUYsd0ZBQXdGO1FBQ3hGLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDM0IsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCx1QkFBdUI7Z0JBQ3ZCLDRCQUE0QjthQUM3QjtZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQztRQUVGLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDM0IsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxtQkFBbUI7YUFDcEI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsZUFBZSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxhQUFhLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2FBQ3ZHO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFFRiwyREFBMkQ7UUFDM0QseUVBQXlFO1FBQ3pFLDZFQUE2RTtRQUM3RSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxpQkFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDakQsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUscURBQXFEO1NBQ3RFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksbUNBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFckUsdUJBQXVCO1FBQ3ZCLHlCQUFlLENBQUMsdUJBQXVCLENBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQ2I7WUFDRTtnQkFDRSxFQUFFLEVBQUUsbUJBQW1CO2dCQUN2QixNQUFNLEVBQUUsMkRBQTJEO2FBQ3BFO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsTUFBTSxFQUFFLGlEQUFpRDthQUMxRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLE1BQU0sRUFBRSwrQ0FBK0M7YUFDeEQ7U0FDRixFQUNELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQzs7QUE1Rkgsa0NBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElEaXN0cmlidXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBJSW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IFJ1bGUsIFNjaGVkdWxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBMYW1iZGFGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvblRhcmdldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUsIENvZGUsIEZ1bmN0aW9uIGFzIExhbWJkYUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBOYWdTdXBwcmVzc2lvbnMgfSBmcm9tICdjZGstbmFnJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBJZGxlTW9uaXRvciBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJZGxlTW9uaXRvclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBFQzIgaW5zdGFuY2UgdG8gbW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2U6IElJbnN0YW5jZTtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byBtb25pdG9yIGZvciBhY3Rpdml0eVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBJRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogTnVtYmVyIG9mIG1pbnV0ZXMgb2YgaW5hY3Rpdml0eSBiZWZvcmUgc3RvcHBpbmcgdGhlIGluc3RhbmNlXG4gICAqL1xuICByZWFkb25seSBpZGxlVGltZW91dE1pbnV0ZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyBvZnRlbiB0byBjaGVjayBmb3IgaWRsZSBhY3Rpdml0eSAoaW4gbWludXRlcylcbiAgICogQGRlZmF1bHQgNSAtIENoZWNrIGV2ZXJ5IDUgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tJbnRlcnZhbE1pbnV0ZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTa2lwIGluc3RhbmNlIHN0YXR1cyBjaGVja3MgYmVmb3JlIHN0b3BwaW5nXG4gICAqIFdoZW4gdHJ1ZSwgSWRsZU1vbml0b3Igd2lsbCBzdG9wIGlkbGUgaW5zdGFuY2VzIGV2ZW4gaWYgc3RhdHVzIGNoZWNrcyBoYXZlbid0IHBhc3NlZFxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgaW50ZWdyYXRpb24gdGVzdHMgd2hlcmUgc3RhdHVzIGNoZWNrIGluaXRpYWxpemF0aW9uIHRpbWVcbiAgICogZXhjZWVkcyB0ZXN0IHRpbWVvdXQgbGltaXRzXG4gICAqXG4gICAqIFdBUk5JTkc6IEZvciB0ZXN0aW5nIG9ubHkgLSBpbiBwcm9kdWN0aW9uLCB5b3Ugc2hvdWxkIHdhaXQgZm9yIHN0YXR1cyBjaGVja3NcbiAgICogdG8gcGFzcyBiZWZvcmUgc3RvcHBpbmcgaW5zdGFuY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwU3RhdHVzQ2hlY2tzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdGhhdCBtb25pdG9ycyBDbG91ZEZyb250IHJlcXVlc3QgbWV0cmljcyBhbmQgc3RvcHMgdGhlIEVDMiBpbnN0YW5jZSB3aGVuIGlkbGVcbiAqL1xuZXhwb3J0IGNsYXNzIElkbGVNb25pdG9yIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBpZGxlIG1vbml0b3JpbmdcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbjogTGFtYmRhRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBFdmVudEJyaWRnZSBydWxlIHRoYXQgdHJpZ2dlcnMgaWRsZSBtb25pdG9yaW5nIGNoZWNrc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlUnVsZTogUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSWRsZU1vbml0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vYXNzZXRzL2lkbGUtbW9uaXRvci9pZGxlLW1vbml0b3IubGFtYmRhJykpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBtZW1vcnlTaXplOiAyNTYsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBJTlNUQU5DRV9JRDogcHJvcHMuaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgRElTVFJJQlVUSU9OX0lEOiBwcm9wcy5kaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uSWQsXG4gICAgICAgIElETEVfVElNRU9VVF9NSU5VVEVTOiBwcm9wcy5pZGxlVGltZW91dE1pbnV0ZXMudG9TdHJpbmcoKSxcbiAgICAgICAgU0tJUF9TVEFUVVNfQ0hFQ0tTOiBwcm9wcy5za2lwU3RhdHVzQ2hlY2tzID8gJ3RydWUnIDogJ2ZhbHNlJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2Nsb3Vkd2F0Y2g6R2V0TWV0cmljU3RhdGlzdGljcycsXG4gICAgICAgICAgJ2Nsb3Vkd2F0Y2g6R2V0TWV0cmljRGF0YScsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gRGVzY3JpYmVJbnN0YW5jZXMgYW5kIERlc2NyaWJlSW5zdGFuY2VTdGF0dXMgZG9uJ3Qgc3VwcG9ydCByZXNvdXJjZS1sZXZlbCBwZXJtaXNzaW9uc1xuICAgIC8vIFRoZXkgcmVxdWlyZSB3aWxkY2FyZCByZXNvdXJjZXNcbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlcycsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlU3RhdHVzJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBTdG9wSW5zdGFuY2VzIHN1cHBvcnRzIHJlc291cmNlLWxldmVsIHBlcm1pc3Npb25zLCBzbyB3ZSBjYW4gcmVzdHJpY3QgaXRcbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjMjpTdG9wSW5zdGFuY2VzJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgYGFybjphd3M6ZWMyOiR7U3RhY2sub2YodGhpcykucmVnaW9ufToke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9Omluc3RhbmNlLyR7cHJvcHMuaW5zdGFuY2UuaW5zdGFuY2VJZH1gLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBFdmVudEJyaWRnZSBydWxlIHRvIHRyaWdnZXIgYXQgc3BlY2lmaWVkIGludGVydmFsXG4gICAgLy8gTk9URTogUnVsZSBpcyBjcmVhdGVkIGluIERJU0FCTEVEIHN0YXRlIGFuZCBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZFxuICAgIC8vIGFmdGVyIGluc3RhbGxhdGlvbiBjb21wbGV0ZXMgdG8gcHJldmVudCBzdG9wcGluZyB0aGUgaW5zdGFuY2UgZHVyaW5nIHNldHVwXG4gICAgY29uc3QgY2hlY2tJbnRlcnZhbCA9IHByb3BzLmNoZWNrSW50ZXJ2YWxNaW51dGVzID8/IDU7XG4gICAgdGhpcy5zY2hlZHVsZVJ1bGUgPSBuZXcgUnVsZSh0aGlzLCAnU2NoZWR1bGVSdWxlJywge1xuICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLnJhdGUoRHVyYXRpb24ubWludXRlcyhjaGVja0ludGVydmFsKSksXG4gICAgICBlbmFibGVkOiBmYWxzZSwgLy8gU3RhcnQgZGlzYWJsZWQsIHdpbGwgYmUgZW5hYmxlZCBhZnRlciBpbnN0YWxsYXRpb25cbiAgICB9KTtcblxuICAgIHRoaXMuc2NoZWR1bGVSdWxlLmFkZFRhcmdldChuZXcgTGFtYmRhRnVuY3Rpb25UYXJnZXQodGhpcy5mdW5jdGlvbikpO1xuXG4gICAgLy8gQ0RLLW5hZyBzdXBwcmVzc2lvbnNcbiAgICBOYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoXG4gICAgICB0aGlzLmZ1bmN0aW9uLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNCcsXG4gICAgICAgICAgcmVhc29uOiAnTWFuYWdlZCBwb2xpY2llcyBhY2NlcHRhYmxlIGZvciB3b3Jrc2hvcCBMYW1iZGEgZnVuY3Rpb25zJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgICAgICAgIHJlYXNvbjogJ0Nsb3VkV2F0Y2ggbWV0cmljcyByZXF1aXJlIHdpbGRjYXJkIHBlcm1pc3Npb25zJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUwxJyxcbiAgICAgICAgICByZWFzb246ICdMYXRlc3QgcnVudGltZSBub3QgcmVxdWlyZWQgZm9yIHRoaXMgZnVuY3Rpb24nLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRydWUsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -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.65" };
651
+ VSCodeServer[_a] = { fqn: "@mavogel/cdk-vscode-server.VSCodeServer", version: "0.0.66" };
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. `undefined` if the node has no children.
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. `undefined` if the node has no children.
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.id = keyAttrs.id || '';
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.id ? "#".concat(node.id) : '';
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.id === id) {
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.id
1097
+ // Update this._id
1077
1098
  if (key === 'id') {
1078
- this.id = '';
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.id
1145
+ // Update this._id
1125
1146
  if (key === 'id') {
1126
- this.id = value;
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.id = keyAttrs.id || '';
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.id ? `#${node.id}` : '';
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.id === id) {
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.id
643
+ // Update this._id
627
644
  if (key === 'id') {
628
- this.id = '';
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.id
690
+ // Update this._id
674
691
  if (key === 'id') {
675
- this.id = value;
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.1",
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.65",
115
+ "version": "0.0.66",
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": "cdk-vscode-server"
168
+ "module": "cdk_vscode_server"
169
169
  }
170
170
  },
171
171
  "tsc": {