open-agreements 0.7.6 → 0.7.7

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 (250) hide show
  1. package/README.md +1 -1
  2. package/content/templates/openagreements-due-diligence-request-list/template.docx +0 -0
  3. package/content/templates/openagreements-due-diligence-request-list/template.md +1 -1
  4. package/dist/core/fill-pipeline.d.ts.map +1 -1
  5. package/dist/core/fill-pipeline.js +0 -8
  6. package/dist/core/fill-pipeline.js.map +1 -1
  7. package/dist/core/unified-pipeline.d.ts.map +1 -1
  8. package/dist/core/unified-pipeline.js +4 -6
  9. package/dist/core/unified-pipeline.js.map +1 -1
  10. package/gemini-extension.json +1 -1
  11. package/node_modules/@xmldom/xmldom/CHANGELOG.md +939 -0
  12. package/node_modules/@xmldom/xmldom/LICENSE +8 -0
  13. package/node_modules/@xmldom/xmldom/SECURITY.md +50 -0
  14. package/node_modules/@xmldom/xmldom/index.d.ts +1664 -0
  15. package/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +3 -0
  16. package/node_modules/@xmldom/xmldom/lib/conventions.js +429 -0
  17. package/node_modules/@xmldom/xmldom/lib/dom-parser.js +586 -0
  18. package/node_modules/@xmldom/xmldom/lib/dom.js +3192 -0
  19. package/node_modules/@xmldom/xmldom/lib/entities.js +2171 -0
  20. package/node_modules/@xmldom/xmldom/lib/errors.js +202 -0
  21. package/node_modules/@xmldom/xmldom/lib/grammar.js +533 -0
  22. package/node_modules/@xmldom/xmldom/lib/index.js +41 -0
  23. package/node_modules/@xmldom/xmldom/lib/sax.js +929 -0
  24. package/node_modules/@xmldom/xmldom/package.json +74 -0
  25. package/node_modules/@xmldom/xmldom/readme.md +364 -0
  26. package/node_modules/core-util-is/LICENSE +19 -0
  27. package/node_modules/core-util-is/README.md +3 -0
  28. package/node_modules/core-util-is/lib/util.js +107 -0
  29. package/node_modules/core-util-is/package.json +38 -0
  30. package/node_modules/immediate/LICENSE.txt +20 -0
  31. package/node_modules/immediate/README.md +93 -0
  32. package/node_modules/immediate/dist/immediate.js +75 -0
  33. package/node_modules/immediate/dist/immediate.min.js +1 -0
  34. package/node_modules/immediate/lib/browser.js +69 -0
  35. package/node_modules/immediate/lib/index.js +73 -0
  36. package/node_modules/immediate/package.json +42 -0
  37. package/node_modules/inherits/LICENSE +16 -0
  38. package/node_modules/inherits/README.md +42 -0
  39. package/node_modules/inherits/inherits.js +9 -0
  40. package/node_modules/inherits/inherits_browser.js +27 -0
  41. package/node_modules/inherits/package.json +29 -0
  42. package/node_modules/isarray/.npmignore +1 -0
  43. package/node_modules/isarray/.travis.yml +4 -0
  44. package/node_modules/isarray/Makefile +6 -0
  45. package/node_modules/isarray/README.md +60 -0
  46. package/node_modules/isarray/component.json +19 -0
  47. package/node_modules/isarray/index.js +5 -0
  48. package/node_modules/isarray/package.json +45 -0
  49. package/node_modules/isarray/test.js +20 -0
  50. package/node_modules/jszip/.codeclimate.yml +16 -0
  51. package/node_modules/jszip/.editorconfig +8 -0
  52. package/node_modules/jszip/.eslintrc.js +43 -0
  53. package/node_modules/jszip/.github/workflows/pr.yaml +58 -0
  54. package/node_modules/jszip/.jekyll-metadata +0 -0
  55. package/node_modules/jszip/.travis.yml +17 -0
  56. package/node_modules/jszip/CHANGES.md +204 -0
  57. package/node_modules/jszip/LICENSE.markdown +651 -0
  58. package/node_modules/jszip/README.markdown +33 -0
  59. package/node_modules/jszip/deps.js +37 -0
  60. package/node_modules/jszip/dist/jszip.js +11577 -0
  61. package/node_modules/jszip/dist/jszip.min.js +13 -0
  62. package/node_modules/jszip/graph.svg +601 -0
  63. package/node_modules/jszip/index.d.ts +330 -0
  64. package/node_modules/jszip/lib/base64.js +106 -0
  65. package/node_modules/jszip/lib/compressedObject.js +74 -0
  66. package/node_modules/jszip/lib/compressions.js +14 -0
  67. package/node_modules/jszip/lib/crc32.js +77 -0
  68. package/node_modules/jszip/lib/defaults.js +11 -0
  69. package/node_modules/jszip/lib/external.js +18 -0
  70. package/node_modules/jszip/lib/flate.js +85 -0
  71. package/node_modules/jszip/lib/generate/ZipFileWorker.js +539 -0
  72. package/node_modules/jszip/lib/generate/index.js +57 -0
  73. package/node_modules/jszip/lib/index.js +55 -0
  74. package/node_modules/jszip/lib/license_header.js +11 -0
  75. package/node_modules/jszip/lib/load.js +88 -0
  76. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  77. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  78. package/node_modules/jszip/lib/nodejsUtils.js +57 -0
  79. package/node_modules/jszip/lib/object.js +384 -0
  80. package/node_modules/jszip/lib/readable-stream-browser.js +10 -0
  81. package/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  82. package/node_modules/jszip/lib/reader/DataReader.js +116 -0
  83. package/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  84. package/node_modules/jszip/lib/reader/StringReader.js +38 -0
  85. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  86. package/node_modules/jszip/lib/reader/readerFor.js +28 -0
  87. package/node_modules/jszip/lib/signature.js +7 -0
  88. package/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  89. package/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  90. package/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  91. package/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  92. package/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  93. package/node_modules/jszip/lib/stream/StreamHelper.js +214 -0
  94. package/node_modules/jszip/lib/support.js +38 -0
  95. package/node_modules/jszip/lib/utf8.js +275 -0
  96. package/node_modules/jszip/lib/utils.js +501 -0
  97. package/node_modules/jszip/lib/zipEntries.js +261 -0
  98. package/node_modules/jszip/lib/zipEntry.js +293 -0
  99. package/node_modules/jszip/lib/zipObject.js +133 -0
  100. package/node_modules/jszip/package.json +67 -0
  101. package/node_modules/jszip/sponsors.md +21 -0
  102. package/node_modules/jszip/tsconfig.json +101 -0
  103. package/node_modules/jszip/vendor/FileSaver.js +247 -0
  104. package/node_modules/lie/README.md +62 -0
  105. package/node_modules/lie/dist/lie.js +350 -0
  106. package/node_modules/lie/dist/lie.min.js +1 -0
  107. package/node_modules/lie/dist/lie.polyfill.js +358 -0
  108. package/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  109. package/node_modules/lie/lib/browser.js +273 -0
  110. package/node_modules/lie/lib/index.js +298 -0
  111. package/node_modules/lie/license.md +7 -0
  112. package/node_modules/lie/lie.d.ts +244 -0
  113. package/node_modules/lie/package.json +69 -0
  114. package/node_modules/lie/polyfill.js +4 -0
  115. package/node_modules/pako/LICENSE +21 -0
  116. package/node_modules/pako/README.md +191 -0
  117. package/node_modules/pako/dist/pako.js +6818 -0
  118. package/node_modules/pako/dist/pako.min.js +1 -0
  119. package/node_modules/pako/dist/pako_deflate.js +3997 -0
  120. package/node_modules/pako/dist/pako_deflate.min.js +1 -0
  121. package/node_modules/pako/dist/pako_inflate.js +3300 -0
  122. package/node_modules/pako/dist/pako_inflate.min.js +1 -0
  123. package/node_modules/pako/index.js +14 -0
  124. package/node_modules/pako/lib/deflate.js +400 -0
  125. package/node_modules/pako/lib/inflate.js +423 -0
  126. package/node_modules/pako/lib/utils/common.js +105 -0
  127. package/node_modules/pako/lib/utils/strings.js +187 -0
  128. package/node_modules/pako/lib/zlib/README +59 -0
  129. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  130. package/node_modules/pako/lib/zlib/constants.js +68 -0
  131. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  132. package/node_modules/pako/lib/zlib/deflate.js +1874 -0
  133. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  134. package/node_modules/pako/lib/zlib/inffast.js +345 -0
  135. package/node_modules/pako/lib/zlib/inflate.js +1556 -0
  136. package/node_modules/pako/lib/zlib/inftrees.js +343 -0
  137. package/node_modules/pako/lib/zlib/messages.js +32 -0
  138. package/node_modules/pako/lib/zlib/trees.js +1222 -0
  139. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  140. package/node_modules/pako/package.json +44 -0
  141. package/node_modules/process-nextick-args/index.js +45 -0
  142. package/node_modules/process-nextick-args/license.md +19 -0
  143. package/node_modules/process-nextick-args/package.json +25 -0
  144. package/node_modules/process-nextick-args/readme.md +18 -0
  145. package/node_modules/readable-stream/.travis.yml +34 -0
  146. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  147. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  148. package/node_modules/readable-stream/LICENSE +47 -0
  149. package/node_modules/readable-stream/README.md +58 -0
  150. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  151. package/node_modules/readable-stream/duplex-browser.js +1 -0
  152. package/node_modules/readable-stream/duplex.js +1 -0
  153. package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  154. package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  155. package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  156. package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  157. package/node_modules/readable-stream/lib/_stream_writable.js +685 -0
  158. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
  159. package/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
  160. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  161. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  162. package/node_modules/readable-stream/package.json +52 -0
  163. package/node_modules/readable-stream/passthrough.js +1 -0
  164. package/node_modules/readable-stream/readable-browser.js +7 -0
  165. package/node_modules/readable-stream/readable.js +19 -0
  166. package/node_modules/readable-stream/transform.js +1 -0
  167. package/node_modules/readable-stream/writable-browser.js +1 -0
  168. package/node_modules/readable-stream/writable.js +8 -0
  169. package/node_modules/safe-buffer/LICENSE +21 -0
  170. package/node_modules/safe-buffer/README.md +584 -0
  171. package/node_modules/safe-buffer/index.d.ts +187 -0
  172. package/node_modules/safe-buffer/index.js +62 -0
  173. package/node_modules/safe-buffer/package.json +37 -0
  174. package/node_modules/setimmediate/LICENSE.txt +20 -0
  175. package/node_modules/setimmediate/package.json +30 -0
  176. package/node_modules/setimmediate/setImmediate.js +186 -0
  177. package/node_modules/string_decoder/.travis.yml +50 -0
  178. package/node_modules/string_decoder/LICENSE +48 -0
  179. package/node_modules/string_decoder/README.md +47 -0
  180. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  181. package/node_modules/string_decoder/package.json +31 -0
  182. package/node_modules/util-deprecate/History.md +16 -0
  183. package/node_modules/util-deprecate/LICENSE +24 -0
  184. package/node_modules/util-deprecate/README.md +53 -0
  185. package/node_modules/util-deprecate/browser.js +67 -0
  186. package/node_modules/util-deprecate/node.js +6 -0
  187. package/node_modules/util-deprecate/package.json +27 -0
  188. package/package.json +1 -1
  189. package/skills/client-email/SKILL.md +8 -6
  190. package/skills/employment-contract/SKILL.md +23 -6
  191. package/skills/non-compete-contract-explainer/content/alabama.md +251 -0
  192. package/skills/non-compete-contract-explainer/content/alaska.md +160 -0
  193. package/skills/non-compete-contract-explainer/content/american-samoa.md +187 -0
  194. package/skills/non-compete-contract-explainer/content/arizona.md +293 -0
  195. package/skills/non-compete-contract-explainer/content/arkansas.md +235 -0
  196. package/skills/non-compete-contract-explainer/content/california.md +270 -0
  197. package/skills/non-compete-contract-explainer/content/cnmi.md +168 -0
  198. package/skills/non-compete-contract-explainer/content/colorado.md +277 -0
  199. package/skills/non-compete-contract-explainer/content/connecticut.md +220 -0
  200. package/skills/non-compete-contract-explainer/content/delaware.md +222 -0
  201. package/skills/non-compete-contract-explainer/content/district-of-columbia.md +263 -0
  202. package/skills/non-compete-contract-explainer/content/florida.md +267 -0
  203. package/skills/non-compete-contract-explainer/content/georgia.md +323 -0
  204. package/skills/non-compete-contract-explainer/content/guam.md +180 -0
  205. package/skills/non-compete-contract-explainer/content/hawaii.md +236 -0
  206. package/skills/non-compete-contract-explainer/content/idaho.md +258 -0
  207. package/skills/non-compete-contract-explainer/content/illinois.md +266 -0
  208. package/skills/non-compete-contract-explainer/content/india.md +269 -0
  209. package/skills/non-compete-contract-explainer/content/indiana.md +253 -0
  210. package/skills/non-compete-contract-explainer/content/iowa.md +232 -0
  211. package/skills/non-compete-contract-explainer/content/kansas.md +227 -0
  212. package/skills/non-compete-contract-explainer/content/kentucky.md +201 -0
  213. package/skills/non-compete-contract-explainer/content/louisiana.md +272 -0
  214. package/skills/non-compete-contract-explainer/content/maine.md +178 -0
  215. package/skills/non-compete-contract-explainer/content/maryland.md +244 -0
  216. package/skills/non-compete-contract-explainer/content/massachusetts.md +272 -0
  217. package/skills/non-compete-contract-explainer/content/michigan.md +222 -0
  218. package/skills/non-compete-contract-explainer/content/minnesota.md +171 -0
  219. package/skills/non-compete-contract-explainer/content/mississippi.md +237 -0
  220. package/skills/non-compete-contract-explainer/content/missouri.md +219 -0
  221. package/skills/non-compete-contract-explainer/content/montana.md +202 -0
  222. package/skills/non-compete-contract-explainer/content/nebraska.md +206 -0
  223. package/skills/non-compete-contract-explainer/content/nevada.md +278 -0
  224. package/skills/non-compete-contract-explainer/content/new-hampshire.md +233 -0
  225. package/skills/non-compete-contract-explainer/content/new-jersey.md +277 -0
  226. package/skills/non-compete-contract-explainer/content/new-mexico.md +244 -0
  227. package/skills/non-compete-contract-explainer/content/new-york.md +226 -0
  228. package/skills/non-compete-contract-explainer/content/north-carolina.md +346 -0
  229. package/skills/non-compete-contract-explainer/content/north-dakota.md +187 -0
  230. package/skills/non-compete-contract-explainer/content/ohio.md +207 -0
  231. package/skills/non-compete-contract-explainer/content/oklahoma.md +196 -0
  232. package/skills/non-compete-contract-explainer/content/oregon.md +359 -0
  233. package/skills/non-compete-contract-explainer/content/pennsylvania.md +254 -0
  234. package/skills/non-compete-contract-explainer/content/philippines.md +211 -0
  235. package/skills/non-compete-contract-explainer/content/puerto-rico.md +163 -0
  236. package/skills/non-compete-contract-explainer/content/rhode-island.md +171 -0
  237. package/skills/non-compete-contract-explainer/content/singapore.md +229 -0
  238. package/skills/non-compete-contract-explainer/content/south-carolina.md +226 -0
  239. package/skills/non-compete-contract-explainer/content/south-dakota.md +222 -0
  240. package/skills/non-compete-contract-explainer/content/tennessee.md +251 -0
  241. package/skills/non-compete-contract-explainer/content/texas.md +297 -0
  242. package/skills/non-compete-contract-explainer/content/us-virgin-islands.md +193 -0
  243. package/skills/non-compete-contract-explainer/content/utah.md +250 -0
  244. package/skills/non-compete-contract-explainer/content/vermont.md +193 -0
  245. package/skills/non-compete-contract-explainer/content/virginia.md +213 -0
  246. package/skills/non-compete-contract-explainer/content/washington.md +296 -0
  247. package/skills/non-compete-contract-explainer/content/west-virginia.md +187 -0
  248. package/skills/non-compete-contract-explainer/content/wisconsin.md +293 -0
  249. package/skills/non-compete-contract-explainer/content/wyoming.md +55 -45
  250. package/skills/non-compete-contract-explainer/manifest.json +523 -1
@@ -0,0 +1,3 @@
1
+ extends:
2
+ - 'plugin:es5/no-es2015'
3
+ - 'plugin:n/recommended'
@@ -0,0 +1,429 @@
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;