open-agreements 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/README.de.md +6 -1
  2. package/README.es.md +6 -1
  3. package/README.md +13 -1
  4. package/README.pt-br.md +6 -1
  5. package/README.zh.md +6 -1
  6. package/content/external/yc-safe-discount/metadata.yaml +1 -1
  7. package/content/external/yc-safe-mfn/metadata.yaml +1 -1
  8. package/content/external/yc-safe-pro-rata-side-letter/metadata.yaml +1 -1
  9. package/content/external/yc-safe-valuation-cap/metadata.yaml +1 -1
  10. package/content/recipes/QUALITY_TRACKER.md +35 -0
  11. package/content/recipes/nvca-certificate-of-incorporation/clean.json +14 -2
  12. package/content/recipes/nvca-certificate-of-incorporation/computed.json +78 -0
  13. package/content/recipes/nvca-certificate-of-incorporation/metadata.yaml +115 -2
  14. package/content/recipes/nvca-certificate-of-incorporation/replacements.json +50 -2
  15. package/content/recipes/nvca-certificate-of-incorporation/selections-roadmap.md +47 -0
  16. package/content/recipes/nvca-indemnification-agreement/metadata.yaml +5 -1
  17. package/content/recipes/nvca-indemnification-agreement/replacements.json +30 -5
  18. package/content/recipes/nvca-investors-rights-agreement/clean.json +9 -1
  19. package/content/recipes/nvca-investors-rights-agreement/metadata.yaml +1 -1
  20. package/content/recipes/nvca-investors-rights-agreement/replacements.json +4 -1
  21. package/content/recipes/nvca-management-rights-letter/metadata.yaml +1 -1
  22. package/content/recipes/nvca-rofr-co-sale-agreement/clean.json +11 -1
  23. package/content/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +5 -1
  24. package/content/recipes/nvca-rofr-co-sale-agreement/replacements.json +62 -3
  25. package/content/recipes/nvca-stock-purchase-agreement/clean.json +8 -3
  26. package/content/recipes/nvca-stock-purchase-agreement/metadata.yaml +6 -1
  27. package/content/recipes/nvca-stock-purchase-agreement/normalize.json +0 -16
  28. package/content/recipes/nvca-stock-purchase-agreement/replacements.json +15 -12
  29. package/content/recipes/nvca-stock-purchase-agreement/selections.json +17 -0
  30. package/content/recipes/nvca-voting-agreement/clean.json +11 -1
  31. package/content/recipes/nvca-voting-agreement/metadata.yaml +1 -1
  32. package/content/recipes/nvca-voting-agreement/replacements.json +2 -1
  33. package/content/templates/bonterms-mutual-nda/metadata.yaml +1 -1
  34. package/content/templates/bonterms-professional-services-agreement/metadata.yaml +1 -1
  35. package/content/templates/closing-checklist/metadata.yaml +1 -1
  36. package/content/templates/closing-checklist/template.docx +0 -0
  37. package/content/templates/common-paper-ai-addendum/metadata.yaml +1 -1
  38. package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +1 -1
  39. package/content/templates/common-paper-amendment/metadata.yaml +1 -1
  40. package/content/templates/common-paper-business-associate-agreement/metadata.yaml +1 -1
  41. package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +1 -1
  42. package/content/templates/common-paper-csa-click-through/metadata.yaml +1 -1
  43. package/content/templates/common-paper-csa-with-ai/metadata.yaml +1 -1
  44. package/content/templates/common-paper-csa-with-sla/metadata.yaml +1 -1
  45. package/content/templates/common-paper-csa-without-sla/metadata.yaml +1 -1
  46. package/content/templates/common-paper-data-processing-agreement/metadata.yaml +1 -1
  47. package/content/templates/common-paper-design-partner-agreement/metadata.yaml +1 -1
  48. package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +1 -1
  49. package/content/templates/common-paper-letter-of-intent/metadata.yaml +1 -1
  50. package/content/templates/common-paper-mutual-nda/metadata.yaml +1 -1
  51. package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
  52. package/content/templates/common-paper-order-form/metadata.yaml +1 -1
  53. package/content/templates/common-paper-order-form-with-sla/metadata.yaml +1 -1
  54. package/content/templates/common-paper-partnership-agreement/metadata.yaml +1 -1
  55. package/content/templates/common-paper-pilot-agreement/metadata.yaml +1 -1
  56. package/content/templates/common-paper-professional-services-agreement/metadata.yaml +1 -1
  57. package/content/templates/common-paper-software-license-agreement/metadata.yaml +1 -1
  58. package/content/templates/common-paper-statement-of-work/metadata.yaml +1 -1
  59. package/content/templates/common-paper-term-sheet/metadata.yaml +1 -1
  60. package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
  61. package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +1 -1
  62. package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
  63. package/content/templates/working-group-list/metadata.yaml +1 -1
  64. package/dist/cli/index.d.ts.map +1 -1
  65. package/dist/cli/index.js +8 -4
  66. package/dist/cli/index.js.map +1 -1
  67. package/dist/commands/fill.js +3 -3
  68. package/dist/commands/fill.js.map +1 -1
  69. package/dist/commands/list.js +19 -15
  70. package/dist/commands/list.js.map +1 -1
  71. package/dist/core/checklist/docx-import.d.ts +50 -0
  72. package/dist/core/checklist/docx-import.d.ts.map +1 -0
  73. package/dist/core/checklist/docx-import.js +613 -0
  74. package/dist/core/checklist/docx-import.js.map +1 -0
  75. package/dist/core/checklist/docx-table-helpers.d.ts +33 -0
  76. package/dist/core/checklist/docx-table-helpers.d.ts.map +1 -0
  77. package/dist/core/checklist/docx-table-helpers.js +154 -0
  78. package/dist/core/checklist/docx-table-helpers.js.map +1 -0
  79. package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -1
  80. package/dist/core/checklist/format-checklist-docx.js +37 -88
  81. package/dist/core/checklist/format-checklist-docx.js.map +1 -1
  82. package/dist/core/checklist/index.d.ts +15 -12
  83. package/dist/core/checklist/index.d.ts.map +1 -1
  84. package/dist/core/checklist/index.js +48 -30
  85. package/dist/core/checklist/index.js.map +1 -1
  86. package/dist/core/checklist/status-labels.d.ts +6 -0
  87. package/dist/core/checklist/status-labels.d.ts.map +1 -1
  88. package/dist/core/checklist/status-labels.js +8 -0
  89. package/dist/core/checklist/status-labels.js.map +1 -1
  90. package/dist/core/command-generation/adapters/claude.js +4 -4
  91. package/dist/core/employment/memo.js +3 -3
  92. package/dist/core/engine.js +1 -1
  93. package/dist/core/external/index.js +1 -1
  94. package/dist/core/fill-pipeline.d.ts +3 -3
  95. package/dist/core/fill-pipeline.js +6 -6
  96. package/dist/core/fill-pipeline.js.map +1 -1
  97. package/dist/core/metadata.d.ts +13 -3
  98. package/dist/core/metadata.d.ts.map +1 -1
  99. package/dist/core/metadata.js +19 -11
  100. package/dist/core/metadata.js.map +1 -1
  101. package/dist/core/recipe/bracket-normalizer.d.ts +4 -5
  102. package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
  103. package/dist/core/recipe/bracket-normalizer.js +67 -149
  104. package/dist/core/recipe/bracket-normalizer.js.map +1 -1
  105. package/dist/core/recipe/cleaner.d.ts.map +1 -1
  106. package/dist/core/recipe/cleaner.js +91 -7
  107. package/dist/core/recipe/cleaner.js.map +1 -1
  108. package/dist/core/recipe/downloader.d.ts.map +1 -1
  109. package/dist/core/recipe/downloader.js +8 -3
  110. package/dist/core/recipe/downloader.js.map +1 -1
  111. package/dist/core/recipe/index.d.ts +2 -1
  112. package/dist/core/recipe/index.d.ts.map +1 -1
  113. package/dist/core/recipe/index.js +11 -4
  114. package/dist/core/recipe/index.js.map +1 -1
  115. package/dist/core/recipe/patcher.d.ts +9 -5
  116. package/dist/core/recipe/patcher.d.ts.map +1 -1
  117. package/dist/core/recipe/patcher.js +183 -136
  118. package/dist/core/recipe/patcher.js.map +1 -1
  119. package/dist/core/recipe/replacement-keys.d.ts +2 -7
  120. package/dist/core/recipe/replacement-keys.d.ts.map +1 -1
  121. package/dist/core/recipe/replacement-keys.js +3 -20
  122. package/dist/core/recipe/replacement-keys.js.map +1 -1
  123. package/dist/core/recipe/source-drift.js +1 -1
  124. package/dist/core/recipe/source-drift.js.map +1 -1
  125. package/dist/core/recipe/verifier.d.ts +7 -1
  126. package/dist/core/recipe/verifier.d.ts.map +1 -1
  127. package/dist/core/recipe/verifier.js +69 -3
  128. package/dist/core/recipe/verifier.js.map +1 -1
  129. package/dist/core/selector.d.ts +2 -0
  130. package/dist/core/selector.d.ts.map +1 -1
  131. package/dist/core/selector.js +97 -1
  132. package/dist/core/selector.js.map +1 -1
  133. package/dist/core/template-listing.d.ts +3 -1
  134. package/dist/core/template-listing.d.ts.map +1 -1
  135. package/dist/core/template-listing.js +4 -3
  136. package/dist/core/template-listing.js.map +1 -1
  137. package/dist/core/unified-pipeline.d.ts +1 -1
  138. package/dist/core/unified-pipeline.d.ts.map +1 -1
  139. package/dist/core/unified-pipeline.js +21 -3
  140. package/dist/core/unified-pipeline.js.map +1 -1
  141. package/dist/core/validation/external.d.ts.map +1 -1
  142. package/dist/core/validation/external.js +0 -2
  143. package/dist/core/validation/external.js.map +1 -1
  144. package/dist/core/validation/recipe.d.ts.map +1 -1
  145. package/dist/core/validation/recipe.js +0 -2
  146. package/dist/core/validation/recipe.js.map +1 -1
  147. package/dist/core/validation/scan-metadata.d.ts.map +1 -1
  148. package/dist/core/validation/scan-metadata.js +17 -1
  149. package/dist/core/validation/scan-metadata.js.map +1 -1
  150. package/dist/core/validation/template.js +5 -5
  151. package/dist/index.d.ts +1 -1
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +1 -1
  154. package/dist/index.js.map +1 -1
  155. package/node_modules/@usejunior/docx-core/dist/atomizer.d.ts +218 -0
  156. package/node_modules/@usejunior/docx-core/dist/atomizer.d.ts.map +1 -0
  157. package/node_modules/@usejunior/docx-core/dist/atomizer.js +869 -0
  158. package/node_modules/@usejunior/docx-core/dist/atomizer.js.map +1 -0
  159. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.d.ts +96 -0
  160. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.d.ts.map +1 -0
  161. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.js +347 -0
  162. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/atomLcs.js.map +1 -0
  163. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.d.ts +2 -0
  164. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.d.ts.map +1 -0
  165. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.js +188 -0
  166. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/consumerCompatibility.js.map +1 -0
  167. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.d.ts +41 -0
  168. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.d.ts.map +1 -0
  169. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.js +85 -0
  170. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/debug.js.map +1 -0
  171. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.d.ts +64 -0
  172. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.d.ts.map +1 -0
  173. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.js +985 -0
  174. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/documentReconstructor.js.map +1 -0
  175. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.d.ts +111 -0
  176. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +1 -0
  177. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.js +469 -0
  178. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/hierarchicalLcs.js.map +1 -0
  179. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.d.ts +277 -0
  180. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.d.ts.map +1 -0
  181. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.js +2279 -0
  182. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/inPlaceModifier.js.map +1 -0
  183. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.d.ts +59 -0
  184. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.d.ts.map +1 -0
  185. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.js +209 -0
  186. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/numberingIntegration.js.map +1 -0
  187. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.d.ts +69 -0
  188. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.d.ts.map +1 -0
  189. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.js +910 -0
  190. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/pipeline.js.map +1 -0
  191. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.d.ts +26 -0
  192. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.d.ts.map +1 -0
  193. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.js +153 -0
  194. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/premergeRuns.js.map +1 -0
  195. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.d.ts +63 -0
  196. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +1 -0
  197. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.js +254 -0
  198. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptor.js.map +1 -0
  199. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +64 -0
  200. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +1 -0
  201. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.js +616 -0
  202. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +1 -0
  203. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.d.ts +65 -0
  204. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +1 -0
  205. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.js +95 -0
  206. package/node_modules/@usejunior/docx-core/dist/baselines/atomizer/xmlToWmlElement.js.map +1 -0
  207. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +51 -0
  208. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +1 -0
  209. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.js +83 -0
  210. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DocxodusWasm.js.map +1 -0
  211. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.d.ts +40 -0
  212. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +1 -0
  213. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.js +135 -0
  214. package/node_modules/@usejunior/docx-core/dist/baselines/wmlcomparer/DotnetCli.js.map +1 -0
  215. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.d.ts +28 -0
  216. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.d.ts.map +1 -0
  217. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.js +110 -0
  218. package/node_modules/@usejunior/docx-core/dist/cli/compare-two.js.map +1 -0
  219. package/node_modules/@usejunior/docx-core/dist/cli/index.d.ts +3 -0
  220. package/node_modules/@usejunior/docx-core/dist/cli/index.d.ts.map +1 -0
  221. package/node_modules/@usejunior/docx-core/dist/cli/index.js +21 -0
  222. package/node_modules/@usejunior/docx-core/dist/cli/index.js.map +1 -0
  223. package/node_modules/@usejunior/docx-core/dist/core-types.d.ts +296 -0
  224. package/node_modules/@usejunior/docx-core/dist/core-types.d.ts.map +1 -0
  225. package/node_modules/@usejunior/docx-core/dist/core-types.js +122 -0
  226. package/node_modules/@usejunior/docx-core/dist/core-types.js.map +1 -0
  227. package/node_modules/@usejunior/docx-core/dist/footnotes.d.ts +144 -0
  228. package/node_modules/@usejunior/docx-core/dist/footnotes.d.ts.map +1 -0
  229. package/node_modules/@usejunior/docx-core/dist/footnotes.js +291 -0
  230. package/node_modules/@usejunior/docx-core/dist/footnotes.js.map +1 -0
  231. package/node_modules/@usejunior/docx-core/dist/format-detection.d.ts +120 -0
  232. package/node_modules/@usejunior/docx-core/dist/format-detection.d.ts.map +1 -0
  233. package/node_modules/@usejunior/docx-core/dist/format-detection.js +338 -0
  234. package/node_modules/@usejunior/docx-core/dist/format-detection.js.map +1 -0
  235. package/node_modules/@usejunior/docx-core/dist/index.d.ts +177 -0
  236. package/node_modules/@usejunior/docx-core/dist/index.d.ts.map +1 -0
  237. package/node_modules/@usejunior/docx-core/dist/index.js +55 -0
  238. package/node_modules/@usejunior/docx-core/dist/index.js.map +1 -0
  239. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.d.ts +6 -0
  240. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.d.ts.map +1 -0
  241. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.js +30 -0
  242. package/node_modules/@usejunior/docx-core/dist/integration/output-artifacts.js.map +1 -0
  243. package/node_modules/@usejunior/docx-core/dist/move-detection.d.ts +211 -0
  244. package/node_modules/@usejunior/docx-core/dist/move-detection.d.ts.map +1 -0
  245. package/node_modules/@usejunior/docx-core/dist/move-detection.js +391 -0
  246. package/node_modules/@usejunior/docx-core/dist/move-detection.js.map +1 -0
  247. package/node_modules/@usejunior/docx-core/dist/numbering.d.ts +136 -0
  248. package/node_modules/@usejunior/docx-core/dist/numbering.d.ts.map +1 -0
  249. package/node_modules/@usejunior/docx-core/dist/numbering.js +446 -0
  250. package/node_modules/@usejunior/docx-core/dist/numbering.js.map +1 -0
  251. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.d.ts +30 -0
  252. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.d.ts.map +1 -0
  253. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.js +241 -0
  254. package/node_modules/@usejunior/docx-core/dist/primitives/accept_changes.js.map +1 -0
  255. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.d.ts +12 -0
  256. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.d.ts.map +1 -0
  257. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.js +248 -0
  258. package/node_modules/@usejunior/docx-core/dist/primitives/bookmarks.js.map +1 -0
  259. package/node_modules/@usejunior/docx-core/dist/primitives/comments.d.ts +88 -0
  260. package/node_modules/@usejunior/docx-core/dist/primitives/comments.d.ts.map +1 -0
  261. package/node_modules/@usejunior/docx-core/dist/primitives/comments.js +703 -0
  262. package/node_modules/@usejunior/docx-core/dist/primitives/comments.js.map +1 -0
  263. package/node_modules/@usejunior/docx-core/dist/primitives/document.d.ts +186 -0
  264. package/node_modules/@usejunior/docx-core/dist/primitives/document.d.ts.map +1 -0
  265. package/node_modules/@usejunior/docx-core/dist/primitives/document.js +555 -0
  266. package/node_modules/@usejunior/docx-core/dist/primitives/document.js.map +1 -0
  267. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.d.ts +97 -0
  268. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.d.ts.map +1 -0
  269. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.js +749 -0
  270. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.js.map +1 -0
  271. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.d.ts +94 -0
  272. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.d.ts.map +1 -0
  273. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.js +219 -0
  274. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.js.map +1 -0
  275. package/node_modules/@usejunior/docx-core/dist/primitives/errors.d.ts +7 -0
  276. package/node_modules/@usejunior/docx-core/dist/primitives/errors.d.ts.map +1 -0
  277. package/node_modules/@usejunior/docx-core/dist/primitives/errors.js +10 -0
  278. package/node_modules/@usejunior/docx-core/dist/primitives/errors.js.map +1 -0
  279. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.d.ts +50 -0
  280. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.d.ts.map +1 -0
  281. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.js +340 -0
  282. package/node_modules/@usejunior/docx-core/dist/primitives/extract_revisions.js.map +1 -0
  283. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.d.ts +37 -0
  284. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.d.ts.map +1 -0
  285. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.js +552 -0
  286. package/node_modules/@usejunior/docx-core/dist/primitives/footnotes.js.map +1 -0
  287. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.d.ts +43 -0
  288. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.d.ts.map +1 -0
  289. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.js +291 -0
  290. package/node_modules/@usejunior/docx-core/dist/primitives/formatting_tags.js.map +1 -0
  291. package/node_modules/@usejunior/docx-core/dist/primitives/index.d.ts +27 -0
  292. package/node_modules/@usejunior/docx-core/dist/primitives/index.d.ts.map +1 -0
  293. package/node_modules/@usejunior/docx-core/dist/primitives/index.js +27 -0
  294. package/node_modules/@usejunior/docx-core/dist/primitives/index.js.map +1 -0
  295. package/node_modules/@usejunior/docx-core/dist/primitives/layout.d.ts +53 -0
  296. package/node_modules/@usejunior/docx-core/dist/primitives/layout.d.ts.map +1 -0
  297. package/node_modules/@usejunior/docx-core/dist/primitives/layout.js +178 -0
  298. package/node_modules/@usejunior/docx-core/dist/primitives/layout.js.map +1 -0
  299. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.d.ts +19 -0
  300. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.d.ts.map +1 -0
  301. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.js +57 -0
  302. package/node_modules/@usejunior/docx-core/dist/primitives/list_labels.js.map +1 -0
  303. package/node_modules/@usejunior/docx-core/dist/primitives/matching.d.ts +31 -0
  304. package/node_modules/@usejunior/docx-core/dist/primitives/matching.d.ts.map +1 -0
  305. package/node_modules/@usejunior/docx-core/dist/primitives/matching.js +223 -0
  306. package/node_modules/@usejunior/docx-core/dist/primitives/matching.js.map +1 -0
  307. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.d.ts +23 -0
  308. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.d.ts.map +1 -0
  309. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.js +243 -0
  310. package/node_modules/@usejunior/docx-core/dist/primitives/merge_runs.js.map +1 -0
  311. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.d.ts +91 -0
  312. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.d.ts.map +1 -0
  313. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.js +108 -0
  314. package/node_modules/@usejunior/docx-core/dist/primitives/namespaces.js.map +1 -0
  315. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.d.ts +27 -0
  316. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.d.ts.map +1 -0
  317. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.js +182 -0
  318. package/node_modules/@usejunior/docx-core/dist/primitives/numbering.js.map +1 -0
  319. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.d.ts +18 -0
  320. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.d.ts.map +1 -0
  321. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.js +190 -0
  322. package/node_modules/@usejunior/docx-core/dist/primitives/prevent_double_elevation.js.map +1 -0
  323. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.d.ts +27 -0
  324. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.d.ts.map +1 -0
  325. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.js +371 -0
  326. package/node_modules/@usejunior/docx-core/dist/primitives/reject_changes.js.map +1 -0
  327. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.d.ts +7 -0
  328. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.d.ts.map +1 -0
  329. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.js +24 -0
  330. package/node_modules/@usejunior/docx-core/dist/primitives/relationships.js.map +1 -0
  331. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.d.ts +17 -0
  332. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.d.ts.map +1 -0
  333. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.js +58 -0
  334. package/node_modules/@usejunior/docx-core/dist/primitives/semantic_tags.js.map +1 -0
  335. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.d.ts +19 -0
  336. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.d.ts.map +1 -0
  337. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.js +94 -0
  338. package/node_modules/@usejunior/docx-core/dist/primitives/simplify_redlines.js.map +1 -0
  339. package/node_modules/@usejunior/docx-core/dist/primitives/styles.d.ts +36 -0
  340. package/node_modules/@usejunior/docx-core/dist/primitives/styles.d.ts.map +1 -0
  341. package/node_modules/@usejunior/docx-core/dist/primitives/styles.js +205 -0
  342. package/node_modules/@usejunior/docx-core/dist/primitives/styles.js.map +1 -0
  343. package/node_modules/@usejunior/docx-core/dist/primitives/tables.d.ts +54 -0
  344. package/node_modules/@usejunior/docx-core/dist/primitives/tables.d.ts.map +1 -0
  345. package/node_modules/@usejunior/docx-core/dist/primitives/tables.js +205 -0
  346. package/node_modules/@usejunior/docx-core/dist/primitives/tables.js.map +1 -0
  347. package/node_modules/@usejunior/docx-core/dist/primitives/text.d.ts +30 -0
  348. package/node_modules/@usejunior/docx-core/dist/primitives/text.d.ts.map +1 -0
  349. package/node_modules/@usejunior/docx-core/dist/primitives/text.js +461 -0
  350. package/node_modules/@usejunior/docx-core/dist/primitives/text.js.map +1 -0
  351. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.d.ts +24 -0
  352. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.d.ts.map +1 -0
  353. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.js +147 -0
  354. package/node_modules/@usejunior/docx-core/dist/primitives/validate_document.js.map +1 -0
  355. package/node_modules/@usejunior/docx-core/dist/primitives/xml.d.ts +5 -0
  356. package/node_modules/@usejunior/docx-core/dist/primitives/xml.d.ts.map +1 -0
  357. package/node_modules/@usejunior/docx-core/dist/primitives/xml.js +19 -0
  358. package/node_modules/@usejunior/docx-core/dist/primitives/xml.js.map +1 -0
  359. package/node_modules/@usejunior/docx-core/dist/primitives/zip.d.ts +25 -0
  360. package/node_modules/@usejunior/docx-core/dist/primitives/zip.d.ts.map +1 -0
  361. package/node_modules/@usejunior/docx-core/dist/primitives/zip.js +78 -0
  362. package/node_modules/@usejunior/docx-core/dist/primitives/zip.js.map +1 -0
  363. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.d.ts +94 -0
  364. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.d.ts.map +1 -0
  365. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.js +169 -0
  366. package/node_modules/@usejunior/docx-core/dist/shared/docx/DocxArchive.js.map +1 -0
  367. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.d.ts +149 -0
  368. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.d.ts.map +1 -0
  369. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.js +224 -0
  370. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/namespaces.js.map +1 -0
  371. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.d.ts +136 -0
  372. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.d.ts.map +1 -0
  373. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.js +7 -0
  374. package/node_modules/@usejunior/docx-core/dist/shared/ooxml/types.js.map +1 -0
  375. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.d.ts +31 -0
  376. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.d.ts.map +1 -0
  377. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.js +110 -0
  378. package/node_modules/@usejunior/docx-core/dist/shared/validators/structural.js.map +1 -0
  379. package/node_modules/@usejunior/docx-core/package.json +26 -0
  380. package/node_modules/core-util-is/LICENSE +19 -0
  381. package/node_modules/core-util-is/README.md +3 -0
  382. package/node_modules/core-util-is/lib/util.js +107 -0
  383. package/node_modules/core-util-is/package.json +38 -0
  384. package/node_modules/diff-match-patch/LICENSE +202 -0
  385. package/node_modules/diff-match-patch/README.md +94 -0
  386. package/node_modules/diff-match-patch/index.js +2218 -0
  387. package/node_modules/diff-match-patch/package.json +22 -0
  388. package/node_modules/immediate/LICENSE.txt +20 -0
  389. package/node_modules/immediate/README.md +93 -0
  390. package/node_modules/immediate/dist/immediate.js +75 -0
  391. package/node_modules/immediate/dist/immediate.min.js +1 -0
  392. package/node_modules/immediate/lib/browser.js +69 -0
  393. package/node_modules/immediate/lib/index.js +73 -0
  394. package/node_modules/immediate/package.json +42 -0
  395. package/node_modules/inherits/LICENSE +16 -0
  396. package/node_modules/inherits/README.md +42 -0
  397. package/node_modules/inherits/inherits.js +9 -0
  398. package/node_modules/inherits/inherits_browser.js +27 -0
  399. package/node_modules/inherits/package.json +29 -0
  400. package/node_modules/isarray/.npmignore +1 -0
  401. package/node_modules/isarray/.travis.yml +4 -0
  402. package/node_modules/isarray/Makefile +6 -0
  403. package/node_modules/isarray/README.md +60 -0
  404. package/node_modules/isarray/component.json +19 -0
  405. package/node_modules/isarray/index.js +5 -0
  406. package/node_modules/isarray/package.json +45 -0
  407. package/node_modules/isarray/test.js +20 -0
  408. package/node_modules/jszip/.codeclimate.yml +16 -0
  409. package/node_modules/jszip/.editorconfig +8 -0
  410. package/node_modules/jszip/.eslintrc.js +43 -0
  411. package/node_modules/jszip/.github/workflows/pr.yaml +58 -0
  412. package/node_modules/jszip/.jekyll-metadata +0 -0
  413. package/node_modules/jszip/.travis.yml +17 -0
  414. package/node_modules/jszip/CHANGES.md +204 -0
  415. package/node_modules/jszip/LICENSE.markdown +651 -0
  416. package/node_modules/jszip/README.markdown +33 -0
  417. package/node_modules/jszip/deps.js +37 -0
  418. package/node_modules/jszip/dist/jszip.js +11577 -0
  419. package/node_modules/jszip/dist/jszip.min.js +13 -0
  420. package/node_modules/jszip/graph.svg +601 -0
  421. package/node_modules/jszip/index.d.ts +330 -0
  422. package/node_modules/jszip/lib/base64.js +106 -0
  423. package/node_modules/jszip/lib/compressedObject.js +74 -0
  424. package/node_modules/jszip/lib/compressions.js +14 -0
  425. package/node_modules/jszip/lib/crc32.js +77 -0
  426. package/node_modules/jszip/lib/defaults.js +11 -0
  427. package/node_modules/jszip/lib/external.js +18 -0
  428. package/node_modules/jszip/lib/flate.js +85 -0
  429. package/node_modules/jszip/lib/generate/ZipFileWorker.js +539 -0
  430. package/node_modules/jszip/lib/generate/index.js +57 -0
  431. package/node_modules/jszip/lib/index.js +55 -0
  432. package/node_modules/jszip/lib/license_header.js +11 -0
  433. package/node_modules/jszip/lib/load.js +88 -0
  434. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  435. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  436. package/node_modules/jszip/lib/nodejsUtils.js +57 -0
  437. package/node_modules/jszip/lib/object.js +384 -0
  438. package/node_modules/jszip/lib/readable-stream-browser.js +10 -0
  439. package/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  440. package/node_modules/jszip/lib/reader/DataReader.js +116 -0
  441. package/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  442. package/node_modules/jszip/lib/reader/StringReader.js +38 -0
  443. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  444. package/node_modules/jszip/lib/reader/readerFor.js +28 -0
  445. package/node_modules/jszip/lib/signature.js +7 -0
  446. package/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  447. package/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  448. package/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  449. package/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  450. package/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  451. package/node_modules/jszip/lib/stream/StreamHelper.js +214 -0
  452. package/node_modules/jszip/lib/support.js +38 -0
  453. package/node_modules/jszip/lib/utf8.js +275 -0
  454. package/node_modules/jszip/lib/utils.js +501 -0
  455. package/node_modules/jszip/lib/zipEntries.js +261 -0
  456. package/node_modules/jszip/lib/zipEntry.js +293 -0
  457. package/node_modules/jszip/lib/zipObject.js +133 -0
  458. package/node_modules/jszip/package.json +67 -0
  459. package/node_modules/jszip/sponsors.md +21 -0
  460. package/node_modules/jszip/tsconfig.json +101 -0
  461. package/node_modules/jszip/vendor/FileSaver.js +247 -0
  462. package/node_modules/lie/README.md +62 -0
  463. package/node_modules/lie/dist/lie.js +350 -0
  464. package/node_modules/lie/dist/lie.min.js +1 -0
  465. package/node_modules/lie/dist/lie.polyfill.js +358 -0
  466. package/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  467. package/node_modules/lie/lib/browser.js +273 -0
  468. package/node_modules/lie/lib/index.js +298 -0
  469. package/node_modules/lie/license.md +7 -0
  470. package/node_modules/lie/lie.d.ts +244 -0
  471. package/node_modules/lie/package.json +69 -0
  472. package/node_modules/lie/polyfill.js +4 -0
  473. package/node_modules/pako/LICENSE +21 -0
  474. package/node_modules/pako/README.md +191 -0
  475. package/node_modules/pako/dist/pako.js +6818 -0
  476. package/node_modules/pako/dist/pako.min.js +1 -0
  477. package/node_modules/pako/dist/pako_deflate.js +3997 -0
  478. package/node_modules/pako/dist/pako_deflate.min.js +1 -0
  479. package/node_modules/pako/dist/pako_inflate.js +3300 -0
  480. package/node_modules/pako/dist/pako_inflate.min.js +1 -0
  481. package/node_modules/pako/index.js +14 -0
  482. package/node_modules/pako/lib/deflate.js +400 -0
  483. package/node_modules/pako/lib/inflate.js +423 -0
  484. package/node_modules/pako/lib/utils/common.js +105 -0
  485. package/node_modules/pako/lib/utils/strings.js +187 -0
  486. package/node_modules/pako/lib/zlib/README +59 -0
  487. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  488. package/node_modules/pako/lib/zlib/constants.js +68 -0
  489. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  490. package/node_modules/pako/lib/zlib/deflate.js +1874 -0
  491. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  492. package/node_modules/pako/lib/zlib/inffast.js +345 -0
  493. package/node_modules/pako/lib/zlib/inflate.js +1556 -0
  494. package/node_modules/pako/lib/zlib/inftrees.js +343 -0
  495. package/node_modules/pako/lib/zlib/messages.js +32 -0
  496. package/node_modules/pako/lib/zlib/trees.js +1222 -0
  497. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  498. package/node_modules/pako/package.json +44 -0
  499. package/node_modules/process-nextick-args/index.js +45 -0
  500. package/node_modules/process-nextick-args/license.md +19 -0
  501. package/node_modules/process-nextick-args/package.json +25 -0
  502. package/node_modules/process-nextick-args/readme.md +18 -0
  503. package/node_modules/readable-stream/.travis.yml +34 -0
  504. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  505. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  506. package/node_modules/readable-stream/LICENSE +47 -0
  507. package/node_modules/readable-stream/README.md +58 -0
  508. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  509. package/node_modules/readable-stream/duplex-browser.js +1 -0
  510. package/node_modules/readable-stream/duplex.js +1 -0
  511. package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  512. package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  513. package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  514. package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  515. package/node_modules/readable-stream/lib/_stream_writable.js +685 -0
  516. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
  517. package/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
  518. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  519. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  520. package/node_modules/readable-stream/package.json +52 -0
  521. package/node_modules/readable-stream/passthrough.js +1 -0
  522. package/node_modules/readable-stream/readable-browser.js +7 -0
  523. package/node_modules/readable-stream/readable.js +19 -0
  524. package/node_modules/readable-stream/transform.js +1 -0
  525. package/node_modules/readable-stream/writable-browser.js +1 -0
  526. package/node_modules/readable-stream/writable.js +8 -0
  527. package/node_modules/safe-buffer/LICENSE +21 -0
  528. package/node_modules/safe-buffer/README.md +584 -0
  529. package/node_modules/safe-buffer/index.d.ts +187 -0
  530. package/node_modules/safe-buffer/index.js +62 -0
  531. package/node_modules/safe-buffer/package.json +37 -0
  532. package/node_modules/setimmediate/LICENSE.txt +20 -0
  533. package/node_modules/setimmediate/package.json +30 -0
  534. package/node_modules/setimmediate/setImmediate.js +186 -0
  535. package/node_modules/string_decoder/.travis.yml +50 -0
  536. package/node_modules/string_decoder/LICENSE +48 -0
  537. package/node_modules/string_decoder/README.md +47 -0
  538. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  539. package/node_modules/string_decoder/package.json +31 -0
  540. package/node_modules/util-deprecate/History.md +16 -0
  541. package/node_modules/util-deprecate/LICENSE +24 -0
  542. package/node_modules/util-deprecate/README.md +53 -0
  543. package/node_modules/util-deprecate/browser.js +67 -0
  544. package/node_modules/util-deprecate/node.js +6 -0
  545. package/node_modules/util-deprecate/package.json +27 -0
  546. package/package.json +11 -5
  547. package/packages/docx-core/node_modules/@xmldom/xmldom/CHANGELOG.md +468 -0
  548. package/packages/docx-core/node_modules/@xmldom/xmldom/LICENSE +8 -0
  549. package/packages/docx-core/node_modules/@xmldom/xmldom/SECURITY.md +50 -0
  550. package/packages/docx-core/node_modules/@xmldom/xmldom/index.d.ts +43 -0
  551. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +2 -0
  552. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/conventions.js +203 -0
  553. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/dom-parser.js +322 -0
  554. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/dom.js +1879 -0
  555. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/entities.js +2166 -0
  556. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/index.js +4 -0
  557. package/packages/docx-core/node_modules/@xmldom/xmldom/lib/sax.js +662 -0
  558. package/packages/docx-core/node_modules/@xmldom/xmldom/package.json +71 -0
  559. package/packages/docx-core/node_modules/@xmldom/xmldom/readme.md +356 -0
  560. package/server.json +31 -0
  561. package/skills/client-email/SKILL.md +143 -0
  562. package/skills/cloud-service-agreement/SKILL.md +8 -99
  563. package/skills/data-privacy-agreement/SKILL.md +10 -97
  564. package/skills/delaware-franchise-tax/SKILL.md +7 -1
  565. package/skills/edit-docx-agreement/SKILL.md +10 -3
  566. package/skills/employment-contract/SKILL.md +10 -95
  567. package/skills/iso-27001-evidence-collection/SKILL.md +7 -1
  568. package/skills/iso-27001-internal-audit/SKILL.md +6 -0
  569. package/skills/nda/SKILL.md +7 -99
  570. package/skills/open-agreements/CONNECTORS.md +1 -1
  571. package/skills/open-agreements/SKILL.md +17 -104
  572. package/skills/recipe-quality-audit/SKILL.md +116 -0
  573. package/skills/safe/SKILL.md +12 -97
  574. package/skills/services-agreement/SKILL.md +8 -99
  575. package/skills/shared/template-filling-execution.md +92 -0
  576. package/skills/soc2-readiness/SKILL.md +7 -1
  577. package/skills/unit-test-philosophy/SKILL.md +12 -1
  578. package/skills/venture-financing/SKILL.md +11 -96
@@ -0,0 +1,423 @@
1
+ 'use strict';
2
+
3
+
4
+ var zlib_inflate = require('./zlib/inflate');
5
+ var utils = require('./utils/common');
6
+ var strings = require('./utils/strings');
7
+ var c = require('./zlib/constants');
8
+ var msg = require('./zlib/messages');
9
+ var ZStream = require('./zlib/zstream');
10
+ var GZheader = require('./zlib/gzheader');
11
+
12
+ var toString = Object.prototype.toString;
13
+
14
+ /**
15
+ * class Inflate
16
+ *
17
+ * Generic JS-style wrapper for zlib calls. If you don't need
18
+ * streaming behaviour - use more simple functions: [[inflate]]
19
+ * and [[inflateRaw]].
20
+ **/
21
+
22
+ /* internal
23
+ * inflate.chunks -> Array
24
+ *
25
+ * Chunks of output data, if [[Inflate#onData]] not overridden.
26
+ **/
27
+
28
+ /**
29
+ * Inflate.result -> Uint8Array|Array|String
30
+ *
31
+ * Uncompressed result, generated by default [[Inflate#onData]]
32
+ * and [[Inflate#onEnd]] handlers. Filled after you push last chunk
33
+ * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
34
+ * push a chunk with explicit flush (call [[Inflate#push]] with
35
+ * `Z_SYNC_FLUSH` param).
36
+ **/
37
+
38
+ /**
39
+ * Inflate.err -> Number
40
+ *
41
+ * Error code after inflate finished. 0 (Z_OK) on success.
42
+ * Should be checked if broken data possible.
43
+ **/
44
+
45
+ /**
46
+ * Inflate.msg -> String
47
+ *
48
+ * Error message, if [[Inflate.err]] != 0
49
+ **/
50
+
51
+
52
+ /**
53
+ * new Inflate(options)
54
+ * - options (Object): zlib inflate options.
55
+ *
56
+ * Creates new inflator instance with specified params. Throws exception
57
+ * on bad params. Supported options:
58
+ *
59
+ * - `windowBits`
60
+ * - `dictionary`
61
+ *
62
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
63
+ * for more information on these.
64
+ *
65
+ * Additional options, for internal needs:
66
+ *
67
+ * - `chunkSize` - size of generated data chunks (16K by default)
68
+ * - `raw` (Boolean) - do raw inflate
69
+ * - `to` (String) - if equal to 'string', then result will be converted
70
+ * from utf8 to utf16 (javascript) string. When string output requested,
71
+ * chunk length can differ from `chunkSize`, depending on content.
72
+ *
73
+ * By default, when no options set, autodetect deflate/gzip data format via
74
+ * wrapper header.
75
+ *
76
+ * ##### Example:
77
+ *
78
+ * ```javascript
79
+ * var pako = require('pako')
80
+ * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
81
+ * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
82
+ *
83
+ * var inflate = new pako.Inflate({ level: 3});
84
+ *
85
+ * inflate.push(chunk1, false);
86
+ * inflate.push(chunk2, true); // true -> last chunk
87
+ *
88
+ * if (inflate.err) { throw new Error(inflate.err); }
89
+ *
90
+ * console.log(inflate.result);
91
+ * ```
92
+ **/
93
+ function Inflate(options) {
94
+ if (!(this instanceof Inflate)) return new Inflate(options);
95
+
96
+ this.options = utils.assign({
97
+ chunkSize: 16384,
98
+ windowBits: 0,
99
+ to: ''
100
+ }, options || {});
101
+
102
+ var opt = this.options;
103
+
104
+ // Force window size for `raw` data, if not set directly,
105
+ // because we have no header for autodetect.
106
+ if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {
107
+ opt.windowBits = -opt.windowBits;
108
+ if (opt.windowBits === 0) { opt.windowBits = -15; }
109
+ }
110
+
111
+ // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate
112
+ if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&
113
+ !(options && options.windowBits)) {
114
+ opt.windowBits += 32;
115
+ }
116
+
117
+ // Gzip header has no info about windows size, we can do autodetect only
118
+ // for deflate. So, if window size not set, force it to max when gzip possible
119
+ if ((opt.windowBits > 15) && (opt.windowBits < 48)) {
120
+ // bit 3 (16) -> gzipped data
121
+ // bit 4 (32) -> autodetect gzip/deflate
122
+ if ((opt.windowBits & 15) === 0) {
123
+ opt.windowBits |= 15;
124
+ }
125
+ }
126
+
127
+ this.err = 0; // error code, if happens (0 = Z_OK)
128
+ this.msg = ''; // error message
129
+ this.ended = false; // used to avoid multiple onEnd() calls
130
+ this.chunks = []; // chunks of compressed data
131
+
132
+ this.strm = new ZStream();
133
+ this.strm.avail_out = 0;
134
+
135
+ var status = zlib_inflate.inflateInit2(
136
+ this.strm,
137
+ opt.windowBits
138
+ );
139
+
140
+ if (status !== c.Z_OK) {
141
+ throw new Error(msg[status]);
142
+ }
143
+
144
+ this.header = new GZheader();
145
+
146
+ zlib_inflate.inflateGetHeader(this.strm, this.header);
147
+
148
+ // Setup dictionary
149
+ if (opt.dictionary) {
150
+ // Convert data if needed
151
+ if (typeof opt.dictionary === 'string') {
152
+ opt.dictionary = strings.string2buf(opt.dictionary);
153
+ } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
154
+ opt.dictionary = new Uint8Array(opt.dictionary);
155
+ }
156
+ if (opt.raw) { //In raw mode we need to set the dictionary early
157
+ status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);
158
+ if (status !== c.Z_OK) {
159
+ throw new Error(msg[status]);
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Inflate#push(data[, mode]) -> Boolean
167
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data
168
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
169
+ * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.
170
+ *
171
+ * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
172
+ * new output chunks. Returns `true` on success. The last data block must have
173
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
174
+ * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
175
+ * can use mode Z_SYNC_FLUSH, keeping the decompression context.
176
+ *
177
+ * On fail call [[Inflate#onEnd]] with error code and return false.
178
+ *
179
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
180
+ * format is detected automatically). Also, don't skip last param and always
181
+ * use the same type in your code (boolean or number). That will improve JS speed.
182
+ *
183
+ * For regular `Array`-s make sure all elements are [0..255].
184
+ *
185
+ * ##### Example
186
+ *
187
+ * ```javascript
188
+ * push(chunk, false); // push one of data chunks
189
+ * ...
190
+ * push(chunk, true); // push last chunk
191
+ * ```
192
+ **/
193
+ Inflate.prototype.push = function (data, mode) {
194
+ var strm = this.strm;
195
+ var chunkSize = this.options.chunkSize;
196
+ var dictionary = this.options.dictionary;
197
+ var status, _mode;
198
+ var next_out_utf8, tail, utf8str;
199
+
200
+ // Flag to properly process Z_BUF_ERROR on testing inflate call
201
+ // when we check that all output data was flushed.
202
+ var allowBufError = false;
203
+
204
+ if (this.ended) { return false; }
205
+ _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);
206
+
207
+ // Convert data if needed
208
+ if (typeof data === 'string') {
209
+ // Only binary strings can be decompressed on practice
210
+ strm.input = strings.binstring2buf(data);
211
+ } else if (toString.call(data) === '[object ArrayBuffer]') {
212
+ strm.input = new Uint8Array(data);
213
+ } else {
214
+ strm.input = data;
215
+ }
216
+
217
+ strm.next_in = 0;
218
+ strm.avail_in = strm.input.length;
219
+
220
+ do {
221
+ if (strm.avail_out === 0) {
222
+ strm.output = new utils.Buf8(chunkSize);
223
+ strm.next_out = 0;
224
+ strm.avail_out = chunkSize;
225
+ }
226
+
227
+ status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */
228
+
229
+ if (status === c.Z_NEED_DICT && dictionary) {
230
+ status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);
231
+ }
232
+
233
+ if (status === c.Z_BUF_ERROR && allowBufError === true) {
234
+ status = c.Z_OK;
235
+ allowBufError = false;
236
+ }
237
+
238
+ if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
239
+ this.onEnd(status);
240
+ this.ended = true;
241
+ return false;
242
+ }
243
+
244
+ if (strm.next_out) {
245
+ if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {
246
+
247
+ if (this.options.to === 'string') {
248
+
249
+ next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
250
+
251
+ tail = strm.next_out - next_out_utf8;
252
+ utf8str = strings.buf2string(strm.output, next_out_utf8);
253
+
254
+ // move tail
255
+ strm.next_out = tail;
256
+ strm.avail_out = chunkSize - tail;
257
+ if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }
258
+
259
+ this.onData(utf8str);
260
+
261
+ } else {
262
+ this.onData(utils.shrinkBuf(strm.output, strm.next_out));
263
+ }
264
+ }
265
+ }
266
+
267
+ // When no more input data, we should check that internal inflate buffers
268
+ // are flushed. The only way to do it when avail_out = 0 - run one more
269
+ // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.
270
+ // Here we set flag to process this error properly.
271
+ //
272
+ // NOTE. Deflate does not return error in this case and does not needs such
273
+ // logic.
274
+ if (strm.avail_in === 0 && strm.avail_out === 0) {
275
+ allowBufError = true;
276
+ }
277
+
278
+ } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
279
+
280
+ if (status === c.Z_STREAM_END) {
281
+ _mode = c.Z_FINISH;
282
+ }
283
+
284
+ // Finalize on the last chunk.
285
+ if (_mode === c.Z_FINISH) {
286
+ status = zlib_inflate.inflateEnd(this.strm);
287
+ this.onEnd(status);
288
+ this.ended = true;
289
+ return status === c.Z_OK;
290
+ }
291
+
292
+ // callback interim results if Z_SYNC_FLUSH.
293
+ if (_mode === c.Z_SYNC_FLUSH) {
294
+ this.onEnd(c.Z_OK);
295
+ strm.avail_out = 0;
296
+ return true;
297
+ }
298
+
299
+ return true;
300
+ };
301
+
302
+
303
+ /**
304
+ * Inflate#onData(chunk) -> Void
305
+ * - chunk (Uint8Array|Array|String): output data. Type of array depends
306
+ * on js engine support. When string output requested, each chunk
307
+ * will be string.
308
+ *
309
+ * By default, stores data blocks in `chunks[]` property and glue
310
+ * those in `onEnd`. Override this handler, if you need another behaviour.
311
+ **/
312
+ Inflate.prototype.onData = function (chunk) {
313
+ this.chunks.push(chunk);
314
+ };
315
+
316
+
317
+ /**
318
+ * Inflate#onEnd(status) -> Void
319
+ * - status (Number): inflate status. 0 (Z_OK) on success,
320
+ * other if not.
321
+ *
322
+ * Called either after you tell inflate that the input stream is
323
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
324
+ * or if an error happened. By default - join collected chunks,
325
+ * free memory and fill `results` / `err` properties.
326
+ **/
327
+ Inflate.prototype.onEnd = function (status) {
328
+ // On success - join
329
+ if (status === c.Z_OK) {
330
+ if (this.options.to === 'string') {
331
+ // Glue & convert here, until we teach pako to send
332
+ // utf8 aligned strings to onData
333
+ this.result = this.chunks.join('');
334
+ } else {
335
+ this.result = utils.flattenChunks(this.chunks);
336
+ }
337
+ }
338
+ this.chunks = [];
339
+ this.err = status;
340
+ this.msg = this.strm.msg;
341
+ };
342
+
343
+
344
+ /**
345
+ * inflate(data[, options]) -> Uint8Array|Array|String
346
+ * - data (Uint8Array|Array|String): input data to decompress.
347
+ * - options (Object): zlib inflate options.
348
+ *
349
+ * Decompress `data` with inflate/ungzip and `options`. Autodetect
350
+ * format via wrapper header by default. That's why we don't provide
351
+ * separate `ungzip` method.
352
+ *
353
+ * Supported options are:
354
+ *
355
+ * - windowBits
356
+ *
357
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
358
+ * for more information.
359
+ *
360
+ * Sugar (options):
361
+ *
362
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
363
+ * negative windowBits implicitly.
364
+ * - `to` (String) - if equal to 'string', then result will be converted
365
+ * from utf8 to utf16 (javascript) string. When string output requested,
366
+ * chunk length can differ from `chunkSize`, depending on content.
367
+ *
368
+ *
369
+ * ##### Example:
370
+ *
371
+ * ```javascript
372
+ * var pako = require('pako')
373
+ * , input = pako.deflate([1,2,3,4,5,6,7,8,9])
374
+ * , output;
375
+ *
376
+ * try {
377
+ * output = pako.inflate(input);
378
+ * } catch (err)
379
+ * console.log(err);
380
+ * }
381
+ * ```
382
+ **/
383
+ function inflate(input, options) {
384
+ var inflator = new Inflate(options);
385
+
386
+ inflator.push(input, true);
387
+
388
+ // That will never happens, if you don't cheat with options :)
389
+ if (inflator.err) { throw inflator.msg || msg[inflator.err]; }
390
+
391
+ return inflator.result;
392
+ }
393
+
394
+
395
+ /**
396
+ * inflateRaw(data[, options]) -> Uint8Array|Array|String
397
+ * - data (Uint8Array|Array|String): input data to decompress.
398
+ * - options (Object): zlib inflate options.
399
+ *
400
+ * The same as [[inflate]], but creates raw data, without wrapper
401
+ * (header and adler32 crc).
402
+ **/
403
+ function inflateRaw(input, options) {
404
+ options = options || {};
405
+ options.raw = true;
406
+ return inflate(input, options);
407
+ }
408
+
409
+
410
+ /**
411
+ * ungzip(data[, options]) -> Uint8Array|Array|String
412
+ * - data (Uint8Array|Array|String): input data to decompress.
413
+ * - options (Object): zlib inflate options.
414
+ *
415
+ * Just shortcut to [[inflate]], because it autodetects format
416
+ * by header.content. Done for convenience.
417
+ **/
418
+
419
+
420
+ exports.Inflate = Inflate;
421
+ exports.inflate = inflate;
422
+ exports.inflateRaw = inflateRaw;
423
+ exports.ungzip = inflate;
@@ -0,0 +1,105 @@
1
+ 'use strict';
2
+
3
+
4
+ var TYPED_OK = (typeof Uint8Array !== 'undefined') &&
5
+ (typeof Uint16Array !== 'undefined') &&
6
+ (typeof Int32Array !== 'undefined');
7
+
8
+ function _has(obj, key) {
9
+ return Object.prototype.hasOwnProperty.call(obj, key);
10
+ }
11
+
12
+ exports.assign = function (obj /*from1, from2, from3, ...*/) {
13
+ var sources = Array.prototype.slice.call(arguments, 1);
14
+ while (sources.length) {
15
+ var source = sources.shift();
16
+ if (!source) { continue; }
17
+
18
+ if (typeof source !== 'object') {
19
+ throw new TypeError(source + 'must be non-object');
20
+ }
21
+
22
+ for (var p in source) {
23
+ if (_has(source, p)) {
24
+ obj[p] = source[p];
25
+ }
26
+ }
27
+ }
28
+
29
+ return obj;
30
+ };
31
+
32
+
33
+ // reduce buffer size, avoiding mem copy
34
+ exports.shrinkBuf = function (buf, size) {
35
+ if (buf.length === size) { return buf; }
36
+ if (buf.subarray) { return buf.subarray(0, size); }
37
+ buf.length = size;
38
+ return buf;
39
+ };
40
+
41
+
42
+ var fnTyped = {
43
+ arraySet: function (dest, src, src_offs, len, dest_offs) {
44
+ if (src.subarray && dest.subarray) {
45
+ dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
46
+ return;
47
+ }
48
+ // Fallback to ordinary array
49
+ for (var i = 0; i < len; i++) {
50
+ dest[dest_offs + i] = src[src_offs + i];
51
+ }
52
+ },
53
+ // Join array of chunks to single array.
54
+ flattenChunks: function (chunks) {
55
+ var i, l, len, pos, chunk, result;
56
+
57
+ // calculate data length
58
+ len = 0;
59
+ for (i = 0, l = chunks.length; i < l; i++) {
60
+ len += chunks[i].length;
61
+ }
62
+
63
+ // join chunks
64
+ result = new Uint8Array(len);
65
+ pos = 0;
66
+ for (i = 0, l = chunks.length; i < l; i++) {
67
+ chunk = chunks[i];
68
+ result.set(chunk, pos);
69
+ pos += chunk.length;
70
+ }
71
+
72
+ return result;
73
+ }
74
+ };
75
+
76
+ var fnUntyped = {
77
+ arraySet: function (dest, src, src_offs, len, dest_offs) {
78
+ for (var i = 0; i < len; i++) {
79
+ dest[dest_offs + i] = src[src_offs + i];
80
+ }
81
+ },
82
+ // Join array of chunks to single array.
83
+ flattenChunks: function (chunks) {
84
+ return [].concat.apply([], chunks);
85
+ }
86
+ };
87
+
88
+
89
+ // Enable/Disable typed arrays use, for testing
90
+ //
91
+ exports.setTyped = function (on) {
92
+ if (on) {
93
+ exports.Buf8 = Uint8Array;
94
+ exports.Buf16 = Uint16Array;
95
+ exports.Buf32 = Int32Array;
96
+ exports.assign(exports, fnTyped);
97
+ } else {
98
+ exports.Buf8 = Array;
99
+ exports.Buf16 = Array;
100
+ exports.Buf32 = Array;
101
+ exports.assign(exports, fnUntyped);
102
+ }
103
+ };
104
+
105
+ exports.setTyped(TYPED_OK);
@@ -0,0 +1,187 @@
1
+ // String encode/decode helpers
2
+ 'use strict';
3
+
4
+
5
+ var utils = require('./common');
6
+
7
+
8
+ // Quick check if we can use fast array to bin string conversion
9
+ //
10
+ // - apply(Array) can fail on Android 2.2
11
+ // - apply(Uint8Array) can fail on iOS 5.1 Safari
12
+ //
13
+ var STR_APPLY_OK = true;
14
+ var STR_APPLY_UIA_OK = true;
15
+
16
+ try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }
17
+ try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }
18
+
19
+
20
+ // Table with utf8 lengths (calculated by first byte of sequence)
21
+ // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
22
+ // because max possible codepoint is 0x10ffff
23
+ var _utf8len = new utils.Buf8(256);
24
+ for (var q = 0; q < 256; q++) {
25
+ _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
26
+ }
27
+ _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
28
+
29
+
30
+ // convert string to array (typed, when possible)
31
+ exports.string2buf = function (str) {
32
+ var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
33
+
34
+ // count binary size
35
+ for (m_pos = 0; m_pos < str_len; m_pos++) {
36
+ c = str.charCodeAt(m_pos);
37
+ if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
38
+ c2 = str.charCodeAt(m_pos + 1);
39
+ if ((c2 & 0xfc00) === 0xdc00) {
40
+ c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
41
+ m_pos++;
42
+ }
43
+ }
44
+ buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
45
+ }
46
+
47
+ // allocate buffer
48
+ buf = new utils.Buf8(buf_len);
49
+
50
+ // convert
51
+ for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
52
+ c = str.charCodeAt(m_pos);
53
+ if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
54
+ c2 = str.charCodeAt(m_pos + 1);
55
+ if ((c2 & 0xfc00) === 0xdc00) {
56
+ c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
57
+ m_pos++;
58
+ }
59
+ }
60
+ if (c < 0x80) {
61
+ /* one byte */
62
+ buf[i++] = c;
63
+ } else if (c < 0x800) {
64
+ /* two bytes */
65
+ buf[i++] = 0xC0 | (c >>> 6);
66
+ buf[i++] = 0x80 | (c & 0x3f);
67
+ } else if (c < 0x10000) {
68
+ /* three bytes */
69
+ buf[i++] = 0xE0 | (c >>> 12);
70
+ buf[i++] = 0x80 | (c >>> 6 & 0x3f);
71
+ buf[i++] = 0x80 | (c & 0x3f);
72
+ } else {
73
+ /* four bytes */
74
+ buf[i++] = 0xf0 | (c >>> 18);
75
+ buf[i++] = 0x80 | (c >>> 12 & 0x3f);
76
+ buf[i++] = 0x80 | (c >>> 6 & 0x3f);
77
+ buf[i++] = 0x80 | (c & 0x3f);
78
+ }
79
+ }
80
+
81
+ return buf;
82
+ };
83
+
84
+ // Helper (used in 2 places)
85
+ function buf2binstring(buf, len) {
86
+ // On Chrome, the arguments in a function call that are allowed is `65534`.
87
+ // If the length of the buffer is smaller than that, we can use this optimization,
88
+ // otherwise we will take a slower path.
89
+ if (len < 65534) {
90
+ if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {
91
+ return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
92
+ }
93
+ }
94
+
95
+ var result = '';
96
+ for (var i = 0; i < len; i++) {
97
+ result += String.fromCharCode(buf[i]);
98
+ }
99
+ return result;
100
+ }
101
+
102
+
103
+ // Convert byte array to binary string
104
+ exports.buf2binstring = function (buf) {
105
+ return buf2binstring(buf, buf.length);
106
+ };
107
+
108
+
109
+ // Convert binary string (typed, when possible)
110
+ exports.binstring2buf = function (str) {
111
+ var buf = new utils.Buf8(str.length);
112
+ for (var i = 0, len = buf.length; i < len; i++) {
113
+ buf[i] = str.charCodeAt(i);
114
+ }
115
+ return buf;
116
+ };
117
+
118
+
119
+ // convert array to string
120
+ exports.buf2string = function (buf, max) {
121
+ var i, out, c, c_len;
122
+ var len = max || buf.length;
123
+
124
+ // Reserve max possible length (2 words per char)
125
+ // NB: by unknown reasons, Array is significantly faster for
126
+ // String.fromCharCode.apply than Uint16Array.
127
+ var utf16buf = new Array(len * 2);
128
+
129
+ for (out = 0, i = 0; i < len;) {
130
+ c = buf[i++];
131
+ // quick process ascii
132
+ if (c < 0x80) { utf16buf[out++] = c; continue; }
133
+
134
+ c_len = _utf8len[c];
135
+ // skip 5 & 6 byte codes
136
+ if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
137
+
138
+ // apply mask on first byte
139
+ c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
140
+ // join the rest
141
+ while (c_len > 1 && i < len) {
142
+ c = (c << 6) | (buf[i++] & 0x3f);
143
+ c_len--;
144
+ }
145
+
146
+ // terminated by end of string?
147
+ if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
148
+
149
+ if (c < 0x10000) {
150
+ utf16buf[out++] = c;
151
+ } else {
152
+ c -= 0x10000;
153
+ utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
154
+ utf16buf[out++] = 0xdc00 | (c & 0x3ff);
155
+ }
156
+ }
157
+
158
+ return buf2binstring(utf16buf, out);
159
+ };
160
+
161
+
162
+ // Calculate max possible position in utf8 buffer,
163
+ // that will not break sequence. If that's not possible
164
+ // - (very small limits) return max size as is.
165
+ //
166
+ // buf[] - utf8 bytes array
167
+ // max - length limit (mandatory);
168
+ exports.utf8border = function (buf, max) {
169
+ var pos;
170
+
171
+ max = max || buf.length;
172
+ if (max > buf.length) { max = buf.length; }
173
+
174
+ // go back from last position, until start of sequence found
175
+ pos = max - 1;
176
+ while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
177
+
178
+ // Very small and broken sequence,
179
+ // return max, because we should return something anyway.
180
+ if (pos < 0) { return max; }
181
+
182
+ // If we came to start of buffer - that means buffer is too small,
183
+ // return max too.
184
+ if (pos === 0) { return max; }
185
+
186
+ return (pos + _utf8len[buf[pos]] > max) ? pos : max;
187
+ };