open-agreements 0.7.5 → 0.7.6

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 (333) hide show
  1. package/README.de.md +300 -255
  2. package/README.es.md +301 -254
  3. package/README.md +389 -95
  4. package/README.pt-br.md +301 -254
  5. package/README.template.md +333 -0
  6. package/README.zh.md +300 -253
  7. package/SECURITY.md +34 -0
  8. package/content/recipes/nvca-stock-purchase-agreement/README.md +39 -0
  9. package/content/recipes/nvca-voting-agreement/README.md +43 -0
  10. package/content/templates/bonterms-mutual-nda/README.md +2 -2
  11. package/content/templates/bonterms-mutual-nda/metadata.yaml +5 -11
  12. package/content/templates/bonterms-professional-services-agreement/README.md +2 -2
  13. package/content/templates/bonterms-professional-services-agreement/metadata.yaml +2 -2
  14. package/content/templates/closing-checklist/template.docx +0 -0
  15. package/content/templates/closing-checklist/template.md +30 -0
  16. package/content/templates/common-paper-ai-addendum/template.docx +0 -0
  17. package/content/templates/common-paper-ai-addendum-in-app/template.docx +0 -0
  18. package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
  19. package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  20. package/content/templates/common-paper-mutual-nda/README.md +28 -0
  21. package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
  22. package/content/templates/common-paper-term-sheet/template.docx +0 -0
  23. package/content/templates/openagreements-board-consent-safe/.template.generated.json +74 -0
  24. package/content/templates/openagreements-board-consent-safe/README.md +61 -0
  25. package/content/templates/openagreements-board-consent-safe/metadata.yaml +53 -0
  26. package/content/templates/openagreements-board-consent-safe/reference-source.docx +0 -0
  27. package/content/templates/openagreements-board-consent-safe/template.docx +0 -0
  28. package/content/templates/openagreements-board-consent-safe/template.md +66 -0
  29. package/content/templates/openagreements-due-diligence-request-list/README.md +68 -0
  30. package/content/templates/openagreements-due-diligence-request-list/metadata.yaml +300 -0
  31. package/content/templates/openagreements-due-diligence-request-list/template.docx +0 -0
  32. package/content/templates/openagreements-due-diligence-request-list/template.md +318 -0
  33. package/content/templates/openagreements-employee-ip-inventions-assignment/.template.generated.json +230 -0
  34. package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
  35. package/content/templates/openagreements-employee-ip-inventions-assignment/template.docx +0 -0
  36. package/content/templates/openagreements-employee-ip-inventions-assignment/template.md +96 -35
  37. package/content/templates/openagreements-employment-confidentiality-acknowledgement/README.md +1 -1
  38. package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +2 -2
  39. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.docx +0 -0
  40. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.json +75 -0
  41. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.md +8 -4
  42. package/content/templates/openagreements-employment-offer-letter/.template.generated.json +224 -0
  43. package/content/templates/openagreements-employment-offer-letter/README.md +65 -1
  44. package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
  45. package/content/templates/openagreements-employment-offer-letter/template.docx +0 -0
  46. package/content/templates/openagreements-employment-offer-letter/template.md +70 -30
  47. package/content/templates/openagreements-restrictive-covenant-florida/.template.generated.json +456 -0
  48. package/content/templates/openagreements-restrictive-covenant-florida/README.md +141 -0
  49. package/content/templates/openagreements-restrictive-covenant-florida/metadata.yaml +419 -0
  50. package/content/templates/openagreements-restrictive-covenant-florida/template.docx +0 -0
  51. package/content/templates/openagreements-restrictive-covenant-florida/template.md +233 -0
  52. package/content/templates/openagreements-restrictive-covenant-wyoming/.template.generated.json +399 -0
  53. package/content/templates/openagreements-restrictive-covenant-wyoming/metadata.yaml +69 -12
  54. package/content/templates/openagreements-restrictive-covenant-wyoming/template.docx +0 -0
  55. package/content/templates/openagreements-restrictive-covenant-wyoming/template.md +110 -59
  56. package/content/templates/openagreements-stockholder-consent-safe/.template.generated.json +74 -0
  57. package/content/templates/openagreements-stockholder-consent-safe/README.md +62 -0
  58. package/content/templates/openagreements-stockholder-consent-safe/metadata.yaml +53 -0
  59. package/content/templates/openagreements-stockholder-consent-safe/reference-source.docx +0 -0
  60. package/content/templates/openagreements-stockholder-consent-safe/template.docx +0 -0
  61. package/content/templates/openagreements-stockholder-consent-safe/template.md +62 -0
  62. package/content/templates/working-group-list/template.docx +0 -0
  63. package/content/templates/working-group-list/template.md +18 -0
  64. package/dist/cli/index.js.map +1 -1
  65. package/dist/commands/fill.d.ts +1 -1
  66. package/dist/commands/fill.d.ts.map +1 -1
  67. package/dist/commands/fill.js +4 -1
  68. package/dist/commands/fill.js.map +1 -1
  69. package/dist/commands/list.js +10 -0
  70. package/dist/commands/list.js.map +1 -1
  71. package/dist/commands/recipe.js.map +1 -1
  72. package/dist/core/employment/jurisdiction-rules.js +2 -2
  73. package/dist/core/employment/jurisdiction-rules.js.map +1 -1
  74. package/dist/core/employment/memo.d.ts +1 -1
  75. package/dist/core/employment/memo.d.ts.map +1 -1
  76. package/dist/core/employment/memo.js +14 -6
  77. package/dist/core/employment/memo.js.map +1 -1
  78. package/dist/core/engine.d.ts.map +1 -1
  79. package/dist/core/engine.js +28 -0
  80. package/dist/core/engine.js.map +1 -1
  81. package/dist/core/fill-pipeline.d.ts +30 -5
  82. package/dist/core/fill-pipeline.d.ts.map +1 -1
  83. package/dist/core/fill-pipeline.js +173 -9
  84. package/dist/core/fill-pipeline.js.map +1 -1
  85. package/dist/core/humanize-docx.d.ts +21 -0
  86. package/dist/core/humanize-docx.d.ts.map +1 -0
  87. package/dist/core/humanize-docx.js +492 -0
  88. package/dist/core/humanize-docx.js.map +1 -0
  89. package/dist/core/metadata.d.ts +118 -65
  90. package/dist/core/metadata.d.ts.map +1 -1
  91. package/dist/core/metadata.js +268 -13
  92. package/dist/core/metadata.js.map +1 -1
  93. package/dist/core/recipe/bracket-normalizer.d.ts +1 -1
  94. package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
  95. package/dist/core/recipe/bracket-normalizer.js +3 -0
  96. package/dist/core/recipe/bracket-normalizer.js.map +1 -1
  97. package/dist/core/recipe/computed.d.ts +1 -1
  98. package/dist/core/recipe/computed.d.ts.map +1 -1
  99. package/dist/core/recipe/index.d.ts.map +1 -1
  100. package/dist/core/recipe/index.js +22 -4
  101. package/dist/core/recipe/index.js.map +1 -1
  102. package/dist/core/recipe/types.d.ts +1 -1
  103. package/dist/core/recipe/types.d.ts.map +1 -1
  104. package/dist/core/template-listing.d.ts +6 -8
  105. package/dist/core/template-listing.d.ts.map +1 -1
  106. package/dist/core/template-listing.js +24 -0
  107. package/dist/core/template-listing.js.map +1 -1
  108. package/dist/core/unified-pipeline.d.ts +2 -0
  109. package/dist/core/unified-pipeline.d.ts.map +1 -1
  110. package/dist/core/unified-pipeline.js +19 -1
  111. package/dist/core/unified-pipeline.js.map +1 -1
  112. package/dist/core/validation/template.d.ts +32 -0
  113. package/dist/core/validation/template.d.ts.map +1 -1
  114. package/dist/core/validation/template.js +163 -3
  115. package/dist/core/validation/template.js.map +1 -1
  116. package/dist/index.d.ts +1 -0
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +2 -0
  119. package/dist/index.js.map +1 -1
  120. package/package.json +26 -12
  121. package/skills/canonical-markdown-authoring/CONNECTORS.md +67 -0
  122. package/skills/canonical-markdown-authoring/SKILL.md +565 -0
  123. package/skills/client-email/SKILL.md +2 -0
  124. package/skills/cloud-service-agreement/CONNECTORS.md +2 -2
  125. package/skills/cloud-service-agreement/SKILL.md +38 -1
  126. package/skills/cloud-service-agreement/template-filling-execution.md +2 -2
  127. package/skills/data-privacy-agreement/CONNECTORS.md +2 -2
  128. package/skills/data-privacy-agreement/SKILL.md +2 -0
  129. package/skills/delaware-franchise-tax/SKILL.md +2 -0
  130. package/skills/edit-docx-agreement/SKILL.md +2 -0
  131. package/skills/employment-contract/CONNECTORS.md +2 -2
  132. package/skills/employment-contract/SKILL.md +2 -0
  133. package/skills/iso-27001-evidence-collection/SKILL.md +2 -0
  134. package/skills/iso-27001-internal-audit/SKILL.md +2 -0
  135. package/skills/nda/CONNECTORS.md +2 -2
  136. package/skills/nda/SKILL.md +45 -1
  137. package/skills/nda/template-filling-execution.md +12 -6
  138. package/skills/non-compete-contract-explainer/SKILL.md +107 -0
  139. package/skills/non-compete-contract-explainer/content/wyoming.md +286 -0
  140. package/skills/non-compete-contract-explainer/manifest.json +18 -0
  141. package/skills/open-agreements/CONNECTORS.md +2 -2
  142. package/skills/open-agreements/SKILL.md +165 -67
  143. package/skills/open-agreements/template-filling-execution.md +2 -2
  144. package/skills/recipe-quality-audit/SKILL.md +2 -0
  145. package/skills/safe/CONNECTORS.md +2 -2
  146. package/skills/safe/SKILL.md +38 -1
  147. package/skills/safe/template-filling-execution.md +2 -2
  148. package/skills/services-agreement/CONNECTORS.md +2 -2
  149. package/skills/services-agreement/SKILL.md +40 -1
  150. package/skills/services-agreement/template-filling-execution.md +81 -0
  151. package/skills/shared/template-filling-execution.md +2 -2
  152. package/skills/soc2-readiness/SKILL.md +2 -0
  153. package/skills/unit-test-philosophy/SKILL.md +3 -0
  154. package/skills/venture-financing/CONNECTORS.md +2 -2
  155. package/skills/venture-financing/SKILL.md +2 -0
  156. package/content/templates/openagreements-restrictive-covenant-wyoming/practice-note.md +0 -103
  157. package/node_modules/@xmldom/xmldom/CHANGELOG.md +0 -939
  158. package/node_modules/@xmldom/xmldom/LICENSE +0 -8
  159. package/node_modules/@xmldom/xmldom/SECURITY.md +0 -50
  160. package/node_modules/@xmldom/xmldom/index.d.ts +0 -1664
  161. package/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +0 -3
  162. package/node_modules/@xmldom/xmldom/lib/conventions.js +0 -429
  163. package/node_modules/@xmldom/xmldom/lib/dom-parser.js +0 -586
  164. package/node_modules/@xmldom/xmldom/lib/dom.js +0 -3192
  165. package/node_modules/@xmldom/xmldom/lib/entities.js +0 -2171
  166. package/node_modules/@xmldom/xmldom/lib/errors.js +0 -202
  167. package/node_modules/@xmldom/xmldom/lib/grammar.js +0 -533
  168. package/node_modules/@xmldom/xmldom/lib/index.js +0 -41
  169. package/node_modules/@xmldom/xmldom/lib/sax.js +0 -929
  170. package/node_modules/@xmldom/xmldom/package.json +0 -74
  171. package/node_modules/@xmldom/xmldom/readme.md +0 -364
  172. package/node_modules/core-util-is/LICENSE +0 -19
  173. package/node_modules/core-util-is/README.md +0 -3
  174. package/node_modules/core-util-is/lib/util.js +0 -107
  175. package/node_modules/core-util-is/package.json +0 -38
  176. package/node_modules/immediate/LICENSE.txt +0 -20
  177. package/node_modules/immediate/README.md +0 -93
  178. package/node_modules/immediate/dist/immediate.js +0 -75
  179. package/node_modules/immediate/dist/immediate.min.js +0 -1
  180. package/node_modules/immediate/lib/browser.js +0 -69
  181. package/node_modules/immediate/lib/index.js +0 -73
  182. package/node_modules/immediate/package.json +0 -42
  183. package/node_modules/inherits/LICENSE +0 -16
  184. package/node_modules/inherits/README.md +0 -42
  185. package/node_modules/inherits/inherits.js +0 -9
  186. package/node_modules/inherits/inherits_browser.js +0 -27
  187. package/node_modules/inherits/package.json +0 -29
  188. package/node_modules/isarray/.npmignore +0 -1
  189. package/node_modules/isarray/.travis.yml +0 -4
  190. package/node_modules/isarray/Makefile +0 -6
  191. package/node_modules/isarray/README.md +0 -60
  192. package/node_modules/isarray/component.json +0 -19
  193. package/node_modules/isarray/index.js +0 -5
  194. package/node_modules/isarray/package.json +0 -45
  195. package/node_modules/isarray/test.js +0 -20
  196. package/node_modules/jszip/.codeclimate.yml +0 -16
  197. package/node_modules/jszip/.editorconfig +0 -8
  198. package/node_modules/jszip/.eslintrc.js +0 -43
  199. package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
  200. package/node_modules/jszip/.jekyll-metadata +0 -0
  201. package/node_modules/jszip/.travis.yml +0 -17
  202. package/node_modules/jszip/CHANGES.md +0 -204
  203. package/node_modules/jszip/LICENSE.markdown +0 -651
  204. package/node_modules/jszip/README.markdown +0 -33
  205. package/node_modules/jszip/deps.js +0 -37
  206. package/node_modules/jszip/dist/jszip.js +0 -11577
  207. package/node_modules/jszip/dist/jszip.min.js +0 -13
  208. package/node_modules/jszip/graph.svg +0 -601
  209. package/node_modules/jszip/index.d.ts +0 -330
  210. package/node_modules/jszip/lib/base64.js +0 -106
  211. package/node_modules/jszip/lib/compressedObject.js +0 -74
  212. package/node_modules/jszip/lib/compressions.js +0 -14
  213. package/node_modules/jszip/lib/crc32.js +0 -77
  214. package/node_modules/jszip/lib/defaults.js +0 -11
  215. package/node_modules/jszip/lib/external.js +0 -18
  216. package/node_modules/jszip/lib/flate.js +0 -85
  217. package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
  218. package/node_modules/jszip/lib/generate/index.js +0 -57
  219. package/node_modules/jszip/lib/index.js +0 -55
  220. package/node_modules/jszip/lib/license_header.js +0 -11
  221. package/node_modules/jszip/lib/load.js +0 -88
  222. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  223. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  224. package/node_modules/jszip/lib/nodejsUtils.js +0 -57
  225. package/node_modules/jszip/lib/object.js +0 -384
  226. package/node_modules/jszip/lib/readable-stream-browser.js +0 -10
  227. package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  228. package/node_modules/jszip/lib/reader/DataReader.js +0 -116
  229. package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  230. package/node_modules/jszip/lib/reader/StringReader.js +0 -38
  231. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  232. package/node_modules/jszip/lib/reader/readerFor.js +0 -28
  233. package/node_modules/jszip/lib/signature.js +0 -7
  234. package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  235. package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  236. package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  237. package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  238. package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  239. package/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
  240. package/node_modules/jszip/lib/support.js +0 -38
  241. package/node_modules/jszip/lib/utf8.js +0 -275
  242. package/node_modules/jszip/lib/utils.js +0 -501
  243. package/node_modules/jszip/lib/zipEntries.js +0 -261
  244. package/node_modules/jszip/lib/zipEntry.js +0 -293
  245. package/node_modules/jszip/lib/zipObject.js +0 -133
  246. package/node_modules/jszip/package.json +0 -67
  247. package/node_modules/jszip/sponsors.md +0 -21
  248. package/node_modules/jszip/tsconfig.json +0 -101
  249. package/node_modules/jszip/vendor/FileSaver.js +0 -247
  250. package/node_modules/lie/README.md +0 -62
  251. package/node_modules/lie/dist/lie.js +0 -350
  252. package/node_modules/lie/dist/lie.min.js +0 -1
  253. package/node_modules/lie/dist/lie.polyfill.js +0 -358
  254. package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  255. package/node_modules/lie/lib/browser.js +0 -273
  256. package/node_modules/lie/lib/index.js +0 -298
  257. package/node_modules/lie/license.md +0 -7
  258. package/node_modules/lie/lie.d.ts +0 -244
  259. package/node_modules/lie/package.json +0 -69
  260. package/node_modules/lie/polyfill.js +0 -4
  261. package/node_modules/pako/LICENSE +0 -21
  262. package/node_modules/pako/README.md +0 -191
  263. package/node_modules/pako/dist/pako.js +0 -6818
  264. package/node_modules/pako/dist/pako.min.js +0 -1
  265. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  266. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  267. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  268. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  269. package/node_modules/pako/index.js +0 -14
  270. package/node_modules/pako/lib/deflate.js +0 -400
  271. package/node_modules/pako/lib/inflate.js +0 -423
  272. package/node_modules/pako/lib/utils/common.js +0 -105
  273. package/node_modules/pako/lib/utils/strings.js +0 -187
  274. package/node_modules/pako/lib/zlib/README +0 -59
  275. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  276. package/node_modules/pako/lib/zlib/constants.js +0 -68
  277. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  278. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  279. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  280. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  281. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  282. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  283. package/node_modules/pako/lib/zlib/messages.js +0 -32
  284. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  285. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  286. package/node_modules/pako/package.json +0 -44
  287. package/node_modules/process-nextick-args/index.js +0 -45
  288. package/node_modules/process-nextick-args/license.md +0 -19
  289. package/node_modules/process-nextick-args/package.json +0 -25
  290. package/node_modules/process-nextick-args/readme.md +0 -18
  291. package/node_modules/readable-stream/.travis.yml +0 -34
  292. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  293. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  294. package/node_modules/readable-stream/LICENSE +0 -47
  295. package/node_modules/readable-stream/README.md +0 -58
  296. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  297. package/node_modules/readable-stream/duplex-browser.js +0 -1
  298. package/node_modules/readable-stream/duplex.js +0 -1
  299. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  300. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  301. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  302. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  303. package/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  304. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  305. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  306. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  307. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  308. package/node_modules/readable-stream/package.json +0 -52
  309. package/node_modules/readable-stream/passthrough.js +0 -1
  310. package/node_modules/readable-stream/readable-browser.js +0 -7
  311. package/node_modules/readable-stream/readable.js +0 -19
  312. package/node_modules/readable-stream/transform.js +0 -1
  313. package/node_modules/readable-stream/writable-browser.js +0 -1
  314. package/node_modules/readable-stream/writable.js +0 -8
  315. package/node_modules/safe-buffer/LICENSE +0 -21
  316. package/node_modules/safe-buffer/README.md +0 -584
  317. package/node_modules/safe-buffer/index.d.ts +0 -187
  318. package/node_modules/safe-buffer/index.js +0 -62
  319. package/node_modules/safe-buffer/package.json +0 -37
  320. package/node_modules/setimmediate/LICENSE.txt +0 -20
  321. package/node_modules/setimmediate/package.json +0 -30
  322. package/node_modules/setimmediate/setImmediate.js +0 -186
  323. package/node_modules/string_decoder/.travis.yml +0 -50
  324. package/node_modules/string_decoder/LICENSE +0 -48
  325. package/node_modules/string_decoder/README.md +0 -47
  326. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  327. package/node_modules/string_decoder/package.json +0 -31
  328. package/node_modules/util-deprecate/History.md +0 -16
  329. package/node_modules/util-deprecate/LICENSE +0 -24
  330. package/node_modules/util-deprecate/README.md +0 -53
  331. package/node_modules/util-deprecate/browser.js +0 -67
  332. package/node_modules/util-deprecate/node.js +0 -6
  333. package/node_modules/util-deprecate/package.json +0 -27
@@ -1,3 +0,0 @@
1
- extends:
2
- - 'plugin:es5/no-es2015'
3
- - 'plugin:n/recommended'
@@ -1,429 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.
5
- *
6
- * Works with anything that has a `length` property and index access properties,
7
- * including NodeList.
8
- *
9
- * @param {T[] | { length: number; [number]: T }} list
10
- * @param {function (item: T, index: number, list:T[]):boolean} predicate
11
- * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac
12
- * Allows injecting a custom implementation in tests (`Array.prototype` by default).
13
- * @returns {T | undefined}
14
- * @template {unknown} T
15
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
16
- * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find
17
- */
18
- function find(list, predicate, ac) {
19
- if (ac === undefined) {
20
- ac = Array.prototype;
21
- }
22
- if (list && typeof ac.find === 'function') {
23
- return ac.find.call(list, predicate);
24
- }
25
- for (var i = 0; i < list.length; i++) {
26
- if (hasOwn(list, i)) {
27
- var item = list[i];
28
- if (predicate.call(undefined, item, i, list)) {
29
- return item;
30
- }
31
- }
32
- }
33
- }
34
-
35
- /**
36
- * "Shallow freezes" an object to render it immutable.
37
- * Uses `Object.freeze` if available,
38
- * otherwise the immutability is only in the type.
39
- *
40
- * Is used to create "enum like" objects.
41
- *
42
- * If `Object.getOwnPropertyDescriptors` is available,
43
- * a new object with all properties of object but without any prototype is created and returned
44
- * after freezing it.
45
- *
46
- * @param {T} object
47
- * The object to freeze.
48
- * @param {Pick<ObjectConstructor, 'create' | 'freeze' | 'getOwnPropertyDescriptors'>} [oc=Object]
49
- * `Object` by default,
50
- * allows to inject custom object constructor for tests.
51
- * @returns {Readonly<T>}
52
- * @template {Object} T
53
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze
54
- * @prettierignore
55
- */
56
- function freeze(object, oc) {
57
- if (oc === undefined) {
58
- oc = Object;
59
- }
60
- if (oc && typeof oc.getOwnPropertyDescriptors === 'function') {
61
- object = oc.create(null, oc.getOwnPropertyDescriptors(object));
62
- }
63
- return oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object;
64
- }
65
-
66
- /**
67
- * Implementation for `Object.hasOwn` but ES5 compatible.
68
- *
69
- * @param {any} object
70
- * @param {string | number} key
71
- * @returns {boolean}
72
- */
73
- function hasOwn(object, key) {
74
- return Object.prototype.hasOwnProperty.call(object, key);
75
- }
76
-
77
- /**
78
- * Since xmldom can not rely on `Object.assign`,
79
- * it uses/provides a simplified version that is sufficient for its needs.
80
- *
81
- * @param {Object} target
82
- * @param {Object | null | undefined} source
83
- * @returns {Object}
84
- * The target with the merged/overridden properties.
85
- * @throws {TypeError}
86
- * If target is not an object.
87
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
88
- * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign
89
- */
90
- function assign(target, source) {
91
- if (target === null || typeof target !== 'object') {
92
- throw new TypeError('target is not an object');
93
- }
94
- for (var key in source) {
95
- if (hasOwn(source, key)) {
96
- target[key] = source[key];
97
- }
98
- }
99
- return target;
100
- }
101
-
102
- /**
103
- * A number of attributes are boolean attributes.
104
- * The presence of a boolean attribute on an element represents the `true` value,
105
- * and the absence of the attribute represents the `false` value.
106
- *
107
- * If the attribute is present, its value must either be the empty string, or a value that is
108
- * an ASCII case-insensitive match for the attribute's canonical name,
109
- * with no leading or trailing whitespace.
110
- *
111
- * Note: The values `"true"` and `"false"` are not allowed on boolean attributes.
112
- * To represent a `false` value, the attribute has to be omitted altogether.
113
- *
114
- * @see https://html.spec.whatwg.org/#boolean-attributes
115
- * @see https://html.spec.whatwg.org/#attributes-3
116
- */
117
- var HTML_BOOLEAN_ATTRIBUTES = freeze({
118
- allowfullscreen: true,
119
- async: true,
120
- autofocus: true,
121
- autoplay: true,
122
- checked: true,
123
- controls: true,
124
- default: true,
125
- defer: true,
126
- disabled: true,
127
- formnovalidate: true,
128
- hidden: true,
129
- ismap: true,
130
- itemscope: true,
131
- loop: true,
132
- multiple: true,
133
- muted: true,
134
- nomodule: true,
135
- novalidate: true,
136
- open: true,
137
- playsinline: true,
138
- readonly: true,
139
- required: true,
140
- reversed: true,
141
- selected: true,
142
- });
143
-
144
- /**
145
- * Check if `name` is matching one of the HTML boolean attribute names.
146
- * This method doesn't check if such attributes are allowed in the context of the current
147
- * document/parsing.
148
- *
149
- * @param {string} name
150
- * @returns {boolean}
151
- * @see {@link HTML_BOOLEAN_ATTRIBUTES}
152
- * @see https://html.spec.whatwg.org/#boolean-attributes
153
- * @see https://html.spec.whatwg.org/#attributes-3
154
- */
155
- function isHTMLBooleanAttribute(name) {
156
- return hasOwn(HTML_BOOLEAN_ATTRIBUTES, name.toLowerCase());
157
- }
158
-
159
- /**
160
- * Void elements only have a start tag; end tags must not be specified for void elements.
161
- * These elements should be written as self-closing like this: `<area />`.
162
- * This should not be confused with optional tags that HTML allows to omit the end tag for
163
- * (like `li`, `tr` and others), which can have content after them,
164
- * so they can not be written as self-closing.
165
- * xmldom does not have any logic for optional end tags cases,
166
- * and will report them as a warning.
167
- * Content that would go into the unopened element,
168
- * will instead be added as a sibling text node.
169
- *
170
- * @type {Readonly<{
171
- * area: boolean;
172
- * col: boolean;
173
- * img: boolean;
174
- * wbr: boolean;
175
- * link: boolean;
176
- * hr: boolean;
177
- * source: boolean;
178
- * br: boolean;
179
- * input: boolean;
180
- * param: boolean;
181
- * meta: boolean;
182
- * embed: boolean;
183
- * track: boolean;
184
- * base: boolean;
185
- * }>}
186
- * @see https://html.spec.whatwg.org/#void-elements
187
- * @see https://html.spec.whatwg.org/#optional-tags
188
- */
189
- var HTML_VOID_ELEMENTS = freeze({
190
- area: true,
191
- base: true,
192
- br: true,
193
- col: true,
194
- embed: true,
195
- hr: true,
196
- img: true,
197
- input: true,
198
- link: true,
199
- meta: true,
200
- param: true,
201
- source: true,
202
- track: true,
203
- wbr: true,
204
- });
205
-
206
- /**
207
- * Check if `tagName` is matching one of the HTML void element names.
208
- * This method doesn't check if such tags are allowed in the context of the current
209
- * document/parsing.
210
- *
211
- * @param {string} tagName
212
- * @returns {boolean}
213
- * @see {@link HTML_VOID_ELEMENTS}
214
- * @see https://html.spec.whatwg.org/#void-elements
215
- */
216
- function isHTMLVoidElement(tagName) {
217
- return hasOwn(HTML_VOID_ELEMENTS, tagName.toLowerCase());
218
- }
219
-
220
- /**
221
- * Tag names that are raw text elements according to HTML spec.
222
- * The value denotes whether they are escapable or not.
223
- *
224
- * @see {@link isHTMLEscapableRawTextElement}
225
- * @see {@link isHTMLRawTextElement}
226
- * @see https://html.spec.whatwg.org/#raw-text-elements
227
- * @see https://html.spec.whatwg.org/#escapable-raw-text-elements
228
- */
229
- var HTML_RAW_TEXT_ELEMENTS = freeze({
230
- script: false,
231
- style: false,
232
- textarea: true,
233
- title: true,
234
- });
235
-
236
- /**
237
- * Check if `tagName` is matching one of the HTML raw text element names.
238
- * This method doesn't check if such tags are allowed in the context of the current
239
- * document/parsing.
240
- *
241
- * @param {string} tagName
242
- * @returns {boolean}
243
- * @see {@link isHTMLEscapableRawTextElement}
244
- * @see {@link HTML_RAW_TEXT_ELEMENTS}
245
- * @see https://html.spec.whatwg.org/#raw-text-elements
246
- * @see https://html.spec.whatwg.org/#escapable-raw-text-elements
247
- */
248
- function isHTMLRawTextElement(tagName) {
249
- var key = tagName.toLowerCase();
250
- return hasOwn(HTML_RAW_TEXT_ELEMENTS, key) && !HTML_RAW_TEXT_ELEMENTS[key];
251
- }
252
- /**
253
- * Check if `tagName` is matching one of the HTML escapable raw text element names.
254
- * This method doesn't check if such tags are allowed in the context of the current
255
- * document/parsing.
256
- *
257
- * @param {string} tagName
258
- * @returns {boolean}
259
- * @see {@link isHTMLRawTextElement}
260
- * @see {@link HTML_RAW_TEXT_ELEMENTS}
261
- * @see https://html.spec.whatwg.org/#raw-text-elements
262
- * @see https://html.spec.whatwg.org/#escapable-raw-text-elements
263
- */
264
- function isHTMLEscapableRawTextElement(tagName) {
265
- var key = tagName.toLowerCase();
266
- return hasOwn(HTML_RAW_TEXT_ELEMENTS, key) && HTML_RAW_TEXT_ELEMENTS[key];
267
- }
268
- /**
269
- * Only returns true if `value` matches MIME_TYPE.HTML, which indicates an HTML document.
270
- *
271
- * @param {string} mimeType
272
- * @returns {mimeType is 'text/html'}
273
- * @see https://www.iana.org/assignments/media-types/text/html
274
- * @see https://en.wikipedia.org/wiki/HTML
275
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString
276
- * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring
277
- */
278
- function isHTMLMimeType(mimeType) {
279
- return mimeType === MIME_TYPE.HTML;
280
- }
281
- /**
282
- * For both the `text/html` and the `application/xhtml+xml` namespace the spec defines that the
283
- * HTML namespace is provided as the default.
284
- *
285
- * @param {string} mimeType
286
- * @returns {boolean}
287
- * @see https://dom.spec.whatwg.org/#dom-document-createelement
288
- * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument
289
- * @see https://dom.spec.whatwg.org/#dom-domimplementation-createhtmldocument
290
- */
291
- function hasDefaultHTMLNamespace(mimeType) {
292
- return isHTMLMimeType(mimeType) || mimeType === MIME_TYPE.XML_XHTML_APPLICATION;
293
- }
294
-
295
- /**
296
- * All mime types that are allowed as input to `DOMParser.parseFromString`
297
- *
298
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02
299
- * MDN
300
- * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype
301
- * WHATWG HTML Spec
302
- * @see {@link DOMParser.prototype.parseFromString}
303
- */
304
- var MIME_TYPE = freeze({
305
- /**
306
- * `text/html`, the only mime type that triggers treating an XML document as HTML.
307
- *
308
- * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration
309
- * @see https://en.wikipedia.org/wiki/HTML Wikipedia
310
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN
311
- * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring
312
- * WHATWG HTML Spec
313
- */
314
- HTML: 'text/html',
315
-
316
- /**
317
- * `application/xml`, the standard mime type for XML documents.
318
- *
319
- * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType
320
- * registration
321
- * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303
322
- * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia
323
- */
324
- XML_APPLICATION: 'application/xml',
325
-
326
- /**
327
- * `text/xml`, an alias for `application/xml`.
328
- *
329
- * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303
330
- * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration
331
- * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia
332
- */
333
- XML_TEXT: 'text/xml',
334
-
335
- /**
336
- * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,
337
- * but is parsed as an XML document.
338
- *
339
- * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType
340
- * registration
341
- * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec
342
- * @see https://en.wikipedia.org/wiki/XHTML Wikipedia
343
- */
344
- XML_XHTML_APPLICATION: 'application/xhtml+xml',
345
-
346
- /**
347
- * `image/svg+xml`,
348
- *
349
- * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration
350
- * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1
351
- * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia
352
- */
353
- XML_SVG_IMAGE: 'image/svg+xml',
354
- });
355
- /**
356
- * @typedef {'application/xhtml+xml' | 'application/xml' | 'image/svg+xml' | 'text/html' | 'text/xml'}
357
- * MimeType
358
- */
359
- /**
360
- * @type {MimeType[]}
361
- * @private
362
- * Basically `Object.values`, which is not available in ES5.
363
- */
364
- var _MIME_TYPES = Object.keys(MIME_TYPE).map(function (key) {
365
- return MIME_TYPE[key];
366
- });
367
-
368
- /**
369
- * Only returns true if `mimeType` is one of the allowed values for
370
- * `DOMParser.parseFromString`.
371
- *
372
- * @param {string} mimeType
373
- * @returns {mimeType is 'application/xhtml+xml' | 'application/xml' | 'image/svg+xml' | 'text/html' | 'text/xml'}
374
- *
375
- */
376
- function isValidMimeType(mimeType) {
377
- return _MIME_TYPES.indexOf(mimeType) > -1;
378
- }
379
- /**
380
- * Namespaces that are used in this code base.
381
- *
382
- * @see http://www.w3.org/TR/REC-xml-names
383
- */
384
- var NAMESPACE = freeze({
385
- /**
386
- * The XHTML namespace.
387
- *
388
- * @see http://www.w3.org/1999/xhtml
389
- */
390
- HTML: 'http://www.w3.org/1999/xhtml',
391
-
392
- /**
393
- * The SVG namespace.
394
- *
395
- * @see http://www.w3.org/2000/svg
396
- */
397
- SVG: 'http://www.w3.org/2000/svg',
398
-
399
- /**
400
- * The `xml:` namespace.
401
- *
402
- * @see http://www.w3.org/XML/1998/namespace
403
- */
404
- XML: 'http://www.w3.org/XML/1998/namespace',
405
-
406
- /**
407
- * The `xmlns:` namespace.
408
- *
409
- * @see https://www.w3.org/2000/xmlns/
410
- */
411
- XMLNS: 'http://www.w3.org/2000/xmlns/',
412
- });
413
-
414
- exports.assign = assign;
415
- exports.find = find;
416
- exports.freeze = freeze;
417
- exports.HTML_BOOLEAN_ATTRIBUTES = HTML_BOOLEAN_ATTRIBUTES;
418
- exports.HTML_RAW_TEXT_ELEMENTS = HTML_RAW_TEXT_ELEMENTS;
419
- exports.HTML_VOID_ELEMENTS = HTML_VOID_ELEMENTS;
420
- exports.hasDefaultHTMLNamespace = hasDefaultHTMLNamespace;
421
- exports.hasOwn = hasOwn;
422
- exports.isHTMLBooleanAttribute = isHTMLBooleanAttribute;
423
- exports.isHTMLRawTextElement = isHTMLRawTextElement;
424
- exports.isHTMLEscapableRawTextElement = isHTMLEscapableRawTextElement;
425
- exports.isHTMLMimeType = isHTMLMimeType;
426
- exports.isHTMLVoidElement = isHTMLVoidElement;
427
- exports.isValidMimeType = isValidMimeType;
428
- exports.MIME_TYPE = MIME_TYPE;
429
- exports.NAMESPACE = NAMESPACE;