@redocly/cli 2.57.0 → 2.58.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 (139) hide show
  1. package/README.md +2 -0
  2. package/THIRD_PARTY_NOTICES +44 -22
  3. package/lib/chunks/2523PDUF.js +160 -0
  4. package/lib/chunks/{VBHLPG5Q.js → 252ZXXJ7.js} +1 -1
  5. package/lib/chunks/{XYKNLM5G.js → 2ERUBDSZ.js} +1 -1
  6. package/lib/chunks/{DMW5VJBT.js → 2LDRZLQD.js} +1 -1
  7. package/lib/chunks/{S5PUZGYS.js → 3QTDDZ3U.js} +1 -1
  8. package/lib/chunks/{ZVXAH4QD.js → 3RJ5Q24M.js} +1 -1
  9. package/lib/chunks/{J3DL5HGI.js → 3TNSVCBC.js} +1 -1
  10. package/lib/chunks/3TRGOJ74.js +9 -0
  11. package/lib/chunks/{X5NXRMUW.js → 46SNGFKM.js} +1 -1
  12. package/lib/chunks/4BCJL2BX.js +13 -0
  13. package/lib/chunks/5WKNTF7W.js +22 -0
  14. package/lib/chunks/{MZWBJKK2.js → 65C4QORD.js} +1 -1
  15. package/lib/chunks/{D7WNH6Z5.js → 6ESHHDEM.js} +1 -1
  16. package/lib/chunks/{YOBULQYM.js → 6G6YWZOW.js} +1 -1
  17. package/lib/chunks/{UXFJO2OQ.js → 6HHP5O4K.js} +1 -1
  18. package/lib/chunks/{JMFIKCPX.js → 6XXDGMQI.js} +1 -1
  19. package/lib/chunks/{YDVOCOBI.js → 7BM3QKWP.js} +1 -1
  20. package/lib/chunks/{GEWI247R.js → 7HX6H6PZ.js} +1 -1
  21. package/lib/chunks/{H5OX3UOD.js → 7KZRKMQI.js} +1 -1
  22. package/lib/chunks/{3QGJWJKQ.js → ABUS6H76.js} +1 -1
  23. package/lib/chunks/{EDU3YBRA.js → BNAH4YGC.js} +1 -1
  24. package/lib/chunks/{7EB22KXX.js → BZNIB4HL.js} +1 -1
  25. package/lib/chunks/{AOCVSFC3.js → C6B5SYPM.js} +1 -1
  26. package/lib/chunks/{7XKYPQPI.js → D2IJWX6B.js} +1 -1
  27. package/lib/chunks/{LI6IH6DJ.js → DVJIGHFR.js} +1 -1
  28. package/lib/chunks/{CWEET26O.js → EPFKYDYC.js} +1 -1
  29. package/lib/chunks/ERFOEXTV.js +9 -0
  30. package/lib/chunks/{R2FG6TUX.js → FBHTM4LH.js} +1 -1
  31. package/lib/chunks/{5FVKAWNE.js → FIMSBOF2.js} +1 -1
  32. package/lib/chunks/{ZFJHZEI3.js → GDFQSHUE.js} +1 -1
  33. package/lib/chunks/H4VN2RX3.js +7 -0
  34. package/lib/chunks/{ZBOUASE7.js → H7Z35EAH.js} +1 -1
  35. package/lib/chunks/JF6HX6A6.js +7 -0
  36. package/lib/chunks/{FDOONAMV.js → JPHYX7OV.js} +1 -1
  37. package/lib/chunks/{SRCGYHDN.js → JXAUEF5V.js} +1 -1
  38. package/lib/chunks/{4HG5PCQA.js → LIAO3NFX.js} +1 -1
  39. package/lib/chunks/{LUW2ZJJO.js → LWTH3K75.js} +1 -1
  40. package/lib/chunks/{VIPV4IEH.js → M4JX2FBY.js} +1 -1
  41. package/lib/chunks/ML6MFXCA.js +7 -0
  42. package/lib/chunks/{M4YE5ALG.js → MT5H2R3P.js} +81 -81
  43. package/lib/chunks/{GHOLYNZA.js → MWJGFN4Y.js} +1 -1
  44. package/lib/chunks/N6VRECSO.js +34 -0
  45. package/lib/chunks/{65AQJO4M.js → NRU2WFMW.js} +2 -2
  46. package/lib/chunks/NSNQAVBA.js +17 -0
  47. package/lib/chunks/{N2GTHB37.js → NYQDTPTE.js} +1 -1
  48. package/lib/chunks/OJE7THLM.js +31 -0
  49. package/lib/chunks/{F5V42ZYY.js → OQ2G774U.js} +1 -1
  50. package/lib/chunks/{F57WBWGV.js → PB256IKB.js} +2 -2
  51. package/lib/chunks/{OR3KBRCI.js → PWVCTNVT.js} +1 -1
  52. package/lib/chunks/{4SXCDBB7.js → PZEYEOIF.js} +1 -1
  53. package/lib/chunks/{4JBK2BSL.js → QXUO5IQJ.js} +1 -1
  54. package/lib/chunks/{DT66L2TO.js → QZJD7SST.js} +1 -1
  55. package/lib/chunks/{GVJFU4AP.js → R5A3H7N2.js} +1 -1
  56. package/lib/chunks/{YMDFCK3F.js → ROE2PM62.js} +1 -1
  57. package/lib/chunks/{VE7VT5PT.js → RREAI5RF.js} +1 -1
  58. package/lib/chunks/{QDSAT32N.js → SXYE4UNQ.js} +1 -1
  59. package/lib/chunks/T2G7FRCU.js +23 -0
  60. package/lib/chunks/{664FDTDV.js → T6HGKHGP.js} +1 -1
  61. package/lib/chunks/{YEACSN2C.js → TAEOWXJJ.js} +1 -1
  62. package/lib/chunks/{Y2AFRRAT.js → TTWBJ74O.js} +1 -1
  63. package/lib/chunks/U4WMP25Y.js +7 -0
  64. package/lib/chunks/{5UDC2SWY.js → V34PUN4E.js} +1 -1
  65. package/lib/chunks/{IDI3SURO.js → VNSAGJ2H.js} +1 -1
  66. package/lib/chunks/{VT3BHT6S.js → WFGS4GSF.js} +3 -3
  67. package/lib/chunks/{NALRPITK.js → WSDNWUOV.js} +1 -1
  68. package/lib/chunks/{P7A7BCIN.js → X5U3XCIW.js} +1 -1
  69. package/lib/chunks/XARQ5LTM.js +15 -0
  70. package/lib/chunks/{WKCOTH3C.js → YFBPBQ7G.js} +1 -1
  71. package/lib/chunks/{52MXI4PU.js → YLFY2DKU.js} +1 -1
  72. package/lib/chunks/{VUU57INZ.js → YMMEOUYX.js} +1 -1
  73. package/lib/chunks/{XTTR5PBC.js → YPT2KQ2K.js} +1 -1
  74. package/lib/chunks/{MKS4O6F4.js → YTAL3SI4.js} +2 -2
  75. package/lib/chunks/index.aff +205 -0
  76. package/lib/chunks/index.dic +49569 -0
  77. package/lib/eject-assets/generators/cli/docs.ts +1 -1
  78. package/lib/eject-assets/generators/cli/engine-source.ts +1 -1
  79. package/lib/eject-assets/generators/cli/index.ts +2 -2
  80. package/lib/eject-assets/generators/cli/render.ts +1 -1
  81. package/lib/eject-assets/generators/go/client.ts +1 -1
  82. package/lib/eject-assets/generators/go/descriptor.ts +1 -1
  83. package/lib/eject-assets/generators/go/index.ts +2 -2
  84. package/lib/eject-assets/generators/go/models.ts +1 -1
  85. package/lib/eject-assets/generators/go/naming.ts +1 -1
  86. package/lib/eject-assets/generators/go/operations.ts +1 -1
  87. package/lib/eject-assets/generators/go/pagination.ts +1 -1
  88. package/lib/eject-assets/generators/go/types.ts +1 -1
  89. package/lib/eject-assets/generators/mock/faker.ts +1 -1
  90. package/lib/eject-assets/generators/mock/index.ts +2 -2
  91. package/lib/eject-assets/generators/mock/render.ts +1 -1
  92. package/lib/eject-assets/generators/mock/sample.ts +1 -1
  93. package/lib/eject-assets/generators/mock/values.ts +1 -1
  94. package/lib/eject-assets/generators/php/client.ts +1 -1
  95. package/lib/eject-assets/generators/php/descriptor.ts +1 -1
  96. package/lib/eject-assets/generators/php/index.ts +2 -2
  97. package/lib/eject-assets/generators/php/models.ts +1 -1
  98. package/lib/eject-assets/generators/php/naming.ts +1 -1
  99. package/lib/eject-assets/generators/php/operations.ts +1 -1
  100. package/lib/eject-assets/generators/php/pagination.ts +1 -1
  101. package/lib/eject-assets/generators/php/types.ts +1 -1
  102. package/lib/eject-assets/generators/python/client.ts +1 -1
  103. package/lib/eject-assets/generators/python/descriptor.ts +1 -1
  104. package/lib/eject-assets/generators/python/index.ts +2 -2
  105. package/lib/eject-assets/generators/python/models.ts +1 -1
  106. package/lib/eject-assets/generators/python/naming.ts +1 -1
  107. package/lib/eject-assets/generators/python/operations.ts +1 -1
  108. package/lib/eject-assets/generators/python/pagination.ts +1 -1
  109. package/lib/eject-assets/generators/python/types.ts +1 -1
  110. package/lib/eject-assets/generators/swr/index.ts +2 -2
  111. package/lib/eject-assets/generators/swr/render.ts +1 -1
  112. package/lib/eject-assets/generators/tanstack-query/index.ts +2 -2
  113. package/lib/eject-assets/generators/tanstack-query/render.ts +1 -1
  114. package/lib/eject-assets/generators/transformers/index.ts +2 -2
  115. package/lib/eject-assets/generators/transformers/render.ts +1 -1
  116. package/lib/eject-assets/generators/typescript/banner.ts +1 -1
  117. package/lib/eject-assets/generators/typescript/client.ts +1 -1
  118. package/lib/eject-assets/generators/typescript/descriptor.ts +1 -1
  119. package/lib/eject-assets/generators/typescript/index.ts +2 -2
  120. package/lib/eject-assets/generators/typescript/inline-runtime.ts +1 -1
  121. package/lib/eject-assets/generators/typescript/operation-signature.ts +1 -1
  122. package/lib/eject-assets/generators/typescript/operation-types.ts +1 -1
  123. package/lib/eject-assets/generators/typescript/operations.ts +1 -1
  124. package/lib/eject-assets/generators/typescript/response-headers.ts +1 -1
  125. package/lib/eject-assets/generators/typescript/type-guards.ts +1 -1
  126. package/lib/eject-assets/generators/typescript/types.ts +1 -1
  127. package/lib/eject-assets/generators/zod/index.ts +2 -2
  128. package/lib/eject-assets/generators/zod/schemas.ts +1 -1
  129. package/lib/index.js +66 -61
  130. package/package.json +1 -1
  131. package/lib/chunks/2PGNW76R.js +0 -11
  132. package/lib/chunks/3I7XLHPY.js +0 -45
  133. package/lib/chunks/ARDTVDGR.js +0 -22
  134. package/lib/chunks/K2ENYHHD.js +0 -7
  135. package/lib/chunks/LJPUHAWE.js +0 -13
  136. package/lib/chunks/OM4VGI2Q.js +0 -9
  137. package/lib/chunks/VYHYEZI5.js +0 -7
  138. package/lib/chunks/YFI3NLJF.js +0 -9
  139. package/lib/chunks/YUNIBLZR.js +0 -30
@@ -0,0 +1,9 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __pathDirname } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ var __filename = __fileURLToPath(import.meta.url);
6
+ var __dirname = __pathDirname(__filename);
7
+ import{b as xe,f as Pe}from"./N6VRECSO.js";import{$ as j,T as le,U as he,X as b,Z as fe,_ as de,ba as ye,c as L,ca as U,da as A,f as ie,ga as k,ha as Se,ia as ge,ja as Q,ka as K,ma as Ce,pa as be,q as ae,r as pe,s as ce,u as me,v as ue}from"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{performance as mt}from"perf_hooks";var D={thresholds:{maxParamsGood:5,maxDepthGood:4,maxPolymorphismGood:2,maxDependencyDepthGood:3,maxAmbiguousGood:0,maxOperationsForDiscoverability:1e3},weights:{parameterSimplicity:.1,schemaSimplicity:.1,documentationQuality:.18,constraintClarity:.12,exampleCoverage:.18,errorClarity:.12,dependencyClarity:.1,identifierClarity:.05,polymorphismClarity:.05,anyOfPenaltyMultiplier:2,discoverabilityWeight:.1},hotspotLimit:10},Oe=new Set(["id","name","type","value","data","key","status","state","code","result","item","object","resource","entity","input","output","payload","body","content","info"]);function B(e){if(e.length===0)return 0;let r=[...e].sort((o,n)=>o-n),t=Math.floor(r.length/2);return r.length%2!==0?r[t]:(r[t-1]+r[t])/2}function He(e,r,t=D){let{thresholds:o,weights:n}=t,s=x(1-e.parameterCount/(o.maxParamsGood*2)),a=Math.max(e.maxRequestSchemaDepth,e.maxResponseSchemaDepth)/(o.maxDepthGood*2),c=De(e,n.anyOfPenaltyMultiplier)/(o.maxPolymorphismGood*3),h=x(1-a-c),u=(e.operationDescriptionPresent?1:0)+e.paramsWithDescription+e.schemaPropertiesWithDescription,f=1+e.parameterCount+e.totalSchemaProperties,$=f>0?x(u/f):1,O=e.totalSchemaProperties>0?x(e.constraintCount/e.totalSchemaProperties):1,y=(e.requestExamplePresent?1:0)+(e.responseExamplePresent?1:0),g=(e.requestBodyPresent?1:0)+1,M=x(y/g),T=e.totalErrorResponses>0?x(e.structuredErrorResponseCount/e.totalErrorResponses):1,I=x(1-r/(o.maxDependencyDepthGood*2)),l=x(1-e.ambiguousIdentifierCount/Math.max(o.maxAmbiguousGood+3,1)),m=De(e,n.anyOfPenaltyMultiplier),d=m===0?1:e.hasDiscriminator?x(1-m/(o.maxPolymorphismGood*4)):x(1-m/(o.maxPolymorphismGood*2));return{parameterSimplicity:s,schemaSimplicity:h,documentationQuality:$,constraintClarity:O,exampleCoverage:M,errorClarity:T,dependencyClarity:I,identifierClarity:l,polymorphismClarity:d}}function ze(e,r=D){let t=r.weights,o=e.parameterSimplicity*t.parameterSimplicity+e.schemaSimplicity*t.schemaSimplicity+e.documentationQuality*t.documentationQuality+e.constraintClarity*t.constraintClarity+e.exampleCoverage*t.exampleCoverage+e.errorClarity*t.errorClarity+e.dependencyClarity*t.dependencyClarity+e.identifierClarity*t.identifierClarity+e.polymorphismClarity*t.polymorphismClarity;return $e(x(o)*100)}function Re(e,r,t=D){let o=new Map;for(let[n,s]of e.operations){let i=r.get(n)??0,a=He(s,i,t);o.set(n,{agentReadiness:ze(a,t),subscores:a})}return o}function Me(e,r=D){return x(1-e/r.thresholds.maxOperationsForDiscoverability)}function ve(e,r,t=D){if(e.size===0)return{agentReadiness:100};let o=[];for(let i of e.values())o.push(i.agentReadiness);let n=t.weights.discoverabilityWeight,s=r*100;return{agentReadiness:$e(B(o)*(1-n)+s*n)}}function J(e,r,t){return e-r+r*t}function De(e,r){return J(e.polymorphismCount,e.anyOfCount,r)}function x(e){return Math.max(0,Math.min(1,e))}function Ee(e){let r=e.size||1,t={parameterSimplicity:0,schemaSimplicity:0,documentationQuality:0,constraintClarity:0,exampleCoverage:0,errorClarity:0,dependencyClarity:0,identifierClarity:0,polymorphismClarity:0};for(let o of e.values())t.parameterSimplicity+=o.subscores.parameterSimplicity,t.schemaSimplicity+=o.subscores.schemaSimplicity,t.documentationQuality+=o.subscores.documentationQuality,t.constraintClarity+=o.subscores.constraintClarity,t.exampleCoverage+=o.subscores.exampleCoverage,t.errorClarity+=o.subscores.errorClarity,t.dependencyClarity+=o.subscores.dependencyClarity,t.identifierClarity+=o.subscores.identifierClarity,t.polymorphismClarity+=o.subscores.polymorphismClarity;return t.parameterSimplicity/=r,t.schemaSimplicity/=r,t.documentationQuality/=r,t.constraintClarity/=r,t.exampleCoverage/=r,t.errorClarity/=r,t.dependencyClarity/=r,t.identifierClarity/=r,t.polymorphismClarity/=r,t}function $e(e){return Math.round(e*10)/10}function we(e,r,t){let o=Math.max(1,e);return r/o+t/o}function Qe(e,r){return r.totalSchemaProperties>e.totalSchemaProperties?!0:r.totalSchemaProperties<e.totalSchemaProperties?!1:we(r.totalSchemaProperties,r.schemaPropertiesWithDescription,r.constraintCount)>we(e.totalSchemaProperties,e.schemaPropertiesWithDescription,e.constraintCount)}var Ke=["enum","const","format","pattern","minimum","maximum","minLength","maxLength","minItems","maxItems","minProperties","maxProperties","multipleOf","exclusiveMinimum","exclusiveMaximum","uniqueItems"];function Y(){return{depth:-1,maxDepth:0,polymorphismCount:0,anyOfCount:0,hasDiscriminator:!1,totalSchemaProperties:0,schemaPropertiesWithDescription:0,constraintCount:0,hasPropertyExamples:!1,writableTopLevelFields:0,refsUsed:[],debugEntries:null,pendingRef:null}}function Ie(e){Object.assign(e,Y())}function Le(e){return{ref:{enter(r){typeof r?.$ref=="string"&&(e.refsUsed.push(r.$ref),e.pendingRef=r.$ref)}},Schema:{enter(r,t){e.depth++,e.maxDepth=Math.max(e.maxDepth,e.depth);let o=0;for(let i of Ke)r[i]!==void 0&&(e.constraintCount++,o++);r.discriminator?.propertyName&&(e.hasDiscriminator=!0);let n={};for(let i of["oneOf","anyOf","allOf"]){let a=r[i];Array.isArray(a)&&(e.polymorphismCount+=a.length,i==="anyOf"&&(e.anyOfCount+=a.length),n[i]=a.length)}let s=[];if(L(r.properties)){let i=Object.entries(r.properties);e.totalSchemaProperties+=i.length;for(let[a,c]of i){s.push(a);let h=c&&"$ref"in c&&c.$ref?t.resolve(c)?.node??c:c;h?.description&&e.schemaPropertiesWithDescription++,(h?.example!==void 0||h?.examples)&&(e.hasPropertyExamples=!0),h?.readOnly||e.writableTopLevelFields++}}e.debugEntries!==null&&e.debugEntries.push({ref:e.pendingRef,depth:e.depth,propertyNames:s,polymorphism:Object.keys(n).length>0?n:{},constraintCount:o}),e.pendingRef=null},leave(){e.depth--}}}}function qe(e,r,t){return{operations:new Map,currentPath:"",pathLevelParams:[],current:null,walkSchema:e,anyOfPenaltyMultiplier:r,debugOperationId:t,debugLogs:[]}}function Je(e,r,t){return{path:e,method:r,operationId:t.operationId,operationDescriptionPresent:!!t.description,parameterCount:0,requiredParameterCount:0,paramsWithDescription:0,ambiguousIdentifierCount:0,maxRequestSchemaDepth:0,maxResponseSchemaDepth:0,totalSchemaProperties:0,schemaPropertiesWithDescription:0,constraintCount:0,polymorphismCount:0,anyOfCount:0,hasDiscriminator:!1,topLevelWritableFieldCount:0,requestBodyPresent:!1,requestExamplePresent:!1,responseExamplePresent:!1,structuredErrorResponseCount:0,totalErrorResponses:0,inRequestBody:!1,inResponse:!1,currentResponseCode:"",errorStructuredCounted:!1,maxEffectivePolymorphism:-1,refsUsed:new Set}}function Ye(e){let{inRequestBody:r,inResponse:t,currentResponseCode:o,errorStructuredCounted:n,maxEffectivePolymorphism:s,...i}=e;return i}function We(e){return{RequestBody:{enter(){e.current&&(e.current.requestBodyPresent=!0,e.current.inRequestBody=!0)},leave(){e.current&&(e.current.inRequestBody=!1)}},Response:{enter(r,t){let o=e.current;if(!o)return;let n=String(t.key);o.inResponse=!0,o.currentResponseCode=n,o.errorStructuredCounted=!1,Te(n)&&(o.totalErrorResponses++,!r.content&&r.description&&(o.structuredErrorResponseCount++,o.errorStructuredCounted=!0))},leave(){e.current&&(e.current.inResponse=!1)}},MediaType:{enter(r){let t=e.current;if(t&&(Ze(r)&&(t.inRequestBody&&(t.requestExamplePresent=!0),t.inResponse&&(t.responseExamplePresent=!0)),t.inResponse&&Te(t.currentResponseCode)&&!t.errorStructuredCounted&&(t.structuredErrorResponseCount++,t.errorStructuredCounted=!0),r.schema)){let o=!!e.debugOperationId&&(t.operationId===e.debugOperationId||`${t.method.toUpperCase()} ${t.path}`===e.debugOperationId),n=e.walkSchema(r.schema,o);Qe(t,n)&&(t.totalSchemaProperties=n.totalSchemaProperties,t.schemaPropertiesWithDescription=n.schemaPropertiesWithDescription,t.constraintCount=n.constraintCount);let s=J(n.polymorphismCount,n.anyOfCount,e.anyOfPenaltyMultiplier);s>t.maxEffectivePolymorphism&&(t.maxEffectivePolymorphism=s,t.polymorphismCount=n.polymorphismCount,t.anyOfCount=n.anyOfCount),n.hasDiscriminator&&(t.hasDiscriminator=!0);for(let i of n.refsUsed)t.refsUsed.add(i);if(n.hasPropertyExamples&&(t.inRequestBody&&(t.requestExamplePresent=!0),t.inResponse&&(t.responseExamplePresent=!0)),t.inRequestBody&&(t.maxRequestSchemaDepth=Math.max(t.maxRequestSchemaDepth,n.maxDepth),t.topLevelWritableFieldCount=Math.max(t.topLevelWritableFieldCount,n.writableTopLevelFields)),t.inResponse&&(t.maxResponseSchemaDepth=Math.max(t.maxResponseSchemaDepth,n.maxDepth)),o&&n.debugEntries){let i=t.inRequestBody?"REQUEST BODY":`RESPONSE ${t.currentResponseCode}`;e.debugLogs.push({context:i,entries:n.debugEntries,totalProperties:n.totalSchemaProperties,totalPolymorphism:n.polymorphismCount,totalConstraints:n.constraintCount,maxDepth:n.maxDepth})}}}},Paths:{PathItem:{enter(r,t){e.currentPath=String(t.key),e.pathLevelParams=r.parameters??[]},Operation:{enter(r,t){let o=String(t.key),n=Je(e.currentPath,o,r);e.current=n;let s=Xe(e.pathLevelParams,r.parameters??[],t.resolve);for(let i of s.values())n.parameterCount++,i.required&&n.requiredParameterCount++,i.description&&n.paramsWithDescription++,et(i)&&n.ambiguousIdentifierCount++},leave(r){let t=e.current;if(!t)return;let o=r.operationId??`${t.method.toUpperCase()} ${t.path}`;e.operations.set(o,Ye(t)),e.current=null}}}}}}function Ue(e){return{operationCount:e.operations.size,operations:e.operations}}function Ae(e,r){return r(e).node}function Xe(e,r,t){let o=new Map;for(let n of e){let s=Ae(n,t);s?.name&&s.in&&o.set(`${s.in}:${s.name}`,s)}for(let n of r){let s=Ae(n,t);s?.name&&s.in&&o.set(`${s.in}:${s.name}`,s)}return o}function Ze(e){return e.example!==void 0||ie(e.examples)}function et(e){if(e.description)return!1;let r=(e.name??"").toLowerCase();return Oe.has(r)}function Te(e){if(e==="default"||/^4xx$/i.test(e)||/^5xx$/i.test(e))return!0;let r=parseInt(e,10);return r>=400&&r<600}function tt(e,r){if(!r.startsWith("#/"))return;let t=e;for(let o of r.slice(2).split("/"))t=t?.[ce(o)];return t}function ke({document:e,types:r,resolvedRefMap:t,ctx:o,debugOperationId:n,scoringConstants:s}){let i=s?.weights.anyOfPenaltyMultiplier??D.weights.anyOfPenaltyMultiplier,a=Y(),c=Le(a),h=Q([{severity:"warn",ruleId:"score-schema",visitor:c}],r),u=(l,m)=>{Ie(a),m&&(a.debugEntries=[]),K({document:{...e,parsed:l},rootType:r.Schema,normalizedVisitors:h,resolvedRefMap:t,ctx:o});let{depth:d,pendingRef:w,debugEntries:_,...N}=a;return{...N,refsUsed:[...a.refsUsed],debugEntries:m?a.debugEntries??void 0:void 0}},f=new Map,$=new WeakSet,O={maxDepth:0,polymorphismCount:0,anyOfCount:0,hasDiscriminator:!1,totalSchemaProperties:0,schemaPropertiesWithDescription:0,constraintCount:0,hasPropertyExamples:!1,writableTopLevelFields:0,refsUsed:[]};function y(l,m){return{maxDepth:Math.max(l.maxDepth,m.maxDepth),polymorphismCount:l.polymorphismCount+m.polymorphismCount,anyOfCount:l.anyOfCount+m.anyOfCount,hasDiscriminator:l.hasDiscriminator||m.hasDiscriminator,totalSchemaProperties:l.totalSchemaProperties+m.totalSchemaProperties,schemaPropertiesWithDescription:l.schemaPropertiesWithDescription+m.schemaPropertiesWithDescription,constraintCount:l.constraintCount+m.constraintCount,hasPropertyExamples:l.hasPropertyExamples||m.hasPropertyExamples,writableTopLevelFields:l.writableTopLevelFields+m.writableTopLevelFields,refsUsed:[...l.refsUsed,...m.refsUsed],debugEntries:l.debugEntries||m.debugEntries?[...l.debugEntries??[],...m.debugEntries??[]]:void 0}}let g=(l,m=!1)=>{let d=l,w=pe(l)?l.$ref:void 0;if(w){if(!m){let S=f.get(w);if(S)return S}d=tt(e.parsed,w)??l}if(L(d)&&$.has(d))return{...O};L(d)&&$.add(d);let _=d?.oneOf,N=d?.anyOf,Z=Array.isArray(_)&&_.length>1,ee=Array.isArray(N)&&N.length>1,G=Z||ee,te=Array.isArray(d?.allOf)&&d.allOf.length>0,V=d?.discriminator,q=!G&&L(V?.mapping)?Object.values(V.mapping).filter(S=>typeof S=="string"&&me(S)).map(S=>({$ref:S})):null,re=Array.isArray(q)&&q.length>0,C;if(G||te||re){let S={...d},F=null,oe=P=>{F=F?y(F,P):P},ne=(P,v)=>{let E=g(v[0],m);for(let z=1;z<v.length;z++){let se=g(v[z],m);se.totalSchemaProperties>E.totalSchemaProperties&&(E=se)}return{...E,polymorphismCount:E.polymorphismCount+v.length,anyOfCount:E.anyOfCount+(P==="anyOf"?v.length:0),hasDiscriminator:E.hasDiscriminator||!!V}};G&&delete S.discriminator,Z&&(delete S.oneOf,oe(ne("oneOf",_))),ee&&(delete S.anyOf,oe(ne("anyOf",N)));let H=null;if(re){delete S.discriminator;let P=g(q[0],m);for(let v=1;v<q.length;v++){let E=g(q[v],m);E.totalSchemaProperties>P.totalSchemaProperties&&(P=E)}H={...P,polymorphismCount:P.polymorphismCount+q.length,hasDiscriminator:!0}}let W=null;if(te){delete S.allOf,W={...O};for(let P of d.allOf)W=y(W,g(P,m));W.polymorphismCount+=d.allOf.length}C=u(S,m),W&&(C=y(C,W)),F&&(C=y(C,F)),H&&(C=y(C,H)),w&&(C={...C,refsUsed:[w,...C.refsUsed]})}else C=u(l,m);return L(d)&&$.delete(d),w&&!m&&f.set(w,C),C},M=qe(g,i,n),T=We(M),I=Q([{severity:"warn",ruleId:"score",visitor:T}],r);return K({document:e,rootType:r.Root,normalizedVisitors:I,resolvedRefMap:t,ctx:o}),{metrics:Ue(M),debugLogs:M.debugLogs}}function Ne(e){let r=new Map;for(let[n,s]of e)for(let i of s.refsUsed){let a=r.get(i);a||(a=new Set,r.set(i,a)),a.add(n)}let t=new Map;for(let n of e.keys())t.set(n,new Set);for(let n of r.values()){if(n.size<2)continue;let s=Array.from(n);for(let i=0;i<s.length;i++)for(let a=i+1;a<s.length;a++)t.get(s[i]).add(s[a]),t.get(s[a]).add(s[i])}let o=new Map;for(let n of e.keys()){let s=rt(n,t);o.set(n,s)}return o}function rt(e,r){let t=new Set([e]),o=[e],n=0;for(;o.length>0;){let s=[];for(let i of o)for(let a of r.get(i)??[])t.has(a)||(t.add(a),s.push(a));s.length>0&&n++,o=s}return n}function Fe(e){let r={agentReadiness:e.agentReadiness,discoverability:Math.round(e.discoverability*100),subscores:e.subscores,rawMetrics:{operationCount:e.rawMetrics.operationCount,operations:Object.fromEntries(Array.from(e.rawMetrics.operations.entries()).map(([t,o])=>{let{refsUsed:n,...s}=o;return[t,s]}))},operationScores:Object.fromEntries(e.operationScores),dependencyDepths:Object.fromEntries(e.dependencyDepths),hotspots:e.hotspots};k.output(JSON.stringify(r,null,2))}function je(e,r=!1){ot(e),nt(e),it(e),r&&at(e),pt(e)}function _e(e){return e>=80?de:e>=50?j:fe}function Be(e){return _e(e)(b(e.toFixed(1)))}function p(e){k.output(e+`
8
+ `)}function ot(e){p(""),p(b(A(" Scores"))),p(""),p(` Agent Readiness: ${Be(e.agentReadiness)}/100`),p("")}function nt(e){p(b(A(" Subscores"))),p("");let r=e.subscores;R("Parameter Simplicity",r.parameterSimplicity),R("Schema Simplicity",r.schemaSimplicity),R("Documentation Quality",r.documentationQuality),R("Constraint Clarity",r.constraintClarity),R("Example Coverage",r.exampleCoverage),R("Error Clarity",r.errorClarity),R("Dependency Clarity",r.dependencyClarity),R("Identifier Clarity",r.identifierClarity),R("Polymorphism Clarity",r.polymorphismClarity),R("Discoverability",e.discoverability),p("")}function R(e,r){let t=Math.round(r*100),o=st(r);p(` ${e.padEnd(24)} ${o} ${_e(t)(t+"%")}`)}function st(e){let t=Math.round(e*20);return U("["+"\u2588".repeat(t)+"\u2591".repeat(20-t)+"]")}function it(e){if(p(b(A(" Raw Metrics Summary"))),p(""),p(` Total operations: ${e.rawMetrics.operationCount}`),e.rawMetrics.operationCount===0){p("");return}let r=[],t=[],o=[],n=[],s=0,i=0,a=0;for(let u of e.rawMetrics.operations.values())r.push(u.parameterCount),t.push(Math.max(u.maxRequestSchemaDepth,u.maxResponseSchemaDepth)),o.push(u.polymorphismCount),n.push(u.totalSchemaProperties),u.requestExamplePresent&&s++,u.responseExamplePresent&&i++,u.operationDescriptionPresent&&a++;let c=e.rawMetrics.operationCount;function h(u,f){let O=(f.reduce((T,I)=>T+I,0)/c).toFixed(1),y=B(f).toFixed(1),g=Math.min(...f),M=Math.max(...f);p(` ${u.padEnd(26)} avg ${O.padStart(6)} median ${y.padStart(6)} min ${String(g).padStart(5)} max ${String(M).padStart(5)}`)}h("Parameters/operation:",r),h("Schema depth:",t),h("Polymorphism/operation:",o),h("Properties/operation:",n),p(` Operations with request examples: ${s}/${c} (${X(s,c)})`),p(` Operations with response examples: ${i}/${c} (${X(i,c)})`),p(` Operations with description: ${a}/${c} (${X(a,c)})`),p("")}function X(e,r){return r>0?`${Math.round(e/r*100)}%`:"N/A"}function at(e){p(b(A(" Per-Operation Metrics"))),p("");let r=" "+"Operation".padEnd(50)+"Props".padStart(7)+"Poly".padStart(7)+"Depth".padStart(7)+"Params".padStart(8)+"Constr".padStart(8);p(U(r)),p(U(" "+"\u2500".repeat(r.length-2)));let t=[...e.rawMetrics.operations.entries()].sort(([,o],[,n])=>n.totalSchemaProperties-o.totalSchemaProperties);for(let[,o]of t){let n=(o.operationId??`${o.method.toUpperCase()} ${o.path}`).slice(0,48),s=Math.max(o.maxRequestSchemaDepth,o.maxResponseSchemaDepth),i=" "+n.padEnd(50)+String(o.totalSchemaProperties).padStart(7)+String(o.polymorphismCount).padStart(7)+String(s).padStart(7)+String(o.parameterCount).padStart(8)+String(o.constraintCount).padStart(8);p(i)}p("")}function Ge(e,r){if(p(""),p(b(A(` Debug: ${e} schema breakdown`))),p(""),r.length===0){p(j(` No schemas found for operation "${e}".`)),p(j(' Make sure the value matches an operationId or "METHOD /path" exactly.')),p("");return}for(let t of r){p(b(U(` ${t.context}`))),p(U(" "+"\u2500".repeat(70)));let o=new Map;for(let s of t.entries){let i=s.ref??`(inline depth ${s.depth})`,a=o.get(i);if(a){a.count++,a.totalProps+=s.propertyNames.length;for(let c of s.propertyNames)a.propNames.includes(c)||a.propNames.push(c)}else o.set(i,{count:1,totalProps:s.propertyNames.length,propNames:[...s.propertyNames]})}for(let s of t.entries){let i=s.ref??"(inline)",a=" ".repeat(Math.min(s.depth,6)),c=s.propertyNames.length,h=` ${a}${i}`;c>0&&(h+=` (${c} properties)`);let u=[];if(s.polymorphism.oneOf&&u.push(`oneOf:${s.polymorphism.oneOf}`),s.polymorphism.anyOf&&u.push(`anyOf:${s.polymorphism.anyOf}`),s.polymorphism.allOf&&u.push(`allOf:${s.polymorphism.allOf}`),u.length>0&&(h+=` [${u.join(", ")}]`),s.constraintCount>0&&(h+=` {${s.constraintCount} constraints}`),p(h),c>0&&c<=20)p(` ${a} properties: ${s.propertyNames.join(", ")}`);else if(c>20){let f=s.propertyNames.slice(0,15).join(", ");p(` ${a} properties: ${f}, ... +${c-15} more`)}}p(""),p(` Totals: ${t.totalProperties} properties, ${t.totalPolymorphism} polymorphism items, ${t.totalConstraints} constraints, max depth ${t.maxDepth}`);let n=[...o.entries()].filter(([,s])=>s.totalProps>0).sort(([,s],[,i])=>i.totalProps-s.totalProps).slice(0,10);if(n.length>0){p(""),p(b(" Top schemas by property count:"));for(let[s,i]of n)p(` ${s}: ${i.totalProps} properties`)}p("")}}function pt(e){if(e.hotspots.length===0){p(b(A(" No hotspot operations found."))),p("");return}p(b(A(` Top ${e.hotspots.length} Hotspot Operations`))),p("");for(let r of e.hotspots){let t=r.operationId?`${r.method.toUpperCase()} ${r.path} (${r.operationId})`:`${r.method.toUpperCase()} ${r.path}`;p(b(` ${t}`)),p(` Agent Readiness: ${Be(r.agentReadinessScore)}`);for(let o of r.reasons)p(j(` - ${o}`));p("")}}function Ve(e,r,t,o=D){let n=[];for(let[s,i]of r){let a=e.operations.get(s);if(!a)continue;let c=ct(a,t.get(s)??0,o);c.length!==0&&n.push({path:a.path,method:a.method,operationId:a.operationId,agentReadinessScore:i.agentReadiness,reasons:c})}return n.sort((s,i)=>s.reasons.length!==i.reasons.length?i.reasons.length-s.reasons.length:s.agentReadinessScore-i.agentReadinessScore),n.slice(0,o.hotspotLimit)}function ct(e,r,t){let{thresholds:o}=t,n=[];e.parameterCount>o.maxParamsGood&&n.push(`High parameter count (${e.parameterCount})`);let s=Math.max(e.maxRequestSchemaDepth,e.maxResponseSchemaDepth);s>o.maxDepthGood&&n.push(`Deep schema nesting (depth ${s})`),e.anyOfCount>0&&!e.hasDiscriminator?n.push(`Polymorphism (anyOf) without discriminator (${e.anyOfCount} anyOf)`):e.polymorphismCount>o.maxPolymorphismGood&&n.push(`High polymorphism count (${e.polymorphismCount})`);let i=e.requestBodyPresent&&!e.requestExamplePresent,a=!e.responseExamplePresent;return i&&a?n.push("Missing request and response examples"):i?n.push("Missing request body examples"):a&&n.push("Missing response examples"),e.totalErrorResponses>0&&e.structuredErrorResponseCount===0&&n.push("No structured error responses (4xx/5xx)"),e.operationDescriptionPresent||n.push("Missing operation description"),e.parameterCount>0&&e.paramsWithDescription===0&&n.push("No parameter descriptions"),r>o.maxDependencyDepthGood&&n.push(`High dependency depth (${r})`),e.ambiguousIdentifierCount>o.maxAmbiguousGood&&n.push(`Ambiguous identifiers (${e.ambiguousIdentifierCount})`),n}async function Vt({argv:e,config:r,collectSpecData:t}){let[{path:o}]=await xe(e.api?[e.api]:[],r),n=new le(r.resolve),{bundle:s}=await be({config:r,ref:o});t?.(s);let i=ge(s.parsed);if(Se(i)!=="oas3")throw new Ce(`The score command currently supports only OpenAPI 3.x. Detected: ${i}`);let a=mt.now(),c=ae(r.extendTypes(ue(i),i),r),h=await he({rootDocument:s,rootType:c.Root,externalRefResolver:n}),u=e["debug-operation-id"],{metrics:f,debugLogs:$}=ke({document:s,types:c,resolvedRefMap:h,ctx:{problems:[],specVersion:i,config:r,visitorsData:{}},debugOperationId:u}),O=Ne(f.operations),y=Re(f,O),g=Me(f.operationCount),{agentReadiness:M}=ve(y,g),T=Ve(f,y,O),I={agentReadiness:M,discoverability:g,subscores:Ee(y),rawMetrics:f,hotspots:T,operationScores:y,dependencyDepths:O};ut(I,o,a,e.format,!!e["operation-details"],u?{operationId:u,logs:$}:void 0)}function ut(e,r,t,o,n,s){k.info(`Document: ${ye(r)} score:
9
+ `),o==="json"?Fe(e):je(e,n),s&&Ge(s.operationId,s.logs),Pe("score",t,r)}export{Vt as handleScore};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a}from"./4JBK2BSL.js";import"./VIPV4IEH.js";import"./65AQJO4M.js";import"./WZXA5XPB.js";import"./M4YE5ALG.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{a as zodGenerator};
7
+ import{a}from"./QXUO5IQJ.js";import"./M4JX2FBY.js";import"./NRU2WFMW.js";import"./WZXA5XPB.js";import"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{a as zodGenerator};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a}from"./F5V42ZYY.js";import"./J3DL5HGI.js";import"./JMFIKCPX.js";import"./VIPV4IEH.js";import"./65AQJO4M.js";import"./WZXA5XPB.js";import"./M4YE5ALG.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{a as tanstackQueryGenerator};
7
+ import{a}from"./OQ2G774U.js";import"./3TNSVCBC.js";import"./6XXDGMQI.js";import"./M4JX2FBY.js";import"./NRU2WFMW.js";import"./WZXA5XPB.js";import"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./LD5MEXEL.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{a as tanstackQueryGenerator};
@@ -4,5 +4,5 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{l as t}from"./OM4VGI2Q.js";import"./LRUXN6H5.js";import{X as o}from"./M4YE5ALG.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";async function i({version:n}){new t(n).logout(),o.output(`Logged out from the Redocly account. \u270B
7
+ import{l as t}from"./3TRGOJ74.js";import"./LRUXN6H5.js";import{ga as o}from"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";async function i({version:n}){new t(n).logout(),o.output(`Logged out from the Redocly account. \u270B
8
8
  `)}export{i as handleLogout};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __pathDirname } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ var __filename = __fileURLToPath(import.meta.url);
6
+ var __dirname = __pathDirname(__filename);
7
+ function A(e){let r={};for(let g of e){let C={severity:"error",assertions:{[g]:{}}};r[`recheck/${g}`]=C}return r}var ce=["heading-increment","heading-style","no-missing-space-atx","no-multiple-space-atx","no-missing-space-closed-atx","no-multiple-space-closed-atx","blanks-around-headings","heading-start-left","no-duplicate-heading","single-h1","no-trailing-punctuation","no-emphasis-as-heading","first-line-h1","required-headings","no-trailing-spaces","no-hard-tabs","no-multiple-blanks","line-length","single-trailing-newline","hr-style","ul-style","list-indent","ul-indent","ol-prefix","list-marker-space","blanks-around-lists","no-reversed-links","commands-show-output","blanks-around-fences","no-space-in-emphasis","no-space-in-code","no-space-in-links","fenced-code-language","no-empty-links","code-block-style","code-fence-style","no-inline-html","no-bare-urls","proper-names","no-alt-text","emphasis-style","strong-style","link-fragments","reference-links-images","link-image-reference-definitions","link-image-style","descriptive-link-text","no-multiple-space-blockquote","no-blanks-blockquote","table-pipe-style","table-column-count","blanks-around-tables","table-column-style"];function u(){return A(ce)}var ge=["recheck/single-h1","recheck/first-line-h1","recheck/front-matter","recheck/single-trailing-newline","recheck/link-fragments"],de=["recheck/line-length","recheck/ul-indent"];function I(){let e=u();for(let r of[...ge,...de])delete e[r];return e}var l="https://developers.google.com/style/headings",P="https://developers.google.com/style/periods",h="https://developers.google.com/style/accessibility",O="https://developers.google.com/style/lists",ue="https://developers.google.com/style/person",T="https://developers.google.com/style/contractions",s="https://developers.google.com/style/word-list",me="https://developers.google.com/style/timeless-documentation",D="https://developers.google.com/style/abbreviations",_="https://developers.google.com/style/slashes",N="https://developers.google.com/style/numbers",fe="https://developers.google.com/style/dates-times",be="https://developers.google.com/style/commas",pe="https://developers.google.com/style/dashes",he="https://developers.google.com/style/pronouns",f="https://developers.google.com/style/cross-references",y="https://developers.google.com/style/text-formatting",ye="https://developers.google.com/style/capitalization",ke="https://developers.google.com/style/code-in-text",M="https://developers.google.com/style/ui-elements",we="https://developers.google.com/style/procedures",ve="https://developers.google.com/style/inclusive-documentation";function t(e){return{severity:e.severity??"warn",scope:e.scope??"summary",link:e.link,message:e.message,...e.fix===!1?{fix:!1}:{},assertions:{swap:{pairs:e.pairs,ignoreCase:e.ignoreCase,wordBoundary:e.wordBoundary,keysAreRegex:e.keysAreRegex}}}}function i(e){return{severity:e.severity??"warn",scope:e.scope??"summary",link:e.link,message:e.message,assertions:{pattern:{tokens:e.tokens,ignoreCase:e.ignoreCase,includeCode:e.includeCode}}}}function c(e){return{severity:e.severity??"error",link:e.link,message:e.message,assertions:{[e.name]:e.options??{}}}}function L(){let e={};e["google/heading-sentence-case"]={severity:"error",scope:"heading",fix:!1,link:l,message:'"%s" should use %s capitalization (Google: sentence case for headings).',assertions:{capitalization:{match:"$sentence"}}},e["google/heading-increment"]=c({name:"heading-increment",message:"Heading levels should only increment by one level at a time (Google: heading structure).",link:l}),e["google/single-h1"]=c({name:"single-h1",message:"Only use a level-1 heading once on a page (Google: heading structure).",link:l}),e["google/first-line-h1"]=c({name:"first-line-h1",message:"The first line in a file should be a top-level heading (Google: heading structure).",link:l}),e["google/no-duplicate-heading"]=c({name:"no-duplicate-heading",message:"Headings should be unique so readers can jump between sections (Google: heading structure).",link:l}),e["google/no-trailing-punctuation"]=c({name:"no-trailing-punctuation",message:"Don't end headings with periods (Google).",link:P}),e["google/no-empty-headings"]=c({name:"no-empty-headings",message:"Don't use empty headings; make sure headings are followed by content (Google).",link:l}),e["google/no-emphasis-as-heading"]=c({name:"no-emphasis-as-heading",message:"Tag headings using heading elements, not bold/italic text (Google: accessibility).",link:h}),e["google/no-link-in-heading"]=i({tokens:["\\[[^\\]]*\\]\\([^)]*\\)"],message:"Don't put links in headings (Google); move the link into the following paragraph.",link:l,scope:"heading",severity:"error"}),e["google/list-item-capital"]={severity:"error",scope:"list-item",fix:!1,link:O,message:'"%s" should use %s capitalization (Google: start list items with a capital letter).',assertions:{capitalization:{match:"$sentence"}}},e["google/no-alt-text"]=c({name:"no-alt-text",message:"Every image needs alt text (Google: accessibility).",link:h}),e["google/no-merged-cells"]=i({tokens:["\\bcolspan\\s*=","\\browspan\\s*="],message:"Don't merge table cells with colspan/rowspan (Google).",link:h,scope:"all",ignoreCase:!0,severity:"error"}),e["google/sentence-length"]={severity:"error",scope:"sentence",link:h,message:"Sentence is %s %s long; Google recommends fewer than 26 words (max %s).",assertions:{length:{unit:"words",max:25}}},e["google/no-code-in-heading"]=i({tokens:["`[^`]+`"],message:"Avoid code items in headings (Google); rephrase in plain words.",link:l,scope:"heading",includeCode:!0}),e["google/no-numbered-headings"]=i({tokens:["^\\d+[.)]\\s","^Step\\s+\\d+\\b","^Part\\s+\\d+\\b"],message:"Don't use numbers in headings to indicate a sequence (Google).",link:l,scope:"heading",ignoreCase:!0}),e["google/list-length"]=c({name:"list-length",message:"List has %s item(s); a single item usually reads better as a plain sentence (Google).",link:O,options:{min:2},severity:"warn"}),e["google/second-person"]=i({tokens:["\\b(?:We|we|Our|our|Us|us)\\b"],message:'Use second person ("you"/"your") instead of "%s", unless referring to the organization itself (Google).',link:ue}),e["google/use-contractions"]=t({pairs:{"is not":"isn't","are not":"aren't","do not":"don't","does not":"doesn't","did not":"didn't",cannot:"can't","will not":"won't","have not":"haven't","has not":"hasn't","had not":"hadn't","should not":"shouldn't","would not":"wouldn't","could not":"couldn't"},message:'Use "%s" instead of "%s" (Google recommends negation contractions).',link:T,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/no-triple-contractions"]=i({tokens:["\\bmightn't've\\b","\\bwouldn't've\\b","\\bcouldn't've\\b","\\bshouldn't've\\b"],message:`Don't use three-word contractions such as "%s" (Google).`,link:T,ignoreCase:!0}),e["google/no-lets"]=i({tokens:["\\blet's\\b"],message:'"%s": avoid if at all possible (Google).',link:`${s}#lets`,ignoreCase:!0}),e["google/no-please-note"]=t({pairs:{"please note":""},message:`%sGoogle's style guide says not to use the phrase "%s"; remove it.`,link:`${s}#please`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/no-please"]=i({tokens:["\\bplease\\b"],message:'"%s": only use when asking for permission or forgiveness, not in the normal course of instructions (Google).',link:`${s}#please`,ignoreCase:!0}),e["google/no-timeless-phrases"]=i({tokens:["\\bas of this writing\\b","\\bat present\\b","\\bpresently\\b","\\bdoes not yet\\b","\\bcurrently\\b"],message:'"%s" is implied by the existence of the documentation itself; consider removing it (Google).',link:me,ignoreCase:!0}),e["google/no-latinisms"]=t({pairs:{"\\bi\\.e\\.":"that is","\\be\\.g\\.":"for example"},message:'Use "%s" instead of "%s" (Google).',link:s,fix:!1,ignoreCase:!0,wordBoundary:!1,keysAreRegex:!0}),e["google/vs-versus"]=t({pairs:{"\\bvs\\.":"versus"},message:'Use "%s" instead of "%s" (Google).',link:s,ignoreCase:!0,wordBoundary:!1,keysAreRegex:!0}),e["google/no-latinisms-plain"]=t({pairs:{"vice versa":"the other way around"},message:'Use "%s" instead of "%s" (Google).',link:s,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/aka-form"]=t({pairs:{aka:"also known as"},message:'Use "%s" instead of "%s" (Google).',link:s,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/no-internet-slang"]=t({pairs:{"tl;dr":"To summarize",ymmv:"Your results might vary",RTFM:"For more information, see..."},message:'Avoid the internet-slang abbreviation "%s"; use "%s" instead (Google).',link:D,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/no-via"]=i({tokens:["\\bvia\\b"],message:`"%s": avoid \u2014 Google's word list says not to use it; rephrase (e.g. "using", "through").`,link:`${s}#via`,ignoreCase:!0}),e["google/abbrev-no-periods"]=i({tokens:["\\b(?:[A-Z]\\.){2,}"],message:`Don't use periods with acronyms or initialisms such as "%s" (Google).`,link:D}),e["google/us-abbreviation"]=t({pairs:{"U.S.A.":"US","U.S.":"US"},message:'Use "%s" instead of "%s" (Google: US is OK as an abbreviation for United States).',link:`${s}#US`,fix:!1,wordBoundary:!1}),e["google/no-slash-abbrev"]=t({pairs:{"\\bc/o(?![A-Za-z])":"care of","\\bw/(?![A-Za-z])":"with"},message:'Use "%s" instead of the slash abbreviation "%s" (Google).',link:_,ignoreCase:!0,wordBoundary:!1,keysAreRegex:!0}),e["google/spell-out-ordinals"]=i({tokens:["\\b\\d+(?:st|nd|rd|th)\\b"],message:'Spell out ordinal numbers; avoid "%s" (Google).',link:N}),e["google/number-format"]=i({tokens:["\\d\\s%","(?<![\\d.])\\.\\d","\\d+ x \\d+","\\bfrom\\s+\\d+-\\d+\\b"],message:`Number formatting: "%s" doesn't match Google's stated convention.`,link:N}),e["google/date-format"]=i({tokens:["\\b\\d{1,2}/\\d{1,2}/\\d{2,4}\\b"],message:'Avoid all-numeric slash dates such as "%s" (Google); spell out the month.',link:fe}),e["google/time-format"]=i({tokens:["\\d\\s?[ap]\\.m\\.","\\d(?:am|pm)\\b","\\d(?:AM|PM)\\b","\\b\\d{1,2}:00\\s?(?:AM|PM|am|pm)\\b"],message:'"%s": use all-caps AM/PM with a space before it, and drop :00 on round hours (Google).',link:`${s}#AM,_PM`}),e["google/rfc-spacing"]=i({tokens:["\\bRFC\\d+\\b"],message:'Use a space between RFC and the number, e.g. "RFC 2318" (Google): "%s"',link:`${s}#RFC`}),e["google/data-rate-units"]=t({pairs:{"KB/s":"KBps","Kb/s":"Kbps","MB/s":"MBps","Mb/s":"Mbps","GB/s":"GBps","Gb/s":"Gbps"},message:`Use "%s" instead of "%s" (Google: by convention we don't use the slash form).`,link:`${s}#GBps`,wordBoundary:!0}),e["google/no-ampersand"]=i({tokens:["\\s&\\s"],message:`Don't use "&" as a conjunction or shorthand for "and" (Google).`,link:y}),e["google/dash-style"]=i({tokens:["\u2013","\\s--\\s","\\s\u2014\\s"],message:"Don't use an en dash or a double hyphen in place of an em dash; don't space the em dash (Google).",link:pe}),e["google/single-space-sentences"]=i({tokens:["\\. +\\S"],message:"Leave only one space between sentences (Google).",link:P}),e["google/conjunctive-adverb-comma"]=i({tokens:["^(?:Otherwise|However|Therefore) [a-z]"],message:'Put a comma after "%s" when it opens a sentence (Google).',link:be,scope:"sentence"}),e["google/comma-before-that"]=i({tokens:[", that\\b"],message:`Don't put a comma before restrictive "that" (Google).`,link:he,scope:"sentence"}),e["google/neither-nor"]=i({tokens:["\\bneither\\b(?:(?!\\bnor\\b)[\\s\\S])*?\\bor\\b"],message:'Write "neither A nor B", not "neither A or B" (Google).',link:`${s}#neither`,scope:"sentence"}),e["google/no-and-or"]=i({tokens:["\\band/or\\b"],message:'Avoid "and/or" except where space is limited, such as in tables (Google).',link:_,ignoreCase:!0}),e["google/vague-link-text"]=i({tokens:["\\b(?:this document|this article|this page|this topic|this doc|click here)\\b"],message:'Avoid vague link text such as "%s"; describe the destination (Google).',link:f,scope:"link",ignoreCase:!0}),e["google/no-url-as-link-text"]=i({tokens:["^https?://"],message:"Don't use a URL as link text (Google); use a descriptive phrase instead.",link:f,scope:"link"}),e["google/link-intro-about"]=t({pairs:{"for more information on":"for more information about","more details on":"more details about"},message:'Use "%s" instead of "%s" (Google: use "about", not "on").',link:f,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/link-punctuation"]=i({tokens:['^["\u201C].*["\u201D]$'],message:"Don't put link text in quotation marks (Google).",link:f,scope:"link"}),e["google/no-target-blank"]=i({tokens:[`target\\s*=\\s*["']_blank["']`],message:"Don't force links to open in a new tab or window (Google).",link:f,scope:"all"}),e["google/self-reference-terms"]=i({tokens:["\\bthis article\\b","\\bthis topic\\b","\\bthis doc\\b","\\bthis page\\b"],message:'Use "this document" instead of "%s" when referring to the current document (Google).',link:`${s}#documentation`,ignoreCase:!0}),e["google/emphasis-style"]={severity:"warn",link:y,message:"Use underscores for emphasis/italics, not asterisks (Google).",assertions:{"emphasis-style":{style:"underscore"}}},e["google/strong-style"]={severity:"warn",link:y,message:"Use double asterisks for bold, not underscores (Google).",assertions:{"strong-style":{style:"asterisk"}}},e["google/no-underline"]=i({tokens:["<u>"],message:"Reserve underlining for link text (Google).",link:y,scope:"all",ignoreCase:!0}),e["google/no-casing-style-names"]=i({tokens:["\\bcamel[\\s-]?case\\b","\\bsnake[\\s-]?case\\b"],message:`Don't use a casing style name such as "%s"; describe the naming convention instead (Google).`,link:ye,ignoreCase:!0}),e["google/no-inflected-code"]=i({tokens:["`[^`]+`'s\\b","`[^`]+`s\\b"],message:`Don't inflect the name of a code element (Google): "%s"`,link:ke,includeCode:!0}),e["google/ui-element-quotes"]=i({tokens:['"[A-Z][a-zA-Z ]*"\\s+(?:button|tab|menu|checkbox|option|link|field)\\b'],message:`Don't put UI element names in quotation marks; use bold instead (Google): "%s"`,link:M}),e["google/no-click-on"]=t({pairs:{"click on":"click"},message:'Use "%s" instead of "%s" (Google).',link:`${s}#click`,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/no-hover"]=i({tokens:["\\bhover(?:s|ing|ed)?\\b"],message:'Use "hold the pointer over" instead of "%s" (Google).',link:`${s}#hover`,ignoreCase:!0}),e["google/no-uncheck"]=t({pairs:{uncheck:"clear"},message:'Use "%s" instead of "%s" for checkboxes (Google).',link:`${s}#uncheck`,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/scroll-to"]=t({pairs:{"scroll to":"go to"},message:'Prefer "%s" over "%s" (Google).',link:`${s}#scroll`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/no-toggle-verb"]=i({tokens:["\\btoggle(?:d|s)?\\s+(?:the|this|that|a|an)\\b","\\bto toggle\\b"],message:'Describe the action instead of using "toggle" as a verb (Google): "%s"',link:M,ignoreCase:!0}),e["google/keyboard-keys"]=i({tokens:["\\bctrl\\b","\\bcmd\\b","\u2318"],message:'Spell out modifier keys (Control, Command) instead of "%s" (Google).',link:M,ignoreCase:!0}),e["google/chapter-terminology"]=i({tokens:["\\bchapters?\\b"],message:'Refer to "document", "page", or "section" instead of "%s" (Google, for web docs).',link:`${s}#chapter`,ignoreCase:!0}),e["google/plain-language-swaps"]=t({pairs:{"allows you to":"lets you","enables you to":"lets you",comprise:"consist of","comprised of":"consist of",desire:"want",desired:"wanted",wish:"want",learnings:"knowledge",agnostic:"platform-independent"},message:'Prefer "%s" over "%s" (Google: plain language).',link:s,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/in-order-to"]=t({pairs:{"in order to":"to"},message:'Prefer "%s" over "%s" unless needed to clarify meaning (Google).',link:`${s}#in_order_to`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/utilize"]=i({tokens:["\\butiliz(?:e|es|ed|ing|ation)\\b"],message:'Use "use" instead of "%s" unless referring to the quantity of a resource used (Google).',link:`${s}#utilize`,ignoreCase:!0}),e["google/leverage"]=t({pairs:{leverage:"use",leveraging:"using",leveraged:"used"},message:'Avoid "%s" if you mean "use", "build on", or "take advantage of" (Google): "%s"',link:`${s}#leverage`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/performant"]=i({tokens:["\\bperformant\\b"],message:'Avoid "%s"; use a more precise term (Google).',link:`${s}#performant`,ignoreCase:!0}),e["google/copy-and-paste"]=i({tokens:["\\bcopy and paste\\b"],message:'Explain what to enter into a field, not how to enter it (Google): "%s"',link:`${s}#Copy_and_paste`,ignoreCase:!0}),e["google/create-a-new"]=t({pairs:{"Create a new":"Create a"},message:'Use "%s ..." instead of "%s ..." unless distinguishing from another recently created item (Google).',link:`${s}#Create_a_new`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/no-run-the-following-command"]=i({tokens:["\\brun the following command\\b"],message:'Focus on what the command does instead of "%s" (Google).',link:we,ignoreCase:!0}),e["google/cons-and-pros"]=t({pairs:{"pros and cons":"advantages and disadvantages"},message:'Use "%s" instead of "%s" (Google).',link:`${s}#pros`,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/product-names"]=t({pairs:{"Cloud Platform":"Google Cloud","(?<![Gg][Oo][Oo][Gg][Ll][Ee]\\s+)Cloud console":"Google Cloud console","Developers Console":"Google Cloud console","Google Cloud SDK":"Cloud SDK","API explorer":"APIs Explorer","API Explorer":"APIs Explorer","developer key":"API key","dev key":"API key","API Console key":"API key","account name":"username","curated roles":"predefined roles","network IP address":"internal IP address","MIME type":"media type","interconnect type":"connection type","peer zone":"peering zone","Android device":"Android-powered device","Android devices":"Android-powered devices"},message:'Use "%s" instead of "%s" (Google product naming).',link:s,fix:!1,wordBoundary:!0,keysAreRegex:!0}),e["google/gcp-name"]=t({pairs:{GCP:"Google Cloud"},message:'Use "%s" instead of "%s" (Google product naming).',link:s,fix:!1,wordBoundary:!0}),e["google/brand-capitalization"]=t({pairs:{"Google Play Services":"Google Play services","Google account":"Google Account","Google accounts":"Google Accounts",cURL:"curl"},message:'Use "%s" instead of "%s" (Google: fixed brand capitalization).',link:s,wordBoundary:!0}),e["google/brand-capitalization-proper-noun"]=t({pairs:{markdown:"Markdown","material design":"Material Design","search console":"Search Console"},message:'Use "%s" instead of "%s" (Google: fixed brand capitalization).',link:s,fix:!1,wordBoundary:!0}),e["google/compound-forms"]=t({pairs:{"e-mail":"email","E-mail":"email","e-commerce":"ecommerce","web page":"webpage","check box":"checkbox","code base":"codebase","code lab":"codelab","code-lab":"codelab","data store":"datastore",datacenter:"data center",datatype:"data type","file name":"filename",filesystem:"file system","front-end":"frontend","front end":"frontend","back-end":"backend","back end":"backend","host name":"hostname","end point":"endpoint","name space":"namespace",nameserver:"name server","life cycle":"lifecycle","life-cycle":"lifecycle","live stream":"livestream","health care":"healthcare","health-care":"healthcare","on prem":"on-premises","on premise":"on-premises","on-premise":"on-premises","read only":"read-only","pre-built":"prebuilt","run book":"runbook","screen shot":"screenshot","time stamp":"timestamp","time frame":"timeframe","time-to-live":"time to live","tool kit":"toolkit","tool-kit":"toolkit","touch screen":"touchscreen","user base":"userbase","walk-through":"walkthrough",webserver:"web server","white paper":"whitepaper","white space":"whitespace","wild card":"wildcard",statusbar:"status bar","status-bar":"status bar","key/value pair":"key-value pair","key value pair":"key-value pair",singlemost:"single most",signin:"sign-in",signout:"sign-out","auto-healing":"autohealing","auto-scaling":"autoscaling","auto-populate":"autopopulate","auto populate":"autopopulate","auto-tagging":"autotagging","pre-capture":"precapture","pre-emptible":"preemptible",preexisting:"pre-existing","pre-recorded":"prerecorded","preshared key":"pre-shared key","pre-submit":"presubmit","meta-feed":"metafeed","meta-generation":"metageneration","inter-cluster":"intercluster","sub-tree":"subtree","sub-zone":"subzone","sub zone":"subzone",subcommand:"sub-command","co-locate":"colocate","blue/green":"blue-green","blue green":"blue-green","parent\u2014child":"parent-child","long running operation":"long-running operation","hard-code":"hardcode","hard-coded":"hardcoded","in-line":"inline",Unixlike:"Unix-like","Unix like":"Unix-like","resource recordset":"resource record set"},message:'Use "%s" instead of "%s" (Google compound-word form).',link:s,ignoreCase:!0,wordBoundary:!0}),e["google/compound-forms-word-choice"]=t({pairs:{"data cleansing":"data cleaning",transcompile:"transpile",autoupdate:"automatically update","pre-emptive":"preemptible",noops:"fully managed",NoOps:"fully managed"},message:'Use "%s" instead of "%s" (Google compound-word form).',link:s,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/compound-forms-proper-noun"]=t({pairs:{datasource:"data source"},message:'Use "%s" instead of "%s" (Google compound-word form).',link:s,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/colo-form"]=t({pairs:{colo:"colocate"},message:'Use "%s" instead of "%s" (Google compound-word form).',link:s,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/acronym-forms"]=t({pairs:{HTTPs:"HTTPS",IPSec:"IPsec","No-SQL":"NoSQL","No SQL":"NoSQL","OAuth 2(?!\\.0)":"OAuth 2.0",OAuth2:"OAuth 2.0",Oauth:"OAuth 2.0","micro-services":"microservices","fin-tech":"fintech",adtech:"ad tech","ad-tech":"ad tech"},message:'Use "%s" instead of "%s" (Google: fixed acronym/abbreviation form).',link:s,wordBoundary:!0,keysAreRegex:!0}),e["google/acronym-forms-proper-noun"]=t({pairs:{"I-O":"I/O",FinTech:"fintech"},message:'Use "%s" instead of "%s" (Google: fixed acronym/abbreviation form).',link:s,fix:!1,wordBoundary:!0,keysAreRegex:!0}),e["google/acronym-caps-detect-only"]=t({pairs:{UNICODE:"Unicode",IPSEC:"IPsec",IO:"I/O"},message:'Use "%s" instead of "%s" (Google: fixed acronym/abbreviation form).',link:s,wordBoundary:!0,fix:!1}),e["google/sha1-form"]=t({pairs:{"(?<!-)\\bSHA1\\b":"SHA-1"},message:'Use "%s" instead of "%s" (Google: fixed acronym/abbreviation form).',link:s,wordBoundary:!1,keysAreRegex:!0,fix:!1}),e["google/master-slave"]=t({pairs:{slave:"worker"},message:'Avoid "%s"; use "worker" or "replica" instead (Google).',link:`${s}#slave`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/blacklist-whitelist"]=t({pairs:{blacklist:"denylist",whitelist:"allowlist",graylist:"denylist",greylist:"denylist"},message:'Use "%s" instead of "%s" (Google inclusive language).',link:`${s}#blacklist`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/black-white-hat"]=t({pairs:{"black hat":"unethical",blackhat:"unethical","white hat":"ethical",whitehat:"ethical"},message:'Use a precise term such as "%s" instead of "%s" (Google inclusive language).',link:`${s}#blackhat`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/black-white-box-testing"]=t({pairs:{"black-box testing":"opaque-box testing","black box testing":"opaque-box testing","white-box testing":"clear-box testing","white box testing":"clear-box testing","black-box monitoring":"synthetic monitoring","white-box monitoring":"introspective monitoring"},message:'Use "%s" instead of "%s" (Google inclusive language).',link:`${s}#black-box`,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/grayed-out"]=t({pairs:{"grayed-out":"unavailable","greyed-out":"unavailable"},message:'Use "%s" instead of "%s" (Google inclusive language).',link:`${s}#grayed-out`,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["google/grandfathered"]=t({pairs:{grandfathered:"legacy","grandfather clause":"exempt"},message:'Use "%s" instead of "%s" (Google inclusive language).',link:`${s}#grandfathered`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/gendered-terms"]=t({pairs:{"you guys":"everyone",guys:"everyone","male adapter":"plug","female adapter":"socket","man hours":"person hours",manhours:"person hours",manmade:"artificial","man made":"artificial",manned:"staffed",manpower:"staff","man-power":"staff","man-in-the-middle":"on-path attacker","he/she":"they",webmaster:"website owner"},message:'Use non-gendered language such as "%s" instead of "%s" (Google inclusive language).',link:`${s}#man_hours`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/jargon-with-people-references"]=t({pairs:{gypsy:"Romani",ghetto:"clumsy",ninja:"expert",guru:"expert",sherpa:"guide",dojo:"training","mom test":"beginner user test","grandma test":"beginner user test","girlfriend test":"beginner user test","monkey test":"automated, random tests","brown bag":"learning session","brown-bag":"learning session","build cop":"build monitor","build sheriff":"build monitor","war room":"incident-management team",warroom:"incident-management team","final solution":"solution","demilitarized zone":"perimeter network",DMZ:"perimeter network",denigrate:"disparage",sexy:"elegant",nuke:"remove",voodoo:"mysterious","first-class citizen":"higher-order value","first class citizen":"higher-order value"},message:'Use a precise term such as "%s" instead of "%s" (Google jargon/inclusive language).',link:`${s}#ninja`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/ableist-figurative-terms"]=t({pairs:{crazy:"unexpected",insane:"unexpected",lunatic:"unexpected",bonkers:"unexpected",loony:"unexpected",sane:"valid","sanity check":"quick check","dumb down":"simplify",retarded:"slowed"},message:'Use a precise term such as "%s" instead of "%s" when describing a system or object (Google).',link:`${s}#crazy`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/dummy-variable"]=t({pairs:{"dummy variable":"placeholder"},message:'Use "%s" instead of "%s" (Google): for a statistics sense, see the word list for alternatives.',link:`${s}#dummy-variable`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/blind-figurative"]=i({tokens:["\\bblind to\\b","\\bblind eye to\\b"],message:'Use "ignore", "unaware of", "disregard", or "reject" instead of "%s" (Google).',link:`${s}#blind`,ignoreCase:!0}),e["google/unsighted-visually-challenged"]=t({pairs:{unsighted:"person who is blind","visually challenged":"person who is visually impaired"},message:'Use "%s" instead of "%s" (Google inclusive language).',link:`${s}#unsighted`,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/disability-language"]=t({pairs:{"the disabled":"people with disabilities","a quadriplegic":"a quadriplegic person","wheelchair-bound":"uses a wheelchair","suffering from":"experiencing","victim of":"living with"},message:'Use "%s" instead of "%s" (Google inclusive documentation).',link:ve,ignoreCase:!0,wordBoundary:!0,fix:!1}),e["google/technical-jargon-precision"]=t({pairs:{"fat client":"full-featured client","fat connection":"high-capacity network connection",chubby:"overextended"},message:'Use a precise term such as "%s" instead of "%s" (Google: technical-jargon precision, not people).',link:`${s}#fat`,ignoreCase:!0,wordBoundary:!0,fix:!1});for(let r of Object.values(e))r.fix=!1;return e}var $="https://developers.google.com/style/word-list",j="https://developers.google.com/style/inclusive-documentation",q="https://learn.microsoft.com/en-us/style-guide/bias-free-communication",xe="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/m/master-slave",K="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms",Ce="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/blacklist",Ae="https://learn.microsoft.com/en-us/style-guide/militaristic-language";function d(e){return{severity:"warn",scope:e.scope??"summary",link:e.link,message:e.message,assertions:{swap:{pairs:e.pairs,ignoreCase:e.ignoreCase,wordBoundary:e.wordBoundary,keysAreRegex:e.keysAreRegex}}}}function k(e){return{severity:"warn",scope:e.scope??"summary",link:e.link,message:e.message,assertions:{pattern:{tokens:e.tokens,ignoreCase:e.ignoreCase}}}}function H(){let e={};e["inclusive-language/slave"]=d({pairs:{slave:"worker"},message:'Avoid "%s"; use "%s" or "replica" instead (Google C\xA73.5 row 2; Microsoft a-z/master-slave agrees the pairing itself must be avoided).',link:`${$}#slave`,ignoreCase:!0,wordBoundary:!0}),e["inclusive-language/master-slave-pairing"]=k({tokens:["\\bmaster\\s*/\\s*slave\\b","\\bmaster-slave\\b"],message:'Avoid the "%s" pairing (Google C\xA73.5 row 1; Microsoft a-z/master-slave); both guides agree to avoid it but recommend different replacements \u2014 e.g. "primary/replica" or "primary/subordinate".',link:xe,ignoreCase:!0}),e["inclusive-language/blacklist-whitelist"]=d({pairs:{blacklist:"denylist",whitelist:"allowlist"},message:'Use "%s" instead of "%s" (Google C\xA73.5 rows 3-4; Microsoft a-z/blacklist agrees but prefers the two-word "block list"/"allow list" forms \u2014 recheck/microsoft ships those). Verb forms need a rewrite, not a word-for-word swap.',link:Ce,ignoreCase:!0,wordBoundary:!0}),e["inclusive-language/dmz"]=k({tokens:["\\bDMZ\\b(?!\\s+(?:dividing|between|separating)\\b)","\\bdemilitarized zone\\b(?!\\s+(?:dividing|between|separating)\\b)"],message:'Avoid "%s"; use "perimeter network" instead (Google C\xA73.5 row 26; Microsoft a-z/demilitarized-zone-dmz \u2014 both guides recommend the identical replacement).',link:q}),e["inclusive-language/grayed-out"]=d({pairs:{"grayed-out":"unavailable","greyed-out":"unavailable"},message:`Use "%s" instead of "%s" (Google C\xA73.5 row 20; Microsoft a-z/gray-grayed-out agrees the term itself should be avoided when describing an unusable UI state, preferring "not available"/"isn't available").`,link:`${$}#grayed-out`,ignoreCase:!0,wordBoundary:!0}),e["inclusive-language/he-she"]=d({pairs:{"he/she":"they","s/he":"they"},message:'Use "%s" instead of "%s" (Google pronouns page; Microsoft bias-free-communication V23).',link:q,ignoreCase:!0,wordBoundary:!0}),e["inclusive-language/nondisabled-person"]=d({pairs:{"normal person":"person without a disability","healthy person":"person without a disability"},message:'Use "%s" instead of "%s" (Google inclusive-documentation D\xA73.6 row 45; Microsoft accessibility term collection Row 5).',link:j,ignoreCase:!0,wordBoundary:!0}),e["inclusive-language/suffering-victim"]=d({pairs:{"suffering from":"experiencing","victim of":"living with"},message:'Use "%s" instead of "%s" (Google inclusive-documentation D\xA73.6 row 43; Microsoft accessibility term collection Row 4 agrees this phrase should be avoided, though its own replacement is sometimes a fuller sentence rewrite).',link:j,ignoreCase:!0,wordBoundary:!0}),e["inclusive-language/differently-abled"]=k({tokens:["\\bdifferently[- ]abled\\b"],message:'Avoid the euphemism "%s" (Google inclusive-documentation D\xA73.6 row 44; Microsoft accessibility term collection Row 8); use specific, person-first language instead.',link:K,ignoreCase:!0}),e["inclusive-language/crippled"]=k({tokens:["\\bcripple\\b","\\bcrippled\\b"],message:'Avoid "%s" (Google word-list#cripple D\xA73.6 row 27; Microsoft accessibility term collection Row 2); use "slowed down" for a figurative/system sense, or person-first language when referring to a person.',link:K,ignoreCase:!0}),e["inclusive-language/nuke"]=d({pairs:{nuke:"remove"},message:'Avoid the violent-metaphor jargon "%s"; use "%s" or "attack" instead (Google word-list#nuke C\xA73.5; Microsoft militaristic-language "Never use" list agrees).',link:Ae,ignoreCase:!0,wordBoundary:!0});for(let r of Object.values(e))r.fix=!1;return e}var Me={severity:"error",message:"Markdoc syntax error",fix:!1,assertions:{"markdoc-syntax":{}}},Se={severity:"error",message:"%s",fix:!1,assertions:{"markdoc-pairing":{}}},Ge={severity:"warn",message:"%s",fix:!1,assertions:{"markdoc-unknown-tag":{}}},Ue={severity:"error",message:"%s",fix:!1,assertions:{"markdoc-attributes":{}}};function Z(){return{"recheck/markdoc-syntax":Me,"recheck/markdoc-pairing":Se,"recheck/markdoc-unknown-tag":Ge,"recheck/markdoc-attributes":Ue}}var Be={"no-trailing-spaces":{severity:"off"},"no-hard-tabs":{severity:"off"},"no-multiple-blanks":{severity:"off"},"no-multiple-space-blockquote":{severity:"off"},"no-blanks-blockquote":{severity:"off"},"line-length":{severity:"off"},"ul-indent":{severity:"off"},"no-inline-html":{severity:"off"},"no-bare-urls":{severity:"off"},"fenced-code-language":{severity:"off"},"first-line-h1":{severity:"off"}};function F(){let r={...u()};for(let[g,C]of Object.entries(Be)){let z=`recheck/${g}`,E=r[z];E&&(r[z]={...E,...C})}return r}var Re="https://learn.microsoft.com/en-us/style-guide/capitalization",S="https://learn.microsoft.com/en-us/style-guide/scannable-content/headings",ze="https://learn.microsoft.com/en-us/style-guide/punctuation/colons",W="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/v/versus-vs",Ee="https://learn.microsoft.com/en-us/style-guide/accessibility/writing-all-abilities",Ie="https://learn.microsoft.com/en-us/style-guide/punctuation/apostrophes",Pe="https://learn.microsoft.com/en-us/style-guide/acronyms",G="https://learn.microsoft.com/en-us/style-guide/scannable-content/lists",V="https://learn.microsoft.com/en-us/style-guide/scannable-content/tables",Oe="https://learn.microsoft.com/en-us/style-guide/punctuation/periods",Te="https://learn.microsoft.com/en-us/style-guide/top-10-tips-style-voice",De="https://learn.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/",w="https://learn.microsoft.com/en-us/style-guide/numbers",_e="https://learn.microsoft.com/en-us/style-guide/punctuation/quotation-marks",b="https://learn.microsoft.com/en-us/style-guide/accessibility/alternative-text",Ne="https://learn.microsoft.com/en-us/style-guide/urls-web-addresses",U="https://learn.microsoft.com/en-us/style-guide/word-choice/use-contractions",v="https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words",Le="https://learn.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences",B="https://learn.microsoft.com/en-us/style-guide/word-choice/dont-use-common-words-in-new-ways",Q="https://learn.microsoft.com/en-us/style-guide/word-choice/avoid-jargon",R="https://learn.microsoft.com/en-us/style-guide/bias-free-communication",$e="https://learn.microsoft.com/en-us/style-guide/militaristic-language",je="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms",a="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/",Y="https://learn.microsoft.com/en-us/style-guide/procedures-instructions/describing-interactions-with-ui",X="https://learn.microsoft.com/en-us/style-guide/procedures-instructions/formatting-text-in-instructions",qe="https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/m/master-slave";function o(e){return{severity:e.severity??"warn",scope:e.scope??"summary",link:e.link,message:e.message,...e.fix===!1?{fix:!1}:{},assertions:{swap:{pairs:e.pairs,ignoreCase:e.ignoreCase,wordBoundary:e.wordBoundary,keysAreRegex:e.keysAreRegex}}}}function n(e){return{severity:e.severity??"warn",scope:e.scope??"summary",link:e.link,message:e.message,assertions:{pattern:{tokens:e.tokens,ignoreCase:e.ignoreCase,includeCode:e.includeCode}}}}function m(e){return{severity:e.severity??"error",link:e.link,message:e.message,assertions:{[e.name]:e.options??{}}}}function J(){let e={};e["microsoft/heading-sentence-case"]={severity:"error",scope:"heading",fix:!1,link:Re,message:'"%s" should use %s capitalization (Microsoft: sentence case for headings).',assertions:{capitalization:{match:"$sentence"}}},e["microsoft/capitalize-after-heading-colon"]=n({tokens:[":\\s+[a-z]"],message:"Capitalize the first word after a colon in a heading (Microsoft).",link:ze,scope:"heading"}),e["microsoft/no-trailing-punctuation"]=m({name:"no-trailing-punctuation",message:"Don't end headings with punctuation (Microsoft).",link:S}),e["microsoft/no-ampersand-in-headings"]={severity:"warn",scope:"heading",link:S,message:'Spell out "and"; avoid & and + in headings (Microsoft).',exceptions:{lines:["C++","A+",".NET"]},assertions:{pattern:{tokens:["&(?!amp;|nbsp;|lt;|gt;|quot;|#)","\\+"]}}},e["microsoft/vs-in-headings"]=o({pairs:{versus:"vs."},message:'Use "%s" instead of "%s" in headings (Microsoft).',link:W,scope:"heading",ignoreCase:!0,wordBoundary:!0}),e["microsoft/versus-in-text"]=o({pairs:{"\\bvs\\.":"versus"},message:'Use "%s" instead of "%s" in body text (Microsoft).',link:W,scope:["paragraph","list-item","table.cell"],ignoreCase:!0,wordBoundary:!1,keysAreRegex:!0}),e["microsoft/no-multiple-blanks"]=m({name:"no-multiple-blanks",message:"Don't use extra blank lines to create heading spacing (Microsoft).",link:S}),e["microsoft/no-emphasis-as-heading"]=m({name:"no-emphasis-as-heading",message:"Use a heading level, not bold or italic text, to show hierarchy (Microsoft).",link:Ee}),e["microsoft/no-apostrophe-plural-decade"]=n({tokens:["\\b(?:19|20)\\d0['\u2019]s\\b"],message:`Don't use an apostrophe to form a plural decade (Microsoft): "%s"`,link:Ie}),e["microsoft/article-before-acronym"]=o({pairs:{"an URL":"a URL","a ISP":"an ISP","an SQL database":"a SQL database","an SQL":"a SQL"},message:'Use "%s" instead of "%s" (Microsoft: article choice follows pronunciation).',link:Pe,ignoreCase:!0,wordBoundary:!0}),e["microsoft/list-item-capital"]={severity:"error",scope:"list-item",fix:!1,link:G,message:'"%s" should start with a capital letter (Microsoft).',assertions:{capitalization:{match:"^[^a-z].*"}}},e["microsoft/no-trailing-conjunction-list"]=n({tokens:["[,;]$","\\b(?:and|or)$"],message:`Don't end a list item with a semicolon, comma, or conjunction (Microsoft): "%s"`,link:G,scope:"list-item",ignoreCase:!0}),e["microsoft/no-ellipsis-column-header"]=n({tokens:["(?:\\.\\.\\.|\u2026)$"],message:`Don't end a table column header with an ellipsis (Microsoft): "%s"`,link:V,scope:"table.header"}),e["microsoft/no-blank-table-cell"]=n({tokens:["^\\s*(?:\u2014\\s*)?$"],message:'Use "Not applicable" or "None" instead of an em dash in a table cell (Microsoft).',link:V,scope:"table.cell"}),e["microsoft/single-space-after-punctuation"]=n({tokens:["[.!?:]\\s{2,}(?=[A-Z])"],message:"Use one space, not two, after end punctuation (Microsoft).",link:Oe}),e["microsoft/no-space-around-em-dash"]=n({tokens:["\\s\u2014\\s"],message:"Don't use spaces around an em dash (Microsoft).",link:De}),e["microsoft/no-from-before-en-dash-range"]=n({tokens:["\\bfrom\\s+\\d+\\s*[\u2013\u2014]\\s*\\d+"],message:`Don't use "from" before an en-dash number range (Microsoft): "%s"`,link:w}),e["microsoft/straight-quotes"]=o({pairs:{"\u201C":'"',"\u201D":'"',"\u2018":"'","\u2019":"'"},message:"Use straight quotation marks, not curly ones (Microsoft).",link:_e}),e["microsoft/spell-out-ordinals"]=n({tokens:["\\b\\d+(?:st|nd|rd|th)\\b"],message:'Spell out ordinal numbers; avoid "%s" (Microsoft).',link:w}),e["microsoft/ordinal-no-ly"]=o({pairs:{firstly:"first",secondly:"second",thirdly:"third"},message:'Use "%s" instead of "%s" (Microsoft).',link:w,ignoreCase:!0,wordBoundary:!0}),e["microsoft/noon-midnight"]=n({tokens:["\\b12:00\\s*(?:AM|PM|am|pm)\\b"],message:'Use "noon" or "midnight" instead of "%s" (Microsoft).',link:w}),e["microsoft/no-alt-text"]=m({name:"no-alt-text",message:"Every image needs alt text (Microsoft: accessibility).",link:b}),e["microsoft/alt-text-length"]={severity:"warn",scope:"alt",link:b,message:"Alt text is %s %s long; Microsoft limits it to 150 characters (max %s).",assertions:{length:{unit:"characters",max:150}}},e["microsoft/alt-text-format"]={severity:"warn",scope:"alt",fix:!1,link:b,message:"Alt text should start with a capital letter and end with a period (Microsoft).",assertions:{capitalization:{match:"^[A-Z].*\\.$"}}},e["microsoft/alt-text-generic-opener"]=n({tokens:["^(?:Image|Icon|Graphic|Button|Link)\\b"],message:`Don't start alt text with a generic word such as "%s" (Microsoft).`,link:b,scope:"alt",ignoreCase:!0}),e["microsoft/alt-text-no-filename"]=n({tokens:["\\.(?:png|jpe?g|gif|svg|webp)$"],message:"Don't use an image's file name as its alt text (Microsoft).",link:b,scope:"alt",ignoreCase:!0}),e["microsoft/descriptive-link-text"]=m({name:"descriptive-link-text",message:"Link text should be descriptive, not a generic phrase (Microsoft).",link:Ne}),e["microsoft/paragraph-length"]={severity:"warn",scope:"paragraph",link:"https://learn.microsoft.com/en-us/style-guide/scannable-content/",message:"Paragraph is %s %s long; Microsoft suggests at most 7 (sentences, as a proxy for lines).",assertions:{length:{unit:"sentences",max:7}}},e["microsoft/list-length"]=m({name:"list-length",message:"List has %s item(s); Microsoft recommends 2-7 (Microsoft).",link:G,options:{min:2,max:7},severity:"warn"}),e["microsoft/comma-density"]={severity:"warn",scope:"sentence",link:"https://learn.microsoft.com/en-us/style-guide/punctuation/",message:"Sentence has %s commas; Microsoft suggests at most %s.",assertions:{occurrence:{pattern:",",max:2}}},e["microsoft/use-contractions"]=o({pairs:{cannot:"can't","can not":"can't","do not":"don't","does not":"doesn't","did not":"didn't","is not":"isn't","are not":"aren't","was not":"wasn't","were not":"weren't","will not":"won't","would not":"wouldn't","should not":"shouldn't","could not":"couldn't","have not":"haven't","has not":"hasn't","had not":"hadn't","it is":"it's","you are":"you're","we are":"we're","they are":"they're","you will":"you'll","let us":"let's"},message:'Microsoft style prefers the contraction "%s" over "%s".',link:U,ignoreCase:!0,wordBoundary:!0}),e["microsoft/no-awkward-contractions"]=n({tokens:["\\b(?:there['\u2019]d|it['\u2019]ll|they['\u2019]d|that['\u2019]ll|there['\u2019]ll)\\b"],message:'Avoid the ambiguous contraction "%s" (Microsoft).',link:U,ignoreCase:!0}),e["microsoft/contraction-consistency"]={severity:"warn",scope:"summary",link:U,message:'"%s" conflicts with the first-used form "%s" in this file (Microsoft).',assertions:{consistency:{ignoreCase:!0,either:{"can't":"cannot","don't":"do not","won't":"will not","isn't":"is not","it's":"it is"}}}},e["microsoft/no-weak-phrasing"]=n({tokens:["\\bthere (?:is|are|was|were)\\b"],message:'Avoid weak phrasing such as "%s"; start the sentence with a verb (Microsoft).',link:Te,scope:["paragraph","list-item"],ignoreCase:!0}),e["microsoft/avoid-please"]=n({tokens:["\\bplease\\b"],message:'Avoid "%s" except when asking the customer to do something inconvenient (Microsoft).',link:"https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/p/please",ignoreCase:!0}),e["microsoft/us-spelling"]=o({pairs:{"\\bcentred\\b":"centered","\\bcentring\\b":"centering","\\bcatalogued\\b":"cataloged","\\bcataloguing\\b":"cataloging","\\bcancelled\\b":"canceled","\\bcancelling\\b":"canceling","\\bfavourite\\b":"favorite","\\bauthorise\\b":"authorize","\\bauthorises\\b":"authorizes","\\bauthorised\\b":"authorized","\\bauthorising\\b":"authorizing","\\bauthorisation\\b":"authorization","\\bcustomise\\b":"customize","\\bcustomises\\b":"customizes","\\bcustomised\\b":"customized","\\bcustomising\\b":"customizing","\\bcustomisation\\b":"customization","\\blabelled\\b":"labeled","\\blabelling\\b":"labeling","\\bmodelled\\b":"modeled","\\bmodelling\\b":"modeling"},message:'Use the US spelling "%s" instead of "%s" (Microsoft).',link:v,severity:"error",ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/us-spelling-detect"]=o({pairs:{"\\bcentre\\b":"center","\\bcentres\\b":"centers","\\bcatalogue\\b":"catalog","\\bcatalogues\\b":"catalogs"},message:'Use the US spelling "%s" instead of "%s" (Microsoft).',link:v,severity:"error",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/no-latin-abbreviations"]=o({pairs:{"\\be\\.g\\.,?":"for example","\\bi\\.e\\.,?":"that is","\\bviz\\.":"namely","\\bergo\\b":"therefore"},message:'Use "%s" instead of "%s" (Microsoft).',link:v,severity:"warn",fix:!1,ignoreCase:!0,wordBoundary:!1,keysAreRegex:!0}),e["microsoft/no-latin-abbreviations-detect"]=n({tokens:["\\bde facto\\b","\\bad hoc\\b","\\bvis-[\xE0a]-vis\\b"],message:'Microsoft style: avoid the non-English phrase "%s" \u2014 no single replacement is prescribed; rewrite for the context (Microsoft).',link:v,severity:"error",ignoreCase:!0}),e["microsoft/simple-words"]=o({pairs:{"\\butilize\\b":"use","\\butilise\\b":"use","\\bmake use of\\b":"use","\\bin order to\\b":"to","\\bas a means to\\b":"to","\\bin addition\\b(?!\\s+to\\b)":"also","\\bestablish connectivity\\b":"connect","\\binform\\b":"tell"},message:'Use "%s" instead of "%s" (Microsoft).',link:Le,severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/leverage"]=o({pairs:{leverage:"use",leveraging:"using",leveraged:"used"},message:'Rewrite "%s" using "%s" (Microsoft): only the VERB sense ("leverage the API") is targeted \u2014 "leverage"/"leveraged" are also common, correct nouns/adjectives ("financial leverage", "a leveraged buyout") a blind substitution would corrupt.',link:Q,severity:"error",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/glyph"]=o({pairs:{glyph:"symbol"},message:`Use "%s" instead of "%s" (Microsoft) when referring generically to a UI icon/image \u2014 but it's OK to use "glyph" in a technical discussion of fonts and characters.`,link:Q,severity:"error",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/bucketize"]=o({pairs:{bucketize:"group"},message:'Use "%s" instead of "%s" (Microsoft).',link:B,severity:"warn",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/impact-verb"]=n({tokens:["\\bimpact(?:s|ed|ing)?\\s+(?:performance|productivity|quality|reliability|availability|latency|throughput)\\b"],message:'Use "affect" instead of "impact" as a verb (Microsoft): "%s"',link:B}),e["microsoft/the-ask"]=o({pairs:{"\\bthe ask\\b(?!\\s+(?:tick|ticks|price|prices|spread|spreads|size|quote|quotes)\\b)":"the request"},message:'Use "%s" instead of "%s" (Microsoft).',link:B,fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/bias-free-terms"]=o({pairs:{chairman:"chair",chairwoman:"chair",mankind:"humanity",manmade:"synthetic","man-made":"synthetic",manpower:"workforce",salesman:"sales representative",salesmen:"sales representatives","demilitarized zone":"perimeter network","\\bDMZ\\b(?!\\s+(?:dividing|between|separating)\\b)":"perimeter network","screened subnet":"perimeter network"},message:'Use "%s" instead of "%s" (Microsoft: bias-free communication).',link:R,severity:"error",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!0}),e["microsoft/master-slave"]=n({tokens:["\\bmaster\\s*/\\s*slave\\b","\\bmaster-slave\\b"],message:`Avoid "%s" (Microsoft): the guide's two pages disagree on the replacement \u2014 use "primary/subordinate" (bias-free-communication) or "primary/replica" (also acceptable: primary/secondary, principal/agent, controller/worker; a-z/master-slave) depending on context.`,link:qe,severity:"error",ignoreCase:!0}),e["microsoft/cyberattack-spelling"]=o({pairs:{"cyber attack":"cyberattack","cyber-attack":"cyberattack","cyber threat":"cyberthreat","cyber-threat":"cyberthreat"},message:'Use "%s" instead of "%s" (Microsoft).',link:$e,severity:"error",ignoreCase:!0,wordBoundary:!0}),e["microsoft/no-derogatory-slang"]=n({tokens:["\\bpimp\\b","\\bbitch\\b","\\bspirit animal\\b"],message:'Avoid the derogatory or culturally appropriative term "%s" (Microsoft).',link:R,severity:"error",ignoreCase:!0}),e["microsoft/racial-ethnic-capitalization"]=o({pairs:{asian:"Asian","black and african american":"Black and African American","hispanic and latinx":"Hispanic and Latinx","native american":"Native American","alaska native":"Alaska Native","native hawaiian":"Native Hawaiian","pacific islander":"Pacific Islander","indigenous peoples":"Indigenous Peoples"},message:'Use title-style capitalization: "%s" instead of "%s" (Microsoft).',link:R,severity:"error",ignoreCase:!1,wordBoundary:!0}),e["microsoft/accessibility-terms"]=n({tokens:["\\bcrippled\\b","\\bhandicapped\\b","\\bthe handicapped\\b","\\bpeople with handicaps\\b","\\bslow learner\\b","\\bmentally handicapped\\b","\\bdifferently abled\\b","\\bspecial needs\\b","\\baffected by\\b","\\bstricken with\\b","\\bsuffers from\\b","\\ba victim of\\b","\\bsight-impaired\\b","\\bvision-impaired\\b","\\bhearing-impaired\\b","\\bnon-verbal\\b","\\bmaimed\\b","\\bmissing a limb\\b","\\bbirth defect\\b","\\bSpecial Ed person\\b","\\bnormal person\\b","\\bhealthy person\\b","\\bAsperger['\u2019]s\\b","\\bdumb\\b","\\b(?:is|was|are|were|being|been)\\s+mute\\b","\\bdeaf and mute\\b","\\bdeaf-mute\\b","\\blame\\b","\\bstupid\\b","\\ban epileptic\\b(?!\\s+(?:seizure|episode|fit|attack|event))"],message:'Use people-first language instead of "%s" \u2014 see the accessibility term collection (Microsoft).',link:je,severity:"error",ignoreCase:!0}),e["microsoft/spelling-hyphenation"]=o({pairs:{"\\be-?mail\\b(?<!email)":"email","\\bdata ?base\\b(?<!database)":"database","\\bend ?point\\b(?<!endpoint)":"endpoint","\\bweb ?site\\b(?<!website)":"website","\\bweb ?page\\b(?<!webpage)":"webpage","\\bwork ?station\\b(?<!workstation)":"workstation","\\bscreen ?shot\\b(?<!screenshot)":"screenshot","\\btask ?bar\\b(?<!taskbar)":"taskbar","\\bname ?space\\b(?<!namespace)":"namespace","\\bplug-in\\b":"plugin","\\becommerce\\b":"e-commerce","\\belearning\\b":"e-learning","\\bebook\\b":"e-book","\\bcyber-security\\b":"cybersecurity","\\bco-author\\b":"coauthor","\\bdial ?up\\b":"dial-up","\\bread only\\b":"read-only","\\bcontext sensitive\\b":"context-sensitive","\\bsingle sign ?on\\b":"single sign-on","\\bmulti-factor\\b":"multifactor","\\bmulti-cloud\\b":"multicloud","\\bmulti-tenant\\b":"multitenant","\\bwell-being\\b":"wellbeing","\\btool ?tip\\b(?<!tooltip)":"tooltip","\\bimbed\\b":"embed"},message:'Microsoft style spells this "%s", not "%s".',link:a+"e/email",severity:"error",ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/tooltip-capitalization"]=o({pairs:{ToolTip:"tooltip"},message:'Use "%s", not "%s" (Microsoft: tooltip is one word, lowercase).',link:a+"t/tooltip",severity:"error",ignoreCase:!1,wordBoundary:!0}),e["microsoft/az-case-only"]=o({pairs:{Internet:"internet",Intranet:"intranet",Extranet:"extranet",Euro:"euro",WWW:"www",Registry:"registry",Spam:"spam"},message:'Use "%s" instead of "%s" (Microsoft): rewrite, this fix would silently no-op.',link:a+"i/internet-intranet-extranet",severity:"error",fix:!1,ignoreCase:!1,wordBoundary:!0}),e["microsoft/az-case-fixable"]=o({pairs:{"Big Data":"big data","Dark Mode":"dark mode",darkmode:"dark mode",Devops:"DevOps",devops:"DevOps",bluetooth:"Bluetooth",Javascript:"JavaScript",javascript:"JavaScript"},message:'Use "%s" instead of "%s" (Microsoft).',link:a+"i/internet-intranet-extranet",severity:"error",ignoreCase:!1,wordBoundary:!0}),e["microsoft/az-case-fixable-detect"]=o({pairs:{boolean:"Boolean"},message:'Use "%s" instead of "%s" (Microsoft) in ordinary prose -- but lowercase "boolean" is correct and expected when naming the OpenAPI/JSON Schema type.',link:a+"i/internet-intranet-extranet",severity:"error",fix:!1,ignoreCase:!1,wordBoundary:!0}),e["microsoft/world-wide-web"]=o({pairs:{"World Wide Web":"web"},message:'Use "%s" instead of "%s" (Microsoft).',link:a+"i/internet-intranet-extranet",severity:"warn",fix:!1,ignoreCase:!1,wordBoundary:!0}),e["microsoft/az-verb-able"]=o({pairs:{blacklist:"block list",whitelist:"allow list",allowlist:"allow list",blocklist:"block list"},message:'Rewrite "%s" using "%s" (Microsoft): a direct substitution may be ungrammatical.',link:a+"b/blacklist",severity:"error",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-state-failure"]=o({pairs:{"\\bhangs\\b(?!\\s+(?:on|up|around|out|together|of|in|tight|loose|fire|from|over)\\b)":"stops responding","\\bhang\\b(?!\\s+(?:on|up|around|out|together|of|in|tight|loose|fire|from|over)\\b)":"stop responding"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"h/hang",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/az-state-failure-detect"]=n({tokens:["\\bcrash\\b(?!\\s+(?:dump|report|log|course|test|site)\\b)","\\block up\\b"],message:'Microsoft style: "%s" needs a context-specific replacement (fail for hardware, stop responding for programs).',link:a+"c/crash",severity:"error",ignoreCase:!0}),e["microsoft/az-lifecycle-verbs"]=o({pairs:{"\\bcarry out\\b":"run","(?<!\\b(?:the|an|no|emergency)\\s)\\bexit\\b(?!\\s+(?:code|status|button|sign|strategy|interview|poll|ramp|velocity|row)\\b)":"close","(?<!\\b(?:product|software|game|website|app|feature|rocket|mission)\\s)\\blaunch\\b(?!\\s+(?:date|event|party|window|site|pad|day|plan|schedule|announcement)\\b)":"open","\\bboot\\b(?!\\s+(?:disk|sector|loader|sequence|process|time|options?|record|partition|menu|order|camera)\\b)":"turn on","\\bundelete\\b":"restore","\\binstantiate\\b":"create an instance of","\\biconize\\b":"minimize"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"b/boot",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/az-lifecycle-verbs-detect"]=n({tokens:["\\bquit\\b","\\bdeinstall\\b","\\breinitialize\\b"],message:'Microsoft style: "%s" needs a context-specific replacement or carries a conditional exception \u2014 see the a-z word list before rewriting.',link:a+"q/quit",severity:"error",ignoreCase:!0}),e["microsoft/az-judgment-words"]=o({pairs:{"\\bfinalize\\b":"finish","\\bbug fix\\b":"software update","\\bbeta\\b(?!\\s+(?:distribution|function|coefficient|particle|blocker|decay)\\b)":"preview","\\bEULA\\b":"license terms","\\bEnd-User License Agreement\\b":"license terms"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"f/finalize",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/actionable"]=n({tokens:["\\bactionable\\b"],message:'Avoid "%s"; rewrite using "that you can act on" (Microsoft).',link:a+"a/actionable",ignoreCase:!0}),e["microsoft/az-geography"]=o({pairs:{"\\bFar East\\b":"East Asia"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"f/far-east",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/usa-abbreviation"]=o({pairs:{"\\bUSA\\b":"US","\\bU\\.S\\.A\\.":"US","\\bU\\.S\\.":"US"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"f/far-east",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/az-geography-detect"]=n({tokens:["\\bthank you\\b"],message:'Microsoft style: prefer "thanks" over "%s" in most content \u2014 see the a-z word list for the formal/serious-content exception.',link:a+"t/thanks-thank-you",severity:"error",ignoreCase:!0}),e["microsoft/az-direction-layout"]=o({pairs:{"top left":"upper left","top right":"upper right","far-left":"leftmost","far-right":"rightmost","left-justified":"left-aligned","right-justified":"right-aligned","ragged right":"left-aligned"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"f/far-left-far-right",severity:"warn",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-direction-layout-detect"]=n({tokens:["\\bbottom left\\b","\\bbottom right\\b"],message:'Microsoft style: use "lower left"/"lower right" instead of "%s" \u2014 except when discussing the BottomLeft/BottomRight API properties (Microsoft).',link:a+"b/bottom-left-bottom-right",severity:"error",ignoreCase:!0}),e["microsoft/left-hand-right-hand"]=o({pairs:{"left-hand":"left","right-hand":"right"},message:'Rewrite "%s" using "%s" (Microsoft): no replacement is stated for the modifier sense.',link:a+"l/left-leftmost-left-hand",severity:"error",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-ui-nouns"]=o({pairs:{"\\bblade\\b(?!\\s+(?:server|servers|enclosure|chassis|centers?|centres?)\\b)":"pane","\\binsertion point\\b":"pointer"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"b/blade",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/az-ui-nouns-detect"]=n({tokens:["\\bhierarchical menu\\b","\\bsecondary menu\\b","\\brunning head\\b","\\brunning foot\\b"],message:'Microsoft style: "%s" carries a conditional exception \u2014 see the a-z word list before rewriting.',link:a+"h/hierarchical-menu",severity:"error",ignoreCase:!0}),e["microsoft/az-typography"]=o({pairs:{"\\btypeface\\b":"font","\\btype style\\b":"font style","\\bbolded\\b":"bold","\\bboldface\\b":"bold","\\broman\\b(?!\\s+(?:numeral|numerals|empire|alphabet|calendar|law|catholic|republic|mythology|god|gods|ruins?|coins?|holiday|road|roads|bath|baths|army|legion|forum|senate|aqueduct)\\b)":"regular type"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"r/roman",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/italic-as-noun"]=n({tokens:["\\bitalics\\b","\\bitalicized\\b"],message:'Avoid "%s"; rewrite using "italic" as an adjective, e.g. "italic text" (Microsoft).',link:a+"i/italic",severity:"error",ignoreCase:!0}),e["microsoft/az-filesystem"]=o({pairs:{"child folder":"subfolder","\\bhome directory\\b(?!\\s+for\\s+(?:its|the|your|his|her|their)?\\s*config)":"root directory","graphics adapter":"video card","display adapter":"video card","video adapter":"video card","graphics card":"video card","display driver":"video driver","graphics driver":"video driver","remote drive":"network drive"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"c/child-folder",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!0}),e["microsoft/az-grammar-usage"]=o({pairs:{towards:"toward",upwards:"upward",afterwards:"afterward",useable:"usable",moveable:"movable",broadcasted:"broadcast",matrixes:"matrices",appendixes:"appendices",zeroes:"zeros"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"a/as-well-as",severity:"error",ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-grammar-usage-substitutions"]=o({pairs:{"whether or not":"whether","center around":"center on","different to":"different from","inside of":"inside","outside of":"outside","off of":"off",administrate:"administer",alphabetic:"alphabetical",mathematic:"mathematical",numerical:"numeric"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"a/as-well-as",severity:"warn",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-grammar-usage-detect"]=n({tokens:["\\bas well as\\b","\\bor greater\\b","\\bor higher\\b","\\bor lower\\b"],message:'Microsoft style: "%s" needs a context-specific rewrite, not a blind substitution \u2014 "as well as" is a caution against treating it as a synonym for "and", not an instruction to replace it; "or greater/higher/lower" only becomes "or later/earlier" when identifying program or app version numbers, not general magnitude (Microsoft).',link:a+"a/as-well-as",severity:"error",ignoreCase:!0}),e["microsoft/az-abbreviations-names"]=o({pairs:{defrag:"defragment",okay:"OK"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"h/hexadecimal",severity:"error",ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-abbreviations-substitutions"]=o({pairs:{hex:"hexadecimal","(?<!\\bon\\s)\\bspec\\b":"specification",MSFT:"Microsoft",alright:"OK","all right":"OK"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"h/hexadecimal",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!0}),e["microsoft/az-abbreviations-names-detect"]=n({tokens:["\\bpound sign\\b"],message:'Microsoft style: use "number sign" instead of "%s" \u2014 except for the literal phone-keypad key (Microsoft).',link:a+"n/number-sign",severity:"error",ignoreCase:!0}),e["microsoft/az-navigation"]=o({pairs:{"\\bhot link\\b":"link"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"v/visit",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/az-navigation-detect"]=n({tokens:["\\bvisit\\b(?!\\s+(?:count|counts|duration|frequency|history|log|data)\\b)"],message:'Microsoft style: use "go to" instead of "%s" in most cases \u2014 but "visit" is OK for a suggestion/browsing tone (Microsoft); see the a-z word list before rewriting.',link:a+"v/visit",severity:"error",ignoreCase:!0}),e["microsoft/bookmark-favorite"]=o({pairs:{bookmark:"favorite"},message:'Rewrite "%s" using "%s" (Microsoft): a direct substitution may be ungrammatical.',link:a+"b/bookmark",severity:"error",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/az-no-replacement"]=n({tokens:["\\bblack box\\b","\\bdot-com\\b","\\bedutainment\\b","\\bhoneypot\\b","\\bbackbone\\b","\\bwordwrap\\b","\\bnatural user interface\\b","\\bNUI\\b","\\bsubaddress\\b"],message:`Don't use "%s" (Microsoft); be specific instead.`,link:a+"b/black-box",severity:"error",ignoreCase:!0}),e["microsoft/az-real-replacements"]=o({pairs:{"\\bfriendly name\\b":"display name","\\bprint queue\\b":"list of documents","\\bprinter queue\\b":"list of documents","\\bdata record\\b":"record","\\be-form\\b":"form","\\bupsize\\b":"scale up","\\bworking memory\\b":"available memory","\\bsoft copy\\b":"file","(?<!\\b(?:a|an|the|this|that|your|my|its|his|her|their|our)\\s)\\bprint out\\b(?!\\s+of\\b)":"print","\\bsearch and replace\\b":"find and replace","\\btarget drive\\b":"destination drive","\\btarget file\\b":"destination file"},message:'Microsoft style: use "%s" instead of "%s".',link:a+"f/friendly-name",severity:"warn",fix:!1,ignoreCase:!0,keysAreRegex:!0,wordBoundary:!1}),e["microsoft/no-click"]=o({pairs:{"click on":"select","(?<![\\w-])click(?![a-zA-Z])(?!\\s+(?:count|counts|rate|rates|event|events|tracking|data|metrics?|history|id|ids|per)\\b)":"select","(?<![\\w-])clicks(?![a-zA-Z])(?!\\s+(?:count|counts|rate|rates|event|events|tracking|data|metrics?|history|per)\\b)":"selects","(?<![\\w-])clicking(?![a-zA-Z])":"selecting","(?<![\\w-])clicked(?![a-zA-Z])":"selected"},message:'Use "%s" instead of "%s" (Microsoft: avoid input-specific verbs).',fix:!1,link:Y,ignoreCase:!0,wordBoundary:!1,keysAreRegex:!0}),e["microsoft/press-key-verb"]=n({tokens:["\\b(?:press|hit|strike)\\s+(?:the\\s+)?(?:Enter|Tab|Esc|Escape|Delete|Backspace|spacebar|Ctrl|Shift|Alt)\\b","\\b(?:press|hit|strike)\\s+the\\s+\\S+\\s+key\\b"],message:'Use "select" to describe pressing a key, not "%s" (Microsoft).',link:"https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/h/hit",ignoreCase:!0}),e["microsoft/checkbox-verbs"]=o({pairs:{uncheck:"clear",unmark:"clear",unselect:"clear"},message:'Use "%s" instead of "%s" for checkboxes (Microsoft).',link:Y,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/dialog-terminology"]=o({pairs:{"pop-up window":"dialog","dialog box":"dialog","dialogue box":"dialog"},message:'Use "%s" instead of "%s" (Microsoft).',link:X,fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/mouse-over"]=o({pairs:{"mouse over":"hover over"},message:'Use "%s" instead of "%s" (Microsoft).',link:"https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/mouse-mouse-interaction-terms",fix:!1,ignoreCase:!0,wordBoundary:!0}),e["microsoft/keyboard-shortcut-plus-spacing"]=n({tokens:["\\b(?:Ctrl|Alt|Shift|Cmd)\\s+\\+\\s+"],message:`Don't put a space around "+" in a keyboard shortcut (Microsoft): "%s"`,link:X}),e["microsoft/sign-in-sign-out"]=o({pairs:{"log into":"sign in to","log onto":"sign in to","log in":"sign in",login:"sign in","log on":"sign in",logon:"sign in","log off":"sign out","log out":"sign out",logout:"sign out","sign into":"sign in to",signin:"sign in","sign off":"sign out"},message:'Rewrite "%s" as "%s" (Microsoft): "login"/"logon" as a noun needs a sentence rewrite.',link:"https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/l/log-on-log-off",fix:!1,ignoreCase:!0,wordBoundary:!0});for(let r of Object.values(e))r.fix=!1;return e}var Ke=["no-trailing-spaces","no-hard-tabs","single-trailing-newline","no-reversed-links","no-empty-links"];function ee(){return A(Ke)}var se="https://digital.gov/guides/plain-language/writing/clear-short",x="https://digital.gov/guides/plain-language/writing/style",He="https://digital.gov/guides/writing-understanding/familiar-terms",oe="https://digital.gov/guides/plain-language/principles/short-simple",Ze="https://digital.gov/guides/plain-language/principles/avoid-jargon";function p(e){return{severity:"warn",scope:e.scope??"summary",link:e.link,message:e.message,assertions:{swap:{pairs:e.pairs,ignoreCase:e.ignoreCase,wordBoundary:e.wordBoundary}}}}function te(e){return{severity:"warn",scope:e.scope??"summary",link:e.link,message:e.message,assertions:{pattern:{tokens:e.tokens,ignoreCase:e.ignoreCase}}}}function ie(){let e={};e["plain-language/paragraph-max-words"]={severity:"error",scope:"paragraph",link:se,message:"Paragraph is %s %s long; federal plain-language guidance says paragraphs should never exceed 250 words (max %s).",assertions:{length:{unit:"words",max:250}}},e["plain-language/paragraph-sentence-count"]={severity:"warn",scope:"paragraph",link:se,message:"Paragraph is %s %s long; federal plain-language guidance recommends at most 8 (roughly 150 words) (max %s).",assertions:{length:{unit:"sentences",max:8}}},e["plain-language/filler-phrases"]=p({pairs:{"a number of":"several, a few, or many","a sufficient number of":"enough","at this point in time":"now","is able to":"can","on a monthly basis":"monthly","on the ground that":"because"},message:'Prefer "%s" over the padded phrase "%s" (federal plain-language guidance).',link:x,ignoreCase:!0,wordBoundary:!0}),e["plain-language/an-amount-of"]=te({tokens:["\\ban amount of\\b"],message:'Avoid the padded phrase "%s"; state the amount directly (federal plain-language guidance).',link:x,ignoreCase:!0}),e["plain-language/excess-intensifiers"]=te({tokens:["\\babsolutely\\b","\\bactually\\b","\\bcompletely\\b","\\breally\\b","\\bquite\\b","\\btotally\\b","\\bvery\\b"],message:'Consider cutting the intensifier "%s" (federal plain-language guidance).',link:oe,ignoreCase:!0}),e["plain-language/complex-words"]=p({pairs:{addressee:"you",assist:"help",assistance:"help",commence:"begin","in order that":"for","in the amount of":"for","in the event of":"if",promulgate:"issue"},message:'Use "%s" instead of "%s" (federal plain-language guidance).',link:He,ignoreCase:!0,wordBoundary:!0}),e["plain-language/redundant-pairs"]=p({pairs:{"due and payable":"due","cease and desist":"stop","knowledge and information":"knowledge or information"},message:'Use "%s" instead of the redundant pair "%s" (federal plain-language guidance).',link:oe,ignoreCase:!0,wordBoundary:!0}),e["plain-language/double-negative-phrases"]=p({pairs:{"has not yet attained":"is under","no fewer than":"at least"},message:'Use "%s" instead of the double negative "%s" (federal plain-language guidance).',link:x,ignoreCase:!0,wordBoundary:!0}),e["plain-language/double-negative-patterns"]={severity:"warn",scope:"sentence",link:x,message:'Avoid the double-negative construction in "%s"; state it positively (federal plain-language guidance).',assertions:{pattern:{tokens:["\\bmay not\\b(?:(?!\\buntil\\b)[\\s\\S])*?\\buntil\\b","\\bis not\\b(?:(?!\\bunless\\b)[\\s\\S])*?\\bunless\\b"],ignoreCase:!0}}},e["plain-language/jargon-terms"]=p({pairs:{"Riverine avifauna":"River birds","Involuntarily undomiciled":"Unhoused"},message:'Use "%s" instead of the jargon term "%s" (federal plain-language guidance).',link:Ze,ignoreCase:!0,wordBoundary:!0});for(let r of Object.values(e))r.fix=!1;return e}var ae="summary";function ne(){return{"recheck/repetition":{severity:"warn",scope:ae,message:'Repeated word "%s".',assertions:{repetition:{}}},"recheck/consistency":{severity:"warn",scope:ae,message:'Inconsistent spelling: "%s" conflicts with first-seen "%s".',assertions:{consistency:{either:{behavior:"behaviour",color:"colour",license:"licence",organize:"organise"},ignoreCase:!0}}},"recheck/capitalization":{severity:"warn",scope:"heading",fix:!1,message:'"%s" should use %s capitalization.',assertions:{capitalization:{match:"$sentence"}}}}}function re(){let e={},r="https://www.asd-ste100.org";e["technical-english/sentence-length"]={severity:"warn",scope:"sentence",link:r,message:"Sentence is %s %s long; ASD-STE100 recommends at most 20 words in procedures and 25 in descriptive text (max %s).",assertions:{length:{unit:"words",max:25}}},e["technical-english/paragraph-length"]={severity:"warn",scope:"paragraph",link:r,message:"Paragraph is %s %s long; ASD-STE100 recommends at most 6 sentences per paragraph (max %s).",assertions:{length:{unit:"sentences",max:6}}},e["technical-english/passive-voice"]={severity:"info",scope:"sentence",link:r,message:'Prefer the active voice; ASD-STE100 recommends it ("%s").',assertions:{pattern:{ignoreCase:!0,tokens:["\\b(?:is|are|was|were|be|been|being)\\s+(?:\\w+ed|begun|broken|brought|built|chosen|done|drawn|driven|found|given|held|hidden|kept|known|left|lost|made|meant|paid|put|read|said|seen|sent|set|shown|taken|told|thrown|understood|written)\\b"]}}};for(let g of Object.values(e))g.fix=!1;return e}var le={"recheck/markdown":u(),"recheck/markdown-relaxed":F(),"recheck/minimal":ee(),"recheck/prose":ne(),"recheck/markdoc":Z(),"recheck/google":L(),"recheck/microsoft":J(),"recheck/inclusive-language":H(),"recheck/plain-language":ie(),"recheck/technical-english":re(),"recheck/api-descriptions":I()};var Fe="recheck/",vs={id:"recheck",configs:Object.fromEntries(Object.entries(le).map(([e,r])=>[e.slice(Fe.length),{recheck:{rules:r}}]))};export{le as a,vs as b};
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a,b}from"./P7A7BCIN.js";import"./3I7XLHPY.js";import"./M4YE5ALG.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";export{a as bundleTelemetry,b as handleBundle};
7
+ import{a,b}from"./X5U3XCIW.js";import"./N6VRECSO.js";import"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";export{a as bundleTelemetry,b as handleBundle};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __pathDirname } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ var __filename = __fileURLToPath(import.meta.url);
6
+ var __dirname = __pathDirname(__filename);
7
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"./3TRGOJ74.js";import"./LRUXN6H5.js";import"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";export{j as InvalidReuniteUrlError,f as REUNITE_URLS,l as RedoclyOAuthClient,k as RedoclyOAuthDeviceFlow,c as ReuniteApi,b as ReuniteApiClient,a as ReuniteApiError,o as collectFilesToPush,u as evaluatePluginsFromCode,r as fetchRemoteScorecardAndPlugins,e as getApiKeys,g as getDomain,d as getMostUrgentSunsetWarning,p as getPushStatus,h as getReuniteUrl,t as getTarget,v as isAllowedScorecardProjectUrl,i as isValidReuniteUrl,n as pushFiles,s as resolveConfigForTarget,m as resolveProjectRef,w as validateScorecard,q as waitForDeployment};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{d as k,h as v}from"./3I7XLHPY.js";import{A as S,B as y,I as f,J as w,S as d,W as l,X as n,Z as x,_ as h,aa as O,ca as g,fa as b,q as u,v as p,z as A}from"./M4YE5ALG.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{performance as F}from"perf_hooks";function I(o){let t=Object.fromEntries(Object.entries(o).map(([s,{metric:e,total:r,counts:a}])=>[s,{metric:e,total:r,counts:a}]));n.output(JSON.stringify(t,null,2))}function P(o){let t=`| Feature | Count |
7
+ import{b as k,f as v}from"./N6VRECSO.js";import{K as A,L as S,M as y,T as f,U as w,ba as d,fa as l,ga as n,ia as x,ja as h,ka as O,ma as g,pa as b,q as u,v as p}from"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./RFWIIJFG.js";import{performance as F}from"perf_hooks";function I(o){let t=Object.fromEntries(Object.entries(o).map(([s,{metric:e,total:r,counts:a}])=>[s,{metric:e,total:r,counts:a}]));n.output(JSON.stringify(t,null,2))}function P(o){let t=`| Feature | Count |
8
8
  | --- | --- |
9
9
  `,s=[];for(let{metric:e,total:r,counts:a}of Object.values(o)){t+=`| ${e} | ${r} |
10
10
  `;let c=Object.entries(a??{});c.length&&s.push(`
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{b as S,c as E,d as w,f as A,g as M,h as q,i as D,j as B,k as F}from"./JMFIKCPX.js";import{g as b,i as T}from"./VIPV4IEH.js";import{a as f,c as R,d as v,e as k}from"./65AQJO4M.js";import{d as I,f as N,h as P,i as j,m as C}from"./LD5MEXEL.js";import{join as Y}from"node:path";var y="// Generated by @redocly/client-generator \u2014 do not edit by hand.\n// Source: OpenAPI description. Re-run `redocly generate-client` to update.";function $(e){return e.filter(t=>t.length>0).join(`
7
+ import{b as S,c as E,d as w,f as A,g as M,h as q,i as D,j as B,k as F}from"./6XXDGMQI.js";import{g as b,i as T}from"./M4JX2FBY.js";import{a as f,c as R,d as v,e as k}from"./NRU2WFMW.js";import{d as I,f as N,h as P,i as j,m as C}from"./LD5MEXEL.js";import{join as Y}from"node:path";var y="// Generated by @redocly/client-generator \u2014 do not edit by hand.\n// Source: OpenAPI description. Re-run `redocly generate-client` to update.";function $(e){return e.filter(t=>t.length>0).join(`
8
8
 
9
9
  `)+`
10
10
  `}function O(e){let t=["/**",` * ${j(`${e.title} (v${e.version})`)}`];if(e.description)for(let n of C(j(e.description)))t.push(` * ${n}`.replace(/ +$/,""));return t.push(" */"),t.join(`
@@ -4,4 +4,4 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a,b,c,d,e}from"./3QGJWJKQ.js";import"./2U6O26CV.js";import"./VIPV4IEH.js";import"./65AQJO4M.js";import"./WZXA5XPB.js";import"./M4YE5ALG.js";import"./NEWT5A6S.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{e as phpDocs,c as phpGenerator,d as phpSample,a as phpType,b as renderPhpModels};
7
+ import{a,b,c,d,e}from"./ABUS6H76.js";import"./2U6O26CV.js";import"./M4JX2FBY.js";import"./NRU2WFMW.js";import"./WZXA5XPB.js";import"./MT5H2R3P.js";import"./NEWT5A6S.js";import"./UW4UC7ZI.js";import"./RFWIIJFG.js";export{e as phpDocs,c as phpGenerator,d as phpSample,a as phpType,b as renderPhpModels};
@@ -4,7 +4,7 @@ import { dirname as __pathDirname } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  var __filename = __fileURLToPath(import.meta.url);
6
6
  var __dirname = __pathDirname(__filename);
7
- import{a as P,b as y,c as $}from"./YEACSN2C.js";import{X as h,na as x}from"./M4YE5ALG.js";function N(t){let e=t.trim(),n=e.match(/^```(?:ya?ml|json)?\s*\n([\s\S]*?)\n```$/);return n?n[1]:e}async function O(t,e){let r=(await x({source:t,config:e})).filter(o=>o.severity==="error");if(r.length>0){let o=r.slice(0,5).map(s=>`${s.ruleId}: ${s.message}`).join("; ");throw new Error(`the result has ${r.length} validation problem(s): ${o}`)}}import{spawn as T}from"node:child_process";import{mkdtemp as v}from"node:fs/promises";import{tmpdir as R}from"node:os";import S from"node:path";var I=3e5,a=class extends Error{},C;function L(){return C??=v(S.join(R(),"redocly-ai-")),C}async function w(t,e,n,r){let o=await L();return new Promise((s,u)=>{let i=T(t,e,{stdio:["pipe","pipe","pipe"],cwd:o,env:{...process.env,...r}}),l="",f="",g=!1,d=setTimeout(()=>{g=!0,i.kill("SIGKILL")},I);i.stdout.on("data",c=>{l+=c.toString()}),i.stderr.on("data",c=>{f+=c.toString()}),i.on("error",c=>{if(clearTimeout(d),c.code==="ENOENT"){u(new a(`Could not find the "${t}" CLI on PATH. Is it installed?`));return}u(c)}),i.on("close",c=>{if(clearTimeout(d),g){u(new Error(`The "${t}" CLI did not respond within ${I/1e3} seconds.`));return}s({stdout:l,stderr:f,code:c})}),i.stdin.on("error",()=>{}),i.stdin.end(n)})}async function A(t){let e=["-p","--output-format","text","--tools","","--strict-mcp-config","--setting-sources","","--no-session-persistence","--append-system-prompt",t.system];t.model&&e.push("--model",t.model);let{stdout:n,stderr:r,code:o}=await w("claude",e,t.user,{CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1"});if(o!==0)throw new Error(`claude CLI exited with code ${o}: ${r.trim()||n.trim()}`);if(!n.trim())throw new Error("claude CLI returned no output.");return{text:n}}async function b(t){let e=["exec","--skip-git-repo-check","--sandbox","read-only","-c","mcp_servers={}","-c","project_doc_max_bytes=0"];t.model&&e.push("--model",t.model),e.push("-");let n=`${t.system}
7
+ import{a as P,b as y,c as $}from"./TAEOWXJJ.js";import{ga as h,xa as x}from"./MT5H2R3P.js";function N(t){let e=t.trim(),n=e.match(/^```(?:ya?ml|json)?\s*\n([\s\S]*?)\n```$/);return n?n[1]:e}async function O(t,e){let r=(await x({source:t,config:e})).filter(o=>o.severity==="error");if(r.length>0){let o=r.slice(0,5).map(s=>`${s.ruleId}: ${s.message}`).join("; ");throw new Error(`the result has ${r.length} validation problem(s): ${o}`)}}import{spawn as T}from"node:child_process";import{mkdtemp as v}from"node:fs/promises";import{tmpdir as R}from"node:os";import S from"node:path";var I=3e5,a=class extends Error{},C;function L(){return C??=v(S.join(R(),"redocly-ai-")),C}async function w(t,e,n,r){let o=await L();return new Promise((s,u)=>{let i=T(t,e,{stdio:["pipe","pipe","pipe"],cwd:o,env:{...process.env,...r}}),l="",f="",g=!1,d=setTimeout(()=>{g=!0,i.kill("SIGKILL")},I);i.stdout.on("data",c=>{l+=c.toString()}),i.stderr.on("data",c=>{f+=c.toString()}),i.on("error",c=>{if(clearTimeout(d),c.code==="ENOENT"){u(new a(`Could not find the "${t}" CLI on PATH. Is it installed?`));return}u(c)}),i.on("close",c=>{if(clearTimeout(d),g){u(new Error(`The "${t}" CLI did not respond within ${I/1e3} seconds.`));return}s({stdout:l,stderr:f,code:c})}),i.stdin.on("error",()=>{}),i.stdin.end(n)})}async function A(t){let e=["-p","--output-format","text","--tools","","--strict-mcp-config","--setting-sources","","--no-session-persistence","--append-system-prompt",t.system];t.model&&e.push("--model",t.model);let{stdout:n,stderr:r,code:o}=await w("claude",e,t.user,{CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1"});if(o!==0)throw new Error(`claude CLI exited with code ${o}: ${r.trim()||n.trim()}`);if(!n.trim())throw new Error("claude CLI returned no output.");return{text:n}}async function b(t){let e=["exec","--skip-git-repo-check","--sandbox","read-only","-c","mcp_servers={}","-c","project_doc_max_bytes=0"];t.model&&e.push("--model",t.model),e.push("-");let n=`${t.system}
8
8
 
9
9
  ${t.user}`,{stdout:r,stderr:o,code:s}=await w("codex",e,n);if(s!==0)throw new Error(`codex CLI exited with code ${s}: ${o.trim()||r.trim()}`);if(!r.trim())throw new Error("codex CLI returned no output.");return{text:r}}async function _(t){let e=["-p","--output-format","text","--trust"];t.model&&e.push("--model",t.model);let n=`${t.system}
10
10
 
@@ -8,4 +8,4 @@ import{a as f,m as u}from"./UW4UC7ZI.js";function m(e,t){let n=t??{},i=e.specNam
8
8
  `))e.line(c);e.line("```"),e.blank()}let a=[...t.pathParams,...t.queryParams,...t.headerParams];a.length>0&&T(e,a),t.requestBody!==void 0&&e.line(`Body: \`${t.requestBody.contentType}\`${t.requestBody.required?", required":", optional"}, of type ${o(t.requestBody.schema)}.`);let r=t.successResponses[0];e.line(r===void 0?"Returns no content.":`Returns \`${r.contentType}\`, of type ${o(r.schema)}.`),(n.paginated!==void 0?n.paginated.has(t.name):m(t,n.pagination)!==void 0)&&e.line("This operation is paginated, so the SDK gives it page and item iterators."),t.successResponses.some(c=>c.contentType==="text/event-stream")&&e.line("This operation streams server-sent events, so the SDK iterates the events."),P(t)&&e.line("This operation returns binary content."),e.blank()}function v(e,t){let n=new f;if(t.frontmatter&&(n.line("---"),n.line(`title: ${t.title}`),n.line("---"),n.blank()),n.line(`# ${t.title}`),n.blank(),n.line(`Generated reference for the ${t.language.label} SDK, produced from the API description by \`redocly generate-client\`.`),n.line("Re-run generation to update it \u2014 this file is not hand-edited."),n.blank(),n.line(t.language.requires),n.blank(),n.line("## Authentication"),n.blank(),e.securitySchemes.length===0)n.line("The description declares no security schemes.");else{n.line("The description declares these schemes, which you pass to the client:"),n.blank(),n.line("| Scheme | Kind | Sent as |"),n.line("| ------ | ---- | ------- |");for(let r of e.securitySchemes){let s=r.kind==="bearer"?"`Authorization: Bearer <token>`":r.kind==="basic"?"`Authorization: Basic <base64>`":r.kind==="apiKeyHeader"?`the \`${r.headerName}\` header`:r.kind==="apiKeyQuery"?`the \`${r.paramName}\` query parameter`:`the \`${r.cookieName}\` cookie`;n.line(`| \`${r.key}\` | ${r.kind} | ${s} |`)}}n.blank();let i=e.services.flatMap(r=>r.operations),a=[...new Set(i.map(r=>r.tags[0]))];for(let r of a){n.line(r===void 0?"## Operations":`## ${r}`),n.blank();for(let s of i.filter(c=>c.tags[0]===r))C(n,s,t)}return n.toString().replace(/\n{3,}/g,`
9
9
 
10
10
  `).trimEnd()+`
11
- `}var ee=["Printer","casing","identifierFor","uniqueIdentifiers","RESERVED_WORDS","flattenAllOf","deref","discriminatorCases","jsonSuccessSchema","sseResponse","isMultipartBody","isBinaryContentType","serverUrlParts","securityRequirements","paginationItemSchema","isNullable","unwrapNullable","enumValues","docText","headerCoerceType","schemaAtPointer","paginationRuleFor","renderReferencePage","NotSupportedError"];function E(e){return e}function w(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join("-")}function A(e){return e.replace(/[^A-Za-z0-9]+/g,"_").replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}function q(e,t){let n={...e};for(let[i,a]of Object.entries(t))a!==void 0&&(n[i]=a);return n}function de(e){return e}async function ke(e){return(await import("./OR3KBRCI.js")).generateClient(e)}export{m as a,h as b,x as c,k as d,d as e,b as f,S as g,$ as h,v as i,ee as j,E as k,w as l,A as m,q as n,de as o,ke as p};
11
+ `}var ee=["Printer","casing","identifierFor","uniqueIdentifiers","RESERVED_WORDS","flattenAllOf","deref","discriminatorCases","jsonSuccessSchema","sseResponse","isMultipartBody","isBinaryContentType","serverUrlParts","securityRequirements","paginationItemSchema","isNullable","unwrapNullable","enumValues","docText","headerCoerceType","schemaAtPointer","paginationRuleFor","renderReferencePage","NotSupportedError"];function E(e){return e}function w(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join("-")}function A(e){return e.replace(/[^A-Za-z0-9]+/g,"_").replace(/([a-z0-9])([A-Z])/g,"$1_$2").toUpperCase()}function q(e,t){let n={...e};for(let[i,a]of Object.entries(t))a!==void 0&&(n[i]=a);return n}function de(e){return e}async function ke(e){return(await import("./PWVCTNVT.js")).generateClient(e)}export{m as a,h as b,x as c,k as d,d as e,b as f,S as g,$ as h,v as i,ee as j,E as k,w as l,A as m,q as n,de as o,ke as p};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __pathDirname } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ var __filename = __fileURLToPath(import.meta.url);
6
+ var __dirname = __pathDirname(__filename);
7
+ import"./RFWIIJFG.js";import i from"node:fs/promises";var t=await i.readFile(new URL("index.aff",import.meta.url)),a=await i.readFile(new URL("index.dic",import.meta.url)),e={aff:t,dic:a},o=e;export{o as default};