@codeperfect/eslint-config 1.2.0 → 1.4.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.
Files changed (177) hide show
  1. package/README.md +21 -3
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/codeperfect-eslint-config-1.0.0.tgz +0 -0
  4. package/dist/domain/config-composition.d.ts +8 -0
  5. package/dist/domain/config-composition.d.ts.map +1 -0
  6. package/dist/domain/config-composition.js +55 -0
  7. package/dist/domain/index.d.ts +3 -1
  8. package/dist/domain/index.d.ts.map +1 -1
  9. package/dist/domain/index.js +3 -2
  10. package/dist/{module-taxonomy.d.ts → domain/module-taxonomy.d.ts} +3 -3
  11. package/dist/domain/module-taxonomy.d.ts.map +1 -0
  12. package/dist/domain/module-taxonomy.js +22 -0
  13. package/dist/{types.d.ts → domain/types.d.ts} +31 -6
  14. package/dist/domain/types.d.ts.map +1 -0
  15. package/dist/domain/types.js +2 -0
  16. package/dist/index.d.ts +2 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -2
  19. package/dist/infrastructure/architecture/boundaries.d.ts +22 -0
  20. package/dist/infrastructure/architecture/boundaries.d.ts.map +1 -0
  21. package/dist/infrastructure/architecture/boundaries.js +175 -0
  22. package/dist/infrastructure/architecture/import-x.d.ts.map +1 -0
  23. package/dist/infrastructure/architecture/import-x.js +79 -0
  24. package/dist/infrastructure/architecture/index.d.ts +3 -0
  25. package/dist/infrastructure/architecture/index.d.ts.map +1 -0
  26. package/dist/infrastructure/architecture/index.js +3 -0
  27. package/dist/{config-factory.d.ts → infrastructure/config-factory.d.ts} +1 -1
  28. package/dist/infrastructure/config-factory.d.ts.map +1 -0
  29. package/dist/infrastructure/config-factory.js +44 -0
  30. package/dist/infrastructure/configs/index.d.ts +7 -0
  31. package/dist/infrastructure/configs/index.d.ts.map +1 -0
  32. package/dist/infrastructure/configs/index.js +7 -0
  33. package/dist/infrastructure/core/codeperfect.d.ts.map +1 -0
  34. package/dist/infrastructure/core/codeperfect.js +14 -0
  35. package/dist/infrastructure/core/eslint.d.ts.map +1 -0
  36. package/dist/infrastructure/core/eslint.js +62 -0
  37. package/dist/infrastructure/core/index.d.ts +5 -0
  38. package/dist/infrastructure/core/index.d.ts.map +1 -0
  39. package/dist/infrastructure/core/index.js +5 -0
  40. package/dist/infrastructure/core/resolver.d.ts.map +1 -0
  41. package/dist/infrastructure/core/resolver.js +27 -0
  42. package/dist/infrastructure/core/typescript.d.ts.map +1 -0
  43. package/dist/infrastructure/core/typescript.js +63 -0
  44. package/dist/{diagnostics.d.ts → infrastructure/diagnostics.d.ts} +13 -3
  45. package/dist/infrastructure/diagnostics.d.ts.map +1 -0
  46. package/dist/infrastructure/diagnostics.js +90 -0
  47. package/dist/infrastructure/docs/comments.d.ts.map +1 -0
  48. package/dist/infrastructure/docs/comments.js +30 -0
  49. package/dist/infrastructure/docs/index.d.ts +3 -0
  50. package/dist/infrastructure/docs/index.d.ts.map +1 -0
  51. package/dist/infrastructure/docs/index.js +3 -0
  52. package/dist/infrastructure/docs/jsdoc-config.d.ts +14 -0
  53. package/dist/infrastructure/docs/jsdoc-config.d.ts.map +1 -0
  54. package/dist/infrastructure/docs/jsdoc-config.js +126 -0
  55. package/dist/infrastructure/docs/jsdoc.d.ts.map +1 -0
  56. package/dist/infrastructure/docs/jsdoc.js +15 -0
  57. package/dist/infrastructure/index.d.ts +5 -0
  58. package/dist/infrastructure/index.d.ts.map +1 -0
  59. package/dist/infrastructure/index.js +4 -0
  60. package/dist/{plugin-loaders.d.ts → infrastructure/plugin-loaders.d.ts} +2 -2
  61. package/dist/infrastructure/plugin-loaders.d.ts.map +1 -0
  62. package/dist/infrastructure/plugin-loaders.js +115 -0
  63. package/dist/infrastructure/plugin-state.d.ts +26 -0
  64. package/dist/infrastructure/plugin-state.d.ts.map +1 -0
  65. package/dist/infrastructure/plugin-state.js +54 -0
  66. package/dist/infrastructure/rxjs-x.d.ts.map +1 -0
  67. package/dist/infrastructure/rxjs-x.js +27 -0
  68. package/dist/infrastructure/style/index.d.ts +5 -0
  69. package/dist/infrastructure/style/index.d.ts.map +1 -0
  70. package/dist/infrastructure/style/index.js +5 -0
  71. package/dist/infrastructure/style/perfectionist.d.ts.map +1 -0
  72. package/dist/infrastructure/style/perfectionist.js +31 -0
  73. package/dist/infrastructure/style/prettier.d.ts.map +1 -0
  74. package/dist/infrastructure/style/prettier.js +15 -0
  75. package/dist/infrastructure/style/stylistic.d.ts.map +1 -0
  76. package/dist/infrastructure/style/stylistic.js +17 -0
  77. package/dist/infrastructure/style/unicorn.d.ts.map +1 -0
  78. package/dist/infrastructure/style/unicorn.js +15 -0
  79. package/dist/infrastructure/testing/index.d.ts +5 -0
  80. package/dist/infrastructure/testing/index.d.ts.map +1 -0
  81. package/dist/infrastructure/testing/index.js +5 -0
  82. package/dist/infrastructure/testing/jasmine.d.ts.map +1 -0
  83. package/dist/infrastructure/testing/jasmine.js +25 -0
  84. package/dist/infrastructure/testing/jest.d.ts.map +1 -0
  85. package/dist/infrastructure/testing/jest.js +27 -0
  86. package/dist/infrastructure/testing/playwright.d.ts.map +1 -0
  87. package/dist/infrastructure/testing/playwright.js +29 -0
  88. package/dist/infrastructure/testing/vitest.d.ts.map +1 -0
  89. package/dist/infrastructure/testing/vitest.js +33 -0
  90. package/dist/{utilities.d.ts → infrastructure/utilities.d.ts} +2 -13
  91. package/dist/infrastructure/utilities.d.ts.map +1 -0
  92. package/dist/infrastructure/utilities.js +112 -0
  93. package/package.json +43 -37
  94. package/dist/architecture/boundaries.d.ts +0 -17
  95. package/dist/architecture/boundaries.d.ts.map +0 -1
  96. package/dist/architecture/boundaries.js +0 -69
  97. package/dist/architecture/import-x.d.ts.map +0 -1
  98. package/dist/architecture/import-x.js +0 -80
  99. package/dist/architecture/index.d.ts +0 -3
  100. package/dist/architecture/index.d.ts.map +0 -1
  101. package/dist/architecture/index.js +0 -3
  102. package/dist/config-composition.d.ts +0 -6
  103. package/dist/config-composition.d.ts.map +0 -1
  104. package/dist/config-composition.js +0 -39
  105. package/dist/config-factory.d.ts.map +0 -1
  106. package/dist/config-factory.js +0 -42
  107. package/dist/configs/index.d.ts +0 -7
  108. package/dist/configs/index.d.ts.map +0 -1
  109. package/dist/configs/index.js +0 -7
  110. package/dist/core/codeperfect.d.ts.map +0 -1
  111. package/dist/core/codeperfect.js +0 -14
  112. package/dist/core/eslint.d.ts.map +0 -1
  113. package/dist/core/eslint.js +0 -58
  114. package/dist/core/index.d.ts +0 -5
  115. package/dist/core/index.d.ts.map +0 -1
  116. package/dist/core/index.js +0 -5
  117. package/dist/core/resolver.d.ts.map +0 -1
  118. package/dist/core/resolver.js +0 -27
  119. package/dist/core/typescript.d.ts.map +0 -1
  120. package/dist/core/typescript.js +0 -63
  121. package/dist/diagnostics.d.ts.map +0 -1
  122. package/dist/diagnostics.js +0 -74
  123. package/dist/docs/comments.d.ts.map +0 -1
  124. package/dist/docs/comments.js +0 -30
  125. package/dist/docs/index.d.ts +0 -3
  126. package/dist/docs/index.d.ts.map +0 -1
  127. package/dist/docs/index.js +0 -3
  128. package/dist/docs/jsdoc.d.ts.map +0 -1
  129. package/dist/docs/jsdoc.js +0 -126
  130. package/dist/domain/rxjs-x.d.ts.map +0 -1
  131. package/dist/domain/rxjs-x.js +0 -27
  132. package/dist/module-taxonomy.d.ts.map +0 -1
  133. package/dist/module-taxonomy.js +0 -22
  134. package/dist/plugin-loaders.d.ts.map +0 -1
  135. package/dist/plugin-loaders.js +0 -115
  136. package/dist/style/index.d.ts +0 -5
  137. package/dist/style/index.d.ts.map +0 -1
  138. package/dist/style/index.js +0 -5
  139. package/dist/style/perfectionist.d.ts.map +0 -1
  140. package/dist/style/perfectionist.js +0 -31
  141. package/dist/style/prettier.d.ts.map +0 -1
  142. package/dist/style/prettier.js +0 -15
  143. package/dist/style/stylistic.d.ts.map +0 -1
  144. package/dist/style/stylistic.js +0 -17
  145. package/dist/style/unicorn.d.ts.map +0 -1
  146. package/dist/style/unicorn.js +0 -15
  147. package/dist/testing/index.d.ts +0 -5
  148. package/dist/testing/index.d.ts.map +0 -1
  149. package/dist/testing/index.js +0 -5
  150. package/dist/testing/jasmine.d.ts.map +0 -1
  151. package/dist/testing/jasmine.js +0 -25
  152. package/dist/testing/jest.d.ts.map +0 -1
  153. package/dist/testing/jest.js +0 -27
  154. package/dist/testing/playwright.d.ts.map +0 -1
  155. package/dist/testing/playwright.js +0 -29
  156. package/dist/testing/vitest.d.ts.map +0 -1
  157. package/dist/testing/vitest.js +0 -33
  158. package/dist/types.d.ts.map +0 -1
  159. package/dist/types.js +0 -2
  160. package/dist/utilities.d.ts.map +0 -1
  161. package/dist/utilities.js +0 -125
  162. /package/dist/{architecture → infrastructure/architecture}/import-x.d.ts +0 -0
  163. /package/dist/{core → infrastructure/core}/codeperfect.d.ts +0 -0
  164. /package/dist/{core → infrastructure/core}/eslint.d.ts +0 -0
  165. /package/dist/{core → infrastructure/core}/resolver.d.ts +0 -0
  166. /package/dist/{core → infrastructure/core}/typescript.d.ts +0 -0
  167. /package/dist/{docs → infrastructure/docs}/comments.d.ts +0 -0
  168. /package/dist/{docs → infrastructure/docs}/jsdoc.d.ts +0 -0
  169. /package/dist/{domain → infrastructure}/rxjs-x.d.ts +0 -0
  170. /package/dist/{style → infrastructure/style}/perfectionist.d.ts +0 -0
  171. /package/dist/{style → infrastructure/style}/prettier.d.ts +0 -0
  172. /package/dist/{style → infrastructure/style}/stylistic.d.ts +0 -0
  173. /package/dist/{style → infrastructure/style}/unicorn.d.ts +0 -0
  174. /package/dist/{testing → infrastructure/testing}/jasmine.d.ts +0 -0
  175. /package/dist/{testing → infrastructure/testing}/jest.d.ts +0 -0
  176. /package/dist/{testing → infrastructure/testing}/playwright.d.ts +0 -0
  177. /package/dist/{testing → infrastructure/testing}/vitest.d.ts +0 -0
@@ -1,33 +0,0 @@
1
- import { defineConfig } from "eslint/config";
2
- /**
3
- * Load Vitest plugin configuration when available.
4
- * @returns Return value output.
5
- * @example
6
- * ```typescript
7
- * await vitest();
8
- * ```
9
- */
10
- export async function vitest() {
11
- const vitestModule = await import("@vitest/eslint-plugin");
12
- const plugin = vitestModule.default;
13
- const allConfig = plugin?.configs?.all;
14
- if (allConfig === void 0) {
15
- return [];
16
- }
17
- return defineConfig({ settings: { vitest: { typecheck: true } } }, {
18
- extends: [allConfig],
19
- files: ["**/*.{spec,test}.ts"],
20
- name: "vitest/custom",
21
- rules: {
22
- "vitest/consistent-test-filename": [
23
- "error",
24
- { pattern: String.raw `.*\.spec\.[tj]sx?$` },
25
- ],
26
- "vitest/no-hooks": "off",
27
- "vitest/prefer-expect-assertions": "off",
28
- "vitest/require-mock-type-parameters": "off",
29
- "vitest/unbound-method": "off",
30
- },
31
- });
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Rpbmcvdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsTUFBTTtJQUMxQixNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzNELE1BQU0sTUFBTSxHQUNWLFlBVUQsQ0FBQyxPQUFPLENBQUM7SUFDVixNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQztJQUV2QyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sWUFBWSxDQUNqQixFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQzdDO1FBQ0UsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3BCLEtBQUssRUFBRSxDQUFDLHFCQUFxQixDQUFDO1FBQzlCLElBQUksRUFBRSxlQUFlO1FBQ3JCLEtBQUssRUFBRTtZQUNMLGlDQUFpQyxFQUFFO2dCQUNqQyxPQUFPO2dCQUNQLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUEsb0JBQW9CLEVBQUU7YUFDNUM7WUFDRCxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGlDQUFpQyxFQUFFLEtBQUs7WUFDeEMscUNBQXFDLEVBQUUsS0FBSztZQUM1Qyx1QkFBdUIsRUFBRSxLQUFLO1NBQy9CO0tBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIExvYWQgVml0ZXN0IHBsdWdpbiBjb25maWd1cmF0aW9uIHdoZW4gYXZhaWxhYmxlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCB2aXRlc3QoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdml0ZXN0KCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHZpdGVzdE1vZHVsZSA9IGF3YWl0IGltcG9ydChcIkB2aXRlc3QvZXNsaW50LXBsdWdpblwiKTtcbiAgY29uc3QgcGx1Z2luID0gKFxuICAgIHZpdGVzdE1vZHVsZSBhcyB7XG4gICAgICAvKiogRGVmYXVsdCBoZWxwZXIgdmFsdWUuICovXG4gICAgICBkZWZhdWx0Pzoge1xuICAgICAgICAvKiogQ29uZmlncyBoZWxwZXIgdmFsdWUuICovXG4gICAgICAgIGNvbmZpZ3M/OiB7XG4gICAgICAgICAgLyoqIEFsbCBoZWxwZXIgdmFsdWUuICovXG4gICAgICAgICAgYWxsPzogTGludGVyLkNvbmZpZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfVxuICApLmRlZmF1bHQ7XG4gIGNvbnN0IGFsbENvbmZpZyA9IHBsdWdpbj8uY29uZmlncz8uYWxsO1xuXG4gIGlmIChhbGxDb25maWcgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgeyBzZXR0aW5nczogeyB2aXRlc3Q6IHsgdHlwZWNoZWNrOiB0cnVlIH0gfSB9LFxuICAgIHtcbiAgICAgIGV4dGVuZHM6IFthbGxDb25maWddLFxuICAgICAgZmlsZXM6IFtcIioqLyoue3NwZWMsdGVzdH0udHNcIl0sXG4gICAgICBuYW1lOiBcInZpdGVzdC9jdXN0b21cIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwidml0ZXN0L2NvbnNpc3RlbnQtdGVzdC1maWxlbmFtZVwiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIHsgcGF0dGVybjogU3RyaW5nLnJhd2AuKlxcLnNwZWNcXC5bdGpdc3g/JGAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgXCJ2aXRlc3Qvbm8taG9va3NcIjogXCJvZmZcIixcbiAgICAgICAgXCJ2aXRlc3QvcHJlZmVyLWV4cGVjdC1hc3NlcnRpb25zXCI6IFwib2ZmXCIsXG4gICAgICAgIFwidml0ZXN0L3JlcXVpcmUtbW9jay10eXBlLXBhcmFtZXRlcnNcIjogXCJvZmZcIixcbiAgICAgICAgXCJ2aXRlc3QvdW5ib3VuZC1tZXRob2RcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
@@ -1 +0,0 @@
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 DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUge1xuICBEZXBlbmRlbmNpZXNSdWxlT3B0aW9ucyxcbiAgRWxlbWVudERlc2NyaXB0b3JzLFxufSBmcm9tIFwiZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgQXJjaGl0ZWN0dXJlUGx1Z2luTmFtZSA9IFwiYm91bmRhcmllc1wiIHwgXCJpbXBvcnQteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQm91bmRhcmllc0NvbmZpZyB7XG4gIC8qKiBSZXBvc2l0b3J5LW93bmVkIGVsZW1lbnQgZGVzY3JpcHRvcnMgZm9yIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIGVsZW1lbnRzOiBFbGVtZW50RGVzY3JpcHRvcnM7XG5cbiAgLyoqIFJlcG9zaXRvcnktb3duZWQgZGVwZW5kZW5jeSBkaXJlY3Rpb24gcnVsZXMgZm9yIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHMgLS0tIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBjb3JyZWN0IHR5cGluZyBvZiB0aGUgcnVsZSBvcHRpb25zLlxuICBlbGVtZW50VHlwZXM6IExpbnRlci5SdWxlRW50cnk8RGVwZW5kZW5jaWVzUnVsZU9wdGlvbnNbXT47XG5cbiAgLyoqIEZpbGVzIGluY2x1ZGVkIGluIHJlcG9zaXRvcnktc3BlY2lmaWMgYm91bmRhcmllcyBhbmFseXNpcy4gKi9cbiAgZmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKiBPcHRpb25hbCBpZ25vcmUgZ2xvYnMgZXhjbHVkZWQgZnJvbSByZXBvc2l0b3J5LXNwZWNpZmljIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIGlnbm9yZXM/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIENvbmZpZ09wdGlvbnMge1xuICAvKiogUmVwb3NpdG9yeS1vd25lZCBhcmNoaXRlY3R1cmUgaW5wdXQgZm9yIHRoZSBvcHRpb25hbCBgYm91bmRhcmllc2AgbW9kdWxlLiAqL1xuICBib3VuZGFyaWVzPzogQm91bmRhcmllc0NvbmZpZztcblxuICAvKiogTGlzdCBvZiBuYW1lZCBtb2R1bGVzIHRvIGRpc2FibGUgZnJvbSB0aGUgY29tcG9zZWQgY29uZmlndXJhdGlvbi4gKi9cbiAgZGlzYWJsZWRQbHVnaW5zPzogcmVhZG9ubHkgUGx1Z2luTmFtZVtdO1xuXG4gIC8qKlxuICAgKiBSdWxlcyB0byBkaXNhYmxlIG9yIG92ZXJyaWRlLlxuICAgKiBVc2UgJ29mZicgdG8gZGlzYWJsZSwgb3IgcHJvdmlkZSBjdXN0b20gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJ1bGVzPzogTGludGVyLlJ1bGVzUmVjb3JkO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvcmVQbHVnaW5OYW1lID0gXCJjb2RlcGVyZmVjdFwiIHwgXCJlc2xpbnRcIiB8IFwicmVzb2x2ZXJcIiB8IFwidHlwZXNjcmlwdFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvY3VtZW50YXRpb25QbHVnaW5OYW1lID0gXCJjb21tZW50c1wiIHwgXCJqc2RvY1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvbWFpblBsdWdpbk5hbWUgPSBcInJ4anMteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFBsdWdpbk5hbWUgPVxuICB8IEFyY2hpdGVjdHVyZVBsdWdpbk5hbWVcbiAgfCBDb3JlUGx1Z2luTmFtZVxuICB8IERvY3VtZW50YXRpb25QbHVnaW5OYW1lXG4gIHwgRG9tYWluUGx1Z2luTmFtZVxuICB8IFN0eWxlUGx1Z2luTmFtZVxuICB8IFRlc3RpbmdQbHVnaW5OYW1lO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFN0eWxlUGx1Z2luTmFtZSA9IFwicGVyZmVjdGlvbmlzdFwiIHwgXCJwcmV0dGllclwiIHwgXCJzdHlsaXN0aWNcIiB8IFwidW5pY29yblwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFRlc3RpbmdQbHVnaW5OYW1lID0gXCJqYXNtaW5lXCIgfCBcImplc3RcIiB8IFwicGxheXdyaWdodFwiIHwgXCJ2aXRlc3RcIjtcblxuZXhwb3J0IHR5cGUgeyBCb3VuZGFyaWVzQ29uZmlnLCBDb25maWdPcHRpb25zLCBQbHVnaW5OYW1lIH07XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,uDAAuD;AACvD,KAAK,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAExC;;;;;;;;;;GAUG;AACH,iBAAS,kBAAkB,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACvB,aAAa,CAAC,EAAE,MAAM,CAAC,WAAW,EAClC,gBAAgB,GAAE,WAAW,CAAC,MAAM,CAAa,GAChD,MAAM,CAAC,MAAM,EAAE,CAcjB;AAED;;;;;;;;GAQG;AACH,iBAAS,uBAAuB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GACvB,WAAW,CAAC,MAAM,CAAC,CAYrB;AA+BD;;;;;;;;;GASG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,UAAU,EACtB,eAAe,CAAC,EAAE,SAAS,UAAU,EAAE,GACtC,OAAO,CAET;AAED;;;;;;;;;;GAUG;AACH,iBAAe,gBAAgB,CAC7B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EACxD,IAAI,GAAE,QAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAY1B;AA4BD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,GACjB,CAAC;AAEF,YAAY,EAAE,QAAQ,EAAE,CAAC"}
package/dist/utilities.js DELETED
@@ -1,125 +0,0 @@
1
- import { reportPluginLoadIssue, reportRuleOverrideSkip } from "./diagnostics";
2
- /**
3
- * Applies rule overrides to a configuration array.
4
- * @param config Input config value.
5
- * @param ruleOverrides Input ruleOverrides value.
6
- * @param availablePlugins Input availablePlugins value.
7
- * @returns Return value output.
8
- * @example
9
- * ```typescript
10
- * applyRuleOverrides([], { "no-console": "off" });
11
- * ```
12
- */
13
- function applyRuleOverrides(config, ruleOverrides, availablePlugins = new Set()) {
14
- const filteredRules = filterRuleOverrides(ruleOverrides, availablePlugins);
15
- if (filteredRules === void 0) {
16
- return config;
17
- }
18
- return [
19
- ...config,
20
- {
21
- name: "custom/rule-overrides",
22
- rules: filteredRules,
23
- },
24
- ];
25
- }
26
- /**
27
- * Collects plugin names from config entries.
28
- * @param configs Input configs value.
29
- * @returns Return value output.
30
- * @example
31
- * ```typescript
32
- * collectAvailablePlugins();
33
- * ```
34
- */
35
- function collectAvailablePlugins(configs) {
36
- const plugins = new Set();
37
- for (const config of configs) {
38
- if (config.plugins !== void 0) {
39
- for (const pluginName of Object.keys(config.plugins)) {
40
- plugins.add(pluginName);
41
- }
42
- }
43
- }
44
- return plugins;
45
- }
46
- /**
47
- * Filters rule overrides to those that can be applied.
48
- * @param ruleOverrides Input ruleOverrides value.
49
- * @param availablePlugins Input availablePlugins value.
50
- * @returns Return value output.
51
- * @example
52
- * ```typescript
53
- * filterRuleOverrides();
54
- * ```
55
- */
56
- function filterRuleOverrides(ruleOverrides, availablePlugins) {
57
- if (ruleOverrides === void 0 || Object.keys(ruleOverrides).length === 0) {
58
- return void 0;
59
- }
60
- const filteredRules = {};
61
- for (const [ruleName, ruleValue] of Object.entries(ruleOverrides)) {
62
- if (!shouldSkipRuleOverride(ruleName, availablePlugins)) {
63
- filteredRules[ruleName] = ruleValue;
64
- }
65
- }
66
- return Object.keys(filteredRules).length === 0 ? void 0 : filteredRules;
67
- }
68
- /**
69
- * Checks if a plugin is disabled in the options.
70
- * @param pluginName Input pluginName value.
71
- * @param disabledPlugins Input disabledPlugins value.
72
- * @returns Return value output.
73
- * @example
74
- * ```typescript
75
- * isPluginDisabled();
76
- * ```
77
- */
78
- function isPluginDisabled(pluginName, disabledPlugins) {
79
- return disabledPlugins?.includes(pluginName) === true;
80
- }
81
- /**
82
- * Loads a plugin config with a helpful, colorful error message on failure.
83
- * @param pluginName Input pluginName value.
84
- * @param loader Input loader value.
85
- * @param mode Specifies whether loader failures are fatal or skippable.
86
- * @returns Return value output.
87
- * @example
88
- * ```typescript
89
- * loadPluginConfig();
90
- * ```
91
- */
92
- async function loadPluginConfig(pluginName, loader, mode = "optional") {
93
- try {
94
- return await loader();
95
- }
96
- catch (error) {
97
- reportPluginLoadIssue(pluginName, error, mode);
98
- if (mode === "required") {
99
- throw error;
100
- }
101
- return [];
102
- }
103
- }
104
- /**
105
- * Determines whether a rule override should be skipped.
106
- * @param ruleName Input ruleName value.
107
- * @param availablePlugins Input availablePlugins value.
108
- * @returns Return value output.
109
- * @example
110
- * ```typescript
111
- * shouldSkipRuleOverride();
112
- * ```
113
- */
114
- function shouldSkipRuleOverride(ruleName, availablePlugins) {
115
- const [pluginName = ""] = ruleName.split("/");
116
- const isPluginRule = ruleName.includes("/");
117
- const hasPlugin = availablePlugins.has(pluginName);
118
- if (isPluginRule && !hasPlugin) {
119
- reportRuleOverrideSkip(ruleName, pluginName);
120
- return true;
121
- }
122
- return false;
123
- }
124
- export { applyRuleOverrides, collectAvailablePlugins, isPluginDisabled, loadPluginConfig, };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLOUU7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsa0JBQWtCLENBQ3pCLE1BQXVCLEVBQ3ZCLGFBQWtDLEVBQ2xDLG1CQUF3QyxJQUFJLEdBQUcsRUFBRTtJQUVqRCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUUzRSxJQUFJLGFBQWEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1Q7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLEtBQUssRUFBRSxhQUFhO1NBQ0o7S0FDbkIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsdUJBQXVCLENBQzlCLE9BQXdCO0lBRXhCLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFbEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLGFBQTZDLEVBQzdDLGdCQUFxQztJQUVyQyxJQUFJLGFBQWEsS0FBSyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4RSxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBdUIsRUFBRSxDQUFDO0lBRTdDLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDeEQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0FBQzFFLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUN2QixVQUFzQixFQUN0QixlQUF1QztJQUV2QyxPQUFPLGVBQWUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ3hELENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsS0FBSyxVQUFVLGdCQUFnQixDQUM3QixVQUFzQixFQUN0QixNQUF3RCxFQUN4RCxPQUFpQixVQUFVO0lBRTNCLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxNQUFNLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDeEIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLFFBQWdCLEVBQ2hCLGdCQUFxQztJQUVyQyxNQUFNLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbkQsSUFBSSxZQUFZLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTmFtZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IHJlcG9ydFBsdWdpbkxvYWRJc3N1ZSwgcmVwb3J0UnVsZU92ZXJyaWRlU2tpcCB9IGZyb20gXCIuL2RpYWdub3N0aWNzXCI7XG5cbi8qKiBSdW50aW1lIGxvYWRpbmcgbW9kZXMgZm9yIHBsdWdpbiBjb25maWcgbG9hZGVycy4gKi9cbnR5cGUgTG9hZE1vZGUgPSBcIm9wdGlvbmFsXCIgfCBcInJlcXVpcmVkXCI7XG5cbi8qKlxuICogQXBwbGllcyBydWxlIG92ZXJyaWRlcyB0byBhIGNvbmZpZ3VyYXRpb24gYXJyYXkuXG4gKiBAcGFyYW0gY29uZmlnIElucHV0IGNvbmZpZyB2YWx1ZS5cbiAqIEBwYXJhbSBydWxlT3ZlcnJpZGVzIElucHV0IHJ1bGVPdmVycmlkZXMgdmFsdWUuXG4gKiBAcGFyYW0gYXZhaWxhYmxlUGx1Z2lucyBJbnB1dCBhdmFpbGFibGVQbHVnaW5zIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhcHBseVJ1bGVPdmVycmlkZXMoW10sIHsgXCJuby1jb25zb2xlXCI6IFwib2ZmXCIgfSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYXBwbHlSdWxlT3ZlcnJpZGVzKFxuICBjb25maWc6IExpbnRlci5Db25maWdbXSxcbiAgcnVsZU92ZXJyaWRlcz86IExpbnRlci5SdWxlc1JlY29yZCxcbiAgYXZhaWxhYmxlUGx1Z2luczogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKSxcbik6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGZpbHRlcmVkUnVsZXMgPSBmaWx0ZXJSdWxlT3ZlcnJpZGVzKHJ1bGVPdmVycmlkZXMsIGF2YWlsYWJsZVBsdWdpbnMpO1xuXG4gIGlmIChmaWx0ZXJlZFJ1bGVzID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICAuLi5jb25maWcsXG4gICAge1xuICAgICAgbmFtZTogXCJjdXN0b20vcnVsZS1vdmVycmlkZXNcIixcbiAgICAgIHJ1bGVzOiBmaWx0ZXJlZFJ1bGVzLFxuICAgIH0gYXMgTGludGVyLkNvbmZpZyxcbiAgXTtcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBwbHVnaW4gbmFtZXMgZnJvbSBjb25maWcgZW50cmllcy5cbiAqIEBwYXJhbSBjb25maWdzIElucHV0IGNvbmZpZ3MgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbGxlY3RBdmFpbGFibGVQbHVnaW5zKCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY29sbGVjdEF2YWlsYWJsZVBsdWdpbnMoXG4gIGNvbmZpZ3M6IExpbnRlci5Db25maWdbXSxcbik6IFJlYWRvbmx5U2V0PHN0cmluZz4ge1xuICBjb25zdCBwbHVnaW5zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBjb25maWcgb2YgY29uZmlncykge1xuICAgIGlmIChjb25maWcucGx1Z2lucyAhPT0gdm9pZCAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHBsdWdpbk5hbWUgb2YgT2JqZWN0LmtleXMoY29uZmlnLnBsdWdpbnMpKSB7XG4gICAgICAgIHBsdWdpbnMuYWRkKHBsdWdpbk5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwbHVnaW5zO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgcnVsZSBvdmVycmlkZXMgdG8gdGhvc2UgdGhhdCBjYW4gYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBydWxlT3ZlcnJpZGVzIElucHV0IHJ1bGVPdmVycmlkZXMgdmFsdWUuXG4gKiBAcGFyYW0gYXZhaWxhYmxlUGx1Z2lucyBJbnB1dCBhdmFpbGFibGVQbHVnaW5zIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBmaWx0ZXJSdWxlT3ZlcnJpZGVzKCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZmlsdGVyUnVsZU92ZXJyaWRlcyhcbiAgcnVsZU92ZXJyaWRlczogTGludGVyLlJ1bGVzUmVjb3JkIHwgdW5kZWZpbmVkLFxuICBhdmFpbGFibGVQbHVnaW5zOiBSZWFkb25seVNldDxzdHJpbmc+LFxuKTogTGludGVyLlJ1bGVzUmVjb3JkIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHJ1bGVPdmVycmlkZXMgPT09IHZvaWQgMCB8fCBPYmplY3Qua2V5cyhydWxlT3ZlcnJpZGVzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgZmlsdGVyZWRSdWxlczogTGludGVyLlJ1bGVzUmVjb3JkID0ge307XG5cbiAgZm9yIChjb25zdCBbcnVsZU5hbWUsIHJ1bGVWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocnVsZU92ZXJyaWRlcykpIHtcbiAgICBpZiAoIXNob3VsZFNraXBSdWxlT3ZlcnJpZGUocnVsZU5hbWUsIGF2YWlsYWJsZVBsdWdpbnMpKSB7XG4gICAgICBmaWx0ZXJlZFJ1bGVzW3J1bGVOYW1lXSA9IHJ1bGVWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmtleXMoZmlsdGVyZWRSdWxlcykubGVuZ3RoID09PSAwID8gdm9pZCAwIDogZmlsdGVyZWRSdWxlcztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBwbHVnaW4gaXMgZGlzYWJsZWQgaW4gdGhlIG9wdGlvbnMuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxuICogQHBhcmFtIGRpc2FibGVkUGx1Z2lucyBJbnB1dCBkaXNhYmxlZFBsdWdpbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzUGx1Z2luRGlzYWJsZWQoKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc1BsdWdpbkRpc2FibGVkKFxuICBwbHVnaW5OYW1lOiBQbHVnaW5OYW1lLFxuICBkaXNhYmxlZFBsdWdpbnM/OiByZWFkb25seSBQbHVnaW5OYW1lW10sXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGRpc2FibGVkUGx1Z2lucz8uaW5jbHVkZXMocGx1Z2luTmFtZSkgPT09IHRydWU7XG59XG5cbi8qKlxuICogTG9hZHMgYSBwbHVnaW4gY29uZmlnIHdpdGggYSBoZWxwZnVsLCBjb2xvcmZ1bCBlcnJvciBtZXNzYWdlIG9uIGZhaWx1cmUuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxuICogQHBhcmFtIGxvYWRlciBJbnB1dCBsb2FkZXIgdmFsdWUuXG4gKiBAcGFyYW0gbW9kZSBTcGVjaWZpZXMgd2hldGhlciBsb2FkZXIgZmFpbHVyZXMgYXJlIGZhdGFsIG9yIHNraXBwYWJsZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbG9hZFBsdWdpbkNvbmZpZygpO1xuICogYGBgXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRQbHVnaW5Db25maWcoXG4gIHBsdWdpbk5hbWU6IFBsdWdpbk5hbWUsXG4gIGxvYWRlcjogKCkgPT4gTGludGVyLkNvbmZpZ1tdIHwgUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+LFxuICBtb2RlOiBMb2FkTW9kZSA9IFwib3B0aW9uYWxcIixcbik6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGxvYWRlcigpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcG9ydFBsdWdpbkxvYWRJc3N1ZShwbHVnaW5OYW1lLCBlcnJvciwgbW9kZSk7XG5cbiAgICBpZiAobW9kZSA9PT0gXCJyZXF1aXJlZFwiKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBydWxlIG92ZXJyaWRlIHNob3VsZCBiZSBza2lwcGVkLlxuICogQHBhcmFtIHJ1bGVOYW1lIElucHV0IHJ1bGVOYW1lIHZhbHVlLlxuICogQHBhcmFtIGF2YWlsYWJsZVBsdWdpbnMgSW5wdXQgYXZhaWxhYmxlUGx1Z2lucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogc2hvdWxkU2tpcFJ1bGVPdmVycmlkZSgpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFNraXBSdWxlT3ZlcnJpZGUoXG4gIHJ1bGVOYW1lOiBzdHJpbmcsXG4gIGF2YWlsYWJsZVBsdWdpbnM6IFJlYWRvbmx5U2V0PHN0cmluZz4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgW3BsdWdpbk5hbWUgPSBcIlwiXSA9IHJ1bGVOYW1lLnNwbGl0KFwiL1wiKTtcbiAgY29uc3QgaXNQbHVnaW5SdWxlID0gcnVsZU5hbWUuaW5jbHVkZXMoXCIvXCIpO1xuICBjb25zdCBoYXNQbHVnaW4gPSBhdmFpbGFibGVQbHVnaW5zLmhhcyhwbHVnaW5OYW1lKTtcblxuICBpZiAoaXNQbHVnaW5SdWxlICYmICFoYXNQbHVnaW4pIHtcbiAgICByZXBvcnRSdWxlT3ZlcnJpZGVTa2lwKHJ1bGVOYW1lLCBwbHVnaW5OYW1lKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHtcbiAgYXBwbHlSdWxlT3ZlcnJpZGVzLFxuICBjb2xsZWN0QXZhaWxhYmxlUGx1Z2lucyxcbiAgaXNQbHVnaW5EaXNhYmxlZCxcbiAgbG9hZFBsdWdpbkNvbmZpZyxcbn07XG5cbmV4cG9ydCB0eXBlIHsgTG9hZE1vZGUgfTtcbiJdfQ==
File without changes
File without changes
File without changes