adspecs 0.1.42 → 0.2.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.
- package/.adspecs/scripts/powershell/check-prerequisites.ps1 +3 -3
- package/.adspecs/scripts/powershell/setup-tasks.ps1 +2 -2
- package/.adspecs/templates/01-/344/270/232/345/212/241/351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/346/235/277.md +3 -3
- package/.adspecs/templates/02-/344/272/247/345/223/201/351/234/200/346/261/202/350/257/264/346/230/216/344/271/246/346/250/241/346/235/277.md +1 -1
- package/.adspecs/templates/03-/347/263/273/347/273/237/350/256/276/350/256/241/346/250/241/346/235/277.md +1 -1
- package/.adspecs/templates/05-/345/220/216/347/253/257/344/273/273/345/212/241/346/270/205/345/215/225/346/250/241/346/235/277.md +613 -613
- package/.adspecs/templates/05b-/345/211/215/347/253/257/344/273/273/345/212/241/346/270/205/345/215/225/346/250/241/346/235/277.md +583 -583
- package/.adspecs/templates/14-/351/234/200/346/261/202/350/277/275/346/272/257/347/237/251/351/230/265/346/250/241/346/235/277.md +1 -1
- package/.claude-plugin/marketplace.json +23 -23
- package/.claude-plugin/plugin.json +18 -18
- package/.codebuddy-plugin/plugin.json +24 -24
- package/.qoder-plugin/plugin.json +30 -30
- package/.workbuddy-plugin/plugin.json +24 -24
- package/CHANGELOG.md +10 -0
- package/CLAUDE.md +45 -45
- package/README.md +51 -51
- package/hooks/commit-queue.js +245 -245
- package/hooks/session-logger.js +346 -346
- package/package.json +65 -65
- package/skills/{adspecs-adversarial-review → ads-adversarial-review}/SKILL.md +8 -8
- package/skills/{adspecs-analyze → ads-analyze}/SKILL.md +564 -564
- package/skills/{adspecs-architecture-planning → ads-architecture-planning}/SKILL.md +9 -9
- package/skills/{adspecs-biz-blueprint → ads-biz-blueprint}/SKILL.md +18 -18
- package/skills/{adspecs-clarify → ads-clarify}/SKILL.md +7 -7
- package/skills/{adspecs-constitution → ads-constitution}/SKILL.md +3 -3
- package/skills/{adspecs-export-word → ads-export-word}/SKILL.md +9 -9
- package/skills/{adspecs-export-word → ads-export-word}/references/md-to-docx.js +862 -862
- package/skills/ads-export-word/references/package-lock.json +220 -0
- package/skills/{adspecs-export-word → ads-export-word}/references/package.json +10 -10
- package/skills/{adspecs-front-prototype → ads-front-prototype}/SKILL.md +8 -8
- package/skills/{adspecs-front-spec → ads-front-spec}/SKILL.md +12 -12
- package/skills/{adspecs-front-tasks → ads-front-tasks}/SKILL.md +5 -5
- package/skills/{adspecs-git-commit → ads-git-commit}/SKILL.md +1 -1
- package/skills/{adspecs-git-initialize → ads-git-initialize}/SKILL.md +1 -1
- package/skills/{adspecs-new-requirement → ads-new-requirement}/SKILL.md +11 -11
- package/skills/{adspecs-plan → ads-plan}/SKILL.md +6 -6
- package/skills/{adspecs-prd → ads-prd}/SKILL.md +9 -9
- package/skills/{adspecs-prd-to-demo → ads-prd-to-demo}/SKILL.md +19 -19
- package/skills/{adspecs-requirement-research → ads-requirement-research}/SKILL.md +15 -3
- package/skills/{adspecs-save-session → ads-save-session}/SKILL.md +1 -1
- package/skills/{adspecs-tasks → ads-tasks}/SKILL.md +5 -5
- package/skills/{adspecs-update-status → ads-update-status}/SKILL.md +7 -7
- package/skills/{adspecs-utest → ads-utest}/SKILL.md +7 -7
- package/skills/{adspecs-write-planning-report → ads-write-planning-report}/SKILL.md +2 -2
- package/skills/{adspecs-write-roadmap → ads-write-roadmap}/SKILL.md +2 -2
- package/skills/{adspecs-write-sow → ads-write-sow}/SKILL.md +5 -5
- package/skills/adspecs-export-word/references/node_modules/.bin/marked +16 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/marked.cmd +17 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/marked.ps1 +28 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/nanoid +16 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/nanoid.cmd +17 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/nanoid.ps1 +28 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/xml-js +16 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/xml-js.cmd +17 -0
- package/skills/adspecs-export-word/references/node_modules/.bin/xml-js.ps1 +28 -0
- package/skills/adspecs-export-word/references/{package-lock.json → node_modules/.package-lock.json} +0 -8
- package/skills/adspecs-export-word/references/node_modules/@types/node/LICENSE +21 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/README.md +15 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/assert/strict.d.ts +59 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/assert.d.ts +950 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/async_hooks.d.ts +711 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/buffer.buffer.d.ts +466 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/buffer.d.ts +1765 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/child_process.d.ts +1366 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/cluster.d.ts +432 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/console.d.ts +93 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/constants.d.ts +14 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/crypto.d.ts +4058 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/dgram.d.ts +537 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/diagnostics_channel.d.ts +552 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/dns/promises.d.ts +497 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/dns.d.ts +876 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/domain.d.ts +150 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/events.d.ts +1008 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/fs/promises.d.ts +1468 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/fs.d.ts +4780 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/globals.d.ts +150 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/globals.typedarray.d.ts +101 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/http.d.ts +2147 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/http2.d.ts +2489 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/https.d.ts +400 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/index.d.ts +117 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/inspector/promises.d.ts +35 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/inspector.d.ts +264 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/inspector.generated.d.ts +4406 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/module.d.ts +755 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/net.d.ts +970 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/os.d.ts +498 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/package.json +155 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/path/posix.d.ts +8 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/path/win32.d.ts +8 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/path.d.ts +178 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/perf_hooks.d.ts +612 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/process.d.ts +2206 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/punycode.d.ts +89 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/querystring.d.ts +139 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/quic.d.ts +897 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/readline/promises.d.ts +158 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/readline.d.ts +507 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/repl.d.ts +420 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/sea.d.ts +47 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/sqlite.d.ts +1068 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/stream/consumers.d.ts +114 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/stream/iter.d.ts +301 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/stream/promises.d.ts +211 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/stream/web.d.ts +300 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/stream.d.ts +1774 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/string_decoder.d.ts +27 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/test/reporters.d.ts +59 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/test.d.ts +2279 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/timers/promises.d.ts +93 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/timers.d.ts +149 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/tls.d.ts +1193 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/trace_events.d.ts +103 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/ts5.6/index.d.ts +119 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/ts5.7/index.d.ts +119 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/tty.d.ts +225 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/url.d.ts +556 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/util/types.d.ts +558 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/util.d.ts +1677 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/v8.d.ts +980 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/vm.d.ts +1136 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/wasi.d.ts +131 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/console.d.ts +9 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/events.d.ts +106 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/streams.d.ts +115 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/web-globals/url.d.ts +24 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/worker_threads.d.ts +671 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/zlib/iter.d.ts +131 -0
- package/skills/adspecs-export-word/references/node_modules/@types/node/zlib.d.ts +589 -0
- package/skills/adspecs-export-word/references/node_modules/core-util-is/LICENSE +19 -0
- package/skills/adspecs-export-word/references/node_modules/core-util-is/README.md +3 -0
- package/skills/adspecs-export-word/references/node_modules/core-util-is/lib/util.js +107 -0
- package/skills/adspecs-export-word/references/node_modules/core-util-is/package.json +38 -0
- package/skills/adspecs-export-word/references/node_modules/docx/LICENSE +21 -0
- package/skills/adspecs-export-word/references/node_modules/docx/README.md +124 -0
- package/skills/adspecs-export-word/references/node_modules/docx/dist/index.cjs +33170 -0
- package/skills/adspecs-export-word/references/node_modules/docx/dist/index.d.cts +3214 -0
- package/skills/adspecs-export-word/references/node_modules/docx/dist/index.d.ts +3214 -0
- package/skills/adspecs-export-word/references/node_modules/docx/dist/index.iife.js +33173 -0
- package/skills/adspecs-export-word/references/node_modules/docx/dist/index.mjs +32868 -0
- package/skills/adspecs-export-word/references/node_modules/docx/dist/index.umd.cjs +33174 -0
- package/skills/adspecs-export-word/references/node_modules/docx/package.json +114 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/.eslintrc.js +41 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/.travis.yml +10 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/README.md +48 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/common.js +92 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/hmac.js +47 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/ripemd.js +146 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha/1.js +74 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha/224.js +30 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha/256.js +105 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha/384.js +35 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha/512.js +330 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha/common.js +49 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/sha.js +7 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash/utils.js +278 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash.d.ts +106 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/lib/hash.js +15 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/package.json +35 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/test/hash-test.js +140 -0
- package/skills/adspecs-export-word/references/node_modules/hash.js/test/hmac-test.js +62 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/LICENSE.txt +20 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/README.md +93 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/dist/immediate.js +75 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/dist/immediate.min.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/lib/browser.js +69 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/lib/index.js +73 -0
- package/skills/adspecs-export-word/references/node_modules/immediate/package.json +42 -0
- package/skills/adspecs-export-word/references/node_modules/inherits/LICENSE +16 -0
- package/skills/adspecs-export-word/references/node_modules/inherits/README.md +42 -0
- package/skills/adspecs-export-word/references/node_modules/inherits/inherits.js +9 -0
- package/skills/adspecs-export-word/references/node_modules/inherits/inherits_browser.js +27 -0
- package/skills/adspecs-export-word/references/node_modules/inherits/package.json +29 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/.travis.yml +4 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/Makefile +6 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/README.md +60 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/component.json +19 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/index.js +5 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/package.json +45 -0
- package/skills/adspecs-export-word/references/node_modules/isarray/test.js +20 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/.codeclimate.yml +16 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/.editorconfig +8 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/.eslintrc.js +43 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/.github/workflows/pr.yaml +58 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/.jekyll-metadata +0 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/.travis.yml +17 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/CHANGES.md +204 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/LICENSE.markdown +651 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/README.markdown +33 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/deps.js +37 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/dist/jszip.js +11577 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/dist/jszip.min.js +13 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/graph.svg +601 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/index.d.ts +330 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/base64.js +106 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/compressedObject.js +74 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/compressions.js +14 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/crc32.js +77 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/defaults.js +11 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/external.js +18 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/flate.js +85 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/generate/ZipFileWorker.js +539 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/generate/index.js +57 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/index.js +55 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/license_header.js +11 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/load.js +88 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/nodejsUtils.js +57 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/object.js +384 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/readable-stream-browser.js +10 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/reader/DataReader.js +116 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/reader/StringReader.js +38 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/reader/readerFor.js +28 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/signature.js +7 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/stream/DataWorker.js +116 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/stream/StreamHelper.js +214 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/support.js +38 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/utf8.js +275 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/utils.js +501 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/zipEntries.js +261 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/zipEntry.js +293 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/lib/zipObject.js +133 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/package.json +67 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/sponsors.md +21 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/tsconfig.json +101 -0
- package/skills/adspecs-export-word/references/node_modules/jszip/vendor/FileSaver.js +247 -0
- package/skills/adspecs-export-word/references/node_modules/lie/README.md +62 -0
- package/skills/adspecs-export-word/references/node_modules/lie/dist/lie.js +350 -0
- package/skills/adspecs-export-word/references/node_modules/lie/dist/lie.min.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/lie/dist/lie.polyfill.js +358 -0
- package/skills/adspecs-export-word/references/node_modules/lie/dist/lie.polyfill.min.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/lie/lib/browser.js +273 -0
- package/skills/adspecs-export-word/references/node_modules/lie/lib/index.js +298 -0
- package/skills/adspecs-export-word/references/node_modules/lie/license.md +7 -0
- package/skills/adspecs-export-word/references/node_modules/lie/lie.d.ts +244 -0
- package/skills/adspecs-export-word/references/node_modules/lie/package.json +69 -0
- package/skills/adspecs-export-word/references/node_modules/lie/polyfill.js +4 -0
- package/skills/adspecs-export-word/references/node_modules/marked/LICENSE.md +44 -0
- package/skills/adspecs-export-word/references/node_modules/marked/README.md +106 -0
- package/skills/adspecs-export-word/references/node_modules/marked/bin/main.js +282 -0
- package/skills/adspecs-export-word/references/node_modules/marked/bin/marked.js +15 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.cjs +2211 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.cjs.map +7 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.d.cts +728 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.d.ts +728 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.esm.js +2189 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.esm.js.map +7 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.umd.js +2213 -0
- package/skills/adspecs-export-word/references/node_modules/marked/lib/marked.umd.js.map +7 -0
- package/skills/adspecs-export-word/references/node_modules/marked/man/marked.1 +111 -0
- package/skills/adspecs-export-word/references/node_modules/marked/man/marked.1.md +92 -0
- package/skills/adspecs-export-word/references/node_modules/marked/marked.min.js +69 -0
- package/skills/adspecs-export-word/references/node_modules/marked/package.json +111 -0
- package/skills/adspecs-export-word/references/node_modules/minimalistic-assert/LICENSE +13 -0
- package/skills/adspecs-export-word/references/node_modules/minimalistic-assert/index.js +11 -0
- package/skills/adspecs-export-word/references/node_modules/minimalistic-assert/package.json +19 -0
- package/skills/adspecs-export-word/references/node_modules/minimalistic-assert/readme.md +4 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/LICENSE +20 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/README.md +34 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/bin/nanoid.js +66 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/index.browser.js +57 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/index.d.ts +106 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/index.js +83 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/nanoid.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/non-secure/index.d.ts +48 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/non-secure/index.js +23 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/package.json +46 -0
- package/skills/adspecs-export-word/references/node_modules/nanoid/url-alphabet/index.js +2 -0
- package/skills/adspecs-export-word/references/node_modules/pako/CHANGELOG.md +164 -0
- package/skills/adspecs-export-word/references/node_modules/pako/LICENSE +21 -0
- package/skills/adspecs-export-word/references/node_modules/pako/README.md +191 -0
- package/skills/adspecs-export-word/references/node_modules/pako/dist/pako.js +6818 -0
- package/skills/adspecs-export-word/references/node_modules/pako/dist/pako.min.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/pako/dist/pako_deflate.js +3997 -0
- package/skills/adspecs-export-word/references/node_modules/pako/dist/pako_deflate.min.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/pako/dist/pako_inflate.js +3300 -0
- package/skills/adspecs-export-word/references/node_modules/pako/dist/pako_inflate.min.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/pako/index.js +14 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/deflate.js +400 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/inflate.js +423 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/utils/common.js +105 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/utils/strings.js +187 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/README +59 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/adler32.js +51 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/constants.js +68 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/crc32.js +59 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/deflate.js +1874 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/gzheader.js +58 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/inffast.js +345 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/inflate.js +1556 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/inftrees.js +343 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/messages.js +32 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/trees.js +1222 -0
- package/skills/adspecs-export-word/references/node_modules/pako/lib/zlib/zstream.js +47 -0
- package/skills/adspecs-export-word/references/node_modules/pako/package.json +44 -0
- package/skills/adspecs-export-word/references/node_modules/process-nextick-args/index.js +45 -0
- package/skills/adspecs-export-word/references/node_modules/process-nextick-args/license.md +19 -0
- package/skills/adspecs-export-word/references/node_modules/process-nextick-args/package.json +25 -0
- package/skills/adspecs-export-word/references/node_modules/process-nextick-args/readme.md +18 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/.travis.yml +34 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/CONTRIBUTING.md +38 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/GOVERNANCE.md +136 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/LICENSE +47 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/README.md +58 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/duplex-browser.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/duplex.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/_stream_transform.js +214 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/_stream_writable.js +685 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/package.json +52 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/passthrough.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/readable-browser.js +7 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/readable.js +19 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/transform.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/writable-browser.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/readable-stream/writable.js +8 -0
- package/skills/adspecs-export-word/references/node_modules/safe-buffer/LICENSE +21 -0
- package/skills/adspecs-export-word/references/node_modules/safe-buffer/README.md +584 -0
- package/skills/adspecs-export-word/references/node_modules/safe-buffer/index.d.ts +187 -0
- package/skills/adspecs-export-word/references/node_modules/safe-buffer/index.js +62 -0
- package/skills/adspecs-export-word/references/node_modules/safe-buffer/package.json +37 -0
- package/skills/adspecs-export-word/references/node_modules/sax/LICENSE.md +55 -0
- package/skills/adspecs-export-word/references/node_modules/sax/README.md +227 -0
- package/skills/adspecs-export-word/references/node_modules/sax/lib/sax.js +1848 -0
- package/skills/adspecs-export-word/references/node_modules/sax/package.json +34 -0
- package/skills/adspecs-export-word/references/node_modules/setimmediate/LICENSE.txt +20 -0
- package/skills/adspecs-export-word/references/node_modules/setimmediate/package.json +30 -0
- package/skills/adspecs-export-word/references/node_modules/setimmediate/setImmediate.js +186 -0
- package/skills/adspecs-export-word/references/node_modules/string_decoder/.travis.yml +50 -0
- package/skills/adspecs-export-word/references/node_modules/string_decoder/LICENSE +48 -0
- package/skills/adspecs-export-word/references/node_modules/string_decoder/README.md +47 -0
- package/skills/adspecs-export-word/references/node_modules/string_decoder/lib/string_decoder.js +296 -0
- package/skills/adspecs-export-word/references/node_modules/string_decoder/package.json +31 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/LICENSE +21 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/README.md +6 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/agent.d.ts +32 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/api.d.ts +43 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/balanced-pool.d.ts +30 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/cache-interceptor.d.ts +179 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/cache.d.ts +36 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/client-stats.d.ts +15 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/client.d.ts +123 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/connector.d.ts +36 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/content-type.d.ts +21 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/cookies.d.ts +30 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/dispatcher.d.ts +279 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/errors.d.ts +177 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/eventsource.d.ts +66 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/fetch.d.ts +211 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/formdata.d.ts +108 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/global-origin.d.ts +7 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/h2c-client.d.ts +73 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/handlers.d.ts +15 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/header.d.ts +160 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/index.d.ts +91 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/interceptors.d.ts +80 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/mock-agent.d.ts +68 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/mock-call-history.d.ts +111 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/mock-client.d.ts +27 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/mock-interceptor.d.ts +94 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/mock-pool.d.ts +27 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/package.json +55 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/patch.d.ts +29 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/pool.d.ts +41 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/proxy-agent.d.ts +29 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/readable.d.ts +68 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/retry-handler.d.ts +125 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/round-robin-pool.d.ts +41 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/snapshot-agent.d.ts +109 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/util.d.ts +18 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/utility.d.ts +7 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/webidl.d.ts +347 -0
- package/skills/adspecs-export-word/references/node_modules/undici-types/websocket.d.ts +188 -0
- package/skills/adspecs-export-word/references/node_modules/util-deprecate/History.md +16 -0
- package/skills/adspecs-export-word/references/node_modules/util-deprecate/LICENSE +24 -0
- package/skills/adspecs-export-word/references/node_modules/util-deprecate/README.md +53 -0
- package/skills/adspecs-export-word/references/node_modules/util-deprecate/browser.js +67 -0
- package/skills/adspecs-export-word/references/node_modules/util-deprecate/node.js +6 -0
- package/skills/adspecs-export-word/references/node_modules/util-deprecate/package.json +27 -0
- package/skills/adspecs-export-word/references/node_modules/xml/.travis.yml +8 -0
- package/skills/adspecs-export-word/references/node_modules/xml/LICENSE +22 -0
- package/skills/adspecs-export-word/references/node_modules/xml/examples/examples.js +81 -0
- package/skills/adspecs-export-word/references/node_modules/xml/examples/server.js +24 -0
- package/skills/adspecs-export-word/references/node_modules/xml/lib/escapeForXML.js +18 -0
- package/skills/adspecs-export-word/references/node_modules/xml/lib/xml.js +282 -0
- package/skills/adspecs-export-word/references/node_modules/xml/package.json +38 -0
- package/skills/adspecs-export-word/references/node_modules/xml/readme.md +184 -0
- package/skills/adspecs-export-word/references/node_modules/xml/test/xml.test.js +150 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/LICENSE +21 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/README.md +390 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/bin/cli-helper.js +47 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/bin/cli.js +83 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/bin/test.json +23 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/bin/test.xml +3 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/dist/xml-js.js +8310 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/dist/xml-js.min.js +8 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/index.js +1 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/array-helper.js +11 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/index.js +13 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/js2xml.js +320 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/json2xml.js +18 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/options-helper.js +43 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/xml2js.js +362 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/lib/xml2json.js +22 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/package.json +111 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/types/index.d.ts +154 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/types/tsconfig.json +14 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/types/typings.json +4 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/types/xml-js-tests.ts +60 -0
- package/skills/adspecs-export-word/references/node_modules/xml-js/webpack.config.js +28 -0
- package/skills/project-init/SKILL.md +10 -10
- package/src/commands/plugin.js +4 -4
- package/src/lib/readme-gen.js +1 -1
- /package/skills/{adspecs-requirement-research → ads-requirement-research}/02-/351/234/200/346/261/202/346/235/245/346/272/220/344/270/216/351/207/207/351/233/206/350/256/260/345/275/225.md" +0 -0
|
@@ -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
|
+
};
|