{"version":3,"sources":["packager/adl/windows.ts"],"names":["join","pathJoin","puka","fse","PackagerAdl","quoteForCmd","default","PackagerAdlWindows","constructor","path","appRunPath","_getFileMode","executable","_sdkComponents","arch","architecture","required","optional","_close","_writeRunScript","_writeResource","destination","data","options","mode","dest","_getResourcePath","outputFile","preserveResourceMtime","mtime","utimes","appSdkPath","appResourcesPath","_metaResourceApplicationPath","bs","s","replace","_generateOptionArguments","map","encoding"],"mappings":"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","sourcesContent":["import {\n\tjoin as pathJoin\n} from 'path';\n\n// @ts-ignore-file\nimport * as puka from 'puka';\nimport fse from 'fs-extra';\n\nimport {IPackagerResourceOptions} from '../../packager';\nimport {PackagerAdl} from '../adl';\n\nconst quoteForCmd = puka.quoteForCmd || puka.default.quoteForCmd;\n\n/**\n * PackagerAdlWindows constructor.\n *\n * @param path Output path.\n */\nexport class PackagerAdlWindows extends PackagerAdl {\n\t/**\n\t * Optionally preserve resource mtime.\n\t * The official packager does not preserve resource mtimes.\n\t */\n\tpublic preserveResourceMtime = false;\n\n\t/**\n\t * Optionally use specific architecture.\n\t */\n\tpublic architecture: 'x86' | 'x64' | null = null;\n\n\tconstructor(path: string) {\n\t\tsuper(path);\n\t}\n\n\t/**\n\t * Get app run path.\n\t *\n\t * @returns Resources path.\n\t */\n\tpublic get appRunPath() {\n\t\treturn 'run.bat';\n\t}\n\n\t/**\n\t * Get file mode value.\n\t *\n\t * @param executable Is the entry executable.\n\t * @returns File mode.\n\t */\n\tprotected _getFileMode(executable: boolean) {\n\t\treturn executable ? 0b111100100 : 0b110100100;\n\t}\n\n\t/**\n\t * The SDK components to be copied.\n\t *\n\t * @returns Required and optional components.\n\t */\n\tprotected _sdkComponents() {\n\t\tconst arch = this.architecture === 'x64' ? '64' : '';\n\t\treturn {\n\t\t\trequired: [\n\t\t\t\t[`bin/adl${arch}.exe`],\n\t\t\t\t[\n\t\t\t\t\t`runtimes/air/win${arch}`,\n\t\t\t\t\t// Old SDK 1.0 and 1.1 location:\n\t\t\t\t\t'runtime/Adobe AIR'\n\t\t\t\t]\n\t\t\t],\n\t\t\toptional: []\n\t\t};\n\t}\n\n\t/**\n\t * Close implementation.\n\t */\n\tprotected async _close() {\n\t\tawait this._writeRunScript();\n\t}\n\n\t/**\n\t * Write resource with data implementation.\n\t *\n\t * @param destination Packaged file relative destination.\n\t * @param data Resource data.\n\t * @param options Resource options.\n\t */\n\tprotected async _writeResource(\n\t\tdestination: string,\n\t\tdata: Readonly<Buffer>,\n\t\toptions: Readonly<IPackagerResourceOptions>\n\t) {\n\t\t// Write resource to file.\n\t\tconst mode = this._getFileMode(options.executable || false);\n\t\tconst dest = this._getResourcePath(destination);\n\t\tawait fse.outputFile(dest, data, {\n\t\t\tmode\n\t\t});\n\n\t\t// Optionally preserve mtime information.\n\t\tif (this.preserveResourceMtime) {\n\t\t\tconst {mtime} = options;\n\t\t\tif (mtime) {\n\t\t\t\tawait fse.utimes(dest, mtime, mtime);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Write the run script.\n\t */\n\tprotected async _writeRunScript() {\n\t\tconst {\n\t\t\tappSdkPath,\n\t\t\tappResourcesPath,\n\t\t\t_metaResourceApplicationPath\n\t\t} = this;\n\t\tconst arch = this.architecture === 'x64' ? '64' : '';\n\t\tconst bs = (s: string) => s.replace(/\\//g, '\\\\');\n\t\tawait fse.outputFile(pathJoin(this.path, this.appRunPath), [\n\t\t\t'@ECHO OFF',\n\t\t\t'',\n\t\t\t[\n\t\t\t\t...[\n\t\t\t\t\tbs(`${appSdkPath}/bin/adl${arch}`),\n\t\t\t\t\t...this._generateOptionArguments(),\n\t\t\t\t\tbs(`${appResourcesPath}/${_metaResourceApplicationPath}`),\n\t\t\t\t\tbs(appResourcesPath)\n\t\t\t\t].map(quoteForCmd),\n\t\t\t\t'--',\n\t\t\t\t'%*'\n\t\t\t].join(' '),\n\t\t\t''\n\t\t].join('\\r\\n'), {\n\t\t\tencoding: 'utf8',\n\t\t\tmode: 0o777\n\t\t});\n\t}\n}\n"],"file":"windows.mjs","sourceRoot":"../../../src"}