{"version":3,"sources":["projectors/windows.ts"],"names":["basename","pathBasename","join","pathJoin","fsWalk","patchWindowsS3dInstalledDisplayDriversSize","Projector","defaultFalse","defaultNull","entryIsEmptyResourceFork","pathRelativeBase","pathRelativeBaseMatch","rcedit","ProjectorWindows","constructor","options","patchShockwave3dInstalledDisplayDriversSize","iconFile","fileVersion","productVersion","versionStrings","projectorExtension","configNewline","lingoNewline","newline","splashImageExtension","sklName","write","path","name","_patch","_updateResources","_writeSkeleton","shockwave","xtrasDirectoryName","xtrasPath","getXtrasPath","xtrasMappings","getIncludeXtrasMappings","foundProjectorSkl","foundXtras","xtrasHandler","entry","xtrasRel","volumePath","dest","includeXtrasMappingsDest","extract","projectorSklHandler","entryPath","includes","projectorDllHandler","test","archive","getSkeletonArchive","read","Error","_patchShockwave3dInstalledDisplayDriversSize","xtrasDir","search","searchLower","toLowerCase","found","stat","isFile","fn","ignoreUnreadableDirectories","optionsSet","iconPath","file"],"mappings":"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","sourcesContent":["import {\n\tbasename as pathBasename,\n\tjoin as pathJoin\n} from 'path';\n\nimport {\n\tEntry,\n\tfsWalk\n} from '@shockpkg/archive-files';\n\nimport {\n\tpatchWindowsS3dInstalledDisplayDriversSize\n} from '../patcher';\nimport {\n\tIProjectorOptions,\n\tProjector\n} from '../projector';\nimport {\n\tdefaultFalse,\n\tdefaultNull,\n\tentryIsEmptyResourceFork,\n\tIRceditOptions,\n\tIRceditOptionsVersionStrings,\n\tpathRelativeBase,\n\tpathRelativeBaseMatch,\n\trcedit\n} from '../util';\n\nexport interface IProjectorWindowsOptions extends IProjectorOptions {\n\n\t/**\n\t * Patch the Shockave 3D Xtra to have a larger buffer to avoid a crash.\n\t * The buffer for resolving InstalledDisplayDrivers to a path is small.\n\t * Changes to the values stored in InstalledDisplayDrivers cause issues.\n\t * The value is now supposed to hold full paths on modern Windows.\n\t * In particular, Nvidia drivers which do this need this patch.\n\t *\n\t * @default false\n\t */\n\tpatchShockwave3dInstalledDisplayDriversSize?: boolean;\n\n\t/**\n\t * Icon file, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\ticonFile?: string | null;\n\n\t/**\n\t * Version strings, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tfileVersion?: string | null;\n\n\t/**\n\t * Product version, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tproductVersion?: string | null;\n\n\t/**\n\t * Version strings, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tversionStrings?: IRceditOptionsVersionStrings | null;\n}\n\n/**\n * ProjectorWindows constructor.\n *\n * @param options Options object.\n */\nexport class ProjectorWindows extends Projector {\n\t/**\n\t * Patch the Shockave 3D Xtra to have a larger buffer to avoid a crash.\n\t * The buffer for resolving InstalledDisplayDrivers to a path is small.\n\t * Changes to the values stored in InstalledDisplayDrivers cause issues.\n\t * The value is now supposed to hold full paths on modern Windows.\n\t * In particular, Nvidia drivers which do this need this patch.\n\t *\n\t * @default false\n\t */\n\tpublic patchShockwave3dInstalledDisplayDriversSize: boolean;\n\n\t/**\n\t * Icon file, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tpublic iconFile: string | null;\n\n\t/**\n\t * Version strings, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tpublic fileVersion: string | null;\n\n\t/**\n\t * Product version, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tpublic productVersion: string | null;\n\n\t/**\n\t * Version strings, requires Windows or Wine.\n\t *\n\t * @default null\n\t */\n\tpublic versionStrings: IRceditOptionsVersionStrings | null;\n\n\tconstructor(options: IProjectorWindowsOptions) {\n\t\tsuper(options);\n\n\t\tthis.iconFile = defaultNull(options.iconFile);\n\t\tthis.fileVersion = defaultNull(options.fileVersion);\n\t\tthis.productVersion = defaultNull(options.productVersion);\n\t\tthis.versionStrings = defaultNull(options.versionStrings);\n\t\tthis.patchShockwave3dInstalledDisplayDriversSize = defaultFalse(\n\t\t\toptions.patchShockwave3dInstalledDisplayDriversSize\n\t\t);\n\t}\n\n\t/**\n\t * Projector file extension.\n\t *\n\t * @returns File extension.\n\t */\n\tpublic get projectorExtension() {\n\t\treturn '.exe';\n\t}\n\n\t/**\n\t * Config file newline characters.\n\t *\n\t * @returns Newline characters.\n\t */\n\tpublic get configNewline() {\n\t\treturn '\\r\\n';\n\t}\n\n\t/**\n\t * Config file newline characters.\n\t *\n\t * @returns Newline characters.\n\t */\n\tpublic get lingoNewline() {\n\t\treturn '\\r\\n';\n\t}\n\n\t/**\n\t * Newline characters.\n\t *\n\t * @returns Newline characters.\n\t */\n\tpublic get newline() {\n\t\treturn '\\r\\n';\n\t}\n\n\t/**\n\t * Splash image file extension.\n\t *\n\t * @returns File extension.\n\t */\n\tpublic get splashImageExtension() {\n\t\treturn '.BMP';\n\t}\n\n\t/**\n\t * Get the SKL name.\n\t *\n\t * @returns File name.\n\t */\n\tpublic get sklName() {\n\t\treturn 'Projec32.skl';\n\t}\n\n\t/**\n\t * Write out the projector.\n\t *\n\t * @param path Save path.\n\t * @param name Save name.\n\t */\n\tpublic async write(path: string, name: string) {\n\t\tawait super.write(path, name);\n\n\t\tawait this._patch(path, name);\n\t\tawait this._updateResources(path, name);\n\t}\n\n\t/**\n\t * Write the projector skeleton from archive.\n\t *\n\t * @param path Save path.\n\t * @param name Save name.\n\t */\n\tprotected async _writeSkeleton(path: string, name: string) {\n\t\tconst {\n\t\t\tshockwave,\n\t\t\tsklName,\n\t\t\txtrasDirectoryName\n\t\t} = this;\n\n\t\tconst xtrasPath = this.getXtrasPath(name);\n\t\tconst xtrasMappings = this.getIncludeXtrasMappings();\n\n\t\tlet foundProjectorSkl = false;\n\t\tlet foundXtras = false;\n\n\t\tconst xtrasHandler = async (entry: Entry) => {\n\t\t\t// Check if Xtras path.\n\t\t\tconst xtrasRel = pathRelativeBase(\n\t\t\t\tentry.volumePath,\n\t\t\t\txtrasDirectoryName,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tif (xtrasRel === null) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfoundXtras = true;\n\n\t\t\t// Find output path if being included, else skip.\n\t\t\tconst dest = this.includeXtrasMappingsDest(\n\t\t\t\txtrasMappings,\n\t\t\t\txtrasRel\n\t\t\t);\n\t\t\tif (!dest) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tawait entry.extract(pathJoin(path, xtrasPath, dest));\n\t\t\treturn true;\n\t\t};\n\n\t\tconst projectorSklHandler = async (entry: Entry) => {\n\t\t\tconst entryPath = entry.volumePath;\n\n\t\t\t// Should not be in sub directory.\n\t\t\tif (entryPath.includes('/')) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Check if skl path.\n\t\t\tif (!pathRelativeBaseMatch(entryPath, sklName, true)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfoundProjectorSkl = true;\n\n\t\t\tawait entry.extract(pathJoin(path, name));\n\t\t\treturn true;\n\t\t};\n\n\t\tconst projectorDllHandler = async (entry: Entry) => {\n\t\t\tconst entryPath = entry.volumePath;\n\n\t\t\t// Should not be in sub directory.\n\t\t\tif (entryPath.includes('/')) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Check if dll path.\n\t\t\tif (!/\\.dll$/i.test(entryPath)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Exclude if shockwave projector.\n\t\t\tif (shockwave) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tawait entry.extract(pathJoin(path, entryPath));\n\t\t\treturn true;\n\t\t};\n\n\t\tconst archive = await this.getSkeletonArchive();\n\t\tawait archive.read(async entry => {\n\t\t\t// Skip empty resource forks (every file in DMG).\n\t\t\tif (entryIsEmptyResourceFork(entry)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (await xtrasHandler(entry)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (await projectorSklHandler(entry)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (await projectorDllHandler(entry)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\n\t\tif (!foundProjectorSkl) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to locate: ${sklName}`\n\t\t\t);\n\t\t}\n\n\t\tif (!foundXtras) {\n\t\t\tthrow new Error(`Failed to locate: ${xtrasDirectoryName}`);\n\t\t}\n\t}\n\n\t/**\n\t * Patch projector.\n\t *\n\t * @param path Save path.\n\t * @param name Save name.\n\t */\n\tprotected async _patch(path: string, name: string) {\n\t\tawait this._patchShockwave3dInstalledDisplayDriversSize(path, name);\n\t}\n\n\t/**\n\t * Patch projector, Shockwave 3D InstalledDisplayDrivers size.\n\t *\n\t * @param path Save path.\n\t * @param name Save name.\n\t */\n\tprotected async _patchShockwave3dInstalledDisplayDriversSize(\n\t\tpath: string,\n\t\tname: string\n\t) {\n\t\tif (!this.patchShockwave3dInstalledDisplayDriversSize) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst xtrasDir = pathJoin(path, this.getXtrasPath(name));\n\t\tconst search = 'Shockwave 3D Asset.x32';\n\t\tconst searchLower = search.toLowerCase();\n\n\t\tlet found = false;\n\t\tawait fsWalk(xtrasDir, async (path, stat) => {\n\t\t\tif (!stat.isFile()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst fn = pathBasename(path);\n\t\t\tif (fn.toLowerCase() !== searchLower) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfound = true;\n\t\t\tawait patchWindowsS3dInstalledDisplayDriversSize(\n\t\t\t\tpathJoin(xtrasDir, path)\n\t\t\t);\n\t\t}, {\n\t\t\tignoreUnreadableDirectories: true\n\t\t});\n\n\t\tif (!found) {\n\t\t\tthrow new Error(`Failed to locate for patching: ${search}`);\n\t\t}\n\t}\n\n\t/**\n\t * Update projector Windows resources.\n\t *\n\t * @param path Save path.\n\t * @param name Save name.\n\t */\n\tprotected async _updateResources(path: string, name: string) {\n\t\tconst {\n\t\t\ticonFile,\n\t\t\tfileVersion,\n\t\t\tproductVersion,\n\t\t\tversionStrings\n\t\t} = this;\n\n\t\tconst options: IRceditOptions = {};\n\t\tlet optionsSet = false;\n\n\t\tif (iconFile) {\n\t\t\toptions.iconPath = iconFile;\n\t\t\toptionsSet = true;\n\t\t}\n\n\t\tif (fileVersion !== null) {\n\t\t\toptions.fileVersion = fileVersion;\n\t\t\toptionsSet = true;\n\t\t}\n\n\t\tif (productVersion !== null) {\n\t\t\toptions.productVersion = productVersion;\n\t\t\toptionsSet = true;\n\t\t}\n\n\t\tif (versionStrings !== null) {\n\t\t\toptions.versionStrings = versionStrings;\n\t\t\toptionsSet = true;\n\t\t}\n\n\t\t// Do not update if no changes are specified.\n\t\tif (!optionsSet) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = pathJoin(path, name);\n\t\tawait rcedit(file, options);\n\t}\n}\n"],"file":"windows.mjs","sourceRoot":"../../src"}