├── Config.js ├── README.md ├── core ├── AssetsBundle.js ├── AssetsDB.js ├── AutoAtlasUtils.js ├── FsUtils.js ├── HotUpdateBuilder.js ├── IPC.js └── type.js ├── icon.png ├── main.js ├── node_modules ├── @types │ └── jszip │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── node_modules │ │ └── @types │ │ │ └── node │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── assert.d.ts │ │ │ ├── async_hooks.d.ts │ │ │ ├── base.d.ts │ │ │ ├── buffer.d.ts │ │ │ ├── child_process.d.ts │ │ │ ├── cluster.d.ts │ │ │ ├── console.d.ts │ │ │ ├── constants.d.ts │ │ │ ├── crypto.d.ts │ │ │ ├── dgram.d.ts │ │ │ ├── dns.d.ts │ │ │ ├── domain.d.ts │ │ │ ├── events.d.ts │ │ │ ├── fs.d.ts │ │ │ ├── globals.d.ts │ │ │ ├── http.d.ts │ │ │ ├── http2.d.ts │ │ │ ├── https.d.ts │ │ │ ├── index.d.ts │ │ │ ├── inspector.d.ts │ │ │ ├── module.d.ts │ │ │ ├── net.d.ts │ │ │ ├── os.d.ts │ │ │ ├── package.json │ │ │ ├── path.d.ts │ │ │ ├── perf_hooks.d.ts │ │ │ ├── process.d.ts │ │ │ ├── punycode.d.ts │ │ │ ├── querystring.d.ts │ │ │ ├── readline.d.ts │ │ │ ├── repl.d.ts │ │ │ ├── stream.d.ts │ │ │ ├── string_decoder.d.ts │ │ │ ├── timers.d.ts │ │ │ ├── tls.d.ts │ │ │ ├── trace_events.d.ts │ │ │ ├── ts3.2 │ │ │ ├── fs.d.ts │ │ │ ├── globals.d.ts │ │ │ ├── index.d.ts │ │ │ └── util.d.ts │ │ │ ├── tty.d.ts │ │ │ ├── url.d.ts │ │ │ ├── util.d.ts │ │ │ ├── v8.d.ts │ │ │ ├── vm.d.ts │ │ │ ├── worker_threads.d.ts │ │ │ └── zlib.d.ts │ │ └── package.json ├── core-util-is │ ├── LICENSE │ ├── README.md │ ├── float.patch │ ├── lib │ │ └── util.js │ ├── package.json │ └── test.js ├── fs-extra │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── copy-sync │ │ │ ├── copy-sync.js │ │ │ └── index.js │ │ ├── copy │ │ │ ├── copy.js │ │ │ └── index.js │ │ ├── empty │ │ │ └── index.js │ │ ├── ensure │ │ │ ├── file.js │ │ │ ├── index.js │ │ │ ├── link.js │ │ │ ├── symlink-paths.js │ │ │ ├── symlink-type.js │ │ │ └── symlink.js │ │ ├── fs │ │ │ └── index.js │ │ ├── index.js │ │ ├── json │ │ │ ├── index.js │ │ │ ├── jsonfile.js │ │ │ ├── output-json-sync.js │ │ │ └── output-json.js │ │ ├── mkdirs │ │ │ ├── index.js │ │ │ ├── mkdirs-sync.js │ │ │ ├── mkdirs.js │ │ │ └── win32.js │ │ ├── move-sync │ │ │ ├── index.js │ │ │ └── move-sync.js │ │ ├── move │ │ │ ├── index.js │ │ │ └── move.js │ │ ├── output │ │ │ └── index.js │ │ ├── path-exists │ │ │ └── index.js │ │ ├── remove │ │ │ ├── index.js │ │ │ └── rimraf.js │ │ └── util │ │ │ ├── buffer.js │ │ │ ├── stat.js │ │ │ └── utimes.js │ └── package.json ├── fs │ ├── README.md │ └── package.json ├── graceful-fs │ ├── LICENSE │ ├── README.md │ ├── clone.js │ ├── graceful-fs.js │ ├── legacy-streams.js │ ├── package.json │ └── polyfills.js ├── immediate │ ├── LICENSE.txt │ ├── README.md │ ├── dist │ │ ├── immediate.js │ │ └── immediate.min.js │ ├── lib │ │ ├── browser.js │ │ └── index.js │ └── package.json ├── inherits │ ├── LICENSE │ ├── README.md │ ├── inherits.js │ ├── inherits_browser.js │ └── package.json ├── isarray │ ├── .npmignore │ ├── .travis.yml │ ├── Makefile │ ├── README.md │ ├── component.json │ ├── index.js │ ├── package.json │ └── test.js ├── jsonfile │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── jszip │ ├── .codeclimate.yml │ ├── .editorconfig │ ├── .jshintignore │ ├── .jshintrc │ ├── .travis.yml │ ├── CHANGES.md │ ├── LICENSE.markdown │ ├── README.markdown │ ├── dist │ │ ├── jszip.js │ │ └── jszip.min.js │ ├── lib │ │ ├── base64.js │ │ ├── compressedObject.js │ │ ├── compressions.js │ │ ├── crc32.js │ │ ├── defaults.js │ │ ├── external.js │ │ ├── flate.js │ │ ├── generate │ │ │ ├── ZipFileWorker.js │ │ │ └── index.js │ │ ├── index.js │ │ ├── license_header.js │ │ ├── load.js │ │ ├── nodejs │ │ │ ├── NodejsStreamInputAdapter.js │ │ │ └── NodejsStreamOutputAdapter.js │ │ ├── nodejsUtils.js │ │ ├── object.js │ │ ├── readable-stream-browser.js │ │ ├── reader │ │ │ ├── ArrayReader.js │ │ │ ├── DataReader.js │ │ │ ├── NodeBufferReader.js │ │ │ ├── StringReader.js │ │ │ ├── Uint8ArrayReader.js │ │ │ └── readerFor.js │ │ ├── signature.js │ │ ├── stream │ │ │ ├── ConvertWorker.js │ │ │ ├── Crc32Probe.js │ │ │ ├── DataLengthProbe.js │ │ │ ├── DataWorker.js │ │ │ ├── GenericWorker.js │ │ │ └── StreamHelper.js │ │ ├── support.js │ │ ├── utf8.js │ │ ├── utils.js │ │ ├── zipEntries.js │ │ ├── zipEntry.js │ │ └── zipObject.js │ ├── package.json │ └── vendor │ │ └── FileSaver.js ├── lie │ ├── README.md │ ├── dist │ │ ├── lie.js │ │ ├── lie.min.js │ │ ├── lie.polyfill.js │ │ └── lie.polyfill.min.js │ ├── lib │ │ ├── browser.js │ │ └── index.js │ ├── license.md │ ├── lie.d.ts │ ├── package.json │ └── polyfill.js ├── pako │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── pako.js │ │ ├── pako.min.js │ │ ├── pako_deflate.js │ │ ├── pako_deflate.min.js │ │ ├── pako_inflate.js │ │ └── pako_inflate.min.js │ ├── index.js │ ├── lib │ │ ├── deflate.js │ │ ├── inflate.js │ │ ├── utils │ │ │ ├── common.js │ │ │ └── strings.js │ │ └── zlib │ │ │ ├── README │ │ │ ├── adler32.js │ │ │ ├── constants.js │ │ │ ├── crc32.js │ │ │ ├── deflate.js │ │ │ ├── gzheader.js │ │ │ ├── inffast.js │ │ │ ├── inflate.js │ │ │ ├── inftrees.js │ │ │ ├── messages.js │ │ │ ├── trees.js │ │ │ └── zstream.js │ └── package.json ├── path │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── package.json │ └── path.js ├── process-nextick-args │ ├── index.js │ ├── license.md │ ├── package.json │ └── readme.md ├── process │ ├── .eslintrc │ ├── LICENSE │ ├── README.md │ ├── browser.js │ ├── index.js │ ├── package.json │ └── test.js ├── readable-stream │ ├── .travis.yml │ ├── CONTRIBUTING.md │ ├── GOVERNANCE.md │ ├── LICENSE │ ├── README.md │ ├── doc │ │ └── wg-meetings │ │ │ └── 2015-01-30.md │ ├── duplex-browser.js │ ├── duplex.js │ ├── lib │ │ ├── _stream_duplex.js │ │ ├── _stream_passthrough.js │ │ ├── _stream_readable.js │ │ ├── _stream_transform.js │ │ ├── _stream_writable.js │ │ └── internal │ │ │ └── streams │ │ │ ├── BufferList.js │ │ │ ├── destroy.js │ │ │ ├── stream-browser.js │ │ │ └── stream.js │ ├── package.json │ ├── passthrough.js │ ├── readable-browser.js │ ├── readable.js │ ├── transform.js │ ├── writable-browser.js │ └── writable.js ├── safe-buffer │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js │ └── package.json ├── set-immediate-shim │ ├── index.js │ ├── package.json │ └── readme.md ├── string_decoder │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── lib │ │ └── string_decoder.js │ └── package.json ├── universalify │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── util-deprecate │ ├── History.md │ ├── LICENSE │ ├── README.md │ ├── browser.js │ ├── node.js │ └── package.json └── util │ ├── LICENSE │ ├── README.md │ ├── node_modules │ └── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── package.json │ ├── support │ ├── isBuffer.js │ └── isBufferBrowser.js │ └── util.js ├── package-lock.json ├── package.json └── panel ├── index.css ├── index.html └── index.js /Config.js: -------------------------------------------------------------------------------- 1 | let fs = require('fs'); 2 | let path = require('path'); 3 | var FsExtra = require("fs-extra"); 4 | 5 | 6 | var CONF_PATH = "settings"; 7 | var CONF_FILE_NAME = "AssetsBundle.json"; 8 | 9 | 10 | module.exports = { 11 | /** @type {"db://assets/resources/Manifest"} */ 12 | MANIFEST_DIR_URL: "db://assets/resources/Manifest", 13 | /**@type {"project.manifest"} */ 14 | PROJECT_FILE: "project.manifest", 15 | /**@type {"version.manifest"} */ 16 | VERSION_FILE: "version.manifest", 17 | /**@type {"Debug"} */ 18 | DEBUG_DIR: "Debug", 19 | /**@type {"subpackages"} */ 20 | SUBPACKAGES: "subpackages", 21 | ScriptType: ["javascript", "typescript", "coffeescript"], 22 | IMPORT_DIR: "import", 23 | 24 | 25 | configFile: path.join(Editor.Project.path, CONF_PATH, CONF_FILE_NAME), 26 | 27 | 28 | /** 29 | * 读取配置文件 30 | * @returns {PlugConfig} 31 | */ 32 | read() { 33 | let file = this.configFile; 34 | if (fs.existsSync(file) === false) { 35 | return undefined; 36 | } 37 | 38 | let json = fs.readFileSync(file, "utf8"); 39 | let config = JSON.parse(json); 40 | return config; 41 | }, 42 | /** 43 | * 44 | * @param {PlugConfig} config 45 | */ 46 | write(config) { 47 | let file = this.configFile; 48 | let dir = path.dirname(file); 49 | if (fs.existsSync(dir)) { 50 | FsExtra.mkdirpSync(dir); 51 | } 52 | 53 | // 写入文件 54 | fs.writeFileSync(file, JSON.stringify(config, null, 4)); 55 | Editor.log("配置文件保存成功 " + file); 56 | }, 57 | 58 | 59 | /** 60 | * 删除配置文件 61 | */ 62 | delConfig() { 63 | let file = this.configFile; 64 | if (fs.existsSync(file)) { 65 | fs.unlinkSync(file); 66 | } 67 | }, 68 | 69 | 70 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AssetsBundle 2 | CocosCreator AssetsBundle 3 | -------------------------------------------------------------------------------- /core/IPC.js: -------------------------------------------------------------------------------- 1 | var Ipc = Editor.Ipc 2 | var packageJson = require("../package.json"); 3 | var packName = packageJson.name; 4 | 5 | module.exports = { 6 | /** 7 | * 发送消息到面板 8 | * @param {string} funcName 9 | * @param {string} strData 10 | * @returns {Promise<[Error,string]>} 11 | */ 12 | async _toPanel(funcName, strData) { 13 | return new Promise((resolve) => { 14 | Ipc.sendToPanel(packName, funcName, strData, (error, data) => { 15 | if (error) { 16 | Editor.error("sendToPanel::", packName, funcName); 17 | Editor.error(error); 18 | } 19 | resolve([error, data]); 20 | }) 21 | }); 22 | }, 23 | /** 24 | * 发送消息到主进程 25 | * @param {string} funcName 26 | * @param {string} strData 27 | * @returns {Promise<[Error,string]>} 28 | */ 29 | async _toMain(funcName, strData) { 30 | return new Promise((resolve) => { 31 | Ipc.sendToMain(packName + ":" + funcName, strData, (error, data) => { 32 | if (error) { 33 | Editor.error("sendToMain::", packName, packName + ":" + funcName); 34 | Editor.error(error); 35 | } 36 | resolve([error, data]); 37 | }) 38 | }); 39 | }, 40 | 41 | async sendToPanel(funcName, strData) { 42 | return this._toPanel(funcName, strData); 43 | }, 44 | 45 | async sendToMain(funcName, strData) { 46 | return this._toMain(funcName, strData); 47 | }, 48 | 49 | 50 | 51 | } -------------------------------------------------------------------------------- /core/type.js: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | 4 | 5 | 6 | 7 | @typedef 8 | { 9 | ""|"folder"|"animation-clip"|"asset"|"audio-clip"|"auto-atlas"|"bitmap-font"|"buffer"|"coffeescript"|"dragonbones"|"dragonbones-atlas"|"dragonbones-bin"|"effect"|"fbx"|"font"|"gltf"|"javascript"|"json"|"label-atlas"|"markdown"|"material"|"mesh"|"native-asset"|"particle"|"prefab"|"raw-asset"|"scene"|"skeleton"|"skeleton-animation-clip"|"spine"|"sprite-atlas"|"sprite-frame"|"text"|"texture"|"texture-packer"|"tiled-map"|"ttf-font"|"typescript" 10 | } AssetType 11 | @typedef 12 | {{ 13 | destPath: string 14 | hidden: boolean 15 | isSubAsset: boolean 16 | path: tring 17 | readonly: boolean 18 | type: AssetType 19 | url: string 20 | uuid: string 21 | }} Asset 22 | 23 | 24 | @typedef 25 | {{ 26 | mainPack: Package, 27 | subpackArr: Package[], 28 | packageSaveDir: string, 29 | isDebug: boolean, 30 | buildWithCheck:boolean, 31 | }} PlugConfig 插件配置信息 32 | 33 | 34 | @typedef 35 | {{ 36 | name: string 37 | zhName: string 38 | zipImport: boolean 39 | zipRawassets: boolean 40 | isPrivate: boolean 41 | type: "LOCAL" | "HOT_UPDATE" | "REMOTE" 42 | version: string 43 | packageUrl: string 44 | resDirs: string[] 45 | }} Package 插件子包对象结构 46 | 47 | @typedef 48 | {{ 49 | version: string 50 | name: string // 追加包名 51 | zhName: string // 追加中文包名 52 | packageUrl: string 53 | remoteManifestUrl: string 54 | remoteVersionUrl: string 55 | assets: ManifestAssets, 56 | searchPaths: string[] 57 | }} Manifest 热更清单文件内容 58 | 59 | @typedef 60 | {{ 61 | [key:string]:{ 62 | size: number 63 | md5: string 64 | compressed: boolean 65 | } 66 | }} ManifestAssets 热更清单文件中的资源列表结构 67 | 68 | @typedef 69 | {{ 70 | name: string 71 | path: string 72 | uuids: string[] 73 | }} Pack 引擎构建后的子包对象结构 74 | 75 | @typedef 76 | {{ 77 | [packName: string]: Pack 78 | }} Subpackages 引擎构建后的所有子包 79 | 80 | @typedef 81 | {{ 82 | uuids: string[] 83 | containsSubAssets: {[uuid: string]: boolean} 84 | 85 | }} SubpackageAutoAtlasInfo 子包自动图集信息表 86 | 87 | @typedef 88 | {{ 89 | [packageName: string]: SubpackageAutoAtlasInfo 90 | }} AutoAtlasInfo 项目所有子包自动图集信息表 91 | */ 92 | 93 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zPiggy/assets-bundle/5330c4f12b66d71a7417db22929718ae3b20e482/icon.png -------------------------------------------------------------------------------- /node_modules/@types/jszip/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. All rights reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | > `npm install --save @types/jszip` 3 | 4 | # Summary 5 | This package contains type definitions for JSZip (http://stuk.github.com/jszip/). 6 | 7 | # Details 8 | Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jszip. 9 | 10 | ### Additional Details 11 | * Last updated: Wed, 08 Jan 2020 15:55:20 GMT 12 | * Dependencies: [@types/node](https://npmjs.com/package/@types/node) 13 | * Global values: none 14 | 15 | # Credits 16 | These definitions were written by mzeiher (https://github.com/mzeiher), forabi (https://github.com/forabi), and Florian Keller (https://github.com/ffflorian). 17 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. All rights reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | > `npm install --save @types/node` 3 | 4 | # Summary 5 | This package contains type definitions for Node.js (http://nodejs.org/). 6 | 7 | # Details 8 | Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node. 9 | 10 | ### Additional Details 11 | * Last updated: Thu, 09 Jan 2020 16:03:44 GMT 12 | * Dependencies: none 13 | * Global values: `Buffer`, `Symbol`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout` 14 | 15 | # Credits 16 | These definitions were written by Microsoft TypeScript (https://github.com/Microsoft), DefinitelyTyped (https://github.com/DefinitelyTyped), Alberto Schiabel (https://github.com/jkomyno), Alexander T. (https://github.com/a-tarasyuk), Alvis HT Tang (https://github.com/alvis), Andrew Makarov (https://github.com/r3nya), Benjamin Toueg (https://github.com/btoueg), Bruno Scheufler (https://github.com/brunoscheufler), Chigozirim C. (https://github.com/smac89), Christian Vaagland Tellnes (https://github.com/tellnes), David Junger (https://github.com/touffy), Deividas Bakanas (https://github.com/DeividasBakanas), Eugene Y. Q. Shen (https://github.com/eyqs), Flarna (https://github.com/Flarna), Hannes Magnusson (https://github.com/Hannes-Magnusson-CK), Hoàng Văn Khải (https://github.com/KSXGitHub), Huw (https://github.com/hoo29), Kelvin Jin (https://github.com/kjin), Klaus Meinhardt (https://github.com/ajafff), Lishude (https://github.com/islishude), Mariusz Wiktorczyk (https://github.com/mwiktorczyk), Mohsen Azimi (https://github.com/mohsen1), Nicolas Even (https://github.com/n-e), Nicolas Voigt (https://github.com/octo-sniffle), Nikita Galkin (https://github.com/galkin), Parambir Singh (https://github.com/parambirs), Sebastian Silbermann (https://github.com/eps1lon), Simon Schick (https://github.com/SimonSchick), Thomas den Hollander (https://github.com/ThomasdenH), Wilco Bakker (https://github.com/WilcoBakker), wwwy3y3 (https://github.com/wwwy3y3), Zane Hannan AU (https://github.com/ZaneHannanAU), Samuel Ainsworth (https://github.com/samuela), Kyle Uehlein (https://github.com/kuehlein), Jordi Oliveras Rovira (https://github.com/j-oliveras), Thanik Bhongbhibhat (https://github.com/bhongy), Marcin Kopacz (https://github.com/chyzwar), Trivikram Kamat (https://github.com/trivikr), Minh Son Nguyen (https://github.com/nguymin4), Junxiao Shi (https://github.com/yoursunny), and Ilia Baryshnikov (https://github.com/qwelias). 17 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/base.d.ts: -------------------------------------------------------------------------------- 1 | // base definnitions for all NodeJS modules that are not specific to any version of TypeScript 2 | /// 3 | /// 4 | /// 5 | /// 6 | /// 7 | /// 8 | /// 9 | /// 10 | /// 11 | /// 12 | /// 13 | /// 14 | /// 15 | /// 16 | /// 17 | /// 18 | /// 19 | /// 20 | /// 21 | /// 22 | /// 23 | /// 24 | /// 25 | /// 26 | /// 27 | /// 28 | /// 29 | /// 30 | /// 31 | /// 32 | /// 33 | /// 34 | /// 35 | /// 36 | /// 37 | /// 38 | /// 39 | /// 40 | /// 41 | /// 42 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/buffer.d.ts: -------------------------------------------------------------------------------- 1 | declare module "buffer" { 2 | export const INSPECT_MAX_BYTES: number; 3 | export const kMaxLength: number; 4 | export const kStringMaxLength: number; 5 | export const constants: { 6 | MAX_LENGTH: number; 7 | MAX_STRING_LENGTH: number; 8 | }; 9 | const BuffType: typeof Buffer; 10 | 11 | export type TranscodeEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "latin1" | "binary"; 12 | 13 | export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; 14 | 15 | export const SlowBuffer: { 16 | /** @deprecated since v6.0.0, use Buffer.allocUnsafeSlow() */ 17 | new(size: number): Buffer; 18 | prototype: Buffer; 19 | }; 20 | 21 | export { BuffType as Buffer }; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/console.d.ts: -------------------------------------------------------------------------------- 1 | declare module "console" { 2 | export = console; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/constants.d.ts: -------------------------------------------------------------------------------- 1 | /** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ 2 | declare module "constants" { 3 | import { constants as osConstants, SignalConstants } from 'os'; 4 | import { constants as cryptoConstants } from 'crypto'; 5 | import { constants as fsConstants } from 'fs'; 6 | const exp: typeof osConstants.errno & typeof osConstants.priority & SignalConstants & typeof cryptoConstants & typeof fsConstants; 7 | export = exp; 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/domain.d.ts: -------------------------------------------------------------------------------- 1 | declare module "domain" { 2 | import { EventEmitter } from "events"; 3 | 4 | class Domain extends EventEmitter implements NodeJS.Domain { 5 | run(fn: (...args: any[]) => T, ...args: any[]): T; 6 | add(emitter: EventEmitter | NodeJS.Timer): void; 7 | remove(emitter: EventEmitter | NodeJS.Timer): void; 8 | bind(cb: T): T; 9 | intercept(cb: T): T; 10 | members: Array; 11 | enter(): void; 12 | exit(): void; 13 | } 14 | 15 | function create(): Domain; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/events.d.ts: -------------------------------------------------------------------------------- 1 | declare module "events" { 2 | interface internal extends NodeJS.EventEmitter {} 3 | class internal { } 4 | 5 | interface NodeEventTarget { 6 | once(event: string | symbol, listener: (...args: any[]) => void): this; 7 | } 8 | 9 | interface DOMEventTarget { 10 | addEventListener(event: string, listener: (...args: any[]) => void, opts?: { once: boolean }): any; 11 | } 12 | 13 | namespace internal { 14 | function once(emitter: NodeEventTarget, event: string | symbol): Promise; 15 | function once(emitter: DOMEventTarget, event: string): Promise; 16 | class EventEmitter extends internal { 17 | /** @deprecated since v4.0.0 */ 18 | static listenerCount(emitter: EventEmitter, event: string | symbol): number; 19 | static defaultMaxListeners: number; 20 | 21 | addListener(event: string | symbol, listener: (...args: any[]) => void): this; 22 | on(event: string | symbol, listener: (...args: any[]) => void): this; 23 | once(event: string | symbol, listener: (...args: any[]) => void): this; 24 | prependListener(event: string | symbol, listener: (...args: any[]) => void): this; 25 | prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; 26 | removeListener(event: string | symbol, listener: (...args: any[]) => void): this; 27 | off(event: string | symbol, listener: (...args: any[]) => void): this; 28 | removeAllListeners(event?: string | symbol): this; 29 | setMaxListeners(n: number): this; 30 | getMaxListeners(): number; 31 | listeners(event: string | symbol): Function[]; 32 | rawListeners(event: string | symbol): Function[]; 33 | emit(event: string | symbol, ...args: any[]): boolean; 34 | eventNames(): Array; 35 | listenerCount(type: string | symbol): number; 36 | } 37 | } 38 | 39 | export = internal; 40 | } 41 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/https.d.ts: -------------------------------------------------------------------------------- 1 | declare module "https" { 2 | import * as tls from "tls"; 3 | import * as events from "events"; 4 | import * as http from "http"; 5 | import { URL } from "url"; 6 | 7 | type ServerOptions = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions; 8 | 9 | type RequestOptions = http.RequestOptions & tls.SecureContextOptions & { 10 | rejectUnauthorized?: boolean; // Defaults to true 11 | servername?: string; // SNI TLS Extension 12 | }; 13 | 14 | interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { 15 | rejectUnauthorized?: boolean; 16 | maxCachedSessions?: number; 17 | } 18 | 19 | class Agent extends http.Agent { 20 | constructor(options?: AgentOptions); 21 | options: AgentOptions; 22 | } 23 | 24 | class Server extends tls.Server { 25 | constructor(requestListener?: http.RequestListener); 26 | constructor(options: ServerOptions, requestListener?: http.RequestListener); 27 | 28 | setTimeout(callback: () => void): this; 29 | setTimeout(msecs?: number, callback?: () => void): this; 30 | /** 31 | * Limits maximum incoming headers count. If set to 0, no limit will be applied. 32 | * @default 2000 33 | * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount} 34 | */ 35 | maxHeadersCount: number | null; 36 | timeout: number; 37 | /** 38 | * Limit the amount of time the parser will wait to receive the complete HTTP headers. 39 | * @default 40000 40 | * {@link https://nodejs.org/api/http.html#http_server_headerstimeout} 41 | */ 42 | headersTimeout: number; 43 | keepAliveTimeout: number; 44 | } 45 | 46 | function createServer(requestListener?: http.RequestListener): Server; 47 | function createServer(options: ServerOptions, requestListener?: http.RequestListener): Server; 48 | function request(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; 49 | function request(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; 50 | function get(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; 51 | function get(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; 52 | let globalAgent: Agent; 53 | } 54 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/module.d.ts: -------------------------------------------------------------------------------- 1 | declare module "module" { 2 | import { URL } from "url"; 3 | interface Module extends NodeModule {} 4 | class Module { 5 | static runMain(): void; 6 | static wrap(code: string): string; 7 | 8 | /** 9 | * @deprecated Deprecated since: v12.2.0. Please use createRequire() instead. 10 | */ 11 | static createRequireFromPath(path: string): NodeRequire; 12 | static createRequire(path: string | URL): NodeRequire; 13 | static builtinModules: string[]; 14 | 15 | static Module: typeof Module; 16 | 17 | constructor(id: string, parent?: Module); 18 | } 19 | export = Module; 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/process.d.ts: -------------------------------------------------------------------------------- 1 | declare module "process" { 2 | import * as tty from "tty"; 3 | 4 | global { 5 | namespace NodeJS { 6 | // this namespace merge is here because these are specifically used 7 | // as the type for process.stdin, process.stdout, and process.stderr. 8 | // they can't live in tty.d.ts because we need to disambiguate the imported name. 9 | interface ReadStream extends tty.ReadStream {} 10 | interface WriteStream extends tty.WriteStream {} 11 | } 12 | } 13 | 14 | export = process; 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/punycode.d.ts: -------------------------------------------------------------------------------- 1 | declare module "punycode" { 2 | function decode(string: string): string; 3 | function encode(string: string): string; 4 | function toUnicode(domain: string): string; 5 | function toASCII(domain: string): string; 6 | const ucs2: ucs2; 7 | interface ucs2 { 8 | decode(string: string): number[]; 9 | encode(codePoints: number[]): string; 10 | } 11 | const version: string; 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/querystring.d.ts: -------------------------------------------------------------------------------- 1 | declare module "querystring" { 2 | interface StringifyOptions { 3 | encodeURIComponent?: (str: string) => string; 4 | } 5 | 6 | interface ParseOptions { 7 | maxKeys?: number; 8 | decodeURIComponent?: (str: string) => string; 9 | } 10 | 11 | interface ParsedUrlQuery { [key: string]: string | string[]; } 12 | 13 | interface ParsedUrlQueryInput { 14 | [key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined | null; 15 | } 16 | 17 | function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; 18 | function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; 19 | /** 20 | * The querystring.encode() function is an alias for querystring.stringify(). 21 | */ 22 | const encode: typeof stringify; 23 | /** 24 | * The querystring.decode() function is an alias for querystring.parse(). 25 | */ 26 | const decode: typeof parse; 27 | function escape(str: string): string; 28 | function unescape(str: string): string; 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/string_decoder.d.ts: -------------------------------------------------------------------------------- 1 | declare module "string_decoder" { 2 | class StringDecoder { 3 | constructor(encoding?: string); 4 | write(buffer: Buffer): string; 5 | end(buffer?: Buffer): string; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/timers.d.ts: -------------------------------------------------------------------------------- 1 | declare module "timers" { 2 | function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; 3 | namespace setTimeout { 4 | function __promisify__(ms: number): Promise; 5 | function __promisify__(ms: number, value: T): Promise; 6 | } 7 | function clearTimeout(timeoutId: NodeJS.Timeout): void; 8 | function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; 9 | function clearInterval(intervalId: NodeJS.Timeout): void; 10 | function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; 11 | namespace setImmediate { 12 | function __promisify__(): Promise; 13 | function __promisify__(value: T): Promise; 14 | } 15 | function clearImmediate(immediateId: NodeJS.Immediate): void; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/trace_events.d.ts: -------------------------------------------------------------------------------- 1 | declare module "trace_events" { 2 | /** 3 | * The `Tracing` object is used to enable or disable tracing for sets of 4 | * categories. Instances are created using the 5 | * `trace_events.createTracing()` method. 6 | * 7 | * When created, the `Tracing` object is disabled. Calling the 8 | * `tracing.enable()` method adds the categories to the set of enabled trace 9 | * event categories. Calling `tracing.disable()` will remove the categories 10 | * from the set of enabled trace event categories. 11 | */ 12 | interface Tracing { 13 | /** 14 | * A comma-separated list of the trace event categories covered by this 15 | * `Tracing` object. 16 | */ 17 | readonly categories: string; 18 | 19 | /** 20 | * Disables this `Tracing` object. 21 | * 22 | * Only trace event categories _not_ covered by other enabled `Tracing` 23 | * objects and _not_ specified by the `--trace-event-categories` flag 24 | * will be disabled. 25 | */ 26 | disable(): void; 27 | 28 | /** 29 | * Enables this `Tracing` object for the set of categories covered by 30 | * the `Tracing` object. 31 | */ 32 | enable(): void; 33 | 34 | /** 35 | * `true` only if the `Tracing` object has been enabled. 36 | */ 37 | readonly enabled: boolean; 38 | } 39 | 40 | interface CreateTracingOptions { 41 | /** 42 | * An array of trace category names. Values included in the array are 43 | * coerced to a string when possible. An error will be thrown if the 44 | * value cannot be coerced. 45 | */ 46 | categories: string[]; 47 | } 48 | 49 | /** 50 | * Creates and returns a Tracing object for the given set of categories. 51 | */ 52 | function createTracing(options: CreateTracingOptions): Tracing; 53 | 54 | /** 55 | * Returns a comma-separated list of all currently-enabled trace event 56 | * categories. The current set of enabled trace event categories is 57 | * determined by the union of all currently-enabled `Tracing` objects and 58 | * any categories enabled using the `--trace-event-categories` flag. 59 | */ 60 | function getEnabledCategories(): string | undefined; 61 | } 62 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/ts3.2/fs.d.ts: -------------------------------------------------------------------------------- 1 | // tslint:disable-next-line:no-bad-reference 2 | /// 3 | 4 | declare module 'fs' { 5 | interface BigIntStats extends StatsBase { 6 | } 7 | 8 | class BigIntStats { 9 | atimeNs: BigInt; 10 | mtimeNs: BigInt; 11 | ctimeNs: BigInt; 12 | birthtimeNs: BigInt; 13 | } 14 | 15 | interface BigIntOptions { 16 | bigint: true; 17 | } 18 | 19 | interface StatOptions { 20 | bigint: boolean; 21 | } 22 | 23 | function stat(path: PathLike, options: BigIntOptions, callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void): void; 24 | function stat(path: PathLike, options: StatOptions, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; 25 | 26 | namespace stat { 27 | function __promisify__(path: PathLike, options: BigIntOptions): Promise; 28 | function __promisify__(path: PathLike, options: StatOptions): Promise; 29 | } 30 | 31 | function statSync(path: PathLike, options: BigIntOptions): BigIntStats; 32 | function statSync(path: PathLike, options: StatOptions): Stats | BigIntStats; 33 | } 34 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/ts3.2/globals.d.ts: -------------------------------------------------------------------------------- 1 | // tslint:disable-next-line:no-bad-reference 2 | /// 3 | 4 | declare namespace NodeJS { 5 | interface HRTime { 6 | bigint(): bigint; 7 | } 8 | } 9 | 10 | interface Buffer extends Uint8Array { 11 | readBigUInt64BE(offset?: number): bigint; 12 | readBigUInt64LE(offset?: number): bigint; 13 | readBigInt64BE(offset?: number): bigint; 14 | readBigInt64LE(offset?: number): bigint; 15 | writeBigInt64BE(value: bigint, offset?: number): number; 16 | writeBigInt64LE(value: bigint, offset?: number): number; 17 | writeBigUInt64BE(value: bigint, offset?: number): number; 18 | writeBigUInt64LE(value: bigint, offset?: number): number; 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/ts3.2/index.d.ts: -------------------------------------------------------------------------------- 1 | // NOTE: These definitions support NodeJS and TypeScript 3.2. 2 | 3 | // Reference required types from the default lib: 4 | /// 5 | /// 6 | /// 7 | /// 8 | 9 | // Base definitions for all NodeJS modules that are not specific to any version of TypeScript: 10 | // tslint:disable-next-line:no-bad-reference 11 | /// 12 | 13 | // TypeScript 3.2-specific augmentations: 14 | /// 15 | /// 16 | /// 17 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/node_modules/@types/node/ts3.2/util.d.ts: -------------------------------------------------------------------------------- 1 | // tslint:disable-next-line:no-bad-reference 2 | /// 3 | 4 | declare module "util" { 5 | namespace types { 6 | function isBigInt64Array(value: any): value is BigInt64Array; 7 | function isBigUint64Array(value: any): value is BigUint64Array; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/@types/jszip/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "@types/jszip@^3.1.7", 3 | "_id": "@types/jszip@3.1.7", 4 | "_inBundle": false, 5 | "_integrity": "sha512-+XQKNI5zpxutK05hO67huUTw/2imXCuJWjnFdU63tRES/xXSX1yVR9cv/QAdO6Rii2y2tTHbzjQ4i2apLfuK0Q==", 6 | "_location": "/@types/jszip", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "range", 10 | "registry": true, 11 | "raw": "@types/jszip@^3.1.7", 12 | "name": "@types/jszip", 13 | "escapedName": "@types%2fjszip", 14 | "scope": "@types", 15 | "rawSpec": "^3.1.7", 16 | "saveSpec": null, 17 | "fetchSpec": "^3.1.7" 18 | }, 19 | "_requiredBy": [ 20 | "#USER", 21 | "/" 22 | ], 23 | "_resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.1.7.tgz", 24 | "_shasum": "c45bd72b448b3fb002125282c57c36190247cb34", 25 | "_spec": "@types/jszip@^3.1.7", 26 | "_where": "/Users/admin/GameX/packages/assets-bundle", 27 | "bugs": { 28 | "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" 29 | }, 30 | "bundleDependencies": false, 31 | "contributors": [ 32 | { 33 | "name": "mzeiher", 34 | "url": "https://github.com/mzeiher" 35 | }, 36 | { 37 | "name": "forabi", 38 | "url": "https://github.com/forabi" 39 | }, 40 | { 41 | "name": "Florian Keller", 42 | "url": "https://github.com/ffflorian" 43 | } 44 | ], 45 | "dependencies": { 46 | "@types/node": "*" 47 | }, 48 | "deprecated": false, 49 | "description": "TypeScript definitions for JSZip", 50 | "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", 51 | "license": "MIT", 52 | "main": "", 53 | "name": "@types/jszip", 54 | "repository": { 55 | "type": "git", 56 | "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", 57 | "directory": "types/jszip" 58 | }, 59 | "scripts": {}, 60 | "typeScriptVersion": "2.8", 61 | "types": "index.d.ts", 62 | "typesPublisherContentHash": "37eae717c9e1bfaaefaa45f3d5cb51b3ef128d8ed6927e9fcc3dba94d81a88db", 63 | "version": "3.1.7" 64 | } 65 | -------------------------------------------------------------------------------- /node_modules/core-util-is/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Node.js contributors. All rights reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to 5 | deal in the Software without restriction, including without limitation the 6 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 7 | sell copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 19 | IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /node_modules/core-util-is/README.md: -------------------------------------------------------------------------------- 1 | # core-util-is 2 | 3 | The `util.is*` functions introduced in Node v0.12. 4 | -------------------------------------------------------------------------------- /node_modules/core-util-is/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "core-util-is@~1.0.0", 3 | "_id": "core-util-is@1.0.2", 4 | "_inBundle": false, 5 | "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 6 | "_location": "/core-util-is", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "range", 10 | "registry": true, 11 | "raw": "core-util-is@~1.0.0", 12 | "name": "core-util-is", 13 | "escapedName": "core-util-is", 14 | "rawSpec": "~1.0.0", 15 | "saveSpec": null, 16 | "fetchSpec": "~1.0.0" 17 | }, 18 | "_requiredBy": [ 19 | "/readable-stream" 20 | ], 21 | "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 22 | "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", 23 | "_spec": "core-util-is@~1.0.0", 24 | "_where": "/Users/admin/GameX/packages/assets-bundle/node_modules/readable-stream", 25 | "author": { 26 | "name": "Isaac Z. Schlueter", 27 | "email": "i@izs.me", 28 | "url": "http://blog.izs.me/" 29 | }, 30 | "bugs": { 31 | "url": "https://github.com/isaacs/core-util-is/issues" 32 | }, 33 | "bundleDependencies": false, 34 | "deprecated": false, 35 | "description": "The `util.is*` functions introduced in Node v0.12.", 36 | "devDependencies": { 37 | "tap": "^2.3.0" 38 | }, 39 | "homepage": "https://github.com/isaacs/core-util-is#readme", 40 | "keywords": [ 41 | "util", 42 | "isBuffer", 43 | "isArray", 44 | "isNumber", 45 | "isString", 46 | "isRegExp", 47 | "isThis", 48 | "isThat", 49 | "polyfill" 50 | ], 51 | "license": "MIT", 52 | "main": "lib/util.js", 53 | "name": "core-util-is", 54 | "repository": { 55 | "type": "git", 56 | "url": "git://github.com/isaacs/core-util-is.git" 57 | }, 58 | "scripts": { 59 | "test": "tap test.js" 60 | }, 61 | "version": "1.0.2" 62 | } 63 | -------------------------------------------------------------------------------- /node_modules/core-util-is/test.js: -------------------------------------------------------------------------------- 1 | var assert = require('tap'); 2 | 3 | var t = require('./lib/util'); 4 | 5 | assert.equal(t.isArray([]), true); 6 | assert.equal(t.isArray({}), false); 7 | 8 | assert.equal(t.isBoolean(null), false); 9 | assert.equal(t.isBoolean(true), true); 10 | assert.equal(t.isBoolean(false), true); 11 | 12 | assert.equal(t.isNull(null), true); 13 | assert.equal(t.isNull(undefined), false); 14 | assert.equal(t.isNull(false), false); 15 | assert.equal(t.isNull(), false); 16 | 17 | assert.equal(t.isNullOrUndefined(null), true); 18 | assert.equal(t.isNullOrUndefined(undefined), true); 19 | assert.equal(t.isNullOrUndefined(false), false); 20 | assert.equal(t.isNullOrUndefined(), true); 21 | 22 | assert.equal(t.isNumber(null), false); 23 | assert.equal(t.isNumber('1'), false); 24 | assert.equal(t.isNumber(1), true); 25 | 26 | assert.equal(t.isString(null), false); 27 | assert.equal(t.isString('1'), true); 28 | assert.equal(t.isString(1), false); 29 | 30 | assert.equal(t.isSymbol(null), false); 31 | assert.equal(t.isSymbol('1'), false); 32 | assert.equal(t.isSymbol(1), false); 33 | assert.equal(t.isSymbol(Symbol()), true); 34 | 35 | assert.equal(t.isUndefined(null), false); 36 | assert.equal(t.isUndefined(undefined), true); 37 | assert.equal(t.isUndefined(false), false); 38 | assert.equal(t.isUndefined(), true); 39 | 40 | assert.equal(t.isRegExp(null), false); 41 | assert.equal(t.isRegExp('1'), false); 42 | assert.equal(t.isRegExp(new RegExp()), true); 43 | 44 | assert.equal(t.isObject({}), true); 45 | assert.equal(t.isObject([]), true); 46 | assert.equal(t.isObject(new RegExp()), true); 47 | assert.equal(t.isObject(new Date()), true); 48 | 49 | assert.equal(t.isDate(null), false); 50 | assert.equal(t.isDate('1'), false); 51 | assert.equal(t.isDate(new Date()), true); 52 | 53 | assert.equal(t.isError(null), false); 54 | assert.equal(t.isError({ err: true }), false); 55 | assert.equal(t.isError(new Error()), true); 56 | 57 | assert.equal(t.isFunction(null), false); 58 | assert.equal(t.isFunction({ }), false); 59 | assert.equal(t.isFunction(function() {}), true); 60 | 61 | assert.equal(t.isPrimitive(null), true); 62 | assert.equal(t.isPrimitive(''), true); 63 | assert.equal(t.isPrimitive(0), true); 64 | assert.equal(t.isPrimitive(new Date()), false); 65 | 66 | assert.equal(t.isBuffer(null), false); 67 | assert.equal(t.isBuffer({}), false); 68 | assert.equal(t.isBuffer(new Buffer(0)), true); 69 | -------------------------------------------------------------------------------- /node_modules/fs-extra/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2011-2017 JP Richardson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files 6 | (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, 7 | merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 13 | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS 14 | OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 15 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/copy-sync/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = { 4 | copySync: require('./copy-sync') 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/copy/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | module.exports = { 5 | copy: u(require('./copy')) 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/empty/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const fs = require('graceful-fs') 5 | const path = require('path') 6 | const mkdir = require('../mkdirs') 7 | const remove = require('../remove') 8 | 9 | const emptyDir = u(function emptyDir (dir, callback) { 10 | callback = callback || function () {} 11 | fs.readdir(dir, (err, items) => { 12 | if (err) return mkdir.mkdirs(dir, callback) 13 | 14 | items = items.map(item => path.join(dir, item)) 15 | 16 | deleteItem() 17 | 18 | function deleteItem () { 19 | const item = items.pop() 20 | if (!item) return callback() 21 | remove.remove(item, err => { 22 | if (err) return callback(err) 23 | deleteItem() 24 | }) 25 | } 26 | }) 27 | }) 28 | 29 | function emptyDirSync (dir) { 30 | let items 31 | try { 32 | items = fs.readdirSync(dir) 33 | } catch (err) { 34 | return mkdir.mkdirsSync(dir) 35 | } 36 | 37 | items.forEach(item => { 38 | item = path.join(dir, item) 39 | remove.removeSync(item) 40 | }) 41 | } 42 | 43 | module.exports = { 44 | emptyDirSync, 45 | emptydirSync: emptyDirSync, 46 | emptyDir, 47 | emptydir: emptyDir 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/ensure/file.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const path = require('path') 5 | const fs = require('graceful-fs') 6 | const mkdir = require('../mkdirs') 7 | const pathExists = require('../path-exists').pathExists 8 | 9 | function createFile (file, callback) { 10 | function makeFile () { 11 | fs.writeFile(file, '', err => { 12 | if (err) return callback(err) 13 | callback() 14 | }) 15 | } 16 | 17 | fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err 18 | if (!err && stats.isFile()) return callback() 19 | const dir = path.dirname(file) 20 | pathExists(dir, (err, dirExists) => { 21 | if (err) return callback(err) 22 | if (dirExists) return makeFile() 23 | mkdir.mkdirs(dir, err => { 24 | if (err) return callback(err) 25 | makeFile() 26 | }) 27 | }) 28 | }) 29 | } 30 | 31 | function createFileSync (file) { 32 | let stats 33 | try { 34 | stats = fs.statSync(file) 35 | } catch (e) {} 36 | if (stats && stats.isFile()) return 37 | 38 | const dir = path.dirname(file) 39 | if (!fs.existsSync(dir)) { 40 | mkdir.mkdirsSync(dir) 41 | } 42 | 43 | fs.writeFileSync(file, '') 44 | } 45 | 46 | module.exports = { 47 | createFile: u(createFile), 48 | createFileSync 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/ensure/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const file = require('./file') 4 | const link = require('./link') 5 | const symlink = require('./symlink') 6 | 7 | module.exports = { 8 | // file 9 | createFile: file.createFile, 10 | createFileSync: file.createFileSync, 11 | ensureFile: file.createFile, 12 | ensureFileSync: file.createFileSync, 13 | // link 14 | createLink: link.createLink, 15 | createLinkSync: link.createLinkSync, 16 | ensureLink: link.createLink, 17 | ensureLinkSync: link.createLinkSync, 18 | // symlink 19 | createSymlink: symlink.createSymlink, 20 | createSymlinkSync: symlink.createSymlinkSync, 21 | ensureSymlink: symlink.createSymlink, 22 | ensureSymlinkSync: symlink.createSymlinkSync 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/ensure/link.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const path = require('path') 5 | const fs = require('graceful-fs') 6 | const mkdir = require('../mkdirs') 7 | const pathExists = require('../path-exists').pathExists 8 | 9 | function createLink (srcpath, dstpath, callback) { 10 | function makeLink (srcpath, dstpath) { 11 | fs.link(srcpath, dstpath, err => { 12 | if (err) return callback(err) 13 | callback(null) 14 | }) 15 | } 16 | 17 | pathExists(dstpath, (err, destinationExists) => { 18 | if (err) return callback(err) 19 | if (destinationExists) return callback(null) 20 | fs.lstat(srcpath, (err) => { 21 | if (err) { 22 | err.message = err.message.replace('lstat', 'ensureLink') 23 | return callback(err) 24 | } 25 | 26 | const dir = path.dirname(dstpath) 27 | pathExists(dir, (err, dirExists) => { 28 | if (err) return callback(err) 29 | if (dirExists) return makeLink(srcpath, dstpath) 30 | mkdir.mkdirs(dir, err => { 31 | if (err) return callback(err) 32 | makeLink(srcpath, dstpath) 33 | }) 34 | }) 35 | }) 36 | }) 37 | } 38 | 39 | function createLinkSync (srcpath, dstpath) { 40 | const destinationExists = fs.existsSync(dstpath) 41 | if (destinationExists) return undefined 42 | 43 | try { 44 | fs.lstatSync(srcpath) 45 | } catch (err) { 46 | err.message = err.message.replace('lstat', 'ensureLink') 47 | throw err 48 | } 49 | 50 | const dir = path.dirname(dstpath) 51 | const dirExists = fs.existsSync(dir) 52 | if (dirExists) return fs.linkSync(srcpath, dstpath) 53 | mkdir.mkdirsSync(dir) 54 | 55 | return fs.linkSync(srcpath, dstpath) 56 | } 57 | 58 | module.exports = { 59 | createLink: u(createLink), 60 | createLinkSync 61 | } 62 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/ensure/symlink-type.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('graceful-fs') 4 | 5 | function symlinkType (srcpath, type, callback) { 6 | callback = (typeof type === 'function') ? type : callback 7 | type = (typeof type === 'function') ? false : type 8 | if (type) return callback(null, type) 9 | fs.lstat(srcpath, (err, stats) => { 10 | if (err) return callback(null, 'file') 11 | type = (stats && stats.isDirectory()) ? 'dir' : 'file' 12 | callback(null, type) 13 | }) 14 | } 15 | 16 | function symlinkTypeSync (srcpath, type) { 17 | let stats 18 | 19 | if (type) return type 20 | try { 21 | stats = fs.lstatSync(srcpath) 22 | } catch (e) { 23 | return 'file' 24 | } 25 | return (stats && stats.isDirectory()) ? 'dir' : 'file' 26 | } 27 | 28 | module.exports = { 29 | symlinkType, 30 | symlinkTypeSync 31 | } 32 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/ensure/symlink.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const path = require('path') 5 | const fs = require('graceful-fs') 6 | const _mkdirs = require('../mkdirs') 7 | const mkdirs = _mkdirs.mkdirs 8 | const mkdirsSync = _mkdirs.mkdirsSync 9 | 10 | const _symlinkPaths = require('./symlink-paths') 11 | const symlinkPaths = _symlinkPaths.symlinkPaths 12 | const symlinkPathsSync = _symlinkPaths.symlinkPathsSync 13 | 14 | const _symlinkType = require('./symlink-type') 15 | const symlinkType = _symlinkType.symlinkType 16 | const symlinkTypeSync = _symlinkType.symlinkTypeSync 17 | 18 | const pathExists = require('../path-exists').pathExists 19 | 20 | function createSymlink (srcpath, dstpath, type, callback) { 21 | callback = (typeof type === 'function') ? type : callback 22 | type = (typeof type === 'function') ? false : type 23 | 24 | pathExists(dstpath, (err, destinationExists) => { 25 | if (err) return callback(err) 26 | if (destinationExists) return callback(null) 27 | symlinkPaths(srcpath, dstpath, (err, relative) => { 28 | if (err) return callback(err) 29 | srcpath = relative.toDst 30 | symlinkType(relative.toCwd, type, (err, type) => { 31 | if (err) return callback(err) 32 | const dir = path.dirname(dstpath) 33 | pathExists(dir, (err, dirExists) => { 34 | if (err) return callback(err) 35 | if (dirExists) return fs.symlink(srcpath, dstpath, type, callback) 36 | mkdirs(dir, err => { 37 | if (err) return callback(err) 38 | fs.symlink(srcpath, dstpath, type, callback) 39 | }) 40 | }) 41 | }) 42 | }) 43 | }) 44 | } 45 | 46 | function createSymlinkSync (srcpath, dstpath, type) { 47 | const destinationExists = fs.existsSync(dstpath) 48 | if (destinationExists) return undefined 49 | 50 | const relative = symlinkPathsSync(srcpath, dstpath) 51 | srcpath = relative.toDst 52 | type = symlinkTypeSync(relative.toCwd, type) 53 | const dir = path.dirname(dstpath) 54 | const exists = fs.existsSync(dir) 55 | if (exists) return fs.symlinkSync(srcpath, dstpath, type) 56 | mkdirsSync(dir) 57 | return fs.symlinkSync(srcpath, dstpath, type) 58 | } 59 | 60 | module.exports = { 61 | createSymlink: u(createSymlink), 62 | createSymlinkSync 63 | } 64 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = Object.assign( 4 | {}, 5 | // Export promiseified graceful-fs: 6 | require('./fs'), 7 | // Export extra methods: 8 | require('./copy-sync'), 9 | require('./copy'), 10 | require('./empty'), 11 | require('./ensure'), 12 | require('./json'), 13 | require('./mkdirs'), 14 | require('./move-sync'), 15 | require('./move'), 16 | require('./output'), 17 | require('./path-exists'), 18 | require('./remove') 19 | ) 20 | 21 | // Export fs.promises as a getter property so that we don't trigger 22 | // ExperimentalWarning before fs.promises is actually accessed. 23 | const fs = require('fs') 24 | if (Object.getOwnPropertyDescriptor(fs, 'promises')) { 25 | Object.defineProperty(module.exports, 'promises', { 26 | get () { return fs.promises } 27 | }) 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/json/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const jsonFile = require('./jsonfile') 5 | 6 | jsonFile.outputJson = u(require('./output-json')) 7 | jsonFile.outputJsonSync = require('./output-json-sync') 8 | // aliases 9 | jsonFile.outputJSON = jsonFile.outputJson 10 | jsonFile.outputJSONSync = jsonFile.outputJsonSync 11 | jsonFile.writeJSON = jsonFile.writeJson 12 | jsonFile.writeJSONSync = jsonFile.writeJsonSync 13 | jsonFile.readJSON = jsonFile.readJson 14 | jsonFile.readJSONSync = jsonFile.readJsonSync 15 | 16 | module.exports = jsonFile 17 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/json/jsonfile.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const jsonFile = require('jsonfile') 5 | 6 | module.exports = { 7 | // jsonfile exports 8 | readJson: u(jsonFile.readFile), 9 | readJsonSync: jsonFile.readFileSync, 10 | writeJson: u(jsonFile.writeFile), 11 | writeJsonSync: jsonFile.writeFileSync 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/json/output-json-sync.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('graceful-fs') 4 | const path = require('path') 5 | const mkdir = require('../mkdirs') 6 | const jsonFile = require('./jsonfile') 7 | 8 | function outputJsonSync (file, data, options) { 9 | const dir = path.dirname(file) 10 | 11 | if (!fs.existsSync(dir)) { 12 | mkdir.mkdirsSync(dir) 13 | } 14 | 15 | jsonFile.writeJsonSync(file, data, options) 16 | } 17 | 18 | module.exports = outputJsonSync 19 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/json/output-json.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const path = require('path') 4 | const mkdir = require('../mkdirs') 5 | const pathExists = require('../path-exists').pathExists 6 | const jsonFile = require('./jsonfile') 7 | 8 | function outputJson (file, data, options, callback) { 9 | if (typeof options === 'function') { 10 | callback = options 11 | options = {} 12 | } 13 | 14 | const dir = path.dirname(file) 15 | 16 | pathExists(dir, (err, itDoes) => { 17 | if (err) return callback(err) 18 | if (itDoes) return jsonFile.writeJson(file, data, options, callback) 19 | 20 | mkdir.mkdirs(dir, err => { 21 | if (err) return callback(err) 22 | jsonFile.writeJson(file, data, options, callback) 23 | }) 24 | }) 25 | } 26 | 27 | module.exports = outputJson 28 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/mkdirs/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const u = require('universalify').fromCallback 3 | const mkdirs = u(require('./mkdirs')) 4 | const mkdirsSync = require('./mkdirs-sync') 5 | 6 | module.exports = { 7 | mkdirs, 8 | mkdirsSync, 9 | // alias 10 | mkdirp: mkdirs, 11 | mkdirpSync: mkdirsSync, 12 | ensureDir: mkdirs, 13 | ensureDirSync: mkdirsSync 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('graceful-fs') 4 | const path = require('path') 5 | const invalidWin32Path = require('./win32').invalidWin32Path 6 | 7 | const o777 = parseInt('0777', 8) 8 | 9 | function mkdirsSync (p, opts, made) { 10 | if (!opts || typeof opts !== 'object') { 11 | opts = { mode: opts } 12 | } 13 | 14 | let mode = opts.mode 15 | const xfs = opts.fs || fs 16 | 17 | if (process.platform === 'win32' && invalidWin32Path(p)) { 18 | const errInval = new Error(p + ' contains invalid WIN32 path characters.') 19 | errInval.code = 'EINVAL' 20 | throw errInval 21 | } 22 | 23 | if (mode === undefined) { 24 | mode = o777 & (~process.umask()) 25 | } 26 | if (!made) made = null 27 | 28 | p = path.resolve(p) 29 | 30 | try { 31 | xfs.mkdirSync(p, mode) 32 | made = made || p 33 | } catch (err0) { 34 | if (err0.code === 'ENOENT') { 35 | if (path.dirname(p) === p) throw err0 36 | made = mkdirsSync(path.dirname(p), opts, made) 37 | mkdirsSync(p, opts, made) 38 | } else { 39 | // In the case of any other error, just see if there's a dir there 40 | // already. If so, then hooray! If not, then something is borked. 41 | let stat 42 | try { 43 | stat = xfs.statSync(p) 44 | } catch (err1) { 45 | throw err0 46 | } 47 | if (!stat.isDirectory()) throw err0 48 | } 49 | } 50 | 51 | return made 52 | } 53 | 54 | module.exports = mkdirsSync 55 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/mkdirs/mkdirs.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('graceful-fs') 4 | const path = require('path') 5 | const invalidWin32Path = require('./win32').invalidWin32Path 6 | 7 | const o777 = parseInt('0777', 8) 8 | 9 | function mkdirs (p, opts, callback, made) { 10 | if (typeof opts === 'function') { 11 | callback = opts 12 | opts = {} 13 | } else if (!opts || typeof opts !== 'object') { 14 | opts = { mode: opts } 15 | } 16 | 17 | if (process.platform === 'win32' && invalidWin32Path(p)) { 18 | const errInval = new Error(p + ' contains invalid WIN32 path characters.') 19 | errInval.code = 'EINVAL' 20 | return callback(errInval) 21 | } 22 | 23 | let mode = opts.mode 24 | const xfs = opts.fs || fs 25 | 26 | if (mode === undefined) { 27 | mode = o777 & (~process.umask()) 28 | } 29 | if (!made) made = null 30 | 31 | callback = callback || function () {} 32 | p = path.resolve(p) 33 | 34 | xfs.mkdir(p, mode, er => { 35 | if (!er) { 36 | made = made || p 37 | return callback(null, made) 38 | } 39 | switch (er.code) { 40 | case 'ENOENT': 41 | if (path.dirname(p) === p) return callback(er) 42 | mkdirs(path.dirname(p), opts, (er, made) => { 43 | if (er) callback(er, made) 44 | else mkdirs(p, opts, callback, made) 45 | }) 46 | break 47 | 48 | // In the case of any other error, just see if there's a dir 49 | // there already. If so, then hooray! If not, then something 50 | // is borked. 51 | default: 52 | xfs.stat(p, (er2, stat) => { 53 | // if the stat fails, then that's super weird. 54 | // let the original error be the failure reason. 55 | if (er2 || !stat.isDirectory()) callback(er, made) 56 | else callback(null, made) 57 | }) 58 | break 59 | } 60 | }) 61 | } 62 | 63 | module.exports = mkdirs 64 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/mkdirs/win32.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const path = require('path') 4 | 5 | // get drive on windows 6 | function getRootPath (p) { 7 | p = path.normalize(path.resolve(p)).split(path.sep) 8 | if (p.length > 0) return p[0] 9 | return null 10 | } 11 | 12 | // http://stackoverflow.com/a/62888/10333 contains more accurate 13 | // TODO: expand to include the rest 14 | const INVALID_PATH_CHARS = /[<>:"|?*]/ 15 | 16 | function invalidWin32Path (p) { 17 | const rp = getRootPath(p) 18 | p = p.replace(rp, '') 19 | return INVALID_PATH_CHARS.test(p) 20 | } 21 | 22 | module.exports = { 23 | getRootPath, 24 | invalidWin32Path 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/move-sync/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = { 4 | moveSync: require('./move-sync') 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/move-sync/move-sync.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('graceful-fs') 4 | const path = require('path') 5 | const copySync = require('../copy-sync').copySync 6 | const removeSync = require('../remove').removeSync 7 | const mkdirpSync = require('../mkdirs').mkdirpSync 8 | const stat = require('../util/stat') 9 | 10 | function moveSync (src, dest, opts) { 11 | opts = opts || {} 12 | const overwrite = opts.overwrite || opts.clobber || false 13 | 14 | const { srcStat } = stat.checkPathsSync(src, dest, 'move') 15 | stat.checkParentPathsSync(src, srcStat, dest, 'move') 16 | mkdirpSync(path.dirname(dest)) 17 | return doRename(src, dest, overwrite) 18 | } 19 | 20 | function doRename (src, dest, overwrite) { 21 | if (overwrite) { 22 | removeSync(dest) 23 | return rename(src, dest, overwrite) 24 | } 25 | if (fs.existsSync(dest)) throw new Error('dest already exists.') 26 | return rename(src, dest, overwrite) 27 | } 28 | 29 | function rename (src, dest, overwrite) { 30 | try { 31 | fs.renameSync(src, dest) 32 | } catch (err) { 33 | if (err.code !== 'EXDEV') throw err 34 | return moveAcrossDevice(src, dest, overwrite) 35 | } 36 | } 37 | 38 | function moveAcrossDevice (src, dest, overwrite) { 39 | const opts = { 40 | overwrite, 41 | errorOnExist: true 42 | } 43 | copySync(src, dest, opts) 44 | return removeSync(src) 45 | } 46 | 47 | module.exports = moveSync 48 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/move/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | module.exports = { 5 | move: u(require('./move')) 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/move/move.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('graceful-fs') 4 | const path = require('path') 5 | const copy = require('../copy').copy 6 | const remove = require('../remove').remove 7 | const mkdirp = require('../mkdirs').mkdirp 8 | const pathExists = require('../path-exists').pathExists 9 | const stat = require('../util/stat') 10 | 11 | function move (src, dest, opts, cb) { 12 | if (typeof opts === 'function') { 13 | cb = opts 14 | opts = {} 15 | } 16 | 17 | const overwrite = opts.overwrite || opts.clobber || false 18 | 19 | stat.checkPaths(src, dest, 'move', (err, stats) => { 20 | if (err) return cb(err) 21 | const { srcStat } = stats 22 | stat.checkParentPaths(src, srcStat, dest, 'move', err => { 23 | if (err) return cb(err) 24 | mkdirp(path.dirname(dest), err => { 25 | if (err) return cb(err) 26 | return doRename(src, dest, overwrite, cb) 27 | }) 28 | }) 29 | }) 30 | } 31 | 32 | function doRename (src, dest, overwrite, cb) { 33 | if (overwrite) { 34 | return remove(dest, err => { 35 | if (err) return cb(err) 36 | return rename(src, dest, overwrite, cb) 37 | }) 38 | } 39 | pathExists(dest, (err, destExists) => { 40 | if (err) return cb(err) 41 | if (destExists) return cb(new Error('dest already exists.')) 42 | return rename(src, dest, overwrite, cb) 43 | }) 44 | } 45 | 46 | function rename (src, dest, overwrite, cb) { 47 | fs.rename(src, dest, err => { 48 | if (!err) return cb() 49 | if (err.code !== 'EXDEV') return cb(err) 50 | return moveAcrossDevice(src, dest, overwrite, cb) 51 | }) 52 | } 53 | 54 | function moveAcrossDevice (src, dest, overwrite, cb) { 55 | const opts = { 56 | overwrite, 57 | errorOnExist: true 58 | } 59 | copy(src, dest, opts, err => { 60 | if (err) return cb(err) 61 | return remove(src, cb) 62 | }) 63 | } 64 | 65 | module.exports = move 66 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/output/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const fs = require('graceful-fs') 5 | const path = require('path') 6 | const mkdir = require('../mkdirs') 7 | const pathExists = require('../path-exists').pathExists 8 | 9 | function outputFile (file, data, encoding, callback) { 10 | if (typeof encoding === 'function') { 11 | callback = encoding 12 | encoding = 'utf8' 13 | } 14 | 15 | const dir = path.dirname(file) 16 | pathExists(dir, (err, itDoes) => { 17 | if (err) return callback(err) 18 | if (itDoes) return fs.writeFile(file, data, encoding, callback) 19 | 20 | mkdir.mkdirs(dir, err => { 21 | if (err) return callback(err) 22 | 23 | fs.writeFile(file, data, encoding, callback) 24 | }) 25 | }) 26 | } 27 | 28 | function outputFileSync (file, ...args) { 29 | const dir = path.dirname(file) 30 | if (fs.existsSync(dir)) { 31 | return fs.writeFileSync(file, ...args) 32 | } 33 | mkdir.mkdirsSync(dir) 34 | fs.writeFileSync(file, ...args) 35 | } 36 | 37 | module.exports = { 38 | outputFile: u(outputFile), 39 | outputFileSync 40 | } 41 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/path-exists/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const u = require('universalify').fromPromise 3 | const fs = require('../fs') 4 | 5 | function pathExists (path) { 6 | return fs.access(path).then(() => true).catch(() => false) 7 | } 8 | 9 | module.exports = { 10 | pathExists: u(pathExists), 11 | pathExistsSync: fs.existsSync 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/remove/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const u = require('universalify').fromCallback 4 | const rimraf = require('./rimraf') 5 | 6 | module.exports = { 7 | remove: u(rimraf), 8 | removeSync: rimraf.sync 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/fs-extra/lib/util/buffer.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint-disable node/no-deprecated-api */ 3 | module.exports = function (size) { 4 | if (typeof Buffer.allocUnsafe === 'function') { 5 | try { 6 | return Buffer.allocUnsafe(size) 7 | } catch (e) { 8 | return new Buffer(size) 9 | } 10 | } 11 | return new Buffer(size) 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/fs/README.md: -------------------------------------------------------------------------------- 1 | # Security holding package 2 | 3 | This package name is not currently in use, but was formerly occupied 4 | by another package. To avoid malicious use, npm is hanging on to the 5 | package name, but loosely, and we'll probably give it to you if you 6 | want it. 7 | 8 | You may adopt this package by contacting support@npmjs.com and 9 | requesting the name. 10 | -------------------------------------------------------------------------------- /node_modules/fs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "fs@0.0.1-security", 3 | "_id": "fs@0.0.1-security", 4 | "_inBundle": false, 5 | "_integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=", 6 | "_location": "/fs", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "version", 10 | "registry": true, 11 | "raw": "fs@0.0.1-security", 12 | "name": "fs", 13 | "escapedName": "fs", 14 | "rawSpec": "0.0.1-security", 15 | "saveSpec": null, 16 | "fetchSpec": "0.0.1-security" 17 | }, 18 | "_requiredBy": [ 19 | "#USER", 20 | "/" 21 | ], 22 | "_resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", 23 | "_shasum": "8a7bd37186b6dddf3813f23858b57ecaaf5e41d4", 24 | "_spec": "fs@0.0.1-security", 25 | "_where": "/Users/admin/GameX/packages/assets-bundle", 26 | "author": "", 27 | "bugs": { 28 | "url": "https://github.com/npm/security-holder/issues" 29 | }, 30 | "bundleDependencies": false, 31 | "deprecated": false, 32 | "description": "This package name is not currently in use, but was formerly occupied by another package. To avoid malicious use, npm is hanging on to the package name, but loosely, and we'll probably give it to you if you want it.", 33 | "homepage": "https://github.com/npm/security-holder#readme", 34 | "keywords": [], 35 | "license": "ISC", 36 | "main": "index.js", 37 | "name": "fs", 38 | "repository": { 39 | "type": "git", 40 | "url": "git+https://github.com/npm/security-holder.git" 41 | }, 42 | "scripts": { 43 | "test": "echo \"Error: no test specified\" && exit 1" 44 | }, 45 | "version": "0.0.1-security" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/graceful-fs/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/graceful-fs/clone.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports = clone 4 | 5 | function clone (obj) { 6 | if (obj === null || typeof obj !== 'object') 7 | return obj 8 | 9 | if (obj instanceof Object) 10 | var copy = { __proto__: obj.__proto__ } 11 | else 12 | var copy = Object.create(null) 13 | 14 | Object.getOwnPropertyNames(obj).forEach(function (key) { 15 | Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) 16 | }) 17 | 18 | return copy 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/graceful-fs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from": "graceful-fs@^4.2.0", 3 | "_id": "graceful-fs@4.2.3", 4 | "_inBundle": false, 5 | "_integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 6 | "_location": "/graceful-fs", 7 | "_phantomChildren": {}, 8 | "_requested": { 9 | "type": "range", 10 | "registry": true, 11 | "raw": "graceful-fs@^4.2.0", 12 | "name": "graceful-fs", 13 | "escapedName": "graceful-fs", 14 | "rawSpec": "^4.2.0", 15 | "saveSpec": null, 16 | "fetchSpec": "^4.2.0" 17 | }, 18 | "_requiredBy": [ 19 | "/fs-extra", 20 | "/jsonfile" 21 | ], 22 | "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 23 | "_shasum": "4a12ff1b60376ef09862c2093edd908328be8423", 24 | "_spec": "graceful-fs@^4.2.0", 25 | "_where": "/Users/admin/GameX/packages/assets-bundle/node_modules/fs-extra", 26 | "bugs": { 27 | "url": "https://github.com/isaacs/node-graceful-fs/issues" 28 | }, 29 | "bundleDependencies": false, 30 | "dependencies": {}, 31 | "deprecated": false, 32 | "description": "A drop-in replacement for fs, making various improvements.", 33 | "devDependencies": { 34 | "import-fresh": "^2.0.0", 35 | "mkdirp": "^0.5.0", 36 | "rimraf": "^2.2.8", 37 | "tap": "^12.7.0" 38 | }, 39 | "directories": { 40 | "test": "test" 41 | }, 42 | "files": [ 43 | "fs.js", 44 | "graceful-fs.js", 45 | "legacy-streams.js", 46 | "polyfills.js", 47 | "clone.js" 48 | ], 49 | "homepage": "https://github.com/isaacs/node-graceful-fs#readme", 50 | "keywords": [ 51 | "fs", 52 | "module", 53 | "reading", 54 | "retry", 55 | "retries", 56 | "queue", 57 | "error", 58 | "errors", 59 | "handling", 60 | "EMFILE", 61 | "EAGAIN", 62 | "EINVAL", 63 | "EPERM", 64 | "EACCESS" 65 | ], 66 | "license": "ISC", 67 | "main": "graceful-fs.js", 68 | "name": "graceful-fs", 69 | "repository": { 70 | "type": "git", 71 | "url": "git+https://github.com/isaacs/node-graceful-fs.git" 72 | }, 73 | "scripts": { 74 | "postpublish": "git push origin --follow-tags", 75 | "postversion": "npm publish", 76 | "preversion": "npm test", 77 | "test": "node test.js | tap -" 78 | }, 79 | "version": "4.2.3" 80 | } 81 | -------------------------------------------------------------------------------- /node_modules/immediate/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, Domenic Denicola, Brian Cavalier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /node_modules/immediate/dist/immediate.min.js: -------------------------------------------------------------------------------- 1 | !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.immediate=e()}}(function(){return function e(n,t,o){function r(f,u){if(!t[f]){if(!n[f]){var a="function"==typeof require&&require;if(!u&&a)return a(f,!0);if(i)return i(f,!0);var d=new Error("Cannot find module '"+f+"'");throw d.code="MODULE_NOT_FOUND",d}var s=t[f]={exports:{}};n[f][0].call(s.exports,function(e){var t=n[f][1][e];return r(t?t:e)},s,s.exports,e,n,t,o)}return t[f].exports}for(var i="function"==typeof require&&require,f=0;f element; its readystatechange event will be fired asynchronously once it is inserted 27 | // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called. 28 | var scriptEl = global.document.createElement('script'); 29 | scriptEl.onreadystatechange = function () { 30 | nextTick(); 31 | 32 | scriptEl.onreadystatechange = null; 33 | scriptEl.parentNode.removeChild(scriptEl); 34 | scriptEl = null; 35 | }; 36 | global.document.documentElement.appendChild(scriptEl); 37 | }; 38 | } else { 39 | scheduleDrain = function () { 40 | setTimeout(nextTick, 0); 41 | }; 42 | } 43 | } 44 | 45 | var draining; 46 | var queue = []; 47 | //named nextTick for less confusing stack traces 48 | function nextTick() { 49 | draining = true; 50 | var i, oldQueue; 51 | var len = queue.length; 52 | while (len) { 53 | oldQueue = queue; 54 | queue = []; 55 | i = -1; 56 | while (++i < len) { 57 | oldQueue[i](); 58 | } 59 | len = queue.length; 60 | } 61 | draining = false; 62 | } 63 | 64 | module.exports = immediate; 65 | function immediate(task) { 66 | if (queue.push(task) === 1 && !draining) { 67 | scheduleDrain(); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /node_modules/immediate/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var Mutation = global.MutationObserver || global.WebKitMutationObserver; 3 | 4 | var scheduleDrain; 5 | 6 | if (process.browser) { 7 | if (Mutation) { 8 | var called = 0; 9 | var observer = new Mutation(nextTick); 10 | var element = global.document.createTextNode(''); 11 | observer.observe(element, { 12 | characterData: true 13 | }); 14 | scheduleDrain = function () { 15 | element.data = (called = ++called % 2); 16 | }; 17 | } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') { 18 | var channel = new global.MessageChannel(); 19 | channel.port1.onmessage = nextTick; 20 | scheduleDrain = function () { 21 | channel.port2.postMessage(0); 22 | }; 23 | } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) { 24 | scheduleDrain = function () { 25 | 26 | // Create a