@mnaoumov/typescript-dev-toolkit 3.10.0 → 3.11.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.
@@ -63,6 +63,7 @@ module.exports = __toCommonJS(commitlint_config_exports);
63
63
  var import_object_utils = require('@mnaoumov/typescript-lib/object-utils');
64
64
  var import_node_module = require('node:module');
65
65
  var import_commitlint_forbidden_patterns = require('./commitlint-forbidden-patterns.cjs');
66
+ var import_commitlint_lint_md_header = require('./commitlint-lint-md-header.cjs');
66
67
  var import_commitlint_spellcheck_header = require('./commitlint-spellcheck-header.cjs');
67
68
  var __import_meta_url = globalThis["import.meta.url"] ?? (function getCjsImportMetaUrl() {
68
69
  if (typeof __filename === "string") {
@@ -85,11 +86,13 @@ const commitlintConfig = {
85
86
  {
86
87
  rules: {
87
88
  ...import_commitlint_forbidden_patterns.forbiddenPatternsPlugin.rules,
89
+ ...import_commitlint_lint_md_header.lintMdHeaderPlugin.rules,
88
90
  ...import_commitlint_spellcheck_header.spellcheckHeaderPlugin.rules
89
91
  }
90
92
  }
91
93
  ],
92
94
  rules: {
95
+ [import_commitlint_lint_md_header.LINT_MD_HEADER_RULE_NAME]: [ERROR_SEVERITY, "always"],
93
96
  [import_commitlint_forbidden_patterns.NO_FORBIDDEN_PATTERNS_RULE_NAME]: [ERROR_SEVERITY, "always"],
94
97
  [import_commitlint_spellcheck_header.SPELLCHECK_HEADER_RULE_NAME]: [ERROR_SEVERITY, "always"]
95
98
  }
@@ -100,4 +103,4 @@ const obsidianDevUtilsConfig = commitlintConfig;
100
103
  commitlintConfig,
101
104
  obsidianDevUtilsConfig
102
105
  });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21taXRsaW50LWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzWydpbXBvcnQubWV0YS51cmwnXSA/PyAoZnVuY3Rpb24gZ2V0Q2pzSW1wb3J0TWV0YVVybCgpIHtcbiAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgIGlmICh0eXBlb2YgdXJsLnBhdGhUb0ZpbGVVUkwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB1cmwucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKS5ocmVmO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIHRvIHRoZSBwYWdlIFVSTCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duLlxuICByZXR1cm4gZ2xvYmFsVGhpcy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbn0pKCk7XG4vKipcbiAqIEBmaWxlXG4gKlxuICogU2hhcmVkIGNvbW1pdGxpbnQgY29uZmlndXJhdGlvbiBmb3IgQ29udmVudGlvbmFsIENvbW1pdHMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIGNvbW1pdGxpbnQgY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBjb21taXRsaW50LCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBSdWxlQ29uZmlnU2V2ZXJpdHksXG4gIFVzZXJDb25maWdcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQgeyBjYXN0VG8gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIGZvcmJpZGRlblBhdHRlcm5zUGx1Z2luLFxuICBOT19GT1JCSURERU5fUEFUVEVSTlNfUlVMRV9OQU1FXG59IGZyb20gJy4vY29tbWl0bGludC1mb3JiaWRkZW4tcGF0dGVybnMudHMnO1xuaW1wb3J0IHtcbiAgU1BFTExDSEVDS19IRUFERVJfUlVMRV9OQU1FLFxuICBzcGVsbGNoZWNrSGVhZGVyUGx1Z2luXG59IGZyb20gJy4vY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlci50cyc7XG5cbi8qXG4gKiBgUnVsZUNvbmZpZ1NldmVyaXR5LkVycm9yYC4gVGhlIGVudW0gbGl2ZXMgaW4gYSBwYWNrYWdlIHRoaXMgbGlicmFyeSBvbmx5IGhhcyBhcyBhIGRldkRlcGVuZGVuY3ksIHNvIGl0cyB2YWx1ZSBjYW5ub3QgYmUgaW1wb3J0ZWQgYXQgcnVudGltZS5cbiAqL1xuY29uc3QgRVJST1JfU0VWRVJJVFlfTEVWRUwgPSAyO1xuY29uc3QgRVJST1JfU0VWRVJJVFkgPSBjYXN0VG88UnVsZUNvbmZpZ1NldmVyaXR5PihFUlJPUl9TRVZFUklUWV9MRVZFTCk7XG5cbi8qKlxuICogVGhlIGFic29sdXRlIHBhdGggb2YgYEBjb21taXRsaW50L2NvbmZpZy1jb252ZW50aW9uYWxgJ3MgZW50cnksIHJlc29sdmVkIGZyb20gdGhpcyBtb2R1bGUuIENvbW1pdGxpbnQgcmVzb2x2ZXMgYVxuICogYmFyZSBgZXh0ZW5kc2AgbmFtZSBmcm9tIHRoZSBjb25zdW1lcidzIHdvcmtpbmcgZGlyZWN0b3J5LCB3aGljaCBmaW5kcyB0aGlzIHBhY2thZ2UncyBvd24gZGVwZW5kZW5jeSBvbmx5IHdoZW4gdGhlXG4gKiBwYWNrYWdlIG1hbmFnZXIgaGFwcGVuZWQgdG8gaG9pc3QgaXQ7IGFuIGFic29sdXRlIHBhdGggZmluZHMgaXQgd2hlcmV2ZXIgaXQgd2FzIGluc3RhbGxlZC5cbiAqL1xuY29uc3QgQ09ORklHX0NPTlZFTlRJT05BTF9QQVRIID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpLnJlc29sdmUoJ0Bjb21taXRsaW50L2NvbmZpZy1jb252ZW50aW9uYWwnKTtcblxuLyoqXG4gKiBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZXh0ZW5kaW5nIGBAY29tbWl0bGludC9jb25maWctY29udmVudGlvbmFsYCwgcGx1cyBhIHJ1bGUgcmVmdXNpbmcgYSBtZXNzYWdlIHdob3NlXG4gKiBoZWFkZXIsIGJvZHkgb3IgZm9vdGVyIG1hdGNoZXMgdGhlIHVucHVibGlzaGVkIGZvcmJpZGRlbi1wYXR0ZXJucyBsaXN0IChhIG5vLW9wIHdoZW4gbm9uZSBpcyBjb25maWd1cmVkKSwgYW5kXG4gKiBhIHJ1bGUgc3BlbGxjaGVja2luZyB0aGUgaGVhZGVyIHRoZSB3YXkgdGhlIHJlbGVhc2Ugc3BlbGxjaGVja3MgdGhlIGNoYW5nZWxvZyBidWxsZXQgaXQgYmVjb21lcyAoYSBuby1vcCBpbiBhXG4gKiBwcm9qZWN0IHdpdGggbm8gYHNwZWxsY2hlY2tgIHNjcmlwdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21taXRsaW50Q29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICBleHRlbmRzOiBbQ09ORklHX0NPTlZFTlRJT05BTF9QQVRIXSxcbiAgLy8gT05FIHBsdWdpbiBvYmplY3QsIG5ldmVyIHR3bzogYEBjb21taXRsaW50L2xvYWRgIHN0b3JlcyBldmVyeSBpbmxpbmUgcGx1Z2luIHVuZGVyIHRoZSBzYW1lIGBsb2NhbGAga2V5LCBzbyBhXG4gIC8vIHNlY29uZCBvYmplY3Qgc2lsZW50bHkgcmVwbGFjZXMgdGhlIGZpcnN0IGFuZCBpdHMgcnVsZSB0aGVuIGZhaWxzIGFzIFwiRm91bmQgcnVsZXMgd2l0aG91dCBpbXBsZW1lbnRhdGlvblwiLlxuICBwbHVnaW5zOiBbXG4gICAge1xuICAgICAgcnVsZXM6IHtcbiAgICAgICAgLi4uZm9yYmlkZGVuUGF0dGVybnNQbHVnaW4ucnVsZXMsXG4gICAgICAgIC4uLnNwZWxsY2hlY2tIZWFkZXJQbHVnaW4ucnVsZXNcbiAgICAgIH1cbiAgICB9XG4gIF0sXG4gIHJ1bGVzOiB7XG4gICAgW05PX0ZPUkJJRERFTl9QQVRURVJOU19SVUxFX05BTUVdOiBbRVJST1JfU0VWRVJJVFksICdhbHdheXMnXSxcbiAgICBbU1BFTExDSEVDS19IRUFERVJfUlVMRV9OQU1FXTogW0VSUk9SX1NFVkVSSVRZLCAnYWx3YXlzJ11cbiAgfVxufTtcblxuLyoqXG4gKiBUaGUgcHJldmlvdXMgbmFtZSBvZiB7QGxpbmsgY29tbWl0bGludENvbmZpZ30uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBjb21taXRsaW50Q29uZmlnfS4gVGhpcyBhbGlhcyBpcyByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogVXNlckNvbmZpZyA9IGNvbW1pdGxpbnRDb25maWc7XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJBLDBCQUF1QjtBQUN2Qix5QkFBOEI7QUFFOUIsMkNBR087QUFDUCwwQ0FHTztBQW5DUCxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLFNBQVMsc0JBQXNCO0FBQ3ZGLE1BQUksT0FBTyxlQUFlLFVBQVU7QUFDbEMsVUFBTSxlQUFlO0FBQ3JCLFVBQU0sTUFBTSxhQUFhLFVBQVU7QUFDbkMsUUFBSSxPQUFPLElBQUksa0JBQWtCLFlBQVk7QUFDM0MsYUFBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBR0EsU0FBTyxXQUFXLFVBQVUsUUFBUTtBQUN0QyxHQUFHO0FBNkJILE1BQU0sdUJBQXVCO0FBQzdCLE1BQU0scUJBQWlCLDRCQUEyQixvQkFBb0I7QUFPdEUsTUFBTSwrQkFBMkIsa0NBQWMsaUJBQWUsRUFBRSxRQUFRLGlDQUFpQztBQVFsRyxNQUFNLG1CQUErQjtBQUFBLEVBQzFDLFNBQVMsQ0FBQyx3QkFBd0I7QUFBQTtBQUFBO0FBQUEsRUFHbEMsU0FBUztBQUFBLElBQ1A7QUFBQSxNQUNFLE9BQU87QUFBQSxRQUNMLEdBQUcsNkRBQXdCO0FBQUEsUUFDM0IsR0FBRywyREFBdUI7QUFBQSxNQUM1QjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxDQUFDLG9FQUErQixHQUFHLENBQUMsZ0JBQWdCLFFBQVE7QUFBQSxJQUM1RCxDQUFDLCtEQUEyQixHQUFHLENBQUMsZ0JBQWdCLFFBQVE7QUFBQSxFQUMxRDtBQUNGO0FBT08sTUFBTSx5QkFBcUM7IiwibmFtZXMiOltdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21taXRsaW50LWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzWydpbXBvcnQubWV0YS51cmwnXSA/PyAoZnVuY3Rpb24gZ2V0Q2pzSW1wb3J0TWV0YVVybCgpIHtcbiAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgIGlmICh0eXBlb2YgdXJsLnBhdGhUb0ZpbGVVUkwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB1cmwucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKS5ocmVmO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIHRvIHRoZSBwYWdlIFVSTCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duLlxuICByZXR1cm4gZ2xvYmFsVGhpcy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbn0pKCk7XG4vKipcbiAqIEBmaWxlXG4gKlxuICogU2hhcmVkIGNvbW1pdGxpbnQgY29uZmlndXJhdGlvbiBmb3IgQ29udmVudGlvbmFsIENvbW1pdHMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIGNvbW1pdGxpbnQgY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBjb21taXRsaW50LCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBSdWxlQ29uZmlnU2V2ZXJpdHksXG4gIFVzZXJDb25maWdcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQgeyBjYXN0VG8gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIGZvcmJpZGRlblBhdHRlcm5zUGx1Z2luLFxuICBOT19GT1JCSURERU5fUEFUVEVSTlNfUlVMRV9OQU1FXG59IGZyb20gJy4vY29tbWl0bGludC1mb3JiaWRkZW4tcGF0dGVybnMudHMnO1xuaW1wb3J0IHtcbiAgTElOVF9NRF9IRUFERVJfUlVMRV9OQU1FLFxuICBsaW50TWRIZWFkZXJQbHVnaW5cbn0gZnJvbSAnLi9jb21taXRsaW50LWxpbnQtbWQtaGVhZGVyLnRzJztcbmltcG9ydCB7XG4gIFNQRUxMQ0hFQ0tfSEVBREVSX1JVTEVfTkFNRSxcbiAgc3BlbGxjaGVja0hlYWRlclBsdWdpblxufSBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuXG4vKlxuICogYFJ1bGVDb25maWdTZXZlcml0eS5FcnJvcmAuIFRoZSBlbnVtIGxpdmVzIGluIGEgcGFja2FnZSB0aGlzIGxpYnJhcnkgb25seSBoYXMgYXMgYSBkZXZEZXBlbmRlbmN5LCBzbyBpdHMgdmFsdWUgY2Fubm90IGJlIGltcG9ydGVkIGF0IHJ1bnRpbWUuXG4gKi9cbmNvbnN0IEVSUk9SX1NFVkVSSVRZX0xFVkVMID0gMjtcbmNvbnN0IEVSUk9SX1NFVkVSSVRZID0gY2FzdFRvPFJ1bGVDb25maWdTZXZlcml0eT4oRVJST1JfU0VWRVJJVFlfTEVWRUwpO1xuXG4vKipcbiAqIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIGBAY29tbWl0bGludC9jb25maWctY29udmVudGlvbmFsYCdzIGVudHJ5LCByZXNvbHZlZCBmcm9tIHRoaXMgbW9kdWxlLiBDb21taXRsaW50IHJlc29sdmVzIGFcbiAqIGJhcmUgYGV4dGVuZHNgIG5hbWUgZnJvbSB0aGUgY29uc3VtZXIncyB3b3JraW5nIGRpcmVjdG9yeSwgd2hpY2ggZmluZHMgdGhpcyBwYWNrYWdlJ3Mgb3duIGRlcGVuZGVuY3kgb25seSB3aGVuIHRoZVxuICogcGFja2FnZSBtYW5hZ2VyIGhhcHBlbmVkIHRvIGhvaXN0IGl0OyBhbiBhYnNvbHV0ZSBwYXRoIGZpbmRzIGl0IHdoZXJldmVyIGl0IHdhcyBpbnN0YWxsZWQuXG4gKi9cbmNvbnN0IENPTkZJR19DT05WRU5USU9OQUxfUEFUSCA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKS5yZXNvbHZlKCdAY29tbWl0bGludC9jb25maWctY29udmVudGlvbmFsJyk7XG5cbi8qKlxuICogQ29tbWl0bGludCBjb25maWd1cmF0aW9uIGV4dGVuZGluZyBgQGNvbW1pdGxpbnQvY29uZmlnLWNvbnZlbnRpb25hbGAsIHBsdXMgYSBydWxlIHJlZnVzaW5nIGEgbWVzc2FnZSB3aG9zZVxuICogaGVhZGVyLCBib2R5IG9yIGZvb3RlciBtYXRjaGVzIHRoZSB1bnB1Ymxpc2hlZCBmb3JiaWRkZW4tcGF0dGVybnMgbGlzdCAoYSBuby1vcCB3aGVuIG5vbmUgaXMgY29uZmlndXJlZCksIGFuZFxuICogdHdvIHJ1bGVzIGNoZWNraW5nIHRoZSBoZWFkZXIgdGhlIHdheSB0aGUgcmVsZWFzZSBjaGVja3MgdGhlIGNoYW5nZWxvZyBidWxsZXQgaXQgYmVjb21lczogYSBzcGVsbGNoZWNrIChhIG5vLW9wXG4gKiBpbiBhIHByb2plY3Qgd2l0aCBubyBgc3BlbGxjaGVja2Agc2NyaXB0KSBhbmQgYSBtYXJrZG93bmxpbnQgKGEgbm8tb3AgaW4gYSBwcm9qZWN0IHdpdGggbm8gYGxpbnQ6bWRgIHNjcmlwdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21taXRsaW50Q29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICBleHRlbmRzOiBbQ09ORklHX0NPTlZFTlRJT05BTF9QQVRIXSxcbiAgLy8gT05FIHBsdWdpbiBvYmplY3QsIG5ldmVyIHR3bzogYEBjb21taXRsaW50L2xvYWRgIHN0b3JlcyBldmVyeSBpbmxpbmUgcGx1Z2luIHVuZGVyIHRoZSBzYW1lIGBsb2NhbGAga2V5LCBzbyBhXG4gIC8vIHNlY29uZCBvYmplY3Qgc2lsZW50bHkgcmVwbGFjZXMgdGhlIGZpcnN0IGFuZCBpdHMgcnVsZSB0aGVuIGZhaWxzIGFzIFwiRm91bmQgcnVsZXMgd2l0aG91dCBpbXBsZW1lbnRhdGlvblwiLlxuICBwbHVnaW5zOiBbXG4gICAge1xuICAgICAgcnVsZXM6IHtcbiAgICAgICAgLi4uZm9yYmlkZGVuUGF0dGVybnNQbHVnaW4ucnVsZXMsXG4gICAgICAgIC4uLmxpbnRNZEhlYWRlclBsdWdpbi5ydWxlcyxcbiAgICAgICAgLi4uc3BlbGxjaGVja0hlYWRlclBsdWdpbi5ydWxlc1xuICAgICAgfVxuICAgIH1cbiAgXSxcbiAgcnVsZXM6IHtcbiAgICBbTElOVF9NRF9IRUFERVJfUlVMRV9OQU1FXTogW0VSUk9SX1NFVkVSSVRZLCAnYWx3YXlzJ10sXG4gICAgW05PX0ZPUkJJRERFTl9QQVRURVJOU19SVUxFX05BTUVdOiBbRVJST1JfU0VWRVJJVFksICdhbHdheXMnXSxcbiAgICBbU1BFTExDSEVDS19IRUFERVJfUlVMRV9OQU1FXTogW0VSUk9SX1NFVkVSSVRZLCAnYWx3YXlzJ11cbiAgfVxufTtcblxuLyoqXG4gKiBUaGUgcHJldmlvdXMgbmFtZSBvZiB7QGxpbmsgY29tbWl0bGludENvbmZpZ30uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBjb21taXRsaW50Q29uZmlnfS4gVGhpcyBhbGlhcyBpcyByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogVXNlckNvbmZpZyA9IGNvbW1pdGxpbnRDb25maWc7XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJBLDBCQUF1QjtBQUN2Qix5QkFBOEI7QUFFOUIsMkNBR087QUFDUCx1Q0FHTztBQUNQLDBDQUdPO0FBdkNQLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sU0FBUyxzQkFBc0I7QUFDdkYsTUFBSSxPQUFPLGVBQWUsVUFBVTtBQUNsQyxVQUFNLGVBQWU7QUFDckIsVUFBTSxNQUFNLGFBQWEsVUFBVTtBQUNuQyxRQUFJLE9BQU8sSUFBSSxrQkFBa0IsWUFBWTtBQUMzQyxhQUFPLElBQUksY0FBYyxVQUFVLEVBQUU7QUFBQSxJQUN2QztBQUFBLEVBQ0Y7QUFHQSxTQUFPLFdBQVcsVUFBVSxRQUFRO0FBQ3RDLEdBQUc7QUFpQ0gsTUFBTSx1QkFBdUI7QUFDN0IsTUFBTSxxQkFBaUIsNEJBQTJCLG9CQUFvQjtBQU90RSxNQUFNLCtCQUEyQixrQ0FBYyxpQkFBZSxFQUFFLFFBQVEsaUNBQWlDO0FBUWxHLE1BQU0sbUJBQStCO0FBQUEsRUFDMUMsU0FBUyxDQUFDLHdCQUF3QjtBQUFBO0FBQUE7QUFBQSxFQUdsQyxTQUFTO0FBQUEsSUFDUDtBQUFBLE1BQ0UsT0FBTztBQUFBLFFBQ0wsR0FBRyw2REFBd0I7QUFBQSxRQUMzQixHQUFHLG9EQUFtQjtBQUFBLFFBQ3RCLEdBQUcsMkRBQXVCO0FBQUEsTUFDNUI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ0wsQ0FBQyx5REFBd0IsR0FBRyxDQUFDLGdCQUFnQixRQUFRO0FBQUEsSUFDckQsQ0FBQyxvRUFBK0IsR0FBRyxDQUFDLGdCQUFnQixRQUFRO0FBQUEsSUFDNUQsQ0FBQywrREFBMkIsR0FBRyxDQUFDLGdCQUFnQixRQUFRO0FBQUEsRUFDMUQ7QUFDRjtBQU9PLE1BQU0seUJBQXFDOyIsIm5hbWVzIjpbXX0=
@@ -8,8 +8,8 @@ import type { UserConfig } from '@commitlint/types' with { 'resolution-mode': 'i
8
8
  /**
9
9
  * Commitlint configuration extending `@commitlint/config-conventional`, plus a rule refusing a message whose
10
10
  * header, body or footer matches the unpublished forbidden-patterns list (a no-op when none is configured), and
11
- * a rule spellchecking the header the way the release spellchecks the changelog bullet it becomes (a no-op in a
12
- * project with no `spellcheck` script).
11
+ * two rules checking the header the way the release checks the changelog bullet it becomes: a spellcheck (a no-op
12
+ * in a project with no `spellcheck` script) and a markdownlint (a no-op in a project with no `lint:md` script).
13
13
  */
14
14
  export declare const commitlintConfig: UserConfig;
15
15
  /**
@@ -0,0 +1,78 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var commitlint_lint_md_header_exports = {};
25
+ __export(commitlint_lint_md_header_exports, {
26
+ LINT_MD_HEADER_RULE_NAME: () => LINT_MD_HEADER_RULE_NAME,
27
+ lintMdHeaderPlugin: () => lintMdHeaderPlugin,
28
+ lintMdHeaderRule: () => lintMdHeaderRule
29
+ });
30
+ module.exports = __toCommonJS(commitlint_lint_md_header_exports);
31
+ var import_markdownlint_content = require('./linters/markdownlint-content.cjs');
32
+ var import_npm = require('./npm.cjs');
33
+ var import_repo_paths = require('./repo-paths.cjs');
34
+ var import_root = require('./root.cjs');
35
+ var import_version = require('./version.cjs');
36
+ const LINT_MD_HEADER_RULE_NAME = "typescript-dev-toolkit/lint-md-header";
37
+ const LINT_MD_SCRIPT_NAME = "lint:md";
38
+ const FALLBACK_VERSION = "0.0.0";
39
+ async function lintMdHeaderRule(commit) {
40
+ if (!commit.header) {
41
+ return [true];
42
+ }
43
+ const packageJson = await (0, import_npm.readPackageJson)();
44
+ if (!Object.keys(packageJson.scripts ?? {}).includes(LINT_MD_SCRIPT_NAME)) {
45
+ return [true];
46
+ }
47
+ const version = packageJson.version ?? FALLBACK_VERSION;
48
+ const findings = await (0, import_markdownlint_content.lintMarkdownContent)({
49
+ content: `# CHANGELOG
50
+
51
+ ## ${version}
52
+
53
+ - ${(0, import_version.autolinkBareUrls)(commit.header)}
54
+ `,
55
+ filePath: (0, import_root.resolvePathFromRootSafe)({ path: import_repo_paths.RepoPaths.ChangelogMd })
56
+ });
57
+ if (findings.length === 0) {
58
+ return [true];
59
+ }
60
+ return [
61
+ false,
62
+ `the header does not pass \`${LINT_MD_SCRIPT_NAME}\`, and it ships verbatim into the next release's changelog:
63
+ ${findings.join("\n")}
64
+ Reword it so the changelog bullet it becomes passes the project's markdownlint configuration.`
65
+ ];
66
+ }
67
+ const lintMdHeaderPlugin = {
68
+ rules: {
69
+ [LINT_MD_HEADER_RULE_NAME]: lintMdHeaderRule
70
+ }
71
+ };
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ LINT_MD_HEADER_RULE_NAME,
75
+ lintMdHeaderPlugin,
76
+ lintMdHeaderRule
77
+ });
78
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtbGludC1tZC1oZWFkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIGNvbW1pdGxpbnQgcnVsZSB0aGF0IGxpbnRzIGEgY29tbWl0IEhFQURFUiB3aXRoIHRoZSBwcm9qZWN0J3Mgb3duIGBsaW50Om1kYCBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBoZWFkZXIgaXMgdGhlIG9uZSBwYXJ0IG9mIGEgY29tbWl0IG1lc3NhZ2UgdGhhdCBzaGlwcyB2ZXJiYXRpbTogYSByZWxlYXNlIHR1cm5zIGV2ZXJ5IGNvbW1pdCBzdWJqZWN0XG4gKiBzaW5jZSB0aGUgbGFzdCB0YWcgaW50byBhIGAtIDxzdWJqZWN0PmAgYnVsbGV0IG9mIHRoZSBuZXcgYENIQU5HRUxPRy5tZGAgc2VjdGlvbiwgYW5kIGxpbnRzIHRoYXQgc2VjdGlvbiB3aXRoXG4gKiBgbGludDptZGAgYmVmb3JlIHdyaXRpbmcgaXQuIFRoYXQgY2hlY2sgcnVucyBhdCByZWxlYXNlIHRpbWUsIGFmdGVyIHRoZSB3aG9sZSBwcmVmbGlnaHQgZ2F0ZSwgYW5kIHdlZWtzIGFmdGVyXG4gKiB0aGUgc3ViamVjdCB3YXMgcHVzaGVkOiBhIHJlbGVhc2Ugb25jZSBwYXNzZWQgaXRzIDI1LW1pbnV0ZSBwcmVmbGlnaHQgYW5kIHdhcyB0aGVuIHJlZnVzZWQgYmVjYXVzZSBhIGN1c3RvbVxuICogcnVsZSBmbGFnZ2VkIGEgcGx1Z2luIG5hbWUgaW4gYSBwdXNoZWQgYGRvY3MocmVhZG1lKTpgIHN1YmplY3QuIEEgcHVzaGVkIHN1YmplY3QgY2Fubm90IGJlIGNoYW5nZWQsIHNvIHRoZVxuICogcmVsZWFzZSBoYWQgdG8gYmUgcmUtcnVuIHdpdGggaGFuZC13cml0dGVuIG5vdGVzLiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBsYXN0IHBvaW50IGF0IHdoaWNoIHRoZSBzdWJqZWN0XG4gKiBjYW4gc3RpbGwgYmUgY2hhbmdlZCBmb3IgZnJlZS5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGNoZWNrZWQgQVMgdGhlIHNlY3Rpb24gdGhlIHJlbGVhc2Ugd291bGQgYnVpbGQgZnJvbSBpdCwgYXR0cmlidXRlZCB0byBgQ0hBTkdFTE9HLm1kYCwgc28gdGhlXG4gKiB2ZXJkaWN0IGlzIHRoZSBvbmUgdGhlIHJlbGVhc2Ugd291bGQgZ2l2ZTogdGhlIHNhbWUgY29uZmlndXJhdGlvbiwgdGhlIHNhbWUgY3VzdG9tIHJ1bGVzLCBhbmQgYmFyZSBVUkxzXG4gKiBhdXRvbGlua2VkIHRoZSB3YXkgdGhlIHJlbGVhc2UgYXV0b2xpbmtzIHRoZW0uIEl0IHJ1bnMgb25seSB3aGVyZSB0aGUgcHJvamVjdCBkZWZpbmVzIGEgYGxpbnQ6bWRgIHNjcmlwdCxcbiAqIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gdGhlIHJlbGVhc2UgYXBwbGllcyB0b28uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBc3luY1J1bGUsXG4gIFBsdWdpbixcbiAgUnVsZU91dGNvbWVcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQgeyBsaW50TWFya2Rvd25Db250ZW50IH0gZnJvbSAnLi9saW50ZXJzL21hcmtkb3dubGludC1jb250ZW50LnRzJztcbmltcG9ydCB7IHJlYWRQYWNrYWdlSnNvbiB9IGZyb20gJy4vbnBtLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290U2FmZSB9IGZyb20gJy4vcm9vdC50cyc7XG5pbXBvcnQgeyBhdXRvbGlua0JhcmVVcmxzIH0gZnJvbSAnLi92ZXJzaW9uLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZSB0aGUgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLlxuICovXG5leHBvcnQgY29uc3QgTElOVF9NRF9IRUFERVJfUlVMRV9OQU1FID0gJ3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvbGludC1tZC1oZWFkZXInO1xuXG4vKipcbiAqIFRoZSBucG0gc2NyaXB0IHdob3NlIHByZXNlbmNlIG9wdHMgYSBwcm9qZWN0IGludG8gdGhlIGNoZWNrLlxuICovXG5jb25zdCBMSU5UX01EX1NDUklQVF9OQU1FID0gJ2xpbnQ6bWQnO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIHRoZSBzZWN0aW9uIGhlYWRpbmcgbmFtZXMgd2hlbiBgcGFja2FnZS5qc29uYCBoYXMgbm9uZS4gTWFya2Rvd25saW50IHJlYWRzIGl0IGFzIGFueSBoZWFkaW5nIHRleHQuXG4gKi9cbmNvbnN0IEZBTExCQUNLX1ZFUlNJT04gPSAnMC4wLjAnO1xuXG50eXBlIENvbW1pdCA9IFBhcmFtZXRlcnM8QXN5bmNSdWxlPlswXTtcblxuLyoqXG4gKiBMaW50cyB0aGUgY29tbWl0IGhlYWRlciBhcyB0aGUgY2hhbmdlbG9nIHNlY3Rpb24gdGhlIHJlbGVhc2Ugd291bGQgYnVpbGQgZnJvbSBpdC5cbiAqXG4gKiBPbmx5IHRoZSBgYWx3YXlzYCBjb25kaXRpb24gaXMgbWVhbmluZ2Z1bDogYG5ldmVyYCB3b3VsZCByZXF1aXJlIHRoZSBoZWFkZXIgdG8gZmFpbCBgbGludDptZGAsIHNvIGl0IGlzXG4gKiB0cmVhdGVkIHRoZSBzYW1lIHdheSByYXRoZXIgdGhhbiBpbnZlcnRlZC5cbiAqXG4gKiBAcGFyYW0gY29tbWl0IC0gVGhlIHBhcnNlZCBjb21taXQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBydWxlIG91dGNvbWUsIG5hbWluZyBlYWNoIGZpbmRpbmcuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW50TWRIZWFkZXJSdWxlKGNvbW1pdDogQ29tbWl0KTogUHJvbWlzZTxSdWxlT3V0Y29tZT4ge1xuICBpZiAoIWNvbW1pdC5oZWFkZXIpIHtcbiAgICByZXR1cm4gW3RydWVdO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgaWYgKCFPYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5zY3JpcHRzID8/IHt9KS5pbmNsdWRlcyhMSU5UX01EX1NDUklQVF9OQU1FKSkge1xuICAgIHJldHVybiBbdHJ1ZV07XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uID0gcGFja2FnZUpzb24udmVyc2lvbiA/PyBGQUxMQkFDS19WRVJTSU9OO1xuICBjb25zdCBmaW5kaW5ncyA9IGF3YWl0IGxpbnRNYXJrZG93bkNvbnRlbnQoe1xuICAgIGNvbnRlbnQ6IGAjIENIQU5HRUxPR1xcblxcbiMjICR7dmVyc2lvbn1cXG5cXG4tICR7YXV0b2xpbmtCYXJlVXJscyhjb21taXQuaGVhZGVyKX1cXG5gLFxuICAgIGZpbGVQYXRoOiByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5DaGFuZ2Vsb2dNZCB9KVxuICB9KTtcblxuICBpZiAoZmluZGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgZmFsc2UsXG4gICAgYHRoZSBoZWFkZXIgZG9lcyBub3QgcGFzcyBcXGAke0xJTlRfTURfU0NSSVBUX05BTUV9XFxgLCBhbmQgaXQgc2hpcHMgdmVyYmF0aW0gaW50byB0aGUgbmV4dCByZWxlYXNlJ3MgY2hhbmdlbG9nOlxcbmBcbiAgICArIGAke2ZpbmRpbmdzLmpvaW4oJ1xcbicpfVxcbmBcbiAgICArICdSZXdvcmQgaXQgc28gdGhlIGNoYW5nZWxvZyBidWxsZXQgaXQgYmVjb21lcyBwYXNzZXMgdGhlIHByb2plY3RcXCdzIG1hcmtkb3dubGludCBjb25maWd1cmF0aW9uLidcbiAgXTtcbn1cblxuLyoqXG4gKiBUaGUgY29tbWl0bGludCBwbHVnaW4gY2Fycnlpbmcge0BsaW5rIGxpbnRNZEhlYWRlclJ1bGV9LlxuICovXG5leHBvcnQgY29uc3QgbGludE1kSGVhZGVyUGx1Z2luOiBQbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgW0xJTlRfTURfSEVBREVSX1JVTEVfTkFNRV06IGxpbnRNZEhlYWRlclJ1bGVcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEsa0NBQW9DO0FBQ3BDLGlCQUFnQztBQUNoQyx3QkFBMEI7QUFDMUIsa0JBQXdDO0FBQ3hDLHFCQUFpQztBQUsxQixNQUFNLDJCQUEyQjtBQUt4QyxNQUFNLHNCQUFzQjtBQUs1QixNQUFNLG1CQUFtQjtBQWF6QixlQUFzQixpQkFBaUIsUUFBc0M7QUFDM0UsTUFBSSxDQUFDLE9BQU8sUUFBUTtBQUNsQixXQUFPLENBQUMsSUFBSTtBQUFBLEVBQ2Q7QUFFQSxRQUFNLGNBQWMsVUFBTSw0QkFBZ0I7QUFDMUMsTUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxtQkFBbUIsR0FBRztBQUN6RSxXQUFPLENBQUMsSUFBSTtBQUFBLEVBQ2Q7QUFFQSxRQUFNLFVBQVUsWUFBWSxXQUFXO0FBQ3ZDLFFBQU0sV0FBVyxVQUFNLGlEQUFvQjtBQUFBLElBQ3pDLFNBQVM7QUFBQTtBQUFBLEtBQXFCLE9BQU87QUFBQTtBQUFBLFFBQVMsaUNBQWlCLE9BQU8sTUFBTSxDQUFDO0FBQUE7QUFBQSxJQUM3RSxjQUFVLHFDQUF3QixFQUFFLE1BQU0sNEJBQVUsWUFBWSxDQUFDO0FBQUEsRUFDbkUsQ0FBQztBQUVELE1BQUksU0FBUyxXQUFXLEdBQUc7QUFDekIsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBLDhCQUE4QixtQkFBbUI7QUFBQSxFQUM1QyxTQUFTLEtBQUssSUFBSSxDQUFDO0FBQUE7QUFBQSxFQUUxQjtBQUNGO0FBS08sTUFBTSxxQkFBNkI7QUFBQSxFQUN4QyxPQUFPO0FBQUEsSUFDTCxDQUFDLHdCQUF3QixHQUFHO0FBQUEsRUFDOUI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,40 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A commitlint rule that lints a commit HEADER with the project's own `lint:md` configuration.
6
+ *
7
+ * The header is the one part of a commit message that ships verbatim: a release turns every commit subject
8
+ * since the last tag into a `- <subject>` bullet of the new `CHANGELOG.md` section, and lints that section with
9
+ * `lint:md` before writing it. That check runs at release time, after the whole preflight gate, and weeks after
10
+ * the subject was pushed: a release once passed its 25-minute preflight and was then refused because a custom
11
+ * rule flagged a plugin name in a pushed `docs(readme):` subject. A pushed subject cannot be changed, so the
12
+ * release had to be re-run with hand-written notes. The commit-msg hook is the last point at which the subject
13
+ * can still be changed for free.
14
+ *
15
+ * The header is checked AS the section the release would build from it, attributed to `CHANGELOG.md`, so the
16
+ * verdict is the one the release would give: the same configuration, the same custom rules, and bare URLs
17
+ * autolinked the way the release autolinks them. It runs only where the project defines a `lint:md` script,
18
+ * which is the condition the release applies too.
19
+ */
20
+ import type { AsyncRule, Plugin, RuleOutcome } from '@commitlint/types' with { 'resolution-mode': 'import' };
21
+ /**
22
+ * The name the rule is registered under.
23
+ */
24
+ export declare const LINT_MD_HEADER_RULE_NAME = "typescript-dev-toolkit/lint-md-header";
25
+ type Commit = Parameters<AsyncRule>[0];
26
+ /**
27
+ * Lints the commit header as the changelog section the release would build from it.
28
+ *
29
+ * Only the `always` condition is meaningful: `never` would require the header to fail `lint:md`, so it is
30
+ * treated the same way rather than inverted.
31
+ *
32
+ * @param commit - The parsed commit.
33
+ * @returns A {@link Promise} that resolves to the rule outcome, naming each finding.
34
+ */
35
+ export declare function lintMdHeaderRule(commit: Commit): Promise<RuleOutcome>;
36
+ /**
37
+ * The commitlint plugin carrying {@link lintMdHeaderRule}.
38
+ */
39
+ export declare const lintMdHeaderPlugin: Plugin;
40
+ export {};
@@ -40,6 +40,7 @@ __export(index_exports, {
40
40
  "code-generator": () => code_generator,
41
41
  "commitlint-config": () => commitlint_config,
42
42
  "commitlint-forbidden-patterns": () => commitlint_forbidden_patterns,
43
+ "commitlint-lint-md-header": () => commitlint_lint_md_header,
43
44
  "commitlint-spellcheck-header": () => commitlint_spellcheck_header,
44
45
  "docs-site": () => docs_site,
45
46
  "env-toggle": () => env_toggle,
@@ -77,6 +78,7 @@ var cli_utils = __toESM(((module) => module && module.__esModule && 'default' in
77
78
  var code_generator = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./code-generator.cjs')), 1);
78
79
  var commitlint_config = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./commitlint-config.cjs')), 1);
79
80
  var commitlint_forbidden_patterns = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./commitlint-forbidden-patterns.cjs')), 1);
81
+ var commitlint_lint_md_header = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./commitlint-lint-md-header.cjs')), 1);
80
82
  var commitlint_spellcheck_header = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./commitlint-spellcheck-header.cjs')), 1);
81
83
  var docs_site = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./docs-site/index.cjs')), 1);
82
84
  var env_toggle = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./env-toggle.cjs')), 1);
@@ -114,6 +116,7 @@ var version = __toESM(((module) => module && module.__esModule && 'default' in m
114
116
  "code-generator": null,
115
117
  "commitlint-config": null,
116
118
  "commitlint-forbidden-patterns": null,
119
+ "commitlint-lint-md-header": null,
117
120
  "commitlint-spellcheck-header": null,
118
121
  "docs-site": null,
119
122
  "env-toggle": null,
@@ -143,4 +146,4 @@ var version = __toESM(((module) => module && module.__esModule && 'default' in m
143
146
  "validate-dependencies": null,
144
147
  version
145
148
  });
146
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZScgZnJvbSAnLi9kb2NzLXNpdGUvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2Vudi10b2dnbGUnIGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5leHBvcnQgKiBhcyAnZXhlYycgZnJvbSAnLi9leGVjLnRzJztcbmV4cG9ydCAqIGFzICdmb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdmb3JtYXR0ZXJzJyBmcm9tICcuL2Zvcm1hdHRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2ZzJyBmcm9tICcuL2ZzLnRzJztcbmV4cG9ydCAqIGFzICdnYXRlJyBmcm9tICcuL2dhdGUudHMnO1xuZXhwb3J0ICogYXMgJ2dpdCcgZnJvbSAnLi9naXQudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeS1idWlsZCcgZnJvbSAnLi9saWJyYXJ5LWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbG9jay1pbnRlZ3JpdHknIGZyb20gJy4vcGFja2FnZS1sb2NrLWludGVncml0eS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1tYW5hZ2VyJyBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZWQtaXNzdWVzJyBmcm9tICcuL3JlbGVhc2VkLWlzc3Vlcy50cyc7XG5leHBvcnQgKiBhcyAncmVwby1wYXRocycgZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3NoYXJlZC1jb25maWctZmlsZXMnIGZyb20gJy4vc2hhcmVkLWNvbmZpZy1maWxlcy50cyc7XG5leHBvcnQgKiBhcyAndGVzdC1ydW5uZXJzJyBmcm9tICcuL3Rlc3QtcnVubmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAndXBzdHJlYW0tc3luYy1jbGknIGZyb20gJy4vdXBzdHJlYW0tc3luYy1jbGkudHMnO1xuZXhwb3J0ICogYXMgJ3Vwc3RyZWFtLXN5bmMnIGZyb20gJy4vdXBzdHJlYW0tc3luYy50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGUtZGVjbGFyYXRpb25zJyBmcm9tICcuL3ZhbGlkYXRlLWRlY2xhcmF0aW9ucy50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGUtZGVwZW5kZW5jaWVzJyBmcm9tICcuL3ZhbGlkYXRlLWRlcGVuZGVuY2llcy50cyc7XG5leHBvcnQgKiBhcyAndmVyc2lvbicgZnJvbSAnLi92ZXJzaW9uLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsK0JBQUFBO0FBQUEsRUFBQSxtQkFBQUM7QUFBQSxFQUFBLHdCQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUEsRUFBQSx1Q0FBQUM7QUFBQSxFQUFBLHNDQUFBQztBQUFBLEVBQUEsbUJBQUFDO0FBQUEsRUFBQSxvQkFBQUM7QUFBQSxFQUFBO0FBQUEsOEJBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBQUFDO0FBQUEsRUFBQTtBQUFBLDhCQUFBQztBQUFBLEVBQUE7QUFBQSx1QkFBQUM7QUFBQSxFQUFBLGlCQUFBQztBQUFBLEVBQUEsZ0NBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBLHlCQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQTtBQUFBLCtCQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQSx1QkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUVBLFlBQXlCO0FBQ3pCLGVBQTRCO0FBQzVCLElBQUF0QixzQkFBdUM7QUFDdkMsSUFBQUMsWUFBNkI7QUFDN0IsSUFBQUMsaUJBQWtDO0FBQ2xDLElBQUFDLG9CQUFxQztBQUNyQyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGFBQThCO0FBQzlCLFdBQXdCO0FBQ3hCLElBQUFDLHFCQUFzQztBQUN0QyxpQkFBOEI7QUFDOUIsU0FBc0I7QUFDdEIsV0FBd0I7QUFDeEIsVUFBdUI7QUFDdkIsV0FBd0I7QUFDeEIsSUFBQUMsZ0JBQWlDO0FBQ2pDLGNBQTJCO0FBQzNCLElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQyxjQUErQjtBQUMvQixJQUFBQyxVQUEyQjtBQUMzQixVQUF1QjtBQUN2QixJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsa0JBQW1DO0FBQ25DLElBQUFDLGtCQUFtQztBQUNuQyxJQUFBQyxhQUE4QjtBQUM5QixXQUF3QjtBQUN4QixJQUFBQyxzQkFBdUM7QUFDdkMsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUUsb0JBQXFDO0FBQ3JDLElBQUFELGdCQUFpQztBQUNqQyxJQUFBRSx3QkFBeUM7QUFDekMsSUFBQUMsd0JBQXlDO0FBQ3pDLGNBQTJCOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJjb21taXRsaW50LWZvcmJpZGRlbi1wYXR0ZXJucyIsICJjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyIiwgImRvY3Mtc2l0ZSIsICJlbnYtdG9nZ2xlIiwgImZvcmJpZGRlbi1wYXR0ZXJucyIsICJsaWJyYXJ5LWJ1aWxkIiwgIm5hbm8tc3RhZ2VkLWNvbmZpZyIsICJucG0tcHVibGlzaCIsICJucG0tcnVuIiwgInBhY2thZ2UtbG9jay1pbnRlZ3JpdHkiLCAicGFja2FnZS1tYW5hZ2VyIiwgInJlbGVhc2VkLWlzc3VlcyIsICJyZXBvLXBhdGhzIiwgInNoYXJlZC1jb25maWctZmlsZXMiLCAidGVzdC1ydW5uZXJzIiwgInVwc3RyZWFtLXN5bmMiLCAidXBzdHJlYW0tc3luYy1jbGkiLCAidmFsaWRhdGUtZGVjbGFyYXRpb25zIiwgInZhbGlkYXRlLWRlcGVuZGVuY2llcyJdCn0K
149
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LWxpbnQtbWQtaGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtbGludC1tZC1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXInIGZyb20gJy4vY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlci50cyc7XG5leHBvcnQgKiBhcyAnZG9jcy1zaXRlJyBmcm9tICcuL2RvY3Mtc2l0ZS9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZW52LXRvZ2dsZScgZnJvbSAnLi9lbnYtdG9nZ2xlLnRzJztcbmV4cG9ydCAqIGFzICdleGVjJyBmcm9tICcuL2V4ZWMudHMnO1xuZXhwb3J0ICogYXMgJ2ZvcmJpZGRlbi1wYXR0ZXJucycgZnJvbSAnLi9mb3JiaWRkZW4tcGF0dGVybnMudHMnO1xuZXhwb3J0ICogYXMgJ2Zvcm1hdHRlcnMnIGZyb20gJy4vZm9ybWF0dGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZnMnIGZyb20gJy4vZnMudHMnO1xuZXhwb3J0ICogYXMgJ2dhdGUnIGZyb20gJy4vZ2F0ZS50cyc7XG5leHBvcnQgKiBhcyAnZ2l0JyBmcm9tICcuL2dpdC50cyc7XG5leHBvcnQgKiBhcyAnanNvbicgZnJvbSAnLi9qc29uLnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5LWJ1aWxkJyBmcm9tICcuL2xpYnJhcnktYnVpbGQudHMnO1xuZXhwb3J0ICogYXMgJ2xpbnRlcnMnIGZyb20gJy4vbGludGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbmFuby1zdGFnZWQtY29uZmlnJyBmcm9tICcuL25hbm8tc3RhZ2VkLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbnBtLXB1Ymxpc2gnIGZyb20gJy4vbnBtLXB1Ymxpc2gudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1ydW4nIGZyb20gJy4vbnBtLXJ1bi50cyc7XG5leHBvcnQgKiBhcyAnbnBtJyBmcm9tICcuL25wbS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1sb2NrLWludGVncml0eScgZnJvbSAnLi9wYWNrYWdlLWxvY2staW50ZWdyaXR5LnRzJztcbmV4cG9ydCAqIGFzICdwYWNrYWdlLW1hbmFnZXInIGZyb20gJy4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdyZWxlYXNlZC1pc3N1ZXMnIGZyb20gJy4vcmVsZWFzZWQtaXNzdWVzLnRzJztcbmV4cG9ydCAqIGFzICdyZXBvLXBhdGhzJyBmcm9tICcuL3JlcG8tcGF0aHMudHMnO1xuZXhwb3J0ICogYXMgJ3Jvb3QnIGZyb20gJy4vcm9vdC50cyc7XG5leHBvcnQgKiBhcyAnc2hhcmVkLWNvbmZpZy1maWxlcycgZnJvbSAnLi9zaGFyZWQtY29uZmlnLWZpbGVzLnRzJztcbmV4cG9ydCAqIGFzICd0ZXN0LXJ1bm5lcnMnIGZyb20gJy4vdGVzdC1ydW5uZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICd1cHN0cmVhbS1zeW5jLWNsaScgZnJvbSAnLi91cHN0cmVhbS1zeW5jLWNsaS50cyc7XG5leHBvcnQgKiBhcyAndXBzdHJlYW0tc3luYycgZnJvbSAnLi91cHN0cmVhbS1zeW5jLnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0ZS1kZWNsYXJhdGlvbnMnIGZyb20gJy4vdmFsaWRhdGUtZGVjbGFyYXRpb25zLnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0ZS1kZXBlbmRlbmNpZXMnIGZyb20gJy4vdmFsaWRhdGUtZGVwZW5kZW5jaWVzLnRzJztcbmV4cG9ydCAqIGFzICd2ZXJzaW9uJyBmcm9tICcuL3ZlcnNpb24udHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFBQUE7QUFBQSxFQUFBLG1CQUFBQztBQUFBLEVBQUEsd0JBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsbUNBQUFDO0FBQUEsRUFBQSxzQ0FBQUM7QUFBQSxFQUFBLG1CQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQTtBQUFBLDhCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUFBQztBQUFBLEVBQUE7QUFBQSw4QkFBQUM7QUFBQSxFQUFBO0FBQUEsdUJBQUFDO0FBQUEsRUFBQSxpQkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEseUJBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBLG9CQUFBQztBQUFBLEVBQUE7QUFBQSwrQkFBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFFQSxZQUF5QjtBQUN6QixlQUE0QjtBQUM1QixJQUFBdkIsc0JBQXVDO0FBQ3ZDLElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGlCQUFrQztBQUNsQyxJQUFBQyxvQkFBcUM7QUFDckMsSUFBQUMsZ0NBQWlEO0FBQ2pELElBQUFDLDRCQUE2QztBQUM3QyxJQUFBQywrQkFBZ0Q7QUFDaEQsSUFBQUMsWUFBNkI7QUFDN0IsSUFBQUMsYUFBOEI7QUFDOUIsV0FBd0I7QUFDeEIsSUFBQUMscUJBQXNDO0FBQ3RDLGlCQUE4QjtBQUM5QixTQUFzQjtBQUN0QixXQUF3QjtBQUN4QixVQUF1QjtBQUN2QixXQUF3QjtBQUN4QixJQUFBQyxnQkFBaUM7QUFDakMsY0FBMkI7QUFDM0IsSUFBQUMscUJBQXNDO0FBQ3RDLElBQUFDLGNBQStCO0FBQy9CLElBQUFDLFVBQTJCO0FBQzNCLFVBQXVCO0FBQ3ZCLElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxrQkFBbUM7QUFDbkMsSUFBQUMsa0JBQW1DO0FBQ25DLElBQUFDLGFBQThCO0FBQzlCLFdBQXdCO0FBQ3hCLElBQUFDLHNCQUF1QztBQUN2QyxJQUFBQyxlQUFnQztBQUNoQyxJQUFBRSxvQkFBcUM7QUFDckMsSUFBQUQsZ0JBQWlDO0FBQ2pDLElBQUFFLHdCQUF5QztBQUN6QyxJQUFBQyx3QkFBeUM7QUFDekMsY0FBMkI7IiwKICAibmFtZXMiOiBbImNoZWNrLXByb2plY3QtdHlwZXMiLCAiY2xpLXV0aWxzIiwgImNvZGUtZ2VuZXJhdG9yIiwgImNvbW1pdGxpbnQtY29uZmlnIiwgImNvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zIiwgImNvbW1pdGxpbnQtbGludC1tZC1oZWFkZXIiLCAiY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlciIsICJkb2NzLXNpdGUiLCAiZW52LXRvZ2dsZSIsICJmb3JiaWRkZW4tcGF0dGVybnMiLCAibGlicmFyeS1idWlsZCIsICJuYW5vLXN0YWdlZC1jb25maWciLCAibnBtLXB1Ymxpc2giLCAibnBtLXJ1biIsICJwYWNrYWdlLWxvY2staW50ZWdyaXR5IiwgInBhY2thZ2UtbWFuYWdlciIsICJyZWxlYXNlZC1pc3N1ZXMiLCAicmVwby1wYXRocyIsICJzaGFyZWQtY29uZmlnLWZpbGVzIiwgInRlc3QtcnVubmVycyIsICJ1cHN0cmVhbS1zeW5jIiwgInVwc3RyZWFtLXN5bmMtY2xpIiwgInZhbGlkYXRlLWRlY2xhcmF0aW9ucyIsICJ2YWxpZGF0ZS1kZXBlbmRlbmNpZXMiXQp9Cg==
@@ -10,6 +10,7 @@ export * as 'cli-utils' from './cli-utils.cjs';
10
10
  export * as 'code-generator' from './code-generator.cjs';
11
11
  export * as 'commitlint-config' from './commitlint-config.cjs';
12
12
  export * as 'commitlint-forbidden-patterns' from './commitlint-forbidden-patterns.cjs';
13
+ export * as 'commitlint-lint-md-header' from './commitlint-lint-md-header.cjs';
13
14
  export * as 'commitlint-spellcheck-header' from './commitlint-spellcheck-header.cjs';
14
15
  export * as 'docs-site' from './docs-site/index.cjs';
15
16
  export * as 'env-toggle' from './env-toggle.cjs';
@@ -36,6 +36,8 @@ __export(test_runners_exports, {
36
36
  auto: () => auto,
37
37
  jest: () => jest,
38
38
  "jest-config": () => jest_config,
39
+ stryker: () => stryker,
40
+ "stryker-config": () => stryker_config,
39
41
  vitest: () => vitest,
40
42
  "vitest-config": () => vitest_config
41
43
  });
@@ -43,6 +45,8 @@ module.exports = __toCommonJS(test_runners_exports);
43
45
  var auto = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./auto.cjs')), 1);
44
46
  var jest_config = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./jest-config.cjs')), 1);
45
47
  var jest = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./jest.cjs')), 1);
48
+ var stryker_config = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./stryker-config.cjs')), 1);
49
+ var stryker = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./stryker.cjs')), 1);
46
50
  var vitest_config = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./vitest-config.cjs')), 1);
47
51
  var vitest = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./vitest.cjs')), 1);
48
52
  // Annotate the CommonJS export names for ESM import in node:
@@ -50,7 +54,9 @@ var vitest = __toESM(((module) => module && module.__esModule && 'default' in mo
50
54
  auto,
51
55
  jest,
52
56
  "jest-config": null,
57
+ stryker,
58
+ "stryker-config": null,
53
59
  vitest,
54
60
  "vitest-config": null
55
61
  });
56
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhdXRvJyBmcm9tICcuL2F1dG8udHMnO1xuZXhwb3J0ICogYXMgJ2plc3QtY29uZmlnJyBmcm9tICcuL2plc3QtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdqZXN0JyBmcm9tICcuL2plc3QudHMnO1xuZXhwb3J0ICogYXMgJ3ZpdGVzdC1jb25maWcnIGZyb20gJy4vdml0ZXN0LWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAndml0ZXN0JyBmcm9tICcuL3ZpdGVzdC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUFBQTtBQUFBLEVBQUE7QUFBQSx5QkFBQUM7QUFBQTtBQUFBO0FBRUEsV0FBd0I7QUFDeEIsSUFBQUQsY0FBK0I7QUFDL0IsV0FBd0I7QUFDeEIsSUFBQUMsZ0JBQWlDO0FBQ2pDLGFBQTBCOyIsCiAgIm5hbWVzIjogWyJqZXN0LWNvbmZpZyIsICJ2aXRlc3QtY29uZmlnIl0KfQo=
62
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhdXRvJyBmcm9tICcuL2F1dG8udHMnO1xuZXhwb3J0ICogYXMgJ2plc3QtY29uZmlnJyBmcm9tICcuL2plc3QtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdqZXN0JyBmcm9tICcuL2plc3QudHMnO1xuZXhwb3J0ICogYXMgJ3N0cnlrZXItY29uZmlnJyBmcm9tICcuL3N0cnlrZXItY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdzdHJ5a2VyJyBmcm9tICcuL3N0cnlrZXIudHMnO1xuZXhwb3J0ICogYXMgJ3ZpdGVzdC1jb25maWcnIGZyb20gJy4vdml0ZXN0LWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAndml0ZXN0JyBmcm9tICcuL3ZpdGVzdC50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUFBQTtBQUFBLEVBQUE7QUFBQSwwQkFBQUM7QUFBQSxFQUFBO0FBQUEseUJBQUFDO0FBQUE7QUFBQTtBQUVBLFdBQXdCO0FBQ3hCLElBQUFGLGNBQStCO0FBQy9CLFdBQXdCO0FBQ3hCLElBQUFDLGlCQUFrQztBQUNsQyxjQUEyQjtBQUMzQixJQUFBQyxnQkFBaUM7QUFDakMsYUFBMEI7IiwKICAibmFtZXMiOiBbImplc3QtY29uZmlnIiwgInN0cnlrZXItY29uZmlnIiwgInZpdGVzdC1jb25maWciXQp9Cg==
@@ -2,5 +2,7 @@
2
2
  export * as 'auto' from './auto.cjs';
3
3
  export * as 'jest-config' from './jest-config.cjs';
4
4
  export * as 'jest' from './jest.cjs';
5
+ export * as 'stryker-config' from './stryker-config.cjs';
6
+ export * as 'stryker' from './stryker.cjs';
5
7
  export * as 'vitest-config' from './vitest-config.cjs';
6
8
  export * as 'vitest' from './vitest.cjs';
@@ -0,0 +1,102 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ "use strict";
7
+ var __create = Object.create;
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __getProtoOf = Object.getPrototypeOf;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
+ // If the importer is in node compatibility mode or this is not an ESM
27
+ // file that has been converted to a CommonJS file using a Babel-
28
+ // compatible transform (i.e. "__esModule" has not been set), then set
29
+ // "default" to the CommonJS "module.exports" for node compatibility.
30
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31
+ mod
32
+ ));
33
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
+ var stryker_config_exports = {};
35
+ __export(stryker_config_exports, {
36
+ DEFAULT_STRYKER_IGNORE_PATTERNS: () => DEFAULT_STRYKER_IGNORE_PATTERNS,
37
+ DEFAULT_STRYKER_MUTATE: () => DEFAULT_STRYKER_MUTATE,
38
+ STRYKER_TEST_FILES_ENV_VARIABLE: () => STRYKER_TEST_FILES_ENV_VARIABLE,
39
+ STRYKER_VITEST_CONFIG_FILE_NAME: () => STRYKER_VITEST_CONFIG_FILE_NAME,
40
+ defineStrykerConfig: () => defineStrykerConfig,
41
+ getStrykerTestInclude: () => getStrykerTestInclude
42
+ });
43
+ module.exports = __toCommonJS(stryker_config_exports);
44
+ var import_node_process = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('node:process')), 1);
45
+ const DEFAULT_CONCURRENCY = 4;
46
+ const DEFAULT_TIMEOUT_IN_MILLISECONDS = 1e4;
47
+ const STRYKER_TEST_FILES_ENV_VARIABLE = "STRYKER_TEST_FILES";
48
+ const STRYKER_VITEST_CONFIG_FILE_NAME = "vitest.stryker.config.ts";
49
+ const DEFAULT_STRYKER_MUTATE = [
50
+ "src/**/*.ts",
51
+ "!src/**/*.test.ts",
52
+ "!src/**/*.d.ts",
53
+ "!src/**/index.ts",
54
+ "!src/__merged.ts",
55
+ "!src/test-helpers/**",
56
+ "!src/**/@types/**"
57
+ ];
58
+ const DEFAULT_STRYKER_IGNORE_PATTERNS = [
59
+ "/.astro",
60
+ "/.claude",
61
+ "/.codex",
62
+ "/coverage",
63
+ "/dist",
64
+ "/docs",
65
+ "/reports"
66
+ ];
67
+ function defineStrykerConfig(overrides = {}) {
68
+ return {
69
+ checkers: [],
70
+ concurrency: DEFAULT_CONCURRENCY,
71
+ coverageAnalysis: "perTest",
72
+ htmlReporter: { fileName: "reports/mutation/mutation.html" },
73
+ ignorePatterns: [...DEFAULT_STRYKER_IGNORE_PATTERNS],
74
+ inPlace: true,
75
+ jsonReporter: { fileName: "reports/mutation/mutation.json" },
76
+ mutate: [...DEFAULT_STRYKER_MUTATE],
77
+ reporters: ["clear-text", "progress-append-only", "json", "html"],
78
+ // eslint-disable-next-line unicorn/name-replacements -- `tempDirName` is a Stryker option.
79
+ tempDirName: ".stryker-tmp",
80
+ testRunner: "vitest",
81
+ timeoutMS: DEFAULT_TIMEOUT_IN_MILLISECONDS,
82
+ vitest: {
83
+ configFile: STRYKER_VITEST_CONFIG_FILE_NAME,
84
+ related: false
85
+ },
86
+ ...overrides
87
+ };
88
+ }
89
+ function getStrykerTestInclude(defaultInclude) {
90
+ const testFiles = import_node_process.default.env[STRYKER_TEST_FILES_ENV_VARIABLE];
91
+ return testFiles ? testFiles.split(",") : [...defaultInclude];
92
+ }
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ DEFAULT_STRYKER_IGNORE_PATTERNS,
96
+ DEFAULT_STRYKER_MUTATE,
97
+ STRYKER_TEST_FILES_ENV_VARIABLE,
98
+ STRYKER_VITEST_CONFIG_FILE_NAME,
99
+ defineStrykerConfig,
100
+ getStrykerTestInclude
101
+ });
102
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9zdHJ5a2VyLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBzaGFyZWQgU3RyeWtlciBjb25maWd1cmF0aW9uIGZvciBhbiBvbi1kZW1hbmQgbXV0YXRpb24gcnVuICh7QGxpbmsgZGVmaW5lU3RyeWtlckNvbmZpZ30pLCBhbmQgdGhlIHRlc3QgbGlzdCB0aGVcbiAqIG11dGF0aW9uIHJ1bidzIHZpdGVzdCBjb25maWd1cmF0aW9uIHJlYWRzICh7QGxpbmsgZ2V0U3RyeWtlclRlc3RJbmNsdWRlfSkuXG4gKlxuICogVGhlIG1vZHVsZSBpbXBvcnRzIG5vdGhpbmcgYnV0IGBub2RlOnByb2Nlc3NgIGFuZCBob2xkcyBubyBUeXBlU2NyaXB0IHN5bnRheCBOb2RlIGNhbm5vdCBzdHJpcCwgc28gYSByZXBvc2l0b3J5XG4gKiB0aGF0IGNhbm5vdCBpbnN0YWxsIHRoaXMgcGFja2FnZSAodGhpcyBvbmUpIGxvYWRzIGl0IHN0cmFpZ2h0IGZyb20gaXRzIGBzdHJ5a2VyLmNvbmZpZy5tanNgLlxuICovXG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmNvbnN0IERFRkFVTFRfQ09OQ1VSUkVOQ1kgPSA0O1xuY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEwXzAwMDtcblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgYHRlc3RNdXRhdGlvbmAgaGFuZHMgdGhlIHNjb3BlZCBydW4ncyB0ZXN0IGZpbGVzIGluLCBjb21tYS1zZXBhcmF0ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBTVFJZS0VSX1RFU1RfRklMRVNfRU5WX1ZBUklBQkxFID0gJ1NUUllLRVJfVEVTVF9GSUxFUyc7XG5cbi8qKlxuICogVGhlIHZpdGVzdCBjb25maWd1cmF0aW9uIGZpbGUgdGhlIG11dGF0aW9uIHJ1biByZWFkcywgYmVzaWRlIHRoZSBwcm9qZWN0J3Mgb3duIGB2aXRlc3QuY29uZmlnLipgLlxuICovXG5leHBvcnQgY29uc3QgU1RSWUtFUl9WSVRFU1RfQ09ORklHX0ZJTEVfTkFNRSA9ICd2aXRlc3Quc3RyeWtlci5jb25maWcudHMnO1xuXG4vKipcbiAqIFRoZSBmaWxlcyBtdXRhdGVkIGJ5IGEgcnVuIHRoYXQgbmFtZXMgbm9uZTogZXZlcnkgc291cmNlIGZpbGUgYnV0IHRoZSB0ZXN0cywgdGhlIGRlY2xhcmF0aW9ucywgdGhlIGdlbmVyYXRlZFxuICogYmFycmVscyBhbmQgdGhlIHRlc3QgaGVscGVycy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RSWUtFUl9NVVRBVEU6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAnc3JjLyoqLyoudHMnLFxuICAnIXNyYy8qKi8qLnRlc3QudHMnLFxuICAnIXNyYy8qKi8qLmQudHMnLFxuICAnIXNyYy8qKi9pbmRleC50cycsXG4gICchc3JjL19fbWVyZ2VkLnRzJyxcbiAgJyFzcmMvdGVzdC1oZWxwZXJzLyoqJyxcbiAgJyFzcmMvKiovQHR5cGVzLyoqJ1xuXTtcblxuLyoqXG4gKiBUaGUgZm9sZGVycyBTdHJ5a2VyIG5ldmVyIHJlYWRzLiBBIGRvY3VtZW50YXRpb24gc2l0ZSdzIGBkb2NzL2AgYWxvbmUgaGVsZCAxOCwwMDAgZmlsZXMgaW4gdGhlIHBpbG90OiBjb3B5aW5nIGl0XG4gKiB0b29rIDUgbWludXRlcywgYW5kIHRoZW4gdGhlIG1haW4gcHJvY2VzcyBkaWVkIG9mIGEgNCBHQiBoZWFwIE9PTS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RSWUtFUl9JR05PUkVfUEFUVEVSTlM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAnLy5hc3RybycsXG4gICcvLmNsYXVkZScsXG4gICcvLmNvZGV4JyxcbiAgJy9jb3ZlcmFnZScsXG4gICcvZGlzdCcsXG4gICcvZG9jcycsXG4gICcvcmVwb3J0cydcbl07XG5cbi8qKlxuICogQSBTdHJ5a2VyIGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBhcyBhIGBzdHJ5a2VyLmNvbmZpZy5tanNgIGV4cG9ydHMgaXQuXG4gKlxuICogS2VwdCBsb29zZSByYXRoZXIgdGhhbiB0eXBlZCBieSBgQHN0cnlrZXItbXV0YXRvci9hcGlgLCBzbyBhIGNvbnN1bWVyIHRoYXQgbmV2ZXIgcnVucyBTdHJ5a2VyIG5ldmVyIG5lZWRzIGl0c1xuICogdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFN0cnlrZXJDb25maWcgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBTdHJ5a2VyIGNvbmZpZ3VyYXRpb24gb2YgYW4gb24tZGVtYW5kIG11dGF0aW9uIHJ1bi5cbiAqXG4gKiBUaGUgZGVmYXVsdHMgZW5jb2RlIHdoYXQgdGhlIHBpbG90IG1lYXN1cmVkOlxuICpcbiAqIC0gYGluUGxhY2U6IHRydWVgLCBiZWNhdXNlIFN0cnlrZXIncyBzYW5kYm94IGNvcHkgYnJlYWtzIG1vZHVsZSByZXNvbHV0aW9uIHRocm91Z2ggYSBzeW1saW5rZWQgYG5vZGVfbW9kdWxlc2AuIEluXG4gKiAgIHBsYWNlLCBTdHJ5a2VyIG11dGF0ZXMgdGhlIHRyZWUgaXRzZWxmIGFuZCBwdXRzIGJhY2sgdGhlIFdIT0xFIHRyZWUgYXMgaXQgd2FzIHdoZW4gdGhlIHJ1biBzdGFydGVkLCBzbyB0aGUgcnVuXG4gKiAgIG5lZWRzIGEgY29tbWl0dGVkIHRyZWUgYW5kIG5vYm9keSBtYXkgZWRpdCBpdCB3aGlsZSB0aGUgcnVuIGlzIGdvaW5nLlxuICogLSBgdml0ZXN0LnJlbGF0ZWQ6IGZhbHNlYCwgYmVjYXVzZSBgdml0ZXN0LnJlbGF0ZWRgIGZvdW5kIG5vIHRlc3RzIGF0IGFsbDsgdGhlIHNjb3BlZCBydW4gbmFtZXMgaXRzIHRlc3QgZmlsZXNcbiAqICAgdGhyb3VnaCB7QGxpbmsgZ2V0U3RyeWtlclRlc3RJbmNsdWRlfSBpbnN0ZWFkLlxuICogLSBgaWdub3JlUGF0dGVybnNgLCBzZWUge0BsaW5rIERFRkFVTFRfU1RSWUtFUl9JR05PUkVfUEFUVEVSTlN9LlxuICpcbiAqIEBwYXJhbSBvdmVycmlkZXMgLSBLZXlzIHRoYXQgcmVwbGFjZSB0aGUgZGVmYXVsdHMuIFRoZSBtZXJnZSBpcyBzaGFsbG93OiBhbiBvdmVycmlkZSBvZiBgdml0ZXN0YCByZXBsYWNlcyB0aGVcbiAqICAgd2hvbGUgYHZpdGVzdGAgb2JqZWN0LlxuICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24gdG8gZXhwb3J0IGZyb20gYHN0cnlrZXIuY29uZmlnLm1qc2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVTdHJ5a2VyQ29uZmlnKG92ZXJyaWRlczogU3RyeWtlckNvbmZpZyA9IHt9KTogU3RyeWtlckNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgY2hlY2tlcnM6IFtdLFxuICAgIGNvbmN1cnJlbmN5OiBERUZBVUxUX0NPTkNVUlJFTkNZLFxuICAgIGNvdmVyYWdlQW5hbHlzaXM6ICdwZXJUZXN0JyxcbiAgICBodG1sUmVwb3J0ZXI6IHsgZmlsZU5hbWU6ICdyZXBvcnRzL211dGF0aW9uL211dGF0aW9uLmh0bWwnIH0sXG4gICAgaWdub3JlUGF0dGVybnM6IFsuLi5ERUZBVUxUX1NUUllLRVJfSUdOT1JFX1BBVFRFUk5TXSxcbiAgICBpblBsYWNlOiB0cnVlLFxuICAgIGpzb25SZXBvcnRlcjogeyBmaWxlTmFtZTogJ3JlcG9ydHMvbXV0YXRpb24vbXV0YXRpb24uanNvbicgfSxcbiAgICBtdXRhdGU6IFsuLi5ERUZBVUxUX1NUUllLRVJfTVVUQVRFXSxcbiAgICByZXBvcnRlcnM6IFsnY2xlYXItdGV4dCcsICdwcm9ncmVzcy1hcHBlbmQtb25seScsICdqc29uJywgJ2h0bWwnXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgdGVtcERpck5hbWVgIGlzIGEgU3RyeWtlciBvcHRpb24uXG4gICAgdGVtcERpck5hbWU6ICcuc3RyeWtlci10bXAnLFxuICAgIHRlc3RSdW5uZXI6ICd2aXRlc3QnLFxuICAgIHRpbWVvdXRNUzogREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyxcbiAgICB2aXRlc3Q6IHtcbiAgICAgIGNvbmZpZ0ZpbGU6IFNUUllLRVJfVklURVNUX0NPTkZJR19GSUxFX05BTUUsXG4gICAgICByZWxhdGVkOiBmYWxzZVxuICAgIH0sXG4gICAgLi4ub3ZlcnJpZGVzXG4gIH07XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHRlc3QgZmlsZXMgb2YgdGhlIG11dGF0aW9uIHJ1bidzIHZpdGVzdCBjb25maWd1cmF0aW9uOiB0aGUgb25lcyBgdGVzdE11dGF0aW9uYCBuYW1lZCBmb3IgYSBzY29wZWQgcnVuLCBvclxuICogdGhlIGdpdmVuIGRlZmF1bHRzIGZvciBhIGZ1bGwgb25lLlxuICpcbiAqIEBwYXJhbSBkZWZhdWx0SW5jbHVkZSAtIFRoZSBgaW5jbHVkZWAgZ2xvYnMgb2YgYSBmdWxsIHJ1bi5cbiAqIEByZXR1cm5zIFRoZSBgaW5jbHVkZWAgbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0cnlrZXJUZXN0SW5jbHVkZShkZWZhdWx0SW5jbHVkZTogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHRlc3RGaWxlcyA9IHByb2Nlc3MuZW52W1NUUllLRVJfVEVTVF9GSUxFU19FTlZfVkFSSUFCTEVdO1xuICByZXR1cm4gdGVzdEZpbGVzID8gdGVzdEZpbGVzLnNwbGl0KCcsJykgOiBbLi4uZGVmYXVsdEluY2x1ZGVdO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSwwQkFBb0I7QUFFcEIsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSxrQ0FBa0M7QUFLakMsTUFBTSxrQ0FBa0M7QUFLeEMsTUFBTSxrQ0FBa0M7QUFNeEMsTUFBTSx5QkFBNEM7QUFBQSxFQUN2RDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBTU8sTUFBTSxrQ0FBcUQ7QUFBQSxFQUNoRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBMEJPLFNBQVMsb0JBQW9CLFlBQTJCLENBQUMsR0FBa0I7QUFDaEYsU0FBTztBQUFBLElBQ0wsVUFBVSxDQUFDO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixrQkFBa0I7QUFBQSxJQUNsQixjQUFjLEVBQUUsVUFBVSxpQ0FBaUM7QUFBQSxJQUMzRCxnQkFBZ0IsQ0FBQyxHQUFHLCtCQUErQjtBQUFBLElBQ25ELFNBQVM7QUFBQSxJQUNULGNBQWMsRUFBRSxVQUFVLGlDQUFpQztBQUFBLElBQzNELFFBQVEsQ0FBQyxHQUFHLHNCQUFzQjtBQUFBLElBQ2xDLFdBQVcsQ0FBQyxjQUFjLHdCQUF3QixRQUFRLE1BQU07QUFBQTtBQUFBLElBRWhFLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxNQUNOLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxJQUNYO0FBQUEsSUFDQSxHQUFHO0FBQUEsRUFDTDtBQUNGO0FBU08sU0FBUyxzQkFBc0IsZ0JBQTZDO0FBQ2pGLFFBQU0sWUFBWSxvQkFBQUEsUUFBUSxJQUFJLCtCQUErQjtBQUM3RCxTQUFPLFlBQVksVUFBVSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYztBQUM5RDsiLAogICJuYW1lcyI6IFsicHJvY2VzcyJdCn0K
@@ -0,0 +1,60 @@
1
+ /// <reference path="../library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * The shared Stryker configuration for an on-demand mutation run ({@link defineStrykerConfig}), and the test list the
6
+ * mutation run's vitest configuration reads ({@link getStrykerTestInclude}).
7
+ *
8
+ * The module imports nothing but `node:process` and holds no TypeScript syntax Node cannot strip, so a repository
9
+ * that cannot install this package (this one) loads it straight from its `stryker.config.mjs`.
10
+ */
11
+ /**
12
+ * The environment variable `testMutation` hands the scoped run's test files in, comma-separated.
13
+ */
14
+ export declare const STRYKER_TEST_FILES_ENV_VARIABLE = "STRYKER_TEST_FILES";
15
+ /**
16
+ * The vitest configuration file the mutation run reads, beside the project's own `vitest.config.*`.
17
+ */
18
+ export declare const STRYKER_VITEST_CONFIG_FILE_NAME = "vitest.stryker.config.ts";
19
+ /**
20
+ * The files mutated by a run that names none: every source file but the tests, the declarations, the generated
21
+ * barrels and the test helpers.
22
+ */
23
+ export declare const DEFAULT_STRYKER_MUTATE: readonly string[];
24
+ /**
25
+ * The folders Stryker never reads. A documentation site's `docs/` alone held 18,000 files in the pilot: copying it
26
+ * took 5 minutes, and then the main process died of a 4 GB heap OOM.
27
+ */
28
+ export declare const DEFAULT_STRYKER_IGNORE_PATTERNS: readonly string[];
29
+ /**
30
+ * A Stryker configuration object, as a `stryker.config.mjs` exports it.
31
+ *
32
+ * Kept loose rather than typed by `@stryker-mutator/api`, so a consumer that never runs Stryker never needs its
33
+ * types.
34
+ */
35
+ export type StrykerConfig = Record<string, unknown>;
36
+ /**
37
+ * Defines the Stryker configuration of an on-demand mutation run.
38
+ *
39
+ * The defaults encode what the pilot measured:
40
+ *
41
+ * - `inPlace: true`, because Stryker's sandbox copy breaks module resolution through a symlinked `node_modules`. In
42
+ * place, Stryker mutates the tree itself and puts back the WHOLE tree as it was when the run started, so the run
43
+ * needs a committed tree and nobody may edit it while the run is going.
44
+ * - `vitest.related: false`, because `vitest.related` found no tests at all; the scoped run names its test files
45
+ * through {@link getStrykerTestInclude} instead.
46
+ * - `ignorePatterns`, see {@link DEFAULT_STRYKER_IGNORE_PATTERNS}.
47
+ *
48
+ * @param overrides - Keys that replace the defaults. The merge is shallow: an override of `vitest` replaces the
49
+ * whole `vitest` object.
50
+ * @returns The configuration to export from `stryker.config.mjs`.
51
+ */
52
+ export declare function defineStrykerConfig(overrides?: StrykerConfig): StrykerConfig;
53
+ /**
54
+ * Picks the test files of the mutation run's vitest configuration: the ones `testMutation` named for a scoped run, or
55
+ * the given defaults for a full one.
56
+ *
57
+ * @param defaultInclude - The `include` globs of a full run.
58
+ * @returns The `include` list.
59
+ */
60
+ export declare function getStrykerTestInclude(defaultInclude: readonly string[]): string[];
@@ -0,0 +1,105 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return '/';
11
+ },
12
+ env: {},
13
+ platform: 'android'
14
+ };
15
+
16
+ const existingProcess = globalThis.process;
17
+
18
+ if (!existingProcess) {
19
+ globalThis.process = browserProcess;
20
+ return;
21
+ }
22
+
23
+ if (existingProcess.versions?.node) {
24
+ return;
25
+ }
26
+
27
+ const existingProcessRecord = existingProcess;
28
+
29
+ for (const [key, value] of Object.entries(browserProcess)) {
30
+ existingProcessRecord[key] ??= value;
31
+ }
32
+
33
+ existingProcessRecord['browser'] = true;
34
+ }
35
+
36
+ ensureBrowserProcess();
37
+ })();
38
+
39
+ "use strict";
40
+ var __defProp = Object.defineProperty;
41
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
42
+ var __getOwnPropNames = Object.getOwnPropertyNames;
43
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
44
+ var __export = (target, all) => {
45
+ for (var name in all)
46
+ __defProp(target, name, { get: all[name], enumerable: true });
47
+ };
48
+ var __copyProps = (to, from, except, desc) => {
49
+ if (from && typeof from === "object" || typeof from === "function") {
50
+ for (let key of __getOwnPropNames(from))
51
+ if (!__hasOwnProp.call(to, key) && key !== except)
52
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
53
+ }
54
+ return to;
55
+ };
56
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
57
+ var stryker_exports = {};
58
+ __export(stryker_exports, {
59
+ testMutation: () => testMutation
60
+ });
61
+ module.exports = __toCommonJS(stryker_exports);
62
+ var import_path = require('@mnaoumov/typescript-lib/path');
63
+ var import_node_fs = require('node:fs');
64
+ var import_package_manager = require('../package-manager.cjs');
65
+ var import_root = require('../root.cjs');
66
+ var import_stryker_config = require('./stryker-config.cjs');
67
+ const TS_EXTENSION_REG_EXP = /\.ts$/;
68
+ async function testMutation(options = {}) {
69
+ const modulePaths = (options.modulePaths ?? []).map((modulePath) => (0, import_path.toPosixPath)(modulePath));
70
+ const testFiles = getSiblingTestFiles(modulePaths);
71
+ const status = await (0, import_root.execFromRoot)("git status --porcelain --untracked-files=all", { isQuiet: true });
72
+ if (status) {
73
+ throw new Error(
74
+ `Mutation testing needs a committed tree: Stryker mutates it in place and puts the whole tree back as it was when the run started, so an uncommitted change would be lost.
75
+ ${status}`
76
+ );
77
+ }
78
+ const runArguments = modulePaths.length > 0 ? ["--mutate", modulePaths.join(",")] : ["--incremental"];
79
+ const env = modulePaths.length > 0 ? { [import_stryker_config.STRYKER_TEST_FILES_ENV_VARIABLE]: testFiles.join(",") } : {};
80
+ await (0, import_root.execFromRoot)([...(0, import_package_manager.resolveToolCommand)({ tool: "stryker" }), "run", ...runArguments], { env, isInteractive: true });
81
+ }
82
+ function getSiblingTestFiles(modulePaths) {
83
+ const problems = [];
84
+ const testFiles = modulePaths.map((modulePath) => {
85
+ if (!modulePath.endsWith(".ts") || modulePath.endsWith(".d.ts") || modulePath.endsWith(".test.ts")) {
86
+ problems.push(`${modulePath}: not a .ts module`);
87
+ return modulePath;
88
+ }
89
+ const testFile = modulePath.replace(TS_EXTENSION_REG_EXP, ".test.ts");
90
+ if (!(0, import_node_fs.existsSync)((0, import_root.resolvePathFromRootSafe)({ path: testFile }))) {
91
+ problems.push(`${modulePath}: no sibling test ${testFile}`);
92
+ }
93
+ return testFile;
94
+ });
95
+ if (problems.length > 0) {
96
+ throw new Error(`Cannot scope the mutation run:
97
+ ${problems.join("\n")}`);
98
+ }
99
+ return testFiles;
100
+ }
101
+ // Annotate the CommonJS export names for ESM import in node:
102
+ 0 && (module.exports = {
103
+ testMutation
104
+ });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvc3RyeWtlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogUnVucyBTdHJ5a2VyIG11dGF0aW9uIHRlc3Rpbmcgb24gZGVtYW5kOiBvdmVyIG5hbWVkIG1vZHVsZXMgYW5kIHRoZWlyIHNpYmxpbmcgdGVzdHMsIG9yIGluY3JlbWVudGFsbHkgb3ZlciB0aGVcbiAqIHdob2xlIHByb2plY3QuIE5ldmVyIHBhcnQgb2YgYSBnYXRlOiBhIGZ1bGwgcnVuIHRha2VzIGFib3V0IGFuIGhvdXIuXG4gKi9cblxuaW1wb3J0IHsgdG9Qb3NpeFBhdGggfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5cbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgU1RSWUtFUl9URVNUX0ZJTEVTX0VOVl9WQVJJQUJMRSB9IGZyb20gJy4vc3RyeWtlci1jb25maWcudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayB0ZXN0TXV0YXRpb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RNdXRhdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1vZHVsZXMgdG8gbXV0YXRlLCBhcyBwYXRocyBmcm9tIHRoZSBwcm9qZWN0IHJvb3QuIEVhY2ggbmVlZHMgYSBzaWJsaW5nIGAqLnRlc3QudHNgLCBhbmQgb25seSB0aG9zZSB0ZXN0cyBydW4uXG4gICAqIFdpdGggbm9uZSwgZXZlcnkgZmlsZSB0aGUgY29uZmlndXJhdGlvbidzIGBtdXRhdGVgIGdsb2JzIG5hbWUgaXMgbXV0YXRlZCwgaW5jcmVtZW50YWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgYFtdYFxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlUGF0aHM/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuY29uc3QgVFNfRVhURU5TSU9OX1JFR19FWFAgPSAvXFwudHMkLztcblxuLyoqXG4gKiBSdW5zIFN0cnlrZXIgbXV0YXRpb24gdGVzdGluZy5cbiAqXG4gKiBUaGUgcnVuIG11dGF0ZXMgdGhlIHRyZWUgaW4gcGxhY2UgYW5kLCB3aGVuIGl0IGVuZHMsIHB1dHMgYmFjayB0aGUgd2hvbGUgdHJlZSBhcyBpdCB3YXMgd2hlbiBpdCBzdGFydGVkLCBzbyBpdFxuICogcmVmdXNlcyB0byBzdGFydCBvbiBhIHRyZWUgd2l0aCB1bmNvbW1pdHRlZCBjaGFuZ2VzLCBhbmQgbm90aGluZyBtYXkgYmUgZWRpdGVkIHdoaWxlIGl0IHJ1bnMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFRlc3RNdXRhdGlvbk9wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIFN0cnlrZXIgZXhpdHMuXG4gKiBAdGhyb3dzIElmIHRoZSB0cmVlIGhhcyB1bmNvbW1pdHRlZCBjaGFuZ2VzLCBhIHBhdGggaXMgbm90IGEgYC50c2AgbW9kdWxlLCBvciBhIG1vZHVsZSBoYXMgbm8gc2libGluZyB0ZXN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdE11dGF0aW9uKG9wdGlvbnM6IFRlc3RNdXRhdGlvbk9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtb2R1bGVQYXRocyA9IChvcHRpb25zLm1vZHVsZVBhdGhzID8/IFtdKS5tYXAoKG1vZHVsZVBhdGgpID0+IHRvUG9zaXhQYXRoKG1vZHVsZVBhdGgpKTtcbiAgY29uc3QgdGVzdEZpbGVzID0gZ2V0U2libGluZ1Rlc3RGaWxlcyhtb2R1bGVQYXRocyk7XG5cbiAgY29uc3Qgc3RhdHVzID0gYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgc3RhdHVzIC0tcG9yY2VsYWluIC0tdW50cmFja2VkLWZpbGVzPWFsbCcsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgaWYgKHN0YXR1cykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNdXRhdGlvbiB0ZXN0aW5nIG5lZWRzIGEgY29tbWl0dGVkIHRyZWU6IFN0cnlrZXIgbXV0YXRlcyBpdCBpbiBwbGFjZSBhbmQgcHV0cyB0aGUgd2hvbGUgdHJlZSBiYWNrIGFzIGl0IHdhcyB3aGVuIHRoZSBydW4gc3RhcnRlZCwgc28gYW4gdW5jb21taXR0ZWQgY2hhbmdlIHdvdWxkIGJlIGxvc3QuXFxuJHtzdGF0dXN9YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBydW5Bcmd1bWVudHMgPSBtb2R1bGVQYXRocy5sZW5ndGggPiAwID8gWyctLW11dGF0ZScsIG1vZHVsZVBhdGhzLmpvaW4oJywnKV0gOiBbJy0taW5jcmVtZW50YWwnXTtcbiAgY29uc3QgZW52ID0gbW9kdWxlUGF0aHMubGVuZ3RoID4gMCA/IHsgW1NUUllLRVJfVEVTVF9GSUxFU19FTlZfVkFSSUFCTEVdOiB0ZXN0RmlsZXMuam9pbignLCcpIH0gOiB7fTtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdzdHJ5a2VyJyB9KSwgJ3J1bicsIC4uLnJ1bkFyZ3VtZW50c10sIHsgZW52LCBpc0ludGVyYWN0aXZlOiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIERlcml2ZXMgZWFjaCBtb2R1bGUncyBzaWJsaW5nIHRlc3QgZmlsZS5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlUGF0aHMgLSBUaGUgbW9kdWxlcywgYXMgUE9TSVggcGF0aHMgZnJvbSB0aGUgcHJvamVjdCByb290LlxuICogQHJldHVybnMgVGhlIHRlc3QgZmlsZXMsIGluIHRoZSBzYW1lIG9yZGVyLlxuICogQHRocm93cyBJZiBhIHBhdGggaXMgbm90IGEgYC50c2AgbW9kdWxlLCBvciBpdHMgc2libGluZyB0ZXN0IGRvZXMgbm90IGV4aXN0LlxuICovXG5mdW5jdGlvbiBnZXRTaWJsaW5nVGVzdEZpbGVzKG1vZHVsZVBhdGhzOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcHJvYmxlbXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHRlc3RGaWxlcyA9IG1vZHVsZVBhdGhzLm1hcCgobW9kdWxlUGF0aCkgPT4ge1xuICAgIGlmICghbW9kdWxlUGF0aC5lbmRzV2l0aCgnLnRzJykgfHwgbW9kdWxlUGF0aC5lbmRzV2l0aCgnLmQudHMnKSB8fCBtb2R1bGVQYXRoLmVuZHNXaXRoKCcudGVzdC50cycpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKGAke21vZHVsZVBhdGh9OiBub3QgYSAudHMgbW9kdWxlYCk7XG4gICAgICByZXR1cm4gbW9kdWxlUGF0aDtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXN0RmlsZSA9IG1vZHVsZVBhdGgucmVwbGFjZShUU19FWFRFTlNJT05fUkVHX0VYUCwgJy50ZXN0LnRzJyk7XG4gICAgaWYgKCFleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogdGVzdEZpbGUgfSkpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKGAke21vZHVsZVBhdGh9OiBubyBzaWJsaW5nIHRlc3QgJHt0ZXN0RmlsZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVzdEZpbGU7XG4gIH0pO1xuXG4gIGlmIChwcm9ibGVtcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2NvcGUgdGhlIG11dGF0aW9uIHJ1bjpcXG4ke3Byb2JsZW1zLmpvaW4oJ1xcbicpfWApO1xuICB9XG5cbiAgcmV0dXJuIHRlc3RGaWxlcztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0Esa0JBQTRCO0FBQzVCLHFCQUEyQjtBQUUzQiw2QkFBbUM7QUFDbkMsa0JBR087QUFDUCw0QkFBZ0Q7QUFlaEQsTUFBTSx1QkFBdUI7QUFZN0IsZUFBc0IsYUFBYSxVQUErQixDQUFDLEdBQWtCO0FBQ25GLFFBQU0sZUFBZSxRQUFRLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBZSx5QkFBWSxVQUFVLENBQUM7QUFDM0YsUUFBTSxZQUFZLG9CQUFvQixXQUFXO0FBRWpELFFBQU0sU0FBUyxVQUFNLDBCQUFhLGdEQUFnRCxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQ25HLE1BQUksUUFBUTtBQUNWLFVBQU0sSUFBSTtBQUFBLE1BQ1I7QUFBQSxFQUE4SyxNQUFNO0FBQUEsSUFDdEw7QUFBQSxFQUNGO0FBRUEsUUFBTSxlQUFlLFlBQVksU0FBUyxJQUFJLENBQUMsWUFBWSxZQUFZLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlO0FBQ3BHLFFBQU0sTUFBTSxZQUFZLFNBQVMsSUFBSSxFQUFFLENBQUMscURBQStCLEdBQUcsVUFBVSxLQUFLLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFFbkcsWUFBTSwwQkFBYSxDQUFDLE9BQUcsMkNBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUMsR0FBRyxPQUFPLEdBQUcsWUFBWSxHQUFHLEVBQUUsS0FBSyxlQUFlLEtBQUssQ0FBQztBQUN2SDtBQVNBLFNBQVMsb0JBQW9CLGFBQTBDO0FBQ3JFLFFBQU0sV0FBcUIsQ0FBQztBQUM1QixRQUFNLFlBQVksWUFBWSxJQUFJLENBQUMsZUFBZTtBQUNoRCxRQUFJLENBQUMsV0FBVyxTQUFTLEtBQUssS0FBSyxXQUFXLFNBQVMsT0FBTyxLQUFLLFdBQVcsU0FBUyxVQUFVLEdBQUc7QUFDbEcsZUFBUyxLQUFLLEdBQUcsVUFBVSxvQkFBb0I7QUFDL0MsYUFBTztBQUFBLElBQ1Q7QUFFQSxVQUFNLFdBQVcsV0FBVyxRQUFRLHNCQUFzQixVQUFVO0FBQ3BFLFFBQUksS0FBQywrQkFBVyxxQ0FBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFDLEdBQUc7QUFDNUQsZUFBUyxLQUFLLEdBQUcsVUFBVSxxQkFBcUIsUUFBUSxFQUFFO0FBQUEsSUFDNUQ7QUFFQSxXQUFPO0FBQUEsRUFDVCxDQUFDO0FBRUQsTUFBSSxTQUFTLFNBQVMsR0FBRztBQUN2QixVQUFNLElBQUksTUFBTTtBQUFBLEVBQW1DLFNBQVMsS0FBSyxJQUFJLENBQUMsRUFBRTtBQUFBLEVBQzFFO0FBRUEsU0FBTztBQUNUOyIsIm5hbWVzIjpbXX0=
@@ -0,0 +1,30 @@
1
+ /// <reference path="../library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Runs Stryker mutation testing on demand: over named modules and their sibling tests, or incrementally over the
6
+ * whole project. Never part of a gate: a full run takes about an hour.
7
+ */
8
+ /**
9
+ * Options for {@link testMutation}.
10
+ */
11
+ export interface TestMutationOptions {
12
+ /**
13
+ * The modules to mutate, as paths from the project root. Each needs a sibling `*.test.ts`, and only those tests run.
14
+ * With none, every file the configuration's `mutate` globs name is mutated, incrementally.
15
+ *
16
+ * @default `[]`
17
+ */
18
+ readonly modulePaths?: readonly string[];
19
+ }
20
+ /**
21
+ * Runs Stryker mutation testing.
22
+ *
23
+ * The run mutates the tree in place and, when it ends, puts back the whole tree as it was when it started, so it
24
+ * refuses to start on a tree with uncommitted changes, and nothing may be edited while it runs.
25
+ *
26
+ * @param options - The {@link TestMutationOptions}.
27
+ * @returns A {@link Promise} that resolves when Stryker exits.
28
+ * @throws If the tree has uncommitted changes, a path is not a `.ts` module, or a module has no sibling test.
29
+ */
30
+ export declare function testMutation(options?: TestMutationOptions): Promise<void>;