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.
- package/README.de.md +300 -255
- package/README.es.md +301 -254
- package/README.md +389 -95
- package/README.pt-br.md +301 -254
- package/README.template.md +333 -0
- package/README.zh.md +300 -253
- package/SECURITY.md +34 -0
- package/content/recipes/nvca-stock-purchase-agreement/README.md +39 -0
- package/content/recipes/nvca-voting-agreement/README.md +43 -0
- package/content/templates/bonterms-mutual-nda/README.md +2 -2
- package/content/templates/bonterms-mutual-nda/metadata.yaml +5 -11
- package/content/templates/bonterms-professional-services-agreement/README.md +2 -2
- package/content/templates/bonterms-professional-services-agreement/metadata.yaml +2 -2
- package/content/templates/closing-checklist/template.docx +0 -0
- package/content/templates/closing-checklist/template.md +30 -0
- package/content/templates/common-paper-ai-addendum/template.docx +0 -0
- package/content/templates/common-paper-ai-addendum-in-app/template.docx +0 -0
- package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
- package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
- package/content/templates/common-paper-mutual-nda/README.md +28 -0
- package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
- package/content/templates/common-paper-term-sheet/template.docx +0 -0
- package/content/templates/openagreements-board-consent-safe/.template.generated.json +74 -0
- package/content/templates/openagreements-board-consent-safe/README.md +61 -0
- package/content/templates/openagreements-board-consent-safe/metadata.yaml +53 -0
- package/content/templates/openagreements-board-consent-safe/reference-source.docx +0 -0
- package/content/templates/openagreements-board-consent-safe/template.docx +0 -0
- package/content/templates/openagreements-board-consent-safe/template.md +66 -0
- package/content/templates/openagreements-due-diligence-request-list/README.md +68 -0
- package/content/templates/openagreements-due-diligence-request-list/metadata.yaml +300 -0
- package/content/templates/openagreements-due-diligence-request-list/template.docx +0 -0
- package/content/templates/openagreements-due-diligence-request-list/template.md +318 -0
- package/content/templates/openagreements-employee-ip-inventions-assignment/.template.generated.json +230 -0
- package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
- package/content/templates/openagreements-employee-ip-inventions-assignment/template.docx +0 -0
- package/content/templates/openagreements-employee-ip-inventions-assignment/template.md +96 -35
- package/content/templates/openagreements-employment-confidentiality-acknowledgement/README.md +1 -1
- package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +2 -2
- package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.docx +0 -0
- package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.json +75 -0
- package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.md +8 -4
- package/content/templates/openagreements-employment-offer-letter/.template.generated.json +224 -0
- package/content/templates/openagreements-employment-offer-letter/README.md +65 -1
- package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
- package/content/templates/openagreements-employment-offer-letter/template.docx +0 -0
- package/content/templates/openagreements-employment-offer-letter/template.md +70 -30
- package/content/templates/openagreements-restrictive-covenant-florida/.template.generated.json +456 -0
- package/content/templates/openagreements-restrictive-covenant-florida/README.md +141 -0
- package/content/templates/openagreements-restrictive-covenant-florida/metadata.yaml +419 -0
- package/content/templates/openagreements-restrictive-covenant-florida/template.docx +0 -0
- package/content/templates/openagreements-restrictive-covenant-florida/template.md +233 -0
- package/content/templates/openagreements-restrictive-covenant-wyoming/.template.generated.json +399 -0
- package/content/templates/openagreements-restrictive-covenant-wyoming/metadata.yaml +69 -12
- package/content/templates/openagreements-restrictive-covenant-wyoming/template.docx +0 -0
- package/content/templates/openagreements-restrictive-covenant-wyoming/template.md +110 -59
- package/content/templates/openagreements-stockholder-consent-safe/.template.generated.json +74 -0
- package/content/templates/openagreements-stockholder-consent-safe/README.md +62 -0
- package/content/templates/openagreements-stockholder-consent-safe/metadata.yaml +53 -0
- package/content/templates/openagreements-stockholder-consent-safe/reference-source.docx +0 -0
- package/content/templates/openagreements-stockholder-consent-safe/template.docx +0 -0
- package/content/templates/openagreements-stockholder-consent-safe/template.md +62 -0
- package/content/templates/working-group-list/template.docx +0 -0
- package/content/templates/working-group-list/template.md +18 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/fill.d.ts +1 -1
- package/dist/commands/fill.d.ts.map +1 -1
- package/dist/commands/fill.js +4 -1
- package/dist/commands/fill.js.map +1 -1
- package/dist/commands/list.js +10 -0
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/recipe.js.map +1 -1
- package/dist/core/employment/jurisdiction-rules.js +2 -2
- package/dist/core/employment/jurisdiction-rules.js.map +1 -1
- package/dist/core/employment/memo.d.ts +1 -1
- package/dist/core/employment/memo.d.ts.map +1 -1
- package/dist/core/employment/memo.js +14 -6
- package/dist/core/employment/memo.js.map +1 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +28 -0
- package/dist/core/engine.js.map +1 -1
- package/dist/core/fill-pipeline.d.ts +30 -5
- package/dist/core/fill-pipeline.d.ts.map +1 -1
- package/dist/core/fill-pipeline.js +173 -9
- package/dist/core/fill-pipeline.js.map +1 -1
- package/dist/core/humanize-docx.d.ts +21 -0
- package/dist/core/humanize-docx.d.ts.map +1 -0
- package/dist/core/humanize-docx.js +492 -0
- package/dist/core/humanize-docx.js.map +1 -0
- package/dist/core/metadata.d.ts +118 -65
- package/dist/core/metadata.d.ts.map +1 -1
- package/dist/core/metadata.js +268 -13
- package/dist/core/metadata.js.map +1 -1
- package/dist/core/recipe/bracket-normalizer.d.ts +1 -1
- package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
- package/dist/core/recipe/bracket-normalizer.js +3 -0
- package/dist/core/recipe/bracket-normalizer.js.map +1 -1
- package/dist/core/recipe/computed.d.ts +1 -1
- package/dist/core/recipe/computed.d.ts.map +1 -1
- package/dist/core/recipe/index.d.ts.map +1 -1
- package/dist/core/recipe/index.js +22 -4
- package/dist/core/recipe/index.js.map +1 -1
- package/dist/core/recipe/types.d.ts +1 -1
- package/dist/core/recipe/types.d.ts.map +1 -1
- package/dist/core/template-listing.d.ts +6 -8
- package/dist/core/template-listing.d.ts.map +1 -1
- package/dist/core/template-listing.js +24 -0
- package/dist/core/template-listing.js.map +1 -1
- package/dist/core/unified-pipeline.d.ts +2 -0
- package/dist/core/unified-pipeline.d.ts.map +1 -1
- package/dist/core/unified-pipeline.js +19 -1
- package/dist/core/unified-pipeline.js.map +1 -1
- package/dist/core/validation/template.d.ts +32 -0
- package/dist/core/validation/template.d.ts.map +1 -1
- package/dist/core/validation/template.js +163 -3
- package/dist/core/validation/template.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +26 -12
- package/skills/canonical-markdown-authoring/CONNECTORS.md +67 -0
- package/skills/canonical-markdown-authoring/SKILL.md +565 -0
- package/skills/client-email/SKILL.md +2 -0
- package/skills/cloud-service-agreement/CONNECTORS.md +2 -2
- package/skills/cloud-service-agreement/SKILL.md +38 -1
- package/skills/cloud-service-agreement/template-filling-execution.md +2 -2
- package/skills/data-privacy-agreement/CONNECTORS.md +2 -2
- package/skills/data-privacy-agreement/SKILL.md +2 -0
- package/skills/delaware-franchise-tax/SKILL.md +2 -0
- package/skills/edit-docx-agreement/SKILL.md +2 -0
- package/skills/employment-contract/CONNECTORS.md +2 -2
- package/skills/employment-contract/SKILL.md +2 -0
- package/skills/iso-27001-evidence-collection/SKILL.md +2 -0
- package/skills/iso-27001-internal-audit/SKILL.md +2 -0
- package/skills/nda/CONNECTORS.md +2 -2
- package/skills/nda/SKILL.md +45 -1
- package/skills/nda/template-filling-execution.md +12 -6
- package/skills/non-compete-contract-explainer/SKILL.md +107 -0
- package/skills/non-compete-contract-explainer/content/wyoming.md +286 -0
- package/skills/non-compete-contract-explainer/manifest.json +18 -0
- package/skills/open-agreements/CONNECTORS.md +2 -2
- package/skills/open-agreements/SKILL.md +165 -67
- package/skills/open-agreements/template-filling-execution.md +2 -2
- package/skills/recipe-quality-audit/SKILL.md +2 -0
- package/skills/safe/CONNECTORS.md +2 -2
- package/skills/safe/SKILL.md +38 -1
- package/skills/safe/template-filling-execution.md +2 -2
- package/skills/services-agreement/CONNECTORS.md +2 -2
- package/skills/services-agreement/SKILL.md +40 -1
- package/skills/services-agreement/template-filling-execution.md +81 -0
- package/skills/shared/template-filling-execution.md +2 -2
- package/skills/soc2-readiness/SKILL.md +2 -0
- package/skills/unit-test-philosophy/SKILL.md +3 -0
- package/skills/venture-financing/CONNECTORS.md +2 -2
- package/skills/venture-financing/SKILL.md +2 -0
- package/content/templates/openagreements-restrictive-covenant-wyoming/practice-note.md +0 -103
- package/node_modules/@xmldom/xmldom/CHANGELOG.md +0 -939
- package/node_modules/@xmldom/xmldom/LICENSE +0 -8
- package/node_modules/@xmldom/xmldom/SECURITY.md +0 -50
- package/node_modules/@xmldom/xmldom/index.d.ts +0 -1664
- package/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +0 -3
- package/node_modules/@xmldom/xmldom/lib/conventions.js +0 -429
- package/node_modules/@xmldom/xmldom/lib/dom-parser.js +0 -586
- package/node_modules/@xmldom/xmldom/lib/dom.js +0 -3192
- package/node_modules/@xmldom/xmldom/lib/entities.js +0 -2171
- package/node_modules/@xmldom/xmldom/lib/errors.js +0 -202
- package/node_modules/@xmldom/xmldom/lib/grammar.js +0 -533
- package/node_modules/@xmldom/xmldom/lib/index.js +0 -41
- package/node_modules/@xmldom/xmldom/lib/sax.js +0 -929
- package/node_modules/@xmldom/xmldom/package.json +0 -74
- package/node_modules/@xmldom/xmldom/readme.md +0 -364
- package/node_modules/core-util-is/LICENSE +0 -19
- package/node_modules/core-util-is/README.md +0 -3
- package/node_modules/core-util-is/lib/util.js +0 -107
- package/node_modules/core-util-is/package.json +0 -38
- package/node_modules/immediate/LICENSE.txt +0 -20
- package/node_modules/immediate/README.md +0 -93
- package/node_modules/immediate/dist/immediate.js +0 -75
- package/node_modules/immediate/dist/immediate.min.js +0 -1
- package/node_modules/immediate/lib/browser.js +0 -69
- package/node_modules/immediate/lib/index.js +0 -73
- package/node_modules/immediate/package.json +0 -42
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/isarray/.npmignore +0 -1
- package/node_modules/isarray/.travis.yml +0 -4
- package/node_modules/isarray/Makefile +0 -6
- package/node_modules/isarray/README.md +0 -60
- package/node_modules/isarray/component.json +0 -19
- package/node_modules/isarray/index.js +0 -5
- package/node_modules/isarray/package.json +0 -45
- package/node_modules/isarray/test.js +0 -20
- package/node_modules/jszip/.codeclimate.yml +0 -16
- package/node_modules/jszip/.editorconfig +0 -8
- package/node_modules/jszip/.eslintrc.js +0 -43
- package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
- package/node_modules/jszip/.jekyll-metadata +0 -0
- package/node_modules/jszip/.travis.yml +0 -17
- package/node_modules/jszip/CHANGES.md +0 -204
- package/node_modules/jszip/LICENSE.markdown +0 -651
- package/node_modules/jszip/README.markdown +0 -33
- package/node_modules/jszip/deps.js +0 -37
- package/node_modules/jszip/dist/jszip.js +0 -11577
- package/node_modules/jszip/dist/jszip.min.js +0 -13
- package/node_modules/jszip/graph.svg +0 -601
- package/node_modules/jszip/index.d.ts +0 -330
- package/node_modules/jszip/lib/base64.js +0 -106
- package/node_modules/jszip/lib/compressedObject.js +0 -74
- package/node_modules/jszip/lib/compressions.js +0 -14
- package/node_modules/jszip/lib/crc32.js +0 -77
- package/node_modules/jszip/lib/defaults.js +0 -11
- package/node_modules/jszip/lib/external.js +0 -18
- package/node_modules/jszip/lib/flate.js +0 -85
- package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
- package/node_modules/jszip/lib/generate/index.js +0 -57
- package/node_modules/jszip/lib/index.js +0 -55
- package/node_modules/jszip/lib/license_header.js +0 -11
- package/node_modules/jszip/lib/load.js +0 -88
- package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
- package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
- package/node_modules/jszip/lib/nodejsUtils.js +0 -57
- package/node_modules/jszip/lib/object.js +0 -384
- package/node_modules/jszip/lib/readable-stream-browser.js +0 -10
- package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
- package/node_modules/jszip/lib/reader/DataReader.js +0 -116
- package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
- package/node_modules/jszip/lib/reader/StringReader.js +0 -38
- package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
- package/node_modules/jszip/lib/reader/readerFor.js +0 -28
- package/node_modules/jszip/lib/signature.js +0 -7
- package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
- package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
- package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
- package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
- package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
- package/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
- package/node_modules/jszip/lib/support.js +0 -38
- package/node_modules/jszip/lib/utf8.js +0 -275
- package/node_modules/jszip/lib/utils.js +0 -501
- package/node_modules/jszip/lib/zipEntries.js +0 -261
- package/node_modules/jszip/lib/zipEntry.js +0 -293
- package/node_modules/jszip/lib/zipObject.js +0 -133
- package/node_modules/jszip/package.json +0 -67
- package/node_modules/jszip/sponsors.md +0 -21
- package/node_modules/jszip/tsconfig.json +0 -101
- package/node_modules/jszip/vendor/FileSaver.js +0 -247
- package/node_modules/lie/README.md +0 -62
- package/node_modules/lie/dist/lie.js +0 -350
- package/node_modules/lie/dist/lie.min.js +0 -1
- package/node_modules/lie/dist/lie.polyfill.js +0 -358
- package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
- package/node_modules/lie/lib/browser.js +0 -273
- package/node_modules/lie/lib/index.js +0 -298
- package/node_modules/lie/license.md +0 -7
- package/node_modules/lie/lie.d.ts +0 -244
- package/node_modules/lie/package.json +0 -69
- package/node_modules/lie/polyfill.js +0 -4
- package/node_modules/pako/LICENSE +0 -21
- package/node_modules/pako/README.md +0 -191
- package/node_modules/pako/dist/pako.js +0 -6818
- package/node_modules/pako/dist/pako.min.js +0 -1
- package/node_modules/pako/dist/pako_deflate.js +0 -3997
- package/node_modules/pako/dist/pako_deflate.min.js +0 -1
- package/node_modules/pako/dist/pako_inflate.js +0 -3300
- package/node_modules/pako/dist/pako_inflate.min.js +0 -1
- package/node_modules/pako/index.js +0 -14
- package/node_modules/pako/lib/deflate.js +0 -400
- package/node_modules/pako/lib/inflate.js +0 -423
- package/node_modules/pako/lib/utils/common.js +0 -105
- package/node_modules/pako/lib/utils/strings.js +0 -187
- package/node_modules/pako/lib/zlib/README +0 -59
- package/node_modules/pako/lib/zlib/adler32.js +0 -51
- package/node_modules/pako/lib/zlib/constants.js +0 -68
- package/node_modules/pako/lib/zlib/crc32.js +0 -59
- package/node_modules/pako/lib/zlib/deflate.js +0 -1874
- package/node_modules/pako/lib/zlib/gzheader.js +0 -58
- package/node_modules/pako/lib/zlib/inffast.js +0 -345
- package/node_modules/pako/lib/zlib/inflate.js +0 -1556
- package/node_modules/pako/lib/zlib/inftrees.js +0 -343
- package/node_modules/pako/lib/zlib/messages.js +0 -32
- package/node_modules/pako/lib/zlib/trees.js +0 -1222
- package/node_modules/pako/lib/zlib/zstream.js +0 -47
- package/node_modules/pako/package.json +0 -44
- package/node_modules/process-nextick-args/index.js +0 -45
- package/node_modules/process-nextick-args/license.md +0 -19
- package/node_modules/process-nextick-args/package.json +0 -25
- package/node_modules/process-nextick-args/readme.md +0 -18
- package/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/readable-stream/LICENSE +0 -47
- package/node_modules/readable-stream/README.md +0 -58
- package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/readable-stream/lib/_stream_writable.js +0 -685
- package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
- package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/readable-stream/package.json +0 -52
- package/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/safe-buffer/index.js +0 -62
- package/node_modules/safe-buffer/package.json +0 -37
- package/node_modules/setimmediate/LICENSE.txt +0 -20
- package/node_modules/setimmediate/package.json +0 -30
- package/node_modules/setimmediate/setImmediate.js +0 -186
- package/node_modules/string_decoder/.travis.yml +0 -50
- package/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/string_decoder/README.md +0 -47
- package/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/string_decoder/package.json +0 -31
- package/node_modules/util-deprecate/History.md +0 -16
- package/node_modules/util-deprecate/LICENSE +0 -24
- package/node_modules/util-deprecate/README.md +0 -53
- package/node_modules/util-deprecate/browser.js +0 -67
- package/node_modules/util-deprecate/node.js +0 -6
- 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";
|