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,384 +0,0 @@
1
- "use strict";
2
- var utf8 = require("./utf8");
3
- var utils = require("./utils");
4
- var GenericWorker = require("./stream/GenericWorker");
5
- var StreamHelper = require("./stream/StreamHelper");
6
- var defaults = require("./defaults");
7
- var CompressedObject = require("./compressedObject");
8
- var ZipObject = require("./zipObject");
9
- var generate = require("./generate");
10
- var nodejsUtils = require("./nodejsUtils");
11
- var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter");
12
-
13
-
14
- /**
15
- * Add a file in the current folder.
16
- * @private
17
- * @param {string} name the name of the file
18
- * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file
19
- * @param {Object} originalOptions the options of the file
20
- * @return {Object} the new file.
21
- */
22
- var fileAdd = function(name, data, originalOptions) {
23
- // be sure sub folders exist
24
- var dataType = utils.getTypeOf(data),
25
- parent;
26
-
27
-
28
- /*
29
- * Correct options.
30
- */
31
-
32
- var o = utils.extend(originalOptions || {}, defaults);
33
- o.date = o.date || new Date();
34
- if (o.compression !== null) {
35
- o.compression = o.compression.toUpperCase();
36
- }
37
-
38
- if (typeof o.unixPermissions === "string") {
39
- o.unixPermissions = parseInt(o.unixPermissions, 8);
40
- }
41
-
42
- // UNX_IFDIR 0040000 see zipinfo.c
43
- if (o.unixPermissions && (o.unixPermissions & 0x4000)) {
44
- o.dir = true;
45
- }
46
- // Bit 4 Directory
47
- if (o.dosPermissions && (o.dosPermissions & 0x0010)) {
48
- o.dir = true;
49
- }
50
-
51
- if (o.dir) {
52
- name = forceTrailingSlash(name);
53
- }
54
- if (o.createFolders && (parent = parentFolder(name))) {
55
- folderAdd.call(this, parent, true);
56
- }
57
-
58
- var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false;
59
- if (!originalOptions || typeof originalOptions.binary === "undefined") {
60
- o.binary = !isUnicodeString;
61
- }
62
-
63
-
64
- var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0;
65
-
66
- if (isCompressedEmpty || o.dir || !data || data.length === 0) {
67
- o.base64 = false;
68
- o.binary = true;
69
- data = "";
70
- o.compression = "STORE";
71
- dataType = "string";
72
- }
73
-
74
- /*
75
- * Convert content to fit.
76
- */
77
-
78
- var zipObjectContent = null;
79
- if (data instanceof CompressedObject || data instanceof GenericWorker) {
80
- zipObjectContent = data;
81
- } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
82
- zipObjectContent = new NodejsStreamInputAdapter(name, data);
83
- } else {
84
- zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64);
85
- }
86
-
87
- var object = new ZipObject(name, zipObjectContent, o);
88
- this.files[name] = object;
89
- /*
90
- TODO: we can't throw an exception because we have async promises
91
- (we can have a promise of a Date() for example) but returning a
92
- promise is useless because file(name, data) returns the JSZip
93
- object for chaining. Should we break that to allow the user
94
- to catch the error ?
95
-
96
- return external.Promise.resolve(zipObjectContent)
97
- .then(function () {
98
- return object;
99
- });
100
- */
101
- };
102
-
103
- /**
104
- * Find the parent folder of the path.
105
- * @private
106
- * @param {string} path the path to use
107
- * @return {string} the parent folder, or ""
108
- */
109
- var parentFolder = function (path) {
110
- if (path.slice(-1) === "/") {
111
- path = path.substring(0, path.length - 1);
112
- }
113
- var lastSlash = path.lastIndexOf("/");
114
- return (lastSlash > 0) ? path.substring(0, lastSlash) : "";
115
- };
116
-
117
- /**
118
- * Returns the path with a slash at the end.
119
- * @private
120
- * @param {String} path the path to check.
121
- * @return {String} the path with a trailing slash.
122
- */
123
- var forceTrailingSlash = function(path) {
124
- // Check the name ends with a /
125
- if (path.slice(-1) !== "/") {
126
- path += "/"; // IE doesn't like substr(-1)
127
- }
128
- return path;
129
- };
130
-
131
- /**
132
- * Add a (sub) folder in the current folder.
133
- * @private
134
- * @param {string} name the folder's name
135
- * @param {boolean=} [createFolders] If true, automatically create sub
136
- * folders. Defaults to false.
137
- * @return {Object} the new folder.
138
- */
139
- var folderAdd = function(name, createFolders) {
140
- createFolders = (typeof createFolders !== "undefined") ? createFolders : defaults.createFolders;
141
-
142
- name = forceTrailingSlash(name);
143
-
144
- // Does this folder already exist?
145
- if (!this.files[name]) {
146
- fileAdd.call(this, name, null, {
147
- dir: true,
148
- createFolders: createFolders
149
- });
150
- }
151
- return this.files[name];
152
- };
153
-
154
- /**
155
- * Cross-window, cross-Node-context regular expression detection
156
- * @param {Object} object Anything
157
- * @return {Boolean} true if the object is a regular expression,
158
- * false otherwise
159
- */
160
- function isRegExp(object) {
161
- return Object.prototype.toString.call(object) === "[object RegExp]";
162
- }
163
-
164
- // return the actual prototype of JSZip
165
- var out = {
166
- /**
167
- * @see loadAsync
168
- */
169
- load: function() {
170
- throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
171
- },
172
-
173
-
174
- /**
175
- * Call a callback function for each entry at this folder level.
176
- * @param {Function} cb the callback function:
177
- * function (relativePath, file) {...}
178
- * It takes 2 arguments : the relative path and the file.
179
- */
180
- forEach: function(cb) {
181
- var filename, relativePath, file;
182
- // ignore warning about unwanted properties because this.files is a null prototype object
183
- /* eslint-disable-next-line guard-for-in */
184
- for (filename in this.files) {
185
- file = this.files[filename];
186
- relativePath = filename.slice(this.root.length, filename.length);
187
- if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root
188
- cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...
189
- }
190
- }
191
- },
192
-
193
- /**
194
- * Filter nested files/folders with the specified function.
195
- * @param {Function} search the predicate to use :
196
- * function (relativePath, file) {...}
197
- * It takes 2 arguments : the relative path and the file.
198
- * @return {Array} An array of matching elements.
199
- */
200
- filter: function(search) {
201
- var result = [];
202
- this.forEach(function (relativePath, entry) {
203
- if (search(relativePath, entry)) { // the file matches the function
204
- result.push(entry);
205
- }
206
-
207
- });
208
- return result;
209
- },
210
-
211
- /**
212
- * Add a file to the zip file, or search a file.
213
- * @param {string|RegExp} name The name of the file to add (if data is defined),
214
- * the name of the file to find (if no data) or a regex to match files.
215
- * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded
216
- * @param {Object} o File options
217
- * @return {JSZip|Object|Array} this JSZip object (when adding a file),
218
- * a file (when searching by string) or an array of files (when searching by regex).
219
- */
220
- file: function(name, data, o) {
221
- if (arguments.length === 1) {
222
- if (isRegExp(name)) {
223
- var regexp = name;
224
- return this.filter(function(relativePath, file) {
225
- return !file.dir && regexp.test(relativePath);
226
- });
227
- }
228
- else { // text
229
- var obj = this.files[this.root + name];
230
- if (obj && !obj.dir) {
231
- return obj;
232
- } else {
233
- return null;
234
- }
235
- }
236
- }
237
- else { // more than one argument : we have data !
238
- name = this.root + name;
239
- fileAdd.call(this, name, data, o);
240
- }
241
- return this;
242
- },
243
-
244
- /**
245
- * Add a directory to the zip file, or search.
246
- * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders.
247
- * @return {JSZip} an object with the new directory as the root, or an array containing matching folders.
248
- */
249
- folder: function(arg) {
250
- if (!arg) {
251
- return this;
252
- }
253
-
254
- if (isRegExp(arg)) {
255
- return this.filter(function(relativePath, file) {
256
- return file.dir && arg.test(relativePath);
257
- });
258
- }
259
-
260
- // else, name is a new folder
261
- var name = this.root + arg;
262
- var newFolder = folderAdd.call(this, name);
263
-
264
- // Allow chaining by returning a new object with this folder as the root
265
- var ret = this.clone();
266
- ret.root = newFolder.name;
267
- return ret;
268
- },
269
-
270
- /**
271
- * Delete a file, or a directory and all sub-files, from the zip
272
- * @param {string} name the name of the file to delete
273
- * @return {JSZip} this JSZip object
274
- */
275
- remove: function(name) {
276
- name = this.root + name;
277
- var file = this.files[name];
278
- if (!file) {
279
- // Look for any folders
280
- if (name.slice(-1) !== "/") {
281
- name += "/";
282
- }
283
- file = this.files[name];
284
- }
285
-
286
- if (file && !file.dir) {
287
- // file
288
- delete this.files[name];
289
- } else {
290
- // maybe a folder, delete recursively
291
- var kids = this.filter(function(relativePath, file) {
292
- return file.name.slice(0, name.length) === name;
293
- });
294
- for (var i = 0; i < kids.length; i++) {
295
- delete this.files[kids[i].name];
296
- }
297
- }
298
-
299
- return this;
300
- },
301
-
302
- /**
303
- * @deprecated This method has been removed in JSZip 3.0, please check the upgrade guide.
304
- */
305
- generate: function() {
306
- throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
307
- },
308
-
309
- /**
310
- * Generate the complete zip file as an internal stream.
311
- * @param {Object} options the options to generate the zip file :
312
- * - compression, "STORE" by default.
313
- * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
314
- * @return {StreamHelper} the streamed zip file.
315
- */
316
- generateInternalStream: function(options) {
317
- var worker, opts = {};
318
- try {
319
- opts = utils.extend(options || {}, {
320
- streamFiles: false,
321
- compression: "STORE",
322
- compressionOptions : null,
323
- type: "",
324
- platform: "DOS",
325
- comment: null,
326
- mimeType: "application/zip",
327
- encodeFileName: utf8.utf8encode
328
- });
329
-
330
- opts.type = opts.type.toLowerCase();
331
- opts.compression = opts.compression.toUpperCase();
332
-
333
- // "binarystring" is preferred but the internals use "string".
334
- if(opts.type === "binarystring") {
335
- opts.type = "string";
336
- }
337
-
338
- if (!opts.type) {
339
- throw new Error("No output type specified.");
340
- }
341
-
342
- utils.checkSupport(opts.type);
343
-
344
- // accept nodejs `process.platform`
345
- if(
346
- opts.platform === "darwin" ||
347
- opts.platform === "freebsd" ||
348
- opts.platform === "linux" ||
349
- opts.platform === "sunos"
350
- ) {
351
- opts.platform = "UNIX";
352
- }
353
- if (opts.platform === "win32") {
354
- opts.platform = "DOS";
355
- }
356
-
357
- var comment = opts.comment || this.comment || "";
358
- worker = generate.generateWorker(this, opts, comment);
359
- } catch (e) {
360
- worker = new GenericWorker("error");
361
- worker.error(e);
362
- }
363
- return new StreamHelper(worker, opts.type || "string", opts.mimeType);
364
- },
365
- /**
366
- * Generate the complete zip file asynchronously.
367
- * @see generateInternalStream
368
- */
369
- generateAsync: function(options, onUpdate) {
370
- return this.generateInternalStream(options).accumulate(onUpdate);
371
- },
372
- /**
373
- * Generate the complete zip file asynchronously.
374
- * @see generateInternalStream
375
- */
376
- generateNodeStream: function(options, onUpdate) {
377
- options = options || {};
378
- if (!options.type) {
379
- options.type = "nodebuffer";
380
- }
381
- return this.generateInternalStream(options).toNodejsStream(onUpdate);
382
- }
383
- };
384
- module.exports = out;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- /*
3
- * This file is used by module bundlers (browserify/webpack/etc) when
4
- * including a stream implementation. We use "readable-stream" to get a
5
- * consistent behavior between nodejs versions but bundlers often have a shim
6
- * for "stream". Using this shim greatly improve the compatibility and greatly
7
- * reduce the final size of the bundle (only one stream implementation, not
8
- * two).
9
- */
10
- module.exports = require("stream");
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var DataReader = require("./DataReader");
3
- var utils = require("../utils");
4
-
5
- function ArrayReader(data) {
6
- DataReader.call(this, data);
7
- for(var i = 0; i < this.data.length; i++) {
8
- data[i] = data[i] & 0xFF;
9
- }
10
- }
11
- utils.inherits(ArrayReader, DataReader);
12
- /**
13
- * @see DataReader.byteAt
14
- */
15
- ArrayReader.prototype.byteAt = function(i) {
16
- return this.data[this.zero + i];
17
- };
18
- /**
19
- * @see DataReader.lastIndexOfSignature
20
- */
21
- ArrayReader.prototype.lastIndexOfSignature = function(sig) {
22
- var sig0 = sig.charCodeAt(0),
23
- sig1 = sig.charCodeAt(1),
24
- sig2 = sig.charCodeAt(2),
25
- sig3 = sig.charCodeAt(3);
26
- for (var i = this.length - 4; i >= 0; --i) {
27
- if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {
28
- return i - this.zero;
29
- }
30
- }
31
-
32
- return -1;
33
- };
34
- /**
35
- * @see DataReader.readAndCheckSignature
36
- */
37
- ArrayReader.prototype.readAndCheckSignature = function (sig) {
38
- var sig0 = sig.charCodeAt(0),
39
- sig1 = sig.charCodeAt(1),
40
- sig2 = sig.charCodeAt(2),
41
- sig3 = sig.charCodeAt(3),
42
- data = this.readData(4);
43
- return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];
44
- };
45
- /**
46
- * @see DataReader.readData
47
- */
48
- ArrayReader.prototype.readData = function(size) {
49
- this.checkOffset(size);
50
- if(size === 0) {
51
- return [];
52
- }
53
- var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
54
- this.index += size;
55
- return result;
56
- };
57
- module.exports = ArrayReader;
@@ -1,116 +0,0 @@
1
- "use strict";
2
- var utils = require("../utils");
3
-
4
- function DataReader(data) {
5
- this.data = data; // type : see implementation
6
- this.length = data.length;
7
- this.index = 0;
8
- this.zero = 0;
9
- }
10
- DataReader.prototype = {
11
- /**
12
- * Check that the offset will not go too far.
13
- * @param {string} offset the additional offset to check.
14
- * @throws {Error} an Error if the offset is out of bounds.
15
- */
16
- checkOffset: function(offset) {
17
- this.checkIndex(this.index + offset);
18
- },
19
- /**
20
- * Check that the specified index will not be too far.
21
- * @param {string} newIndex the index to check.
22
- * @throws {Error} an Error if the index is out of bounds.
23
- */
24
- checkIndex: function(newIndex) {
25
- if (this.length < this.zero + newIndex || newIndex < 0) {
26
- throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?");
27
- }
28
- },
29
- /**
30
- * Change the index.
31
- * @param {number} newIndex The new index.
32
- * @throws {Error} if the new index is out of the data.
33
- */
34
- setIndex: function(newIndex) {
35
- this.checkIndex(newIndex);
36
- this.index = newIndex;
37
- },
38
- /**
39
- * Skip the next n bytes.
40
- * @param {number} n the number of bytes to skip.
41
- * @throws {Error} if the new index is out of the data.
42
- */
43
- skip: function(n) {
44
- this.setIndex(this.index + n);
45
- },
46
- /**
47
- * Get the byte at the specified index.
48
- * @param {number} i the index to use.
49
- * @return {number} a byte.
50
- */
51
- byteAt: function() {
52
- // see implementations
53
- },
54
- /**
55
- * Get the next number with a given byte size.
56
- * @param {number} size the number of bytes to read.
57
- * @return {number} the corresponding number.
58
- */
59
- readInt: function(size) {
60
- var result = 0,
61
- i;
62
- this.checkOffset(size);
63
- for (i = this.index + size - 1; i >= this.index; i--) {
64
- result = (result << 8) + this.byteAt(i);
65
- }
66
- this.index += size;
67
- return result;
68
- },
69
- /**
70
- * Get the next string with a given byte size.
71
- * @param {number} size the number of bytes to read.
72
- * @return {string} the corresponding string.
73
- */
74
- readString: function(size) {
75
- return utils.transformTo("string", this.readData(size));
76
- },
77
- /**
78
- * Get raw data without conversion, <size> bytes.
79
- * @param {number} size the number of bytes to read.
80
- * @return {Object} the raw data, implementation specific.
81
- */
82
- readData: function() {
83
- // see implementations
84
- },
85
- /**
86
- * Find the last occurrence of a zip signature (4 bytes).
87
- * @param {string} sig the signature to find.
88
- * @return {number} the index of the last occurrence, -1 if not found.
89
- */
90
- lastIndexOfSignature: function() {
91
- // see implementations
92
- },
93
- /**
94
- * Read the signature (4 bytes) at the current position and compare it with sig.
95
- * @param {string} sig the expected signature
96
- * @return {boolean} true if the signature matches, false otherwise.
97
- */
98
- readAndCheckSignature: function() {
99
- // see implementations
100
- },
101
- /**
102
- * Get the next date.
103
- * @return {Date} the date.
104
- */
105
- readDate: function() {
106
- var dostime = this.readInt(4);
107
- return new Date(Date.UTC(
108
- ((dostime >> 25) & 0x7f) + 1980, // year
109
- ((dostime >> 21) & 0x0f) - 1, // month
110
- (dostime >> 16) & 0x1f, // day
111
- (dostime >> 11) & 0x1f, // hour
112
- (dostime >> 5) & 0x3f, // minute
113
- (dostime & 0x1f) << 1)); // second
114
- }
115
- };
116
- module.exports = DataReader;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var Uint8ArrayReader = require("./Uint8ArrayReader");
3
- var utils = require("../utils");
4
-
5
- function NodeBufferReader(data) {
6
- Uint8ArrayReader.call(this, data);
7
- }
8
- utils.inherits(NodeBufferReader, Uint8ArrayReader);
9
-
10
- /**
11
- * @see DataReader.readData
12
- */
13
- NodeBufferReader.prototype.readData = function(size) {
14
- this.checkOffset(size);
15
- var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
16
- this.index += size;
17
- return result;
18
- };
19
- module.exports = NodeBufferReader;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var DataReader = require("./DataReader");
3
- var utils = require("../utils");
4
-
5
- function StringReader(data) {
6
- DataReader.call(this, data);
7
- }
8
- utils.inherits(StringReader, DataReader);
9
- /**
10
- * @see DataReader.byteAt
11
- */
12
- StringReader.prototype.byteAt = function(i) {
13
- return this.data.charCodeAt(this.zero + i);
14
- };
15
- /**
16
- * @see DataReader.lastIndexOfSignature
17
- */
18
- StringReader.prototype.lastIndexOfSignature = function(sig) {
19
- return this.data.lastIndexOf(sig) - this.zero;
20
- };
21
- /**
22
- * @see DataReader.readAndCheckSignature
23
- */
24
- StringReader.prototype.readAndCheckSignature = function (sig) {
25
- var data = this.readData(4);
26
- return sig === data;
27
- };
28
- /**
29
- * @see DataReader.readData
30
- */
31
- StringReader.prototype.readData = function(size) {
32
- this.checkOffset(size);
33
- // this will work because the constructor applied the "& 0xff" mask.
34
- var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
35
- this.index += size;
36
- return result;
37
- };
38
- module.exports = StringReader;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var ArrayReader = require("./ArrayReader");
3
- var utils = require("../utils");
4
-
5
- function Uint8ArrayReader(data) {
6
- ArrayReader.call(this, data);
7
- }
8
- utils.inherits(Uint8ArrayReader, ArrayReader);
9
- /**
10
- * @see DataReader.readData
11
- */
12
- Uint8ArrayReader.prototype.readData = function(size) {
13
- this.checkOffset(size);
14
- if(size === 0) {
15
- // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].
16
- return new Uint8Array(0);
17
- }
18
- var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);
19
- this.index += size;
20
- return result;
21
- };
22
- module.exports = Uint8ArrayReader;
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var support = require("../support");
5
- var ArrayReader = require("./ArrayReader");
6
- var StringReader = require("./StringReader");
7
- var NodeBufferReader = require("./NodeBufferReader");
8
- var Uint8ArrayReader = require("./Uint8ArrayReader");
9
-
10
- /**
11
- * Create a reader adapted to the data.
12
- * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.
13
- * @return {DataReader} the data reader.
14
- */
15
- module.exports = function (data) {
16
- var type = utils.getTypeOf(data);
17
- utils.checkSupport(type);
18
- if (type === "string" && !support.uint8array) {
19
- return new StringReader(data);
20
- }
21
- if (type === "nodebuffer") {
22
- return new NodeBufferReader(data);
23
- }
24
- if (support.uint8array) {
25
- return new Uint8ArrayReader(utils.transformTo("uint8array", data));
26
- }
27
- return new ArrayReader(utils.transformTo("array", data));
28
- };
@@ -1,7 +0,0 @@
1
- "use strict";
2
- exports.LOCAL_FILE_HEADER = "PK\x03\x04";
3
- exports.CENTRAL_FILE_HEADER = "PK\x01\x02";
4
- exports.CENTRAL_DIRECTORY_END = "PK\x05\x06";
5
- exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07";
6
- exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06";
7
- exports.DATA_DESCRIPTOR = "PK\x07\x08";