@codeperfect/eslint-config 1.1.0 → 1.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/dist/.tsbuildinfo +1 -1
- package/dist/architecture/import-x.d.ts.map +1 -1
- package/dist/architecture/import-x.js +2 -1
- package/dist/codeperfect-eslint-config-1.0.0.tgz +0 -0
- package/dist/config-composition.d.ts +2 -2
- package/dist/config-composition.d.ts.map +1 -1
- package/dist/config-composition.js +3 -1
- package/dist/config-factory.d.ts +14 -0
- package/dist/config-factory.d.ts.map +1 -0
- package/dist/config-factory.js +42 -0
- package/dist/configs/index.d.ts +1 -1
- package/dist/configs/index.d.ts.map +1 -1
- package/dist/configs/index.js +2 -2
- package/dist/core/codeperfect.d.ts +11 -0
- package/dist/core/codeperfect.d.ts.map +1 -0
- package/dist/core/codeperfect.js +14 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/docs/jsdoc.d.ts +3 -1
- package/dist/docs/jsdoc.d.ts.map +1 -1
- package/dist/docs/jsdoc.js +23 -19
- package/dist/index.d.ts +1 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -42
- package/dist/module-taxonomy.d.ts +3 -0
- package/dist/module-taxonomy.d.ts.map +1 -1
- package/dist/module-taxonomy.js +2 -1
- package/dist/plugin-loaders.d.ts +5 -0
- package/dist/plugin-loaders.d.ts.map +1 -1
- package/dist/plugin-loaders.js +7 -2
- package/dist/style/perfectionist.d.ts.map +1 -1
- package/dist/style/perfectionist.js +16 -2
- package/dist/style/stylistic.d.ts.map +1 -1
- package/dist/style/stylistic.js +4 -2
- package/dist/testing/vitest.d.ts.map +1 -1
- package/dist/testing/vitest.js +2 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +42 -41
- package/dist/docs/jsdoc-examples.d.ts +0 -56
- package/dist/docs/jsdoc-examples.d.ts.map +0 -1
- package/dist/docs/jsdoc-examples.js +0 -186
- package/dist/docs/jsdoc-processor.d.ts +0 -63
- package/dist/docs/jsdoc-processor.d.ts.map +0 -1
- package/dist/docs/jsdoc-processor.js +0 -112
package/dist/plugin-loaders.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { boundaries, comments, eslint, importX, jasmine, jest, jsdoc, perfectionist, playwright, prettier, resolver, rxjsX, stylistic, typescript, unicorn, vitest, } from "./configs";
|
|
1
|
+
import { boundaries, codeperfect, comments, eslint, importX, jasmine, jest, jsdoc, perfectionist, playwright, prettier, resolver, rxjsX, stylistic, typescript, unicorn, vitest, } from "./configs";
|
|
2
2
|
/**
|
|
3
3
|
* Creates the boundaries loader factory for repository-owned architecture input.
|
|
4
4
|
* @param options Input options value.
|
|
@@ -30,6 +30,11 @@ const pluginLoaders = {
|
|
|
30
30
|
mode: "optional",
|
|
31
31
|
pluginName: "boundaries",
|
|
32
32
|
},
|
|
33
|
+
codeperfect: {
|
|
34
|
+
loader: createStaticLoaderFactory(codeperfect),
|
|
35
|
+
mode: "required",
|
|
36
|
+
pluginName: "codeperfect",
|
|
37
|
+
},
|
|
33
38
|
comments: {
|
|
34
39
|
loader: createStaticLoaderFactory(comments),
|
|
35
40
|
mode: "optional",
|
|
@@ -107,4 +112,4 @@ const pluginLoaders = {
|
|
|
107
112
|
},
|
|
108
113
|
};
|
|
109
114
|
export { pluginLoaders };
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGx1Z2luLWxvYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUksRUFDSixLQUFLLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLEdBQ1AsTUFBTSxXQUFXLENBQUM7QUFpQm5COzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FBQyxPQUFzQjtJQUMzRCxPQUFPLEdBQW9CLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMseUJBQXlCLENBQ2hDLE1BQW9CO0lBRXBCLE9BQU8sR0FBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUNwQyxDQUFDO0FBRUQscUVBQXFFO0FBQ3JFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSw2QkFBNkI7UUFDckMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFlBQVk7S0FDekI7SUFDRCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDO1FBQzlDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxhQUFhO0tBQzFCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsVUFBVTtLQUN2QjtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUM7UUFDekMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFFBQVE7S0FDckI7SUFDRCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxVQUFVO0tBQ3ZCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsU0FBUztLQUN0QjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7UUFDdkMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLE1BQU07S0FDbkI7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUseUJBQXlCLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxPQUFPO0tBQ3BCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLHlCQUF5QixDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsZUFBZTtLQUM1QjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxVQUFVLENBQUM7UUFDN0MsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFlBQVk7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUseUJBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzNDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxVQUFVO0tBQ3ZCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsVUFBVTtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFFBQVE7S0FDckI7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUseUJBQXlCLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxXQUFXO0tBQ3hCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsWUFBWTtLQUN6QjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7UUFDMUMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFNBQVM7S0FDdEI7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUseUJBQXlCLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCO0NBQzhDLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgQ29uZmlnT3B0aW9ucywgUGx1Z2luTmFtZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IExvYWRNb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7XG4gIGJvdW5kYXJpZXMsXG4gIGNvZGVwZXJmZWN0LFxuICBjb21tZW50cyxcbiAgZXNsaW50LFxuICBpbXBvcnRYLFxuICBqYXNtaW5lLFxuICBqZXN0LFxuICBqc2RvYyxcbiAgcGVyZmVjdGlvbmlzdCxcbiAgcGxheXdyaWdodCxcbiAgcHJldHRpZXIsXG4gIHJlc29sdmVyLFxuICByeGpzWCxcbiAgc3R5bGlzdGljLFxuICB0eXBlc2NyaXB0LFxuICB1bmljb3JuLFxuICB2aXRlc3QsXG59IGZyb20gXCIuL2NvbmZpZ3NcIjtcblxuLyoqIExvYWRlciBmdW5jdGlvbiBmb3IgYSBzaW5nbGUgY29uZmlnIG1vZHVsZS4gKi9cbnR5cGUgQ29uZmlnTG9hZGVyID0gKCkgPT4gTGludGVyLkNvbmZpZ1tdIHwgUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+O1xuXG4vKiogRW50cnkgZGVzY3JpYmluZyBhIHNpbmdsZSBjb25maWcgbG9hZGVyIGluIHRoZSBmaW5hbCBjb21wb3NpdGlvbiBvcmRlci4gKi9cbmludGVyZmFjZSBQbHVnaW5Mb2FkZXJFbnRyeSB7XG4gIC8qKiBMb2FkZXIgZmFjdG9yeSBmb3IgdGhlIG1vZHVsZS4gKi9cbiAgbG9hZGVyOiAob3B0aW9uczogQ29uZmlnT3B0aW9ucykgPT4gQ29uZmlnTG9hZGVyO1xuXG4gIC8qKiBSdW50aW1lIGxvYWRpbmcgbW9kZSBmb3IgdGhlIG1vZHVsZS4gKi9cbiAgbW9kZTogTG9hZE1vZGU7XG5cbiAgLyoqIFB1YmxpYyBtb2R1bGUgbmFtZSB1c2VkIGluIGNvbmZpZyBvcHRpb25zIGFuZCBkaWFnbm9zdGljcy4gKi9cbiAgcGx1Z2luTmFtZTogUGx1Z2luTmFtZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBib3VuZGFyaWVzIGxvYWRlciBmYWN0b3J5IGZvciByZXBvc2l0b3J5LW93bmVkIGFyY2hpdGVjdHVyZSBpbnB1dC5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZhY3RvcnkgPSBjcmVhdGVCb3VuZGFyaWVzTG9hZGVyRmFjdG9yeSh7fSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQm91bmRhcmllc0xvYWRlckZhY3Rvcnkob3B0aW9uczogQ29uZmlnT3B0aW9ucyk6IENvbmZpZ0xvYWRlciB7XG4gIHJldHVybiAoKTogTGludGVyLkNvbmZpZ1tdID0+IGJvdW5kYXJpZXMob3B0aW9ucy5ib3VuZGFyaWVzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbG9hZGVyIGZhY3RvcnkgZm9yIG1vZHVsZXMgdGhhdCBkbyBub3QgZGVwZW5kIG9uIGNvbmZpZyBvcHRpb25zLlxuICogQHBhcmFtIGxvYWRlciBJbnB1dCBsb2FkZXIgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZhY3RvcnkgPSBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGVzbGludCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShcbiAgbG9hZGVyOiBDb25maWdMb2FkZXIsXG4pOiBQbHVnaW5Mb2FkZXJFbnRyeVtcImxvYWRlclwiXSB7XG4gIHJldHVybiAoKTogQ29uZmlnTG9hZGVyID0+IGxvYWRlcjtcbn1cblxuLyoqIERvY3VtZW50ZWQgY29uZmlnIGxvYWRlciByZWdpc3RyeSBrZXllZCBieSBwdWJsaWMgbW9kdWxlIG5hbWUuICovXG5jb25zdCBwbHVnaW5Mb2FkZXJzID0ge1xuICBib3VuZGFyaWVzOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVCb3VuZGFyaWVzTG9hZGVyRmFjdG9yeSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJib3VuZGFyaWVzXCIsXG4gIH0sXG4gIGNvZGVwZXJmZWN0OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGNvZGVwZXJmZWN0KSxcbiAgICBtb2RlOiBcInJlcXVpcmVkXCIsXG4gICAgcGx1Z2luTmFtZTogXCJjb2RlcGVyZmVjdFwiLFxuICB9LFxuICBjb21tZW50czoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShjb21tZW50cyksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwiY29tbWVudHNcIixcbiAgfSxcbiAgZXNsaW50OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGVzbGludCksXG4gICAgbW9kZTogXCJyZXF1aXJlZFwiLFxuICAgIHBsdWdpbk5hbWU6IFwiZXNsaW50XCIsXG4gIH0sXG4gIFwiaW1wb3J0LXhcIjoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShpbXBvcnRYKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJpbXBvcnQteFwiLFxuICB9LFxuICBqYXNtaW5lOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGphc21pbmUpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcImphc21pbmVcIixcbiAgfSxcbiAgamVzdDoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShqZXN0KSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJqZXN0XCIsXG4gIH0sXG4gIGpzZG9jOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGpzZG9jKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJqc2RvY1wiLFxuICB9LFxuICBwZXJmZWN0aW9uaXN0OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHBlcmZlY3Rpb25pc3QpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcInBlcmZlY3Rpb25pc3RcIixcbiAgfSxcbiAgcGxheXdyaWdodDoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShwbGF5d3JpZ2h0KSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJwbGF5d3JpZ2h0XCIsXG4gIH0sXG4gIHByZXR0aWVyOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHByZXR0aWVyKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJwcmV0dGllclwiLFxuICB9LFxuICByZXNvbHZlcjoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShyZXNvbHZlciksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwicmVzb2x2ZXJcIixcbiAgfSxcbiAgXCJyeGpzLXhcIjoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShyeGpzWCksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwicnhqcy14XCIsXG4gIH0sXG4gIHN0eWxpc3RpYzoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeShzdHlsaXN0aWMpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcInN0eWxpc3RpY1wiLFxuICB9LFxuICB0eXBlc2NyaXB0OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHR5cGVzY3JpcHQpLFxuICAgIG1vZGU6IFwicmVxdWlyZWRcIixcbiAgICBwbHVnaW5OYW1lOiBcInR5cGVzY3JpcHRcIixcbiAgfSxcbiAgdW5pY29ybjoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeSh1bmljb3JuKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJ1bmljb3JuXCIsXG4gIH0sXG4gIHZpdGVzdDoge1xuICAgIGxvYWRlcjogY3JlYXRlU3RhdGljTG9hZGVyRmFjdG9yeSh2aXRlc3QpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcInZpdGVzdFwiLFxuICB9LFxufSBzYXRpc2ZpZXMgUmVjb3JkPFBsdWdpbk5hbWUsIFBsdWdpbkxvYWRlckVudHJ5PjtcblxuZXhwb3J0IHsgcGx1Z2luTG9hZGVycyB9O1xuZXhwb3J0IHR5cGUgeyBDb25maWdMb2FkZXIsIFBsdWdpbkxvYWRlckVudHJ5IH07XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perfectionist.d.ts","sourceRoot":"","sources":["../../src/style/perfectionist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"perfectionist.d.ts","sourceRoot":"","sources":["../../src/style/perfectionist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAYrC;;;;;;;GAOG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAoB9D"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { defineConfig } from "eslint/config";
|
|
2
|
+
/** Generated example and default-expression snippets emitted by the JSDoc processor. */
|
|
3
|
+
const generatedSnippetFiles = [
|
|
4
|
+
"**/*.md/*.js",
|
|
5
|
+
"**/*.jsdoc-defaults",
|
|
6
|
+
"**/*.jsdoc-params",
|
|
7
|
+
"**/*.jsdoc-properties",
|
|
8
|
+
];
|
|
2
9
|
/**
|
|
3
10
|
* Build and return the Perfectionist plugin configuration and any overrides.
|
|
4
11
|
* @returns Return value output.
|
|
@@ -9,9 +16,16 @@ import { defineConfig } from "eslint/config";
|
|
|
9
16
|
*/
|
|
10
17
|
export async function perfectionist() {
|
|
11
18
|
const { configs } = await import("eslint-plugin-perfectionist");
|
|
19
|
+
const generatedSnippetRules = Object.fromEntries(Object.keys(configs["recommended-natural"].rules ?? {})
|
|
20
|
+
.filter((ruleName) => ruleName.startsWith("perfectionist/"))
|
|
21
|
+
.map((ruleName) => [ruleName, "off"]));
|
|
12
22
|
return defineConfig(configs["recommended-natural"], {
|
|
13
|
-
name: "To avoid
|
|
23
|
+
name: "To avoid conflicts",
|
|
14
24
|
rules: { "sort-keys": "off" },
|
|
25
|
+
}, {
|
|
26
|
+
files: generatedSnippetFiles,
|
|
27
|
+
name: "perfectionist/generated-snippets",
|
|
28
|
+
rules: generatedSnippetRules,
|
|
15
29
|
});
|
|
16
30
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZmVjdGlvbmlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZS9wZXJmZWN0aW9uaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0Msd0ZBQXdGO0FBQ3hGLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsY0FBYztJQUNkLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1NBQ3BELE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFVLENBQUMsQ0FDakQsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUNqQixPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDOUI7UUFDRSxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7S0FDOUIsRUFDRDtRQUNFLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxLQUFLLEVBQUUscUJBQXFCO0tBQzdCLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqIEdlbmVyYXRlZCBleGFtcGxlIGFuZCBkZWZhdWx0LWV4cHJlc3Npb24gc25pcHBldHMgZW1pdHRlZCBieSB0aGUgSlNEb2MgcHJvY2Vzc29yLiAqL1xuY29uc3QgZ2VuZXJhdGVkU25pcHBldEZpbGVzID0gW1xuICBcIioqLyoubWQvKi5qc1wiLFxuICBcIioqLyouanNkb2MtZGVmYXVsdHNcIixcbiAgXCIqKi8qLmpzZG9jLXBhcmFtc1wiLFxuICBcIioqLyouanNkb2MtcHJvcGVydGllc1wiLFxuXTtcblxuLyoqXG4gKiBCdWlsZCBhbmQgcmV0dXJuIHRoZSBQZXJmZWN0aW9uaXN0IHBsdWdpbiBjb25maWd1cmF0aW9uIGFuZCBhbnkgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBwZXJmZWN0aW9uaXN0KCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBlcmZlY3Rpb25pc3QoKTogUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+IHtcbiAgY29uc3QgeyBjb25maWdzIH0gPSBhd2FpdCBpbXBvcnQoXCJlc2xpbnQtcGx1Z2luLXBlcmZlY3Rpb25pc3RcIik7XG4gIGNvbnN0IGdlbmVyYXRlZFNuaXBwZXRSdWxlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3Qua2V5cyhjb25maWdzW1wicmVjb21tZW5kZWQtbmF0dXJhbFwiXS5ydWxlcyA/PyB7fSlcbiAgICAgIC5maWx0ZXIoKHJ1bGVOYW1lKSA9PiBydWxlTmFtZS5zdGFydHNXaXRoKFwicGVyZmVjdGlvbmlzdC9cIikpXG4gICAgICAubWFwKChydWxlTmFtZSkgPT4gW3J1bGVOYW1lLCBcIm9mZlwiXSBhcyBjb25zdCksXG4gICk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcbiAgICBjb25maWdzW1wicmVjb21tZW5kZWQtbmF0dXJhbFwiXSxcbiAgICB7XG4gICAgICBuYW1lOiBcIlRvIGF2b2lkIGNvbmZsaWN0c1wiLFxuICAgICAgcnVsZXM6IHsgXCJzb3J0LWtleXNcIjogXCJvZmZcIiB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IGdlbmVyYXRlZFNuaXBwZXRGaWxlcyxcbiAgICAgIG5hbWU6IFwicGVyZmVjdGlvbmlzdC9nZW5lcmF0ZWQtc25pcHBldHNcIixcbiAgICAgIHJ1bGVzOiBnZW5lcmF0ZWRTbmlwcGV0UnVsZXMsXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stylistic.d.ts","sourceRoot":"","sources":["../../src/style/stylistic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"stylistic.d.ts","sourceRoot":"","sources":["../../src/style/stylistic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAO1D"}
|
package/dist/style/stylistic.js
CHANGED
|
@@ -10,6 +10,8 @@ import { defineConfig } from "eslint/config";
|
|
|
10
10
|
export async function stylistic() {
|
|
11
11
|
const stylisticModule = await import("@stylistic/eslint-plugin");
|
|
12
12
|
const { default: plugin } = stylisticModule;
|
|
13
|
-
return defineConfig(plugin.configs.all
|
|
13
|
+
return defineConfig(plugin.configs.all, {
|
|
14
|
+
rules: { "@stylistic/multiline-comment-style": "off" },
|
|
15
|
+
});
|
|
14
16
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGlzdGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0eWxlL3N0eWxpc3RpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVM7SUFDN0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNqRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLGVBQWUsQ0FBQztJQUU1QyxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QyxLQUFLLEVBQUUsRUFBRSxvQ0FBb0MsRUFBRSxLQUFLLEVBQUU7S0FDdkQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIFJldHVybiB0aGUgc3R5bGlzdGljIHBsdWdpbiBjb25maWd1cmF0aW9uIGFuZCBpdHMgcmVjb21tZW5kZWQgc2V0dGluZ3MuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IHN0eWxpc3RpYygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdHlsaXN0aWMoKTogUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+IHtcbiAgY29uc3Qgc3R5bGlzdGljTW9kdWxlID0gYXdhaXQgaW1wb3J0KFwiQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luXCIpO1xuICBjb25zdCB7IGRlZmF1bHQ6IHBsdWdpbiB9ID0gc3R5bGlzdGljTW9kdWxlO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcocGx1Z2luLmNvbmZpZ3MuYWxsLCB7XG4gICAgcnVsZXM6IHsgXCJAc3R5bGlzdGljL211bHRpbGluZS1jb21tZW50LXN0eWxlXCI6IFwib2ZmXCIgfSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAsCvD"}
|
package/dist/testing/vitest.js
CHANGED
|
@@ -26,7 +26,8 @@ export async function vitest() {
|
|
|
26
26
|
"vitest/no-hooks": "off",
|
|
27
27
|
"vitest/prefer-expect-assertions": "off",
|
|
28
28
|
"vitest/require-mock-type-parameters": "off",
|
|
29
|
+
"vitest/unbound-method": "off",
|
|
29
30
|
},
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Rpbmcvdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTTtJQUMxQixNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzNELE1BQU0sTUFBTSxHQUNWLFlBVUQsQ0FBQyxPQUFPLENBQUM7SUFDVixNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQztJQUV2QyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sWUFBWSxDQUNqQixFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQzdDO1FBQ0UsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3BCLEtBQUssRUFBRSxDQUFDLHFCQUFxQixDQUFDO1FBQzlCLElBQUksRUFBRSxlQUFlO1FBQ3JCLEtBQUssRUFBRTtZQUNMLGlDQUFpQyxFQUFFO2dCQUNqQyxPQUFPO2dCQUNQLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUEsb0JBQW9CLEVBQUU7YUFDNUM7WUFDRCxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGlDQUFpQyxFQUFFLEtBQUs7WUFDeEMscUNBQXFDLEVBQUUsS0FBSztZQUM1Qyx1QkFBdUIsRUFBRSxLQUFLO1NBQy9CO0tBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIExvYWQgVml0ZXN0IHBsdWdpbiBjb25maWd1cmF0aW9uIHdoZW4gYXZhaWxhYmxlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCB2aXRlc3QoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdml0ZXN0KCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHZpdGVzdE1vZHVsZSA9IGF3YWl0IGltcG9ydChcIkB2aXRlc3QvZXNsaW50LXBsdWdpblwiKTtcbiAgY29uc3QgcGx1Z2luID0gKFxuICAgIHZpdGVzdE1vZHVsZSBhcyB7XG4gICAgICAvKiogRGVmYXVsdCBoZWxwZXIgdmFsdWUuICovXG4gICAgICBkZWZhdWx0Pzoge1xuICAgICAgICAvKiogQ29uZmlncyBoZWxwZXIgdmFsdWUuICovXG4gICAgICAgIGNvbmZpZ3M/OiB7XG4gICAgICAgICAgLyoqIEFsbCBoZWxwZXIgdmFsdWUuICovXG4gICAgICAgICAgYWxsPzogTGludGVyLkNvbmZpZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfVxuICApLmRlZmF1bHQ7XG4gIGNvbnN0IGFsbENvbmZpZyA9IHBsdWdpbj8uY29uZmlncz8uYWxsO1xuXG4gIGlmIChhbGxDb25maWcgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgeyBzZXR0aW5nczogeyB2aXRlc3Q6IHsgdHlwZWNoZWNrOiB0cnVlIH0gfSB9LFxuICAgIHtcbiAgICAgIGV4dGVuZHM6IFthbGxDb25maWddLFxuICAgICAgZmlsZXM6IFtcIioqLyoue3NwZWMsdGVzdH0udHNcIl0sXG4gICAgICBuYW1lOiBcInZpdGVzdC9jdXN0b21cIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwidml0ZXN0L2NvbnNpc3RlbnQtdGVzdC1maWxlbmFtZVwiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIHsgcGF0dGVybjogU3RyaW5nLnJhd2AuKlxcLnNwZWNcXC5bdGpdc3g/JGAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgXCJ2aXRlc3Qvbm8taG9va3NcIjogXCJvZmZcIixcbiAgICAgICAgXCJ2aXRlc3QvcHJlZmVyLWV4cGVjdC1hc3NlcnRpb25zXCI6IFwib2ZmXCIsXG4gICAgICAgIFwidml0ZXN0L3JlcXVpcmUtbW9jay10eXBlLXBhcmFtZXRlcnNcIjogXCJvZmZcIixcbiAgICAgICAgXCJ2aXRlc3QvdW5ib3VuZC1tZXRob2RcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Linter } from "eslint";
|
|
2
|
-
import type {
|
|
2
|
+
import type { DependenciesRuleOptions, ElementDescriptors } from "eslint-plugin-boundaries";
|
|
3
3
|
/** Type definition for rule data. */
|
|
4
4
|
type ArchitecturePluginName = "boundaries" | "import-x";
|
|
5
5
|
/** Type definition for rule data. */
|
|
@@ -7,7 +7,7 @@ interface BoundariesConfig {
|
|
|
7
7
|
/** Repository-owned element descriptors for boundaries analysis. */
|
|
8
8
|
elements: ElementDescriptors;
|
|
9
9
|
/** Repository-owned dependency direction rules for boundaries analysis. */
|
|
10
|
-
elementTypes: Linter.RuleEntry<
|
|
10
|
+
elementTypes: Linter.RuleEntry<DependenciesRuleOptions[]>;
|
|
11
11
|
/** Files included in repository-specific boundaries analysis. */
|
|
12
12
|
files: readonly string[];
|
|
13
13
|
/** Optional ignore globs excluded from repository-specific boundaries analysis. */
|
|
@@ -26,7 +26,7 @@ interface ConfigOptions {
|
|
|
26
26
|
rules?: Linter.RulesRecord;
|
|
27
27
|
}
|
|
28
28
|
/** Type definition for rule data. */
|
|
29
|
-
type CorePluginName = "eslint" | "resolver" | "typescript";
|
|
29
|
+
type CorePluginName = "codeperfect" | "eslint" | "resolver" | "typescript";
|
|
30
30
|
/** Type definition for rule data. */
|
|
31
31
|
type DocumentationPluginName = "comments" | "jsdoc";
|
|
32
32
|
/** Type definition for rule data. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,qCAAqC;AACrC,KAAK,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,qCAAqC;AACrC,UAAU,gBAAgB;IACxB,oEAAoE;IACpE,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,2EAA2E;IAE3E,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAE1D,iEAAiE;IACjE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzB,mFAAmF;IACnF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,qCAAqC;AACrC,UAAU,aAAa;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,wEAAwE;IACxE,eAAe,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAExC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC5B;AAED,qCAAqC;AACrC,KAAK,cAAc,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,qCAAqC;AACrC,KAAK,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,qCAAqC;AACrC,KAAK,gBAAgB,GAAG,QAAQ,CAAC;AAEjC,qCAAqC;AACrC,KAAK,UAAU,GACX,sBAAsB,GACtB,cAAc,GACd,uBAAuB,GACvB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,CAAC;AAEtB,qCAAqC;AACrC,KAAK,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9E,qCAAqC;AACrC,KAAK,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEtE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUge1xuICBEZXBlbmRlbmNpZXNSdWxlT3B0aW9ucyxcbiAgRWxlbWVudERlc2NyaXB0b3JzLFxufSBmcm9tIFwiZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgQXJjaGl0ZWN0dXJlUGx1Z2luTmFtZSA9IFwiYm91bmRhcmllc1wiIHwgXCJpbXBvcnQteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQm91bmRhcmllc0NvbmZpZyB7XG4gIC8qKiBSZXBvc2l0b3J5LW93bmVkIGVsZW1lbnQgZGVzY3JpcHRvcnMgZm9yIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIGVsZW1lbnRzOiBFbGVtZW50RGVzY3JpcHRvcnM7XG5cbiAgLyoqIFJlcG9zaXRvcnktb3duZWQgZGVwZW5kZW5jeSBkaXJlY3Rpb24gcnVsZXMgZm9yIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHMgLS0tIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBjb3JyZWN0IHR5cGluZyBvZiB0aGUgcnVsZSBvcHRpb25zLlxuICBlbGVtZW50VHlwZXM6IExpbnRlci5SdWxlRW50cnk8RGVwZW5kZW5jaWVzUnVsZU9wdGlvbnNbXT47XG5cbiAgLyoqIEZpbGVzIGluY2x1ZGVkIGluIHJlcG9zaXRvcnktc3BlY2lmaWMgYm91bmRhcmllcyBhbmFseXNpcy4gKi9cbiAgZmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKiBPcHRpb25hbCBpZ25vcmUgZ2xvYnMgZXhjbHVkZWQgZnJvbSByZXBvc2l0b3J5LXNwZWNpZmljIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIGlnbm9yZXM/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIENvbmZpZ09wdGlvbnMge1xuICAvKiogUmVwb3NpdG9yeS1vd25lZCBhcmNoaXRlY3R1cmUgaW5wdXQgZm9yIHRoZSBvcHRpb25hbCBgYm91bmRhcmllc2AgbW9kdWxlLiAqL1xuICBib3VuZGFyaWVzPzogQm91bmRhcmllc0NvbmZpZztcblxuICAvKiogTGlzdCBvZiBuYW1lZCBtb2R1bGVzIHRvIGRpc2FibGUgZnJvbSB0aGUgY29tcG9zZWQgY29uZmlndXJhdGlvbi4gKi9cbiAgZGlzYWJsZWRQbHVnaW5zPzogcmVhZG9ubHkgUGx1Z2luTmFtZVtdO1xuXG4gIC8qKlxuICAgKiBSdWxlcyB0byBkaXNhYmxlIG9yIG92ZXJyaWRlLlxuICAgKiBVc2UgJ29mZicgdG8gZGlzYWJsZSwgb3IgcHJvdmlkZSBjdXN0b20gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJ1bGVzPzogTGludGVyLlJ1bGVzUmVjb3JkO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvcmVQbHVnaW5OYW1lID0gXCJjb2RlcGVyZmVjdFwiIHwgXCJlc2xpbnRcIiB8IFwicmVzb2x2ZXJcIiB8IFwidHlwZXNjcmlwdFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvY3VtZW50YXRpb25QbHVnaW5OYW1lID0gXCJjb21tZW50c1wiIHwgXCJqc2RvY1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvbWFpblBsdWdpbk5hbWUgPSBcInJ4anMteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFBsdWdpbk5hbWUgPVxuICB8IEFyY2hpdGVjdHVyZVBsdWdpbk5hbWVcbiAgfCBDb3JlUGx1Z2luTmFtZVxuICB8IERvY3VtZW50YXRpb25QbHVnaW5OYW1lXG4gIHwgRG9tYWluUGx1Z2luTmFtZVxuICB8IFN0eWxlUGx1Z2luTmFtZVxuICB8IFRlc3RpbmdQbHVnaW5OYW1lO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFN0eWxlUGx1Z2luTmFtZSA9IFwicGVyZmVjdGlvbmlzdFwiIHwgXCJwcmV0dGllclwiIHwgXCJzdHlsaXN0aWNcIiB8IFwidW5pY29yblwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFRlc3RpbmdQbHVnaW5OYW1lID0gXCJqYXNtaW5lXCIgfCBcImplc3RcIiB8IFwicGxheXdyaWdodFwiIHwgXCJ2aXRlc3RcIjtcblxuZXhwb3J0IHR5cGUgeyBCb3VuZGFyaWVzQ29uZmlnLCBDb25maWdPcHRpb25zLCBQbHVnaW5OYW1lIH07XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeperfect/eslint-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A shareable flat ESLint config for TypeScript repositories",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -70,69 +70,70 @@
|
|
|
70
70
|
"test": "npx --yes vitest run"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"minimatch": "^
|
|
73
|
+
"minimatch": "^10.2.4"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
|
-
"@eslint/js": "
|
|
77
|
-
"eslint": "
|
|
78
|
-
"jiti": "
|
|
79
|
-
"typescript": "
|
|
80
|
-
"typescript-eslint": "
|
|
76
|
+
"@eslint/js": "^10.0.0",
|
|
77
|
+
"eslint": "^10.1.0",
|
|
78
|
+
"jiti": "^2.6.0",
|
|
79
|
+
"typescript": "^5.9.0",
|
|
80
|
+
"typescript-eslint": "^8.57.0"
|
|
81
81
|
},
|
|
82
82
|
"optionalDependencies": {
|
|
83
|
-
"@eslint-community/eslint-plugin-eslint-comments": "^4.
|
|
84
|
-
"@stylistic/eslint-plugin": "^5.
|
|
85
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
83
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
|
|
84
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
85
|
+
"@vitest/eslint-plugin": "^1.6.13",
|
|
86
86
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
87
|
-
"eslint-plugin-boundaries": "^
|
|
88
|
-
"eslint-plugin-import-x": "^4.16.
|
|
87
|
+
"eslint-plugin-boundaries": "^6.0.1",
|
|
88
|
+
"eslint-plugin-import-x": "^4.16.2",
|
|
89
89
|
"eslint-plugin-jasmine": "^4.2.2",
|
|
90
|
-
"eslint-plugin-jest": "^29.
|
|
91
|
-
"eslint-plugin-jsdoc": "^62.
|
|
92
|
-
"eslint-plugin-perfectionist": "^5.
|
|
90
|
+
"eslint-plugin-jest": "^29.15.1",
|
|
91
|
+
"eslint-plugin-jsdoc": "^62.8.1",
|
|
92
|
+
"eslint-plugin-perfectionist": "^5.7.0",
|
|
93
93
|
"eslint-plugin-prettier": "^5.5.5",
|
|
94
|
-
"eslint-plugin-rxjs-x": "^0.
|
|
95
|
-
"eslint-plugin-unicorn": "^
|
|
96
|
-
"globals": "^17.
|
|
94
|
+
"eslint-plugin-rxjs-x": "^1.0.1",
|
|
95
|
+
"eslint-plugin-unicorn": "^64.0.0",
|
|
96
|
+
"globals": "^17.4.0"
|
|
97
97
|
},
|
|
98
98
|
"devDependencies": {
|
|
99
|
-
"@
|
|
100
|
-
"@commitlint/
|
|
101
|
-
"@commitlint/
|
|
102
|
-
"@
|
|
103
|
-
"@eslint/
|
|
99
|
+
"@codeperfect/eslint-plugin": "^1.0.0",
|
|
100
|
+
"@commitlint/cli": "^20.5.0",
|
|
101
|
+
"@commitlint/config-conventional": "^20.5.0",
|
|
102
|
+
"@commitlint/cz-commitlint": "^20.5.0",
|
|
103
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
|
|
104
|
+
"@eslint/js": "^10.0.1",
|
|
104
105
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
105
106
|
"@semantic-release/github": "^12.0.6",
|
|
106
107
|
"@semantic-release/npm": "^13.1.5",
|
|
107
108
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
108
|
-
"@stylistic/eslint-plugin": "^5.
|
|
109
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
109
110
|
"@types/lodash-es": "^4.17.12",
|
|
110
|
-
"@types/node": "^25.
|
|
111
|
-
"@vitest/coverage-v8": "^4.
|
|
112
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
111
|
+
"@types/node": "^25.5.0",
|
|
112
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
113
|
+
"@vitest/eslint-plugin": "^1.6.13",
|
|
113
114
|
"chalk": "^5.6.2",
|
|
114
|
-
"conventional-changelog-conventionalcommits": "^9.1
|
|
115
|
-
"eslint": "^
|
|
115
|
+
"conventional-changelog-conventionalcommits": "^9.3.1",
|
|
116
|
+
"eslint": "^10.1.0",
|
|
116
117
|
"eslint-config-prettier": "^10.1.8",
|
|
117
118
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
118
|
-
"eslint-plugin-boundaries": "^
|
|
119
|
-
"eslint-plugin-import-x": "^4.16.
|
|
120
|
-
"eslint-plugin-jsdoc": "^62.
|
|
121
|
-
"eslint-plugin-perfectionist": "^5.
|
|
122
|
-
"eslint-plugin-playwright": "^2.
|
|
119
|
+
"eslint-plugin-boundaries": "^6.0.1",
|
|
120
|
+
"eslint-plugin-import-x": "^4.16.2",
|
|
121
|
+
"eslint-plugin-jsdoc": "^62.8.1",
|
|
122
|
+
"eslint-plugin-perfectionist": "^5.7.0",
|
|
123
|
+
"eslint-plugin-playwright": "^2.10.1",
|
|
123
124
|
"eslint-plugin-prettier": "^5.5.5",
|
|
124
|
-
"eslint-plugin-unicorn": "^
|
|
125
|
-
"globals": "^17.
|
|
125
|
+
"eslint-plugin-unicorn": "^64.0.0",
|
|
126
|
+
"globals": "^17.4.0",
|
|
126
127
|
"husky": "^9.1.7",
|
|
127
128
|
"jiti": "^2.6.1",
|
|
128
|
-
"lint-staged": "^16.
|
|
129
|
+
"lint-staged": "^16.4.0",
|
|
129
130
|
"lodash-es": "^4.17.23",
|
|
130
|
-
"rimraf": "^6.1.
|
|
131
|
+
"rimraf": "^6.1.3",
|
|
131
132
|
"semantic-release": "^25.0.3",
|
|
132
|
-
"typedoc": "^0.28.
|
|
133
|
-
"typedoc-plugin-markdown": "^4.
|
|
133
|
+
"typedoc": "^0.28.18",
|
|
134
|
+
"typedoc-plugin-markdown": "^4.11.0",
|
|
134
135
|
"typescript": "^5.9.3",
|
|
135
|
-
"vitest": "^4.
|
|
136
|
+
"vitest": "^4.1.2"
|
|
136
137
|
},
|
|
137
138
|
"engines": {
|
|
138
139
|
"node": ">=24.0.0"
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { Linter } from "eslint";
|
|
2
|
-
import type { getJsdocProcessorPlugin as getJsdocProcessorPluginType } from "eslint-plugin-jsdoc";
|
|
3
|
-
import type { parser as parserType, configs as typeScriptConfigsType, plugin as typeScriptPluginType } from "typescript-eslint";
|
|
4
|
-
/** Options for building TypeScript example configs. */
|
|
5
|
-
interface BuildTypeScriptExampleConfigOptions {
|
|
6
|
-
/** Rule overrides that disable typed-only checks for snippets. */
|
|
7
|
-
disableTypeCheckedRules: Linter.RulesRecord;
|
|
8
|
-
/** Upstream processor factory when the plugin exports it. */
|
|
9
|
-
getJsdocProcessorPlugin: JsdocProcessorPluginFactory | undefined;
|
|
10
|
-
/** Parser used for host files and snippet files. */
|
|
11
|
-
parser: Parser;
|
|
12
|
-
/** TypeScript ESLint plugin used by the virtual snippet configs. */
|
|
13
|
-
typeScriptPlugin: TypeScriptPlugin;
|
|
14
|
-
}
|
|
15
|
-
/** Function signature for the JSDoc processor factory. */
|
|
16
|
-
type JsdocProcessorPluginFactory = typeof getJsdocProcessorPluginType;
|
|
17
|
-
/** Parser accepted by the JSDoc example processor. */
|
|
18
|
-
type Parser = typeof parserType;
|
|
19
|
-
/** TypeScript ESLint config map. */
|
|
20
|
-
type TypeScriptConfigs = typeof typeScriptConfigsType;
|
|
21
|
-
/** TypeScript ESLint plugin instance used for snippet-only rule configs. */
|
|
22
|
-
type TypeScriptPlugin = typeof typeScriptPluginType;
|
|
23
|
-
/**
|
|
24
|
-
* Build TypeScript-aware processor configs for JSDoc examples and default expressions.
|
|
25
|
-
* @param options Config input for the TypeScript snippet support.
|
|
26
|
-
* @param options.disableTypeCheckedRules Rule overrides that disable typed-only checks.
|
|
27
|
-
* @param options.getJsdocProcessorPlugin Upstream processor factory when present.
|
|
28
|
-
* @param options.parser Parser used for host files and snippets.
|
|
29
|
-
* @param options.typeScriptPlugin TypeScript ESLint plugin instance.
|
|
30
|
-
* @returns The processor and virtual-file configs.
|
|
31
|
-
* @example
|
|
32
|
-
* console.log(buildTypeScriptExampleConfigs({ disableTypeCheckedRules: {}, getJsdocProcessorPlugin: void 0, parser: {} as Parser, typeScriptPlugin: {} as TypeScriptPlugin }).length);
|
|
33
|
-
*/
|
|
34
|
-
declare function buildTypeScriptExampleConfigs({ disableTypeCheckedRules, getJsdocProcessorPlugin, parser, typeScriptPlugin, }: BuildTypeScriptExampleConfigOptions): Linter.Config[];
|
|
35
|
-
/**
|
|
36
|
-
* Resolve the TypeScript rule overrides that disable typed-only linting for snippets.
|
|
37
|
-
* @param typeScriptConfigs The exported TypeScript ESLint config map.
|
|
38
|
-
* @returns The disable-type-checked rule overrides.
|
|
39
|
-
* @example
|
|
40
|
-
* console.log(resolveDisableTypeCheckedRules({ disableTypeChecked: { rules: { example: "off" } } } as TypeScriptConfigs).example);
|
|
41
|
-
*/
|
|
42
|
-
declare function resolveDisableTypeCheckedRules(typeScriptConfigs: TypeScriptConfigs): Linter.RulesRecord;
|
|
43
|
-
/**
|
|
44
|
-
* Resolve the optional processor factory from the JSDoc plugin module.
|
|
45
|
-
* @param jsdocModule The loaded JSDoc plugin module.
|
|
46
|
-
* @returns The processor factory when the module exports it.
|
|
47
|
-
* @example
|
|
48
|
-
* console.log(resolveJsdocProcessorPlugin({}) === void 0);
|
|
49
|
-
*/
|
|
50
|
-
declare function resolveJsdocProcessorPlugin(jsdocModule: Readonly<{
|
|
51
|
-
/** Optional exported JSDoc processor factory. */
|
|
52
|
-
getJsdocProcessorPlugin?: JsdocProcessorPluginFactory;
|
|
53
|
-
}>): JsdocProcessorPluginFactory | undefined;
|
|
54
|
-
export { buildTypeScriptExampleConfigs, resolveDisableTypeCheckedRules, resolveJsdocProcessorPlugin, };
|
|
55
|
-
export type { Parser, TypeScriptConfigs, TypeScriptPlugin };
|
|
56
|
-
//# sourceMappingURL=jsdoc-examples.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsdoc-examples.d.ts","sourceRoot":"","sources":["../../src/docs/jsdoc-examples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,uBAAuB,IAAI,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,EACV,MAAM,IAAI,UAAU,EACpB,OAAO,IAAI,qBAAqB,EAChC,MAAM,IAAI,oBAAoB,EAC/B,MAAM,mBAAmB,CAAC;AAI3B,uDAAuD;AACvD,UAAU,mCAAmC;IAC3C,kEAAkE;IAClE,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC;IAE5C,6DAA6D;IAC7D,uBAAuB,EAAE,2BAA2B,GAAG,SAAS,CAAC;IAEjE,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IAEf,oEAAoE;IACpE,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,0DAA0D;AAC1D,KAAK,2BAA2B,GAAG,OAAO,2BAA2B,CAAC;AAEtE,sDAAsD;AACtD,KAAK,MAAM,GAAG,OAAO,UAAU,CAAC;AAEhC,oCAAoC;AACpC,KAAK,iBAAiB,GAAG,OAAO,qBAAqB,CAAC;AAEtD,4EAA4E;AAC5E,KAAK,gBAAgB,GAAG,OAAO,oBAAoB,CAAC;AAkFpD;;;;;;;;;;GAUG;AACH,iBAAS,6BAA6B,CAAC,EACrC,uBAAuB,EACvB,uBAAuB,EACvB,MAAM,EACN,gBAAgB,GACjB,EAAE,mCAAmC,GAAG,MAAM,CAAC,MAAM,EAAE,CA4BvD;AAgFD;;;;;;GAMG;AACH,iBAAS,8BAA8B,CACrC,iBAAiB,EAAE,iBAAiB,GACnC,MAAM,CAAC,WAAW,CAGpB;AAED;;;;;;GAMG;AACH,iBAAS,2BAA2B,CAClC,WAAW,EAAE,QAAQ,CAAC;IACpB,iDAAiD;IACjD,uBAAuB,CAAC,EAAE,2BAA2B,CAAC;CACvD,CAAC,GACD,2BAA2B,GAAG,SAAS,CAIzC;AAED,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,GAC5B,CAAC;AACF,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import { createWrappedJsdocProcessorPlugin } from "./jsdoc-processor.js";
|
|
2
|
-
/** TypeScript source files that should run through the JSDoc snippet processor. */
|
|
3
|
-
const typeScriptSourceFiles = ["**/*.cts", "**/*.mts", "**/*.ts", "**/*.tsx"];
|
|
4
|
-
/** Virtual example files emitted by the upstream JSDoc processor. */
|
|
5
|
-
const typeScriptExampleFiles = ["**/*.md/*.js"];
|
|
6
|
-
/** Virtual files emitted for JSDoc default-expression checks. */
|
|
7
|
-
const typeScriptDefaultExpressionFiles = [
|
|
8
|
-
"**/*.jsdoc-defaults",
|
|
9
|
-
"**/*.jsdoc-params",
|
|
10
|
-
"**/*.jsdoc-properties",
|
|
11
|
-
];
|
|
12
|
-
/**
|
|
13
|
-
* Build relaxed rules for extracted default-expression snippets.
|
|
14
|
-
* @returns The snippet rule overrides.
|
|
15
|
-
* @example
|
|
16
|
-
* console.log(buildDefaultExpressionSnippetRules());
|
|
17
|
-
*/
|
|
18
|
-
function buildDefaultExpressionSnippetRules() {
|
|
19
|
-
return {
|
|
20
|
-
...buildExampleSnippetRules(),
|
|
21
|
-
"@stylistic/quotes": ["error", "double"],
|
|
22
|
-
"@stylistic/semi": ["error", "never"],
|
|
23
|
-
"@typescript-eslint/no-unused-expressions": "off",
|
|
24
|
-
"chai-friendly/no-unused-expressions": "off",
|
|
25
|
-
"no-empty-function": "off",
|
|
26
|
-
"no-new": "off",
|
|
27
|
-
"no-unused-expressions": "off",
|
|
28
|
-
strict: "off",
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Build relaxed rules for extracted example snippets.
|
|
33
|
-
* @returns The snippet rule overrides.
|
|
34
|
-
* @example
|
|
35
|
-
* console.log(buildExampleSnippetRules());
|
|
36
|
-
*/
|
|
37
|
-
function buildExampleSnippetRules() {
|
|
38
|
-
return {
|
|
39
|
-
"@stylistic/eol-last": "off",
|
|
40
|
-
"@stylistic/no-multiple-empty-lines": "off",
|
|
41
|
-
"@stylistic/padded-blocks": "off",
|
|
42
|
-
"@typescript-eslint/no-unused-expressions": "off",
|
|
43
|
-
"@typescript-eslint/no-unused-vars": "off",
|
|
44
|
-
"chai-friendly/no-unused-expressions": "off",
|
|
45
|
-
"import/no-unresolved": "off",
|
|
46
|
-
"import/unambiguous": "off",
|
|
47
|
-
"jsdoc/require-file-overview": "off",
|
|
48
|
-
"jsdoc/require-jsdoc": "off",
|
|
49
|
-
"n/no-missing-import": "off",
|
|
50
|
-
"n/no-missing-require": "off",
|
|
51
|
-
"no-console": "off",
|
|
52
|
-
"no-undef": "off",
|
|
53
|
-
"no-unused-expressions": "off",
|
|
54
|
-
"no-unused-vars": "off",
|
|
55
|
-
"node/no-missing-import": "off",
|
|
56
|
-
"node/no-missing-require": "off",
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Build TypeScript-aware processor configs for JSDoc examples and default expressions.
|
|
61
|
-
* @param options Config input for the TypeScript snippet support.
|
|
62
|
-
* @param options.disableTypeCheckedRules Rule overrides that disable typed-only checks.
|
|
63
|
-
* @param options.getJsdocProcessorPlugin Upstream processor factory when present.
|
|
64
|
-
* @param options.parser Parser used for host files and snippets.
|
|
65
|
-
* @param options.typeScriptPlugin TypeScript ESLint plugin instance.
|
|
66
|
-
* @returns The processor and virtual-file configs.
|
|
67
|
-
* @example
|
|
68
|
-
* console.log(buildTypeScriptExampleConfigs({ disableTypeCheckedRules: {}, getJsdocProcessorPlugin: void 0, parser: {} as Parser, typeScriptPlugin: {} as TypeScriptPlugin }).length);
|
|
69
|
-
*/
|
|
70
|
-
function buildTypeScriptExampleConfigs({ disableTypeCheckedRules, getJsdocProcessorPlugin, parser, typeScriptPlugin, }) {
|
|
71
|
-
if (getJsdocProcessorPlugin === void 0) {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
return [
|
|
75
|
-
buildTypeScriptProcessorConfig(getJsdocProcessorPlugin, parser),
|
|
76
|
-
buildTypeScriptSnippetRuleConfig({
|
|
77
|
-
files: typeScriptExampleFiles,
|
|
78
|
-
name: "jsdoc/typescript-examples/rules",
|
|
79
|
-
parser,
|
|
80
|
-
rules: {
|
|
81
|
-
...disableTypeCheckedRules,
|
|
82
|
-
...buildExampleSnippetRules(),
|
|
83
|
-
},
|
|
84
|
-
typeScriptPlugin,
|
|
85
|
-
}),
|
|
86
|
-
buildTypeScriptSnippetRuleConfig({
|
|
87
|
-
files: typeScriptDefaultExpressionFiles,
|
|
88
|
-
name: "jsdoc/typescript-default-expressions/rules",
|
|
89
|
-
parser,
|
|
90
|
-
rules: {
|
|
91
|
-
...disableTypeCheckedRules,
|
|
92
|
-
...buildDefaultExpressionSnippetRules(),
|
|
93
|
-
},
|
|
94
|
-
typeScriptPlugin,
|
|
95
|
-
}),
|
|
96
|
-
];
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Build the processor config for TypeScript source files.
|
|
100
|
-
* @param getJsdocProcessorPlugin Upstream JSDoc processor factory.
|
|
101
|
-
* @param parser Parser used for host TypeScript files.
|
|
102
|
-
* @returns The processor-backed ESLint config entry.
|
|
103
|
-
* @example
|
|
104
|
-
* console.log(buildTypeScriptProcessorConfig(((_config) => ({ processors: { examples: {} } })) as JsdocProcessorPluginFactory, {} as Parser).processor);
|
|
105
|
-
*/
|
|
106
|
-
function buildTypeScriptProcessorConfig(getJsdocProcessorPlugin, parser) {
|
|
107
|
-
return {
|
|
108
|
-
files: typeScriptSourceFiles,
|
|
109
|
-
name: "jsdoc/typescript-examples-and-default-expressions/processor",
|
|
110
|
-
plugins: {
|
|
111
|
-
examples: createWrappedJsdocProcessorPlugin({
|
|
112
|
-
checkDefaults: true,
|
|
113
|
-
checkParams: true,
|
|
114
|
-
checkProperties: true,
|
|
115
|
-
getJsdocProcessorPlugin,
|
|
116
|
-
parser,
|
|
117
|
-
sourceType: "module",
|
|
118
|
-
}),
|
|
119
|
-
},
|
|
120
|
-
processor: "examples/examples",
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Build language options for extracted TypeScript snippets.
|
|
125
|
-
* @param parser Parser used for snippet files.
|
|
126
|
-
* @returns The language options for virtual snippet files.
|
|
127
|
-
* @example
|
|
128
|
-
* console.log(buildTypeScriptSnippetLanguageOptions({} as Parser).sourceType);
|
|
129
|
-
*/
|
|
130
|
-
function buildTypeScriptSnippetLanguageOptions(parser) {
|
|
131
|
-
return {
|
|
132
|
-
parser,
|
|
133
|
-
parserOptions: {
|
|
134
|
-
projectService: false,
|
|
135
|
-
},
|
|
136
|
-
sourceType: "module",
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Build a TypeScript snippet rule config for virtual files.
|
|
141
|
-
* @param options Config input for the snippet rule block.
|
|
142
|
-
* @param options.files Virtual file globs targeted by the config.
|
|
143
|
-
* @param options.name Config name shown in ESLint diagnostics.
|
|
144
|
-
* @param options.parser Parser used for extracted snippet content.
|
|
145
|
-
* @param options.rules Rule overrides applied to the virtual snippet files.
|
|
146
|
-
* @param options.typeScriptPlugin TypeScript ESLint plugin instance.
|
|
147
|
-
* @returns The ESLint config for the virtual snippet files.
|
|
148
|
-
* @example
|
|
149
|
-
* console.log(buildTypeScriptSnippetRuleConfig({ files: ["virtual-example-file"], name: "example", parser: {} as Parser, rules: {}, typeScriptPlugin: {} as TypeScriptPlugin }).name);
|
|
150
|
-
*/
|
|
151
|
-
function buildTypeScriptSnippetRuleConfig({ files, name, parser, rules, typeScriptPlugin, }) {
|
|
152
|
-
return {
|
|
153
|
-
files,
|
|
154
|
-
languageOptions: buildTypeScriptSnippetLanguageOptions(parser),
|
|
155
|
-
name,
|
|
156
|
-
plugins: {
|
|
157
|
-
"@typescript-eslint": typeScriptPlugin,
|
|
158
|
-
},
|
|
159
|
-
rules,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Resolve the TypeScript rule overrides that disable typed-only linting for snippets.
|
|
164
|
-
* @param typeScriptConfigs The exported TypeScript ESLint config map.
|
|
165
|
-
* @returns The disable-type-checked rule overrides.
|
|
166
|
-
* @example
|
|
167
|
-
* console.log(resolveDisableTypeCheckedRules({ disableTypeChecked: { rules: { example: "off" } } } as TypeScriptConfigs).example);
|
|
168
|
-
*/
|
|
169
|
-
function resolveDisableTypeCheckedRules(typeScriptConfigs) {
|
|
170
|
-
return (typeScriptConfigs.disableTypeChecked.rules ??
|
|
171
|
-
{});
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Resolve the optional processor factory from the JSDoc plugin module.
|
|
175
|
-
* @param jsdocModule The loaded JSDoc plugin module.
|
|
176
|
-
* @returns The processor factory when the module exports it.
|
|
177
|
-
* @example
|
|
178
|
-
* console.log(resolveJsdocProcessorPlugin({}) === void 0);
|
|
179
|
-
*/
|
|
180
|
-
function resolveJsdocProcessorPlugin(jsdocModule) {
|
|
181
|
-
return "getJsdocProcessorPlugin" in jsdocModule
|
|
182
|
-
? jsdocModule.getJsdocProcessorPlugin
|
|
183
|
-
: void 0;
|
|
184
|
-
}
|
|
185
|
-
export { buildTypeScriptExampleConfigs, resolveDisableTypeCheckedRules, resolveJsdocProcessorPlugin, };
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNkb2MtZXhhbXBsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9jcy9qc2RvYy1leGFtcGxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQStDekUsbUZBQW1GO0FBQ25GLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUU5RSxxRUFBcUU7QUFDckUsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRWhELGlFQUFpRTtBQUNqRSxNQUFNLGdDQUFnQyxHQUFHO0lBQ3ZDLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILFNBQVMsa0NBQWtDO0lBQ3pDLE9BQU87UUFDTCxHQUFHLHdCQUF3QixFQUFFO1FBQzdCLG1CQUFtQixFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUN4QyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDckMsMENBQTBDLEVBQUUsS0FBSztRQUNqRCxxQ0FBcUMsRUFBRSxLQUFLO1FBQzVDLG1CQUFtQixFQUFFLEtBQUs7UUFDMUIsUUFBUSxFQUFFLEtBQUs7UUFDZix1QkFBdUIsRUFBRSxLQUFLO1FBQzlCLE1BQU0sRUFBRSxLQUFLO0tBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsd0JBQXdCO0lBQy9CLE9BQU87UUFDTCxxQkFBcUIsRUFBRSxLQUFLO1FBQzVCLG9DQUFvQyxFQUFFLEtBQUs7UUFDM0MsMEJBQTBCLEVBQUUsS0FBSztRQUNqQywwQ0FBMEMsRUFBRSxLQUFLO1FBQ2pELG1DQUFtQyxFQUFFLEtBQUs7UUFDMUMscUNBQXFDLEVBQUUsS0FBSztRQUM1QyxzQkFBc0IsRUFBRSxLQUFLO1FBQzdCLG9CQUFvQixFQUFFLEtBQUs7UUFDM0IsNkJBQTZCLEVBQUUsS0FBSztRQUNwQyxxQkFBcUIsRUFBRSxLQUFLO1FBQzVCLHFCQUFxQixFQUFFLEtBQUs7UUFDNUIsc0JBQXNCLEVBQUUsS0FBSztRQUM3QixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsS0FBSztRQUNqQix1QkFBdUIsRUFBRSxLQUFLO1FBQzlCLGdCQUFnQixFQUFFLEtBQUs7UUFDdkIsd0JBQXdCLEVBQUUsS0FBSztRQUMvQix5QkFBeUIsRUFBRSxLQUFLO0tBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsNkJBQTZCLENBQUMsRUFDckMsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixNQUFNLEVBQ04sZ0JBQWdCLEdBQ29CO0lBQ3BDLElBQUksdUJBQXVCLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsOEJBQThCLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO1FBQy9ELGdDQUFnQyxDQUFDO1lBQy9CLEtBQUssRUFBRSxzQkFBc0I7WUFDN0IsSUFBSSxFQUFFLGlDQUFpQztZQUN2QyxNQUFNO1lBQ04sS0FBSyxFQUFFO2dCQUNMLEdBQUcsdUJBQXVCO2dCQUMxQixHQUFHLHdCQUF3QixFQUFFO2FBQzlCO1lBQ0QsZ0JBQWdCO1NBQ2pCLENBQUM7UUFDRixnQ0FBZ0MsQ0FBQztZQUMvQixLQUFLLEVBQUUsZ0NBQWdDO1lBQ3ZDLElBQUksRUFBRSw0Q0FBNEM7WUFDbEQsTUFBTTtZQUNOLEtBQUssRUFBRTtnQkFDTCxHQUFHLHVCQUF1QjtnQkFDMUIsR0FBRyxrQ0FBa0MsRUFBRTthQUN4QztZQUNELGdCQUFnQjtTQUNqQixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyw4QkFBOEIsQ0FDckMsdUJBQW9ELEVBQ3BELE1BQWM7SUFFZCxPQUFPO1FBQ0wsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixJQUFJLEVBQUUsNkRBQTZEO1FBQ25FLE9BQU8sRUFBRTtZQUNQLFFBQVEsRUFBRSxpQ0FBaUMsQ0FBQztnQkFDMUMsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixlQUFlLEVBQUUsSUFBSTtnQkFDckIsdUJBQXVCO2dCQUN2QixNQUFNO2dCQUNOLFVBQVUsRUFBRSxRQUFRO2FBQ3JCLENBQUM7U0FDSDtRQUNELFNBQVMsRUFBRSxtQkFBbUI7S0FDL0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHFDQUFxQyxDQUM1QyxNQUFjO0lBRWQsT0FBTztRQUNMLE1BQU07UUFDTixhQUFhLEVBQUU7WUFDYixjQUFjLEVBQUUsS0FBSztTQUN0QjtRQUNELFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLGdDQUFnQyxDQUFDLEVBQ3hDLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxnQkFBZ0IsR0FDbUI7SUFDbkMsT0FBTztRQUNMLEtBQUs7UUFDTCxlQUFlLEVBQUUscUNBQXFDLENBQUMsTUFBTSxDQUFDO1FBQzlELElBQUk7UUFDSixPQUFPLEVBQUU7WUFDUCxvQkFBb0IsRUFBRSxnQkFBZ0I7U0FDdkM7UUFDRCxLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLDhCQUE4QixDQUNyQyxpQkFBb0M7SUFFcEMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDaEQsRUFBRSxDQUF1QixDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLDJCQUEyQixDQUNsQyxXQUdFO0lBRUYsT0FBTyx5QkFBeUIsSUFBSSxXQUFXO1FBQzdDLENBQUMsQ0FBQyxXQUFXLENBQUMsdUJBQXVCO1FBQ3JDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNiLENBQUM7QUFFRCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwyQkFBMkIsR0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUgeyBnZXRKc2RvY1Byb2Nlc3NvclBsdWdpbiBhcyBnZXRKc2RvY1Byb2Nlc3NvclBsdWdpblR5cGUgfSBmcm9tIFwiZXNsaW50LXBsdWdpbi1qc2RvY1wiO1xuaW1wb3J0IHR5cGUge1xuICBwYXJzZXIgYXMgcGFyc2VyVHlwZSxcbiAgY29uZmlncyBhcyB0eXBlU2NyaXB0Q29uZmlnc1R5cGUsXG4gIHBsdWdpbiBhcyB0eXBlU2NyaXB0UGx1Z2luVHlwZSxcbn0gZnJvbSBcInR5cGVzY3JpcHQtZXNsaW50XCI7XG5cbmltcG9ydCB7IGNyZWF0ZVdyYXBwZWRKc2RvY1Byb2Nlc3NvclBsdWdpbiB9IGZyb20gXCIuL2pzZG9jLXByb2Nlc3Nvci5qc1wiO1xuXG4vKiogT3B0aW9ucyBmb3IgYnVpbGRpbmcgVHlwZVNjcmlwdCBleGFtcGxlIGNvbmZpZ3MuICovXG5pbnRlcmZhY2UgQnVpbGRUeXBlU2NyaXB0RXhhbXBsZUNvbmZpZ09wdGlvbnMge1xuICAvKiogUnVsZSBvdmVycmlkZXMgdGhhdCBkaXNhYmxlIHR5cGVkLW9ubHkgY2hlY2tzIGZvciBzbmlwcGV0cy4gKi9cbiAgZGlzYWJsZVR5cGVDaGVja2VkUnVsZXM6IExpbnRlci5SdWxlc1JlY29yZDtcblxuICAvKiogVXBzdHJlYW0gcHJvY2Vzc29yIGZhY3Rvcnkgd2hlbiB0aGUgcGx1Z2luIGV4cG9ydHMgaXQuICovXG4gIGdldEpzZG9jUHJvY2Vzc29yUGx1Z2luOiBKc2RvY1Byb2Nlc3NvclBsdWdpbkZhY3RvcnkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFBhcnNlciB1c2VkIGZvciBob3N0IGZpbGVzIGFuZCBzbmlwcGV0IGZpbGVzLiAqL1xuICBwYXJzZXI6IFBhcnNlcjtcblxuICAvKiogVHlwZVNjcmlwdCBFU0xpbnQgcGx1Z2luIHVzZWQgYnkgdGhlIHZpcnR1YWwgc25pcHBldCBjb25maWdzLiAqL1xuICB0eXBlU2NyaXB0UGx1Z2luOiBUeXBlU2NyaXB0UGx1Z2luO1xufVxuXG4vKiogRnVuY3Rpb24gc2lnbmF0dXJlIGZvciB0aGUgSlNEb2MgcHJvY2Vzc29yIGZhY3RvcnkuICovXG50eXBlIEpzZG9jUHJvY2Vzc29yUGx1Z2luRmFjdG9yeSA9IHR5cGVvZiBnZXRKc2RvY1Byb2Nlc3NvclBsdWdpblR5cGU7XG5cbi8qKiBQYXJzZXIgYWNjZXB0ZWQgYnkgdGhlIEpTRG9jIGV4YW1wbGUgcHJvY2Vzc29yLiAqL1xudHlwZSBQYXJzZXIgPSB0eXBlb2YgcGFyc2VyVHlwZTtcblxuLyoqIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZyBtYXAuICovXG50eXBlIFR5cGVTY3JpcHRDb25maWdzID0gdHlwZW9mIHR5cGVTY3JpcHRDb25maWdzVHlwZTtcblxuLyoqIFR5cGVTY3JpcHQgRVNMaW50IHBsdWdpbiBpbnN0YW5jZSB1c2VkIGZvciBzbmlwcGV0LW9ubHkgcnVsZSBjb25maWdzLiAqL1xudHlwZSBUeXBlU2NyaXB0UGx1Z2luID0gdHlwZW9mIHR5cGVTY3JpcHRQbHVnaW5UeXBlO1xuXG4vKiogT3B0aW9ucyBmb3IgYSBUeXBlU2NyaXB0IHZpcnR1YWwgc25pcHBldCBydWxlIGNvbmZpZy4gKi9cbmludGVyZmFjZSBUeXBlU2NyaXB0U25pcHBldFJ1bGVDb25maWdPcHRpb25zIHtcbiAgLyoqIFZpcnR1YWwgZmlsZSBnbG9icyB0YXJnZXRlZCBieSB0aGUgY29uZmlnLiAqL1xuICBmaWxlczogc3RyaW5nW107XG5cbiAgLyoqIENvbmZpZyBuYW1lIHNob3duIGluIEVTTGludCBkaWFnbm9zdGljcy4gKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBQYXJzZXIgdXNlZCBmb3IgdGhlIGV4dHJhY3RlZCBzbmlwcGV0IGNvbnRlbnQuICovXG4gIHBhcnNlcjogUGFyc2VyO1xuXG4gIC8qKiBSdWxlIG92ZXJyaWRlcyBhcHBsaWVkIHRvIHRoZSBleHRyYWN0ZWQgc25pcHBldCBmaWxlcy4gKi9cbiAgcnVsZXM6IExpbnRlci5SdWxlc1JlY29yZDtcblxuICAvKiogVHlwZVNjcmlwdCBFU0xpbnQgcGx1Z2luIGluc3RhbmNlLiAqL1xuICB0eXBlU2NyaXB0UGx1Z2luOiBUeXBlU2NyaXB0UGx1Z2luO1xufVxuXG4vKiogVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMgdGhhdCBzaG91bGQgcnVuIHRocm91Z2ggdGhlIEpTRG9jIHNuaXBwZXQgcHJvY2Vzc29yLiAqL1xuY29uc3QgdHlwZVNjcmlwdFNvdXJjZUZpbGVzID0gW1wiKiovKi5jdHNcIiwgXCIqKi8qLm10c1wiLCBcIioqLyoudHNcIiwgXCIqKi8qLnRzeFwiXTtcblxuLyoqIFZpcnR1YWwgZXhhbXBsZSBmaWxlcyBlbWl0dGVkIGJ5IHRoZSB1cHN0cmVhbSBKU0RvYyBwcm9jZXNzb3IuICovXG5jb25zdCB0eXBlU2NyaXB0RXhhbXBsZUZpbGVzID0gW1wiKiovKi5tZC8qLmpzXCJdO1xuXG4vKiogVmlydHVhbCBmaWxlcyBlbWl0dGVkIGZvciBKU0RvYyBkZWZhdWx0LWV4cHJlc3Npb24gY2hlY2tzLiAqL1xuY29uc3QgdHlwZVNjcmlwdERlZmF1bHRFeHByZXNzaW9uRmlsZXMgPSBbXG4gIFwiKiovKi5qc2RvYy1kZWZhdWx0c1wiLFxuICBcIioqLyouanNkb2MtcGFyYW1zXCIsXG4gIFwiKiovKi5qc2RvYy1wcm9wZXJ0aWVzXCIsXG5dO1xuXG4vKipcbiAqIEJ1aWxkIHJlbGF4ZWQgcnVsZXMgZm9yIGV4dHJhY3RlZCBkZWZhdWx0LWV4cHJlc3Npb24gc25pcHBldHMuXG4gKiBAcmV0dXJucyBUaGUgc25pcHBldCBydWxlIG92ZXJyaWRlcy5cbiAqIEBleGFtcGxlXG4gKiBjb25zb2xlLmxvZyhidWlsZERlZmF1bHRFeHByZXNzaW9uU25pcHBldFJ1bGVzKCkpO1xuICovXG5mdW5jdGlvbiBidWlsZERlZmF1bHRFeHByZXNzaW9uU25pcHBldFJ1bGVzKCk6IExpbnRlci5SdWxlc1JlY29yZCB7XG4gIHJldHVybiB7XG4gICAgLi4uYnVpbGRFeGFtcGxlU25pcHBldFJ1bGVzKCksXG4gICAgXCJAc3R5bGlzdGljL3F1b3Rlc1wiOiBbXCJlcnJvclwiLCBcImRvdWJsZVwiXSxcbiAgICBcIkBzdHlsaXN0aWMvc2VtaVwiOiBbXCJlcnJvclwiLCBcIm5ldmVyXCJdLFxuICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1wiOiBcIm9mZlwiLFxuICAgIFwiY2hhaS1mcmllbmRseS9uby11bnVzZWQtZXhwcmVzc2lvbnNcIjogXCJvZmZcIixcbiAgICBcIm5vLWVtcHR5LWZ1bmN0aW9uXCI6IFwib2ZmXCIsXG4gICAgXCJuby1uZXdcIjogXCJvZmZcIixcbiAgICBcIm5vLXVudXNlZC1leHByZXNzaW9uc1wiOiBcIm9mZlwiLFxuICAgIHN0cmljdDogXCJvZmZcIixcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZCByZWxheGVkIHJ1bGVzIGZvciBleHRyYWN0ZWQgZXhhbXBsZSBzbmlwcGV0cy5cbiAqIEByZXR1cm5zIFRoZSBzbmlwcGV0IHJ1bGUgb3ZlcnJpZGVzLlxuICogQGV4YW1wbGVcbiAqIGNvbnNvbGUubG9nKGJ1aWxkRXhhbXBsZVNuaXBwZXRSdWxlcygpKTtcbiAqL1xuZnVuY3Rpb24gYnVpbGRFeGFtcGxlU25pcHBldFJ1bGVzKCk6IExpbnRlci5SdWxlc1JlY29yZCB7XG4gIHJldHVybiB7XG4gICAgXCJAc3R5bGlzdGljL2VvbC1sYXN0XCI6IFwib2ZmXCIsXG4gICAgXCJAc3R5bGlzdGljL25vLW11bHRpcGxlLWVtcHR5LWxpbmVzXCI6IFwib2ZmXCIsXG4gICAgXCJAc3R5bGlzdGljL3BhZGRlZC1ibG9ja3NcIjogXCJvZmZcIixcbiAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcIjogXCJvZmZcIixcbiAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1wiOiBcIm9mZlwiLFxuICAgIFwiY2hhaS1mcmllbmRseS9uby11bnVzZWQtZXhwcmVzc2lvbnNcIjogXCJvZmZcIixcbiAgICBcImltcG9ydC9uby11bnJlc29sdmVkXCI6IFwib2ZmXCIsXG4gICAgXCJpbXBvcnQvdW5hbWJpZ3VvdXNcIjogXCJvZmZcIixcbiAgICBcImpzZG9jL3JlcXVpcmUtZmlsZS1vdmVydmlld1wiOiBcIm9mZlwiLFxuICAgIFwianNkb2MvcmVxdWlyZS1qc2RvY1wiOiBcIm9mZlwiLFxuICAgIFwibi9uby1taXNzaW5nLWltcG9ydFwiOiBcIm9mZlwiLFxuICAgIFwibi9uby1taXNzaW5nLXJlcXVpcmVcIjogXCJvZmZcIixcbiAgICBcIm5vLWNvbnNvbGVcIjogXCJvZmZcIixcbiAgICBcIm5vLXVuZGVmXCI6IFwib2ZmXCIsXG4gICAgXCJuby11bnVzZWQtZXhwcmVzc2lvbnNcIjogXCJvZmZcIixcbiAgICBcIm5vLXVudXNlZC12YXJzXCI6IFwib2ZmXCIsXG4gICAgXCJub2RlL25vLW1pc3NpbmctaW1wb3J0XCI6IFwib2ZmXCIsXG4gICAgXCJub2RlL25vLW1pc3NpbmctcmVxdWlyZVwiOiBcIm9mZlwiLFxuICB9O1xufVxuXG4vKipcbiAqIEJ1aWxkIFR5cGVTY3JpcHQtYXdhcmUgcHJvY2Vzc29yIGNvbmZpZ3MgZm9yIEpTRG9jIGV4YW1wbGVzIGFuZCBkZWZhdWx0IGV4cHJlc3Npb25zLlxuICogQHBhcmFtIG9wdGlvbnMgQ29uZmlnIGlucHV0IGZvciB0aGUgVHlwZVNjcmlwdCBzbmlwcGV0IHN1cHBvcnQuXG4gKiBAcGFyYW0gb3B0aW9ucy5kaXNhYmxlVHlwZUNoZWNrZWRSdWxlcyBSdWxlIG92ZXJyaWRlcyB0aGF0IGRpc2FibGUgdHlwZWQtb25seSBjaGVja3MuXG4gKiBAcGFyYW0gb3B0aW9ucy5nZXRKc2RvY1Byb2Nlc3NvclBsdWdpbiBVcHN0cmVhbSBwcm9jZXNzb3IgZmFjdG9yeSB3aGVuIHByZXNlbnQuXG4gKiBAcGFyYW0gb3B0aW9ucy5wYXJzZXIgUGFyc2VyIHVzZWQgZm9yIGhvc3QgZmlsZXMgYW5kIHNuaXBwZXRzLlxuICogQHBhcmFtIG9wdGlvbnMudHlwZVNjcmlwdFBsdWdpbiBUeXBlU2NyaXB0IEVTTGludCBwbHVnaW4gaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgcHJvY2Vzc29yIGFuZCB2aXJ0dWFsLWZpbGUgY29uZmlncy5cbiAqIEBleGFtcGxlXG4gKiBjb25zb2xlLmxvZyhidWlsZFR5cGVTY3JpcHRFeGFtcGxlQ29uZmlncyh7IGRpc2FibGVUeXBlQ2hlY2tlZFJ1bGVzOiB7fSwgZ2V0SnNkb2NQcm9jZXNzb3JQbHVnaW46IHZvaWQgMCwgcGFyc2VyOiB7fSBhcyBQYXJzZXIsIHR5cGVTY3JpcHRQbHVnaW46IHt9IGFzIFR5cGVTY3JpcHRQbHVnaW4gfSkubGVuZ3RoKTtcbiAqL1xuZnVuY3Rpb24gYnVpbGRUeXBlU2NyaXB0RXhhbXBsZUNvbmZpZ3Moe1xuICBkaXNhYmxlVHlwZUNoZWNrZWRSdWxlcyxcbiAgZ2V0SnNkb2NQcm9jZXNzb3JQbHVnaW4sXG4gIHBhcnNlcixcbiAgdHlwZVNjcmlwdFBsdWdpbixcbn06IEJ1aWxkVHlwZVNjcmlwdEV4YW1wbGVDb25maWdPcHRpb25zKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgaWYgKGdldEpzZG9jUHJvY2Vzc29yUGx1Z2luID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGJ1aWxkVHlwZVNjcmlwdFByb2Nlc3NvckNvbmZpZyhnZXRKc2RvY1Byb2Nlc3NvclBsdWdpbiwgcGFyc2VyKSxcbiAgICBidWlsZFR5cGVTY3JpcHRTbmlwcGV0UnVsZUNvbmZpZyh7XG4gICAgICBmaWxlczogdHlwZVNjcmlwdEV4YW1wbGVGaWxlcyxcbiAgICAgIG5hbWU6IFwianNkb2MvdHlwZXNjcmlwdC1leGFtcGxlcy9ydWxlc1wiLFxuICAgICAgcGFyc2VyLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgLi4uZGlzYWJsZVR5cGVDaGVja2VkUnVsZXMsXG4gICAgICAgIC4uLmJ1aWxkRXhhbXBsZVNuaXBwZXRSdWxlcygpLFxuICAgICAgfSxcbiAgICAgIHR5cGVTY3JpcHRQbHVnaW4sXG4gICAgfSksXG4gICAgYnVpbGRUeXBlU2NyaXB0U25pcHBldFJ1bGVDb25maWcoe1xuICAgICAgZmlsZXM6IHR5cGVTY3JpcHREZWZhdWx0RXhwcmVzc2lvbkZpbGVzLFxuICAgICAgbmFtZTogXCJqc2RvYy90eXBlc2NyaXB0LWRlZmF1bHQtZXhwcmVzc2lvbnMvcnVsZXNcIixcbiAgICAgIHBhcnNlcixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIC4uLmRpc2FibGVUeXBlQ2hlY2tlZFJ1bGVzLFxuICAgICAgICAuLi5idWlsZERlZmF1bHRFeHByZXNzaW9uU25pcHBldFJ1bGVzKCksXG4gICAgICB9LFxuICAgICAgdHlwZVNjcmlwdFBsdWdpbixcbiAgICB9KSxcbiAgXTtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgcHJvY2Vzc29yIGNvbmZpZyBmb3IgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuXG4gKiBAcGFyYW0gZ2V0SnNkb2NQcm9jZXNzb3JQbHVnaW4gVXBzdHJlYW0gSlNEb2MgcHJvY2Vzc29yIGZhY3RvcnkuXG4gKiBAcGFyYW0gcGFyc2VyIFBhcnNlciB1c2VkIGZvciBob3N0IFR5cGVTY3JpcHQgZmlsZXMuXG4gKiBAcmV0dXJucyBUaGUgcHJvY2Vzc29yLWJhY2tlZCBFU0xpbnQgY29uZmlnIGVudHJ5LlxuICogQGV4YW1wbGVcbiAqIGNvbnNvbGUubG9nKGJ1aWxkVHlwZVNjcmlwdFByb2Nlc3NvckNvbmZpZygoKF9jb25maWcpID0+ICh7IHByb2Nlc3NvcnM6IHsgZXhhbXBsZXM6IHt9IH0gfSkpIGFzIEpzZG9jUHJvY2Vzc29yUGx1Z2luRmFjdG9yeSwge30gYXMgUGFyc2VyKS5wcm9jZXNzb3IpO1xuICovXG5mdW5jdGlvbiBidWlsZFR5cGVTY3JpcHRQcm9jZXNzb3JDb25maWcoXG4gIGdldEpzZG9jUHJvY2Vzc29yUGx1Z2luOiBKc2RvY1Byb2Nlc3NvclBsdWdpbkZhY3RvcnksXG4gIHBhcnNlcjogUGFyc2VyLFxuKTogTGludGVyLkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgZmlsZXM6IHR5cGVTY3JpcHRTb3VyY2VGaWxlcyxcbiAgICBuYW1lOiBcImpzZG9jL3R5cGVzY3JpcHQtZXhhbXBsZXMtYW5kLWRlZmF1bHQtZXhwcmVzc2lvbnMvcHJvY2Vzc29yXCIsXG4gICAgcGx1Z2luczoge1xuICAgICAgZXhhbXBsZXM6IGNyZWF0ZVdyYXBwZWRKc2RvY1Byb2Nlc3NvclBsdWdpbih7XG4gICAgICAgIGNoZWNrRGVmYXVsdHM6IHRydWUsXG4gICAgICAgIGNoZWNrUGFyYW1zOiB0cnVlLFxuICAgICAgICBjaGVja1Byb3BlcnRpZXM6IHRydWUsXG4gICAgICAgIGdldEpzZG9jUHJvY2Vzc29yUGx1Z2luLFxuICAgICAgICBwYXJzZXIsXG4gICAgICAgIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHByb2Nlc3NvcjogXCJleGFtcGxlcy9leGFtcGxlc1wiLFxuICB9O1xufVxuXG4vKipcbiAqIEJ1aWxkIGxhbmd1YWdlIG9wdGlvbnMgZm9yIGV4dHJhY3RlZCBUeXBlU2NyaXB0IHNuaXBwZXRzLlxuICogQHBhcmFtIHBhcnNlciBQYXJzZXIgdXNlZCBmb3Igc25pcHBldCBmaWxlcy5cbiAqIEByZXR1cm5zIFRoZSBsYW5ndWFnZSBvcHRpb25zIGZvciB2aXJ0dWFsIHNuaXBwZXQgZmlsZXMuXG4gKiBAZXhhbXBsZVxuICogY29uc29sZS5sb2coYnVpbGRUeXBlU2NyaXB0U25pcHBldExhbmd1YWdlT3B0aW9ucyh7fSBhcyBQYXJzZXIpLnNvdXJjZVR5cGUpO1xuICovXG5mdW5jdGlvbiBidWlsZFR5cGVTY3JpcHRTbmlwcGV0TGFuZ3VhZ2VPcHRpb25zKFxuICBwYXJzZXI6IFBhcnNlcixcbik6IE5vbk51bGxhYmxlPExpbnRlci5Db25maWdbXCJsYW5ndWFnZU9wdGlvbnNcIl0+IHtcbiAgcmV0dXJuIHtcbiAgICBwYXJzZXIsXG4gICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgcHJvamVjdFNlcnZpY2U6IGZhbHNlLFxuICAgIH0sXG4gICAgc291cmNlVHlwZTogXCJtb2R1bGVcIixcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIFR5cGVTY3JpcHQgc25pcHBldCBydWxlIGNvbmZpZyBmb3IgdmlydHVhbCBmaWxlcy5cbiAqIEBwYXJhbSBvcHRpb25zIENvbmZpZyBpbnB1dCBmb3IgdGhlIHNuaXBwZXQgcnVsZSBibG9jay5cbiAqIEBwYXJhbSBvcHRpb25zLmZpbGVzIFZpcnR1YWwgZmlsZSBnbG9icyB0YXJnZXRlZCBieSB0aGUgY29uZmlnLlxuICogQHBhcmFtIG9wdGlvbnMubmFtZSBDb25maWcgbmFtZSBzaG93biBpbiBFU0xpbnQgZGlhZ25vc3RpY3MuXG4gKiBAcGFyYW0gb3B0aW9ucy5wYXJzZXIgUGFyc2VyIHVzZWQgZm9yIGV4dHJhY3RlZCBzbmlwcGV0IGNvbnRlbnQuXG4gKiBAcGFyYW0gb3B0aW9ucy5ydWxlcyBSdWxlIG92ZXJyaWRlcyBhcHBsaWVkIHRvIHRoZSB2aXJ0dWFsIHNuaXBwZXQgZmlsZXMuXG4gKiBAcGFyYW0gb3B0aW9ucy50eXBlU2NyaXB0UGx1Z2luIFR5cGVTY3JpcHQgRVNMaW50IHBsdWdpbiBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlnIGZvciB0aGUgdmlydHVhbCBzbmlwcGV0IGZpbGVzLlxuICogQGV4YW1wbGVcbiAqIGNvbnNvbGUubG9nKGJ1aWxkVHlwZVNjcmlwdFNuaXBwZXRSdWxlQ29uZmlnKHsgZmlsZXM6IFtcInZpcnR1YWwtZXhhbXBsZS1maWxlXCJdLCBuYW1lOiBcImV4YW1wbGVcIiwgcGFyc2VyOiB7fSBhcyBQYXJzZXIsIHJ1bGVzOiB7fSwgdHlwZVNjcmlwdFBsdWdpbjoge30gYXMgVHlwZVNjcmlwdFBsdWdpbiB9KS5uYW1lKTtcbiAqL1xuZnVuY3Rpb24gYnVpbGRUeXBlU2NyaXB0U25pcHBldFJ1bGVDb25maWcoe1xuICBmaWxlcyxcbiAgbmFtZSxcbiAgcGFyc2VyLFxuICBydWxlcyxcbiAgdHlwZVNjcmlwdFBsdWdpbixcbn06IFR5cGVTY3JpcHRTbmlwcGV0UnVsZUNvbmZpZ09wdGlvbnMpOiBMaW50ZXIuQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBmaWxlcyxcbiAgICBsYW5ndWFnZU9wdGlvbnM6IGJ1aWxkVHlwZVNjcmlwdFNuaXBwZXRMYW5ndWFnZU9wdGlvbnMocGFyc2VyKSxcbiAgICBuYW1lLFxuICAgIHBsdWdpbnM6IHtcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50XCI6IHR5cGVTY3JpcHRQbHVnaW4sXG4gICAgfSxcbiAgICBydWxlcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBUeXBlU2NyaXB0IHJ1bGUgb3ZlcnJpZGVzIHRoYXQgZGlzYWJsZSB0eXBlZC1vbmx5IGxpbnRpbmcgZm9yIHNuaXBwZXRzLlxuICogQHBhcmFtIHR5cGVTY3JpcHRDb25maWdzIFRoZSBleHBvcnRlZCBUeXBlU2NyaXB0IEVTTGludCBjb25maWcgbWFwLlxuICogQHJldHVybnMgVGhlIGRpc2FibGUtdHlwZS1jaGVja2VkIHJ1bGUgb3ZlcnJpZGVzLlxuICogQGV4YW1wbGVcbiAqIGNvbnNvbGUubG9nKHJlc29sdmVEaXNhYmxlVHlwZUNoZWNrZWRSdWxlcyh7IGRpc2FibGVUeXBlQ2hlY2tlZDogeyBydWxlczogeyBleGFtcGxlOiBcIm9mZlwiIH0gfSB9IGFzIFR5cGVTY3JpcHRDb25maWdzKS5leGFtcGxlKTtcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZURpc2FibGVUeXBlQ2hlY2tlZFJ1bGVzKFxuICB0eXBlU2NyaXB0Q29uZmlnczogVHlwZVNjcmlwdENvbmZpZ3MsXG4pOiBMaW50ZXIuUnVsZXNSZWNvcmQge1xuICByZXR1cm4gKHR5cGVTY3JpcHRDb25maWdzLmRpc2FibGVUeXBlQ2hlY2tlZC5ydWxlcyA/P1xuICAgIHt9KSBhcyBMaW50ZXIuUnVsZXNSZWNvcmQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgb3B0aW9uYWwgcHJvY2Vzc29yIGZhY3RvcnkgZnJvbSB0aGUgSlNEb2MgcGx1Z2luIG1vZHVsZS5cbiAqIEBwYXJhbSBqc2RvY01vZHVsZSBUaGUgbG9hZGVkIEpTRG9jIHBsdWdpbiBtb2R1bGUuXG4gKiBAcmV0dXJucyBUaGUgcHJvY2Vzc29yIGZhY3Rvcnkgd2hlbiB0aGUgbW9kdWxlIGV4cG9ydHMgaXQuXG4gKiBAZXhhbXBsZVxuICogY29uc29sZS5sb2cocmVzb2x2ZUpzZG9jUHJvY2Vzc29yUGx1Z2luKHt9KSA9PT0gdm9pZCAwKTtcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUpzZG9jUHJvY2Vzc29yUGx1Z2luKFxuICBqc2RvY01vZHVsZTogUmVhZG9ubHk8e1xuICAgIC8qKiBPcHRpb25hbCBleHBvcnRlZCBKU0RvYyBwcm9jZXNzb3IgZmFjdG9yeS4gKi9cbiAgICBnZXRKc2RvY1Byb2Nlc3NvclBsdWdpbj86IEpzZG9jUHJvY2Vzc29yUGx1Z2luRmFjdG9yeTtcbiAgfT4sXG4pOiBKc2RvY1Byb2Nlc3NvclBsdWdpbkZhY3RvcnkgfCB1bmRlZmluZWQge1xuICByZXR1cm4gXCJnZXRKc2RvY1Byb2Nlc3NvclBsdWdpblwiIGluIGpzZG9jTW9kdWxlXG4gICAgPyBqc2RvY01vZHVsZS5nZXRKc2RvY1Byb2Nlc3NvclBsdWdpblxuICAgIDogdm9pZCAwO1xufVxuXG5leHBvcnQge1xuICBidWlsZFR5cGVTY3JpcHRFeGFtcGxlQ29uZmlncyxcbiAgcmVzb2x2ZURpc2FibGVUeXBlQ2hlY2tlZFJ1bGVzLFxuICByZXNvbHZlSnNkb2NQcm9jZXNzb3JQbHVnaW4sXG59O1xuZXhwb3J0IHR5cGUgeyBQYXJzZXIsIFR5cGVTY3JpcHRDb25maWdzLCBUeXBlU2NyaXB0UGx1Z2luIH07XG4iXX0=
|