UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

1,008 lines 182 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var _Project_data, _Project_preferencesFile, _Project_carto, _Project_errorState, _Project_infoSet, _Project_gitHubStorage, _Project_folderStructureLoaded, _Project_infoSetNeedsUpdating, _Project_mainDeployFolder, _Project_projectFolder, _Project_projectCabinetFile, _Project_distBuildFolder, _Project_libFolder, _Project_distBuildScriptsFolder, _Project_libScriptsFolder, _Project_docsContainer, _Project_worldContainer, _Project_mainDeploySync, _Project_isDisposed, _Project_behaviorPacksContainer, _Project_defaultBehaviorPackFolder, _Project_skinPacksContainer, _Project_defaultSkinPackFolder, _Project_packs, _Project_defaultWorldFolder, _Project_defaultScriptsFolder, _Project_resourcePacksContainer, _Project_defaultResourcePackFolder, _Project_items, _Project_itemsByProjectPath, _Project_isLoaded, _Project_isInflated, _Project_isProjectFolderEnsured, _Project_useProjectNameInProjectStorage, _Project_accessoryFilePaths, _Project_accessoryFoldersForFilePaths, _Project_accessoryFolders, _Project_hasInferredFiles, _Project_readOnlySafety; Object.defineProperty(exports, "__esModule", { value: true }); exports.remappedMinecraftScriptModules = exports.minecraftScriptModules = exports.AUTOGENERATED_WHOLEFILE_GENERAL_SEPARATOR = exports.AUTOGENERATED_WHOLEFILE_MCFUNCTION_SEPARATOR = exports.AUTOGENERATED_WHOLEFILE_JS_SEPARATOR = exports.AUTOGENERATED_JS_SEPARATOR = exports.AUTOGENERATED_CONTENT_TOKEN = exports.ProjectTargetStrings = exports.FolderContext = exports.ProjectErrorState = exports.ProjectAutoDeploymentMode = void 0; const IProjectData_1 = require("./IProjectData"); const IProjectData_2 = require("./IProjectData"); const ProjectItem_1 = require("./ProjectItem"); const IProjectItemData_1 = require("./IProjectItemData"); const Utilities_1 = require("./../core/Utilities"); const ste_events_1 = require("ste-events"); const StorageUtilities_1 = require("../storage/StorageUtilities"); const ProjectContent_1 = require("./ProjectContent"); const Log_1 = require("../core/Log"); const ProjectUtilities_1 = require("./ProjectUtilities"); const WorldLevelDat_1 = require("../minecraft/WorldLevelDat"); const IWorldSettings_1 = require("../minecraft/IWorldSettings"); const BehaviorManifestDefinition_1 = require("../minecraft/BehaviorManifestDefinition"); const MinecraftUtilities_1 = require("../minecraft/MinecraftUtilities"); const LocManager_1 = require("../minecraft/LocManager"); const ProjectInfoSet_1 = require("../info/ProjectInfoSet"); const ProjectUpdateRunner_1 = require("../updates/ProjectUpdateRunner"); const Status_1 = require("./Status"); const IProjectInfoData_1 = require("../info/IProjectInfoData"); const Pack_1 = require("../minecraft/Pack"); const ProjectDeploySync_1 = require("./ProjectDeploySync"); const ProjectItemRelations_1 = require("./ProjectItemRelations"); const ResourceManifestDefinition_1 = require("../minecraft/ResourceManifestDefinition"); const ProjectLookupUtilities_1 = require("./ProjectLookupUtilities"); var ProjectAutoDeploymentMode; (function (ProjectAutoDeploymentMode) { ProjectAutoDeploymentMode[ProjectAutoDeploymentMode["deployOnSave"] = 0] = "deployOnSave"; ProjectAutoDeploymentMode[ProjectAutoDeploymentMode["noAutoDeployment"] = 1] = "noAutoDeployment"; })(ProjectAutoDeploymentMode = exports.ProjectAutoDeploymentMode || (exports.ProjectAutoDeploymentMode = {})); var ProjectErrorState; (function (ProjectErrorState) { ProjectErrorState[ProjectErrorState["noError"] = 0] = "noError"; ProjectErrorState[ProjectErrorState["projectFolderOrFileDoesNotExist"] = 1] = "projectFolderOrFileDoesNotExist"; })(ProjectErrorState = exports.ProjectErrorState || (exports.ProjectErrorState = {})); var FolderContext; (function (FolderContext) { FolderContext[FolderContext["unknown"] = 0] = "unknown"; FolderContext[FolderContext["behaviorPack"] = 1] = "behaviorPack"; FolderContext[FolderContext["resourcePack"] = 2] = "resourcePack"; FolderContext[FolderContext["skinPack"] = 3] = "skinPack"; FolderContext[FolderContext["docs"] = 4] = "docs"; FolderContext[FolderContext["world"] = 5] = "world"; FolderContext[FolderContext["typeDefs"] = 6] = "typeDefs"; FolderContext[FolderContext["distBuildFolder"] = 7] = "distBuildFolder"; FolderContext[FolderContext["vscodeFolder"] = 8] = "vscodeFolder"; FolderContext[FolderContext["resourcePackSubPack"] = 9] = "resourcePackSubPack"; FolderContext[FolderContext["metaData"] = 10] = "metaData"; FolderContext[FolderContext["libFolder"] = 11] = "libFolder"; FolderContext[FolderContext["persona"] = 12] = "persona"; FolderContext[FolderContext["mctoolsWorkingFolder"] = 13] = "mctoolsWorkingFolder"; })(FolderContext = exports.FolderContext || (exports.FolderContext = {})); exports.ProjectTargetStrings = [ "<default>", "Latest Minecraft Bedrock", "Latest Minecraft Bedrock preview", "Latest Minecraft Education", "Latest Minecraft Education preview", ]; exports.AUTOGENERATED_CONTENT_TOKEN = "==== AUTOGENERATED"; exports.AUTOGENERATED_JS_SEPARATOR = "\r\n// ===== AUTOGENERATED CONTENT ===== CONTENT AT OR BELOW THIS LINE WILL BE WIPED AND UPDATED WHEN USED IN TOOLING"; exports.AUTOGENERATED_WHOLEFILE_JS_SEPARATOR = "// ===== AUTOGENERATED FILE ===== CONTENT WITHIN THIS FILE WILL BE WIPED AND UPDATED WHEN USED IN TOOLING"; exports.AUTOGENERATED_WHOLEFILE_MCFUNCTION_SEPARATOR = "# ===== AUTOGENERATED FILE ===== CONTENT WITHIN THIS FILE WILL BE WIPED AND UPDATED WHEN USED IN TOOLING"; exports.AUTOGENERATED_WHOLEFILE_GENERAL_SEPARATOR = "===== AUTOGENERATED FILE ===== CONTENT WITHIN THIS FILE WILL BE WIPED AND UPDATED WHEN USED IN TOOLING"; exports.minecraftScriptModules = [ { id: "@minecraft/server", module_name: "@minecraft/server", preferredVersion: "1.12.0-beta" }, { id: "@minecraft/server-gametest", module_name: "@minecraft/server-gametest", preferredVersion: "1.0.0-beta" }, { id: "@minecraft/server-ui", module_name: "@minecraft/server-ui", preferredVersion: "1.2.0-beta" }, { id: "@minecraft/server-admin", module_name: "@minecraft/server-admin", preferredVersion: "1.0.0-beta" }, { id: "@minecraft/server-net", module_name: "@minecraft/server-net", preferredVersion: "1.0.0-beta" }, { id: "@minecraft/server-editor", module_name: "@minecraft/server-editor", preferredVersion: "0.1.0-beta" }, ]; exports.remappedMinecraftScriptModules = { "mojang-minecraft": "@minecraft/server", "mojang-gametest": "@minecraft/server-gametest", "mojang-minecraft-ui": "@minecraft/server-ui", "mojang-server-admin": "@minecraft/server-admin", "mojang-net": "@minecraft/server-net", "@minecraft/server-editor-bindings": "@minecraft/server-editor", }; class Project { get readOnlySafety() { return __classPrivateFieldGet(this, _Project_readOnlySafety, "f"); } set readOnlySafety(newReadOnly) { __classPrivateFieldSet(this, _Project_readOnlySafety, newReadOnly, "f"); if (__classPrivateFieldGet(this, _Project_projectFolder, "f")) { __classPrivateFieldGet(this, _Project_projectFolder, "f").storage.readOnly = __classPrivateFieldGet(this, _Project_readOnlySafety, "f"); } } get carto() { return __classPrivateFieldGet(this, _Project_carto, "f"); } get role() { if (__classPrivateFieldGet(this, _Project_data, "f").role === undefined) { return IProjectData_1.ProjectRole.general; } return __classPrivateFieldGet(this, _Project_data, "f").role; } set role(newRole) { __classPrivateFieldGet(this, _Project_data, "f").role = newRole; } get errorState() { return __classPrivateFieldGet(this, _Project_errorState, "f"); } get preferencesFile() { return __classPrivateFieldGet(this, _Project_preferencesFile, "f"); } get accessoryFolders() { return __classPrivateFieldGet(this, _Project_accessoryFolders, "f"); } set accessoryFolders(folders) { __classPrivateFieldSet(this, _Project_accessoryFolders, folders, "f"); } get accessoryFilePaths() { return __classPrivateFieldGet(this, _Project_accessoryFilePaths, "f"); } set accessoryFilePaths(files) { __classPrivateFieldSet(this, _Project_accessoryFilePaths, files, "f"); } get infoSet() { if (!__classPrivateFieldGet(this, _Project_infoSet, "f")) { __classPrivateFieldSet(this, _Project_infoSet, new ProjectInfoSet_1.default(this, IProjectInfoData_1.ProjectInfoSuite.default), "f"); } return __classPrivateFieldGet(this, _Project_infoSet, "f"); } get collapsedStoragePaths() { if (!__classPrivateFieldGet(this, _Project_data, "f").collapsedStoragePaths) { __classPrivateFieldGet(this, _Project_data, "f").collapsedStoragePaths = []; } return __classPrivateFieldGet(this, _Project_data, "f").collapsedStoragePaths; } set collapsedStoragePaths(newCollapsedPaths) { __classPrivateFieldGet(this, _Project_data, "f").collapsedStoragePaths = newCollapsedPaths; } get packs() { return __classPrivateFieldGet(this, _Project_packs, "f"); } hasUnsavedChanges() { for (const filePath in this.changedFilesSinceLastSaved) { return true; } return false; } getBehaviorPackCount() { let count = 0; for (const projectItem of this.items) { if (projectItem.itemType === IProjectItemData_1.ProjectItemType.behaviorPackManifestJson) { count++; } } return count; } getResourcePackCount() { let count = 0; for (const projectItem of this.items) { if (projectItem.itemType === IProjectItemData_1.ProjectItemType.resourcePackManifestJson) { count++; } } return count; } getIsPackFolderManaged() { let rpCount = 0; let bpCount = 0; for (const projectItem of this.items) { if (projectItem.itemType === IProjectItemData_1.ProjectItemType.behaviorPackManifestJson) { bpCount++; } else if (projectItem.itemType === IProjectItemData_1.ProjectItemType.resourcePackManifestJson) { rpCount++; } } return bpCount < 2 && rpCount < 2; } get key() { if (this.localFilePath) { return StorageUtilities_1.default.canonicalizePath(this.localFilePath); } if (__classPrivateFieldGet(this, _Project_projectFolder, "f")) { if (__classPrivateFieldGet(this, _Project_projectFolder, "f").name && __classPrivateFieldGet(this, _Project_projectFolder, "f").name.length > 0) { return __classPrivateFieldGet(this, _Project_projectFolder, "f").name; } return StorageUtilities_1.default.canonicalizePath(__classPrivateFieldGet(this, _Project_projectFolder, "f").fullPath); } if (__classPrivateFieldGet(this, _Project_preferencesFile, "f")) { return StorageUtilities_1.default.canonicalizePath(__classPrivateFieldGet(this, _Project_preferencesFile, "f").name); } return this.title; } get containerName() { if (this.localFilePath) { return StorageUtilities_1.default.getLeafName(this.localFilePath); } if (__classPrivateFieldGet(this, _Project_projectFolder, "f")) { if (__classPrivateFieldGet(this, _Project_projectFolder, "f").name && __classPrivateFieldGet(this, _Project_projectFolder, "f").name.length > 0) { return __classPrivateFieldGet(this, _Project_projectFolder, "f").name; } return StorageUtilities_1.default.getLeafName(__classPrivateFieldGet(this, _Project_projectFolder, "f").fullPath); } if (__classPrivateFieldGet(this, _Project_preferencesFile, "f")) { return StorageUtilities_1.default.getBaseFromName(__classPrivateFieldGet(this, _Project_preferencesFile, "f").name); } return this.title; } get defaultNamespace() { return __classPrivateFieldGet(this, _Project_data, "f").defaultNamespace; } get effectiveDefaultNamespace() { if (__classPrivateFieldGet(this, _Project_data, "f").defaultNamespace || __classPrivateFieldGet(this, _Project_data, "f").defaultNamespace === "") { return __classPrivateFieldGet(this, _Project_data, "f").defaultNamespace; } return this.effectiveShortName; } set defaultNamespace(newDefaultNamespace) { if (newDefaultNamespace !== __classPrivateFieldGet(this, _Project_data, "f").defaultNamespace) { __classPrivateFieldGet(this, _Project_data, "f").defaultNamespace = newDefaultNamespace; this._onPropertyChanged.dispatch(this, "defaultNamespace"); } } get scriptEntryPoint() { if (__classPrivateFieldGet(this, _Project_data, "f").scriptEntryPoint || __classPrivateFieldGet(this, _Project_data, "f").scriptEntryPoint === "") { return __classPrivateFieldGet(this, _Project_data, "f").scriptEntryPoint; } return this.scriptEntryPoint; } set scriptEntryPoint(newScriptEntryPoint) { if (newScriptEntryPoint !== __classPrivateFieldGet(this, _Project_data, "f").scriptEntryPoint) { __classPrivateFieldGet(this, _Project_data, "f").scriptEntryPoint = newScriptEntryPoint; this._onPropertyChanged.dispatch(this, "scriptEntryPoint"); } } get worldSettings() { return __classPrivateFieldGet(this, _Project_data, "f").worldSettings; } get editorWorldSettings() { return __classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings; } async getLookupChoices(lookupId) { return await ProjectLookupUtilities_1.default.getLookup(this, lookupId); } ensureWorldSettings() { if (__classPrivateFieldGet(this, _Project_data, "f").worldSettings === undefined) { if (this.carto.worldSettings) { __classPrivateFieldGet(this, _Project_data, "f").worldSettings = this.carto.worldSettings; } else { this.initializeWorldSettings(); if (__classPrivateFieldGet(this, _Project_data, "f").worldSettings === undefined) { throw new Error(); } } } return __classPrivateFieldGet(this, _Project_data, "f").worldSettings; } ensureEditorWorldSettings() { if (__classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings === undefined) { if (this.carto.editorWorldSettings) { __classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings = this.carto.editorWorldSettings; } else { this.initializeEditorWorldSettings(); if (__classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings === undefined) { throw new Error(); } } } return __classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings; } get usesCustomWorldSettings() { return __classPrivateFieldGet(this, _Project_data, "f").usesCustomWorldSettings; } set usesCustomWorldSettings(newValue) { __classPrivateFieldGet(this, _Project_data, "f").usesCustomWorldSettings = newValue; } get isLoaded() { return __classPrivateFieldGet(this, _Project_isLoaded, "f"); } get isInflated() { return __classPrivateFieldGet(this, _Project_isInflated, "f"); } get distBuildFolder() { return __classPrivateFieldGet(this, _Project_distBuildFolder, "f"); } get libFolder() { return __classPrivateFieldGet(this, _Project_libFolder, "f"); } get distScriptsFolder() { return __classPrivateFieldGet(this, _Project_distBuildScriptsFolder, "f"); } get libScriptsFolder() { return __classPrivateFieldGet(this, _Project_libScriptsFolder, "f"); } get useProjectNameInRootProjectStorage() { return __classPrivateFieldGet(this, _Project_useProjectNameInProjectStorage, "f"); } set useProjectNameInRootProjectStorage(newVal) { __classPrivateFieldSet(this, _Project_useProjectNameInProjectStorage, newVal, "f"); } get onPropertyChanged() { return this._onPropertyChanged.asEvent(); } get onLoaded() { return this._onLoaded.asEvent(); } get onInflated() { return this._onInflated.asEvent(); } get onSaved() { return this._onSaved.asEvent(); } get onNeedsSaveChanged() { return this._onNeedsSaveChanged.asEvent(); } get onItemChanged() { return this._onItemChanged.asEvent(); } get onItemAdded() { return this._onItemAdded.asEvent(); } get onItemRemoved() { return this._onItemRemoved.asEvent(); } get projectFolderTitle() { return __classPrivateFieldGet(this, _Project_data, "f").projectFolderTitle; } set projectFolderTitle(newTitle) { __classPrivateFieldGet(this, _Project_data, "f").projectFolderTitle = newTitle; } get projectFolder() { return __classPrivateFieldGet(this, _Project_projectFolder, "f"); } get accessoryFoldersForFilePaths() { return __classPrivateFieldGet(this, _Project_accessoryFoldersForFilePaths, "f"); } get localFolderPath() { return __classPrivateFieldGet(this, _Project_data, "f").localFolderPath; } set localFolderPath(newPath) { __classPrivateFieldGet(this, _Project_data, "f").localFolderPath = newPath; } get mainDeployFolderPath() { return __classPrivateFieldGet(this, _Project_data, "f").mainDeployFolderPath; } set mainDeployFolderPath(newPath) { __classPrivateFieldGet(this, _Project_data, "f").mainDeployFolderPath = newPath; } get localFilePath() { return __classPrivateFieldGet(this, _Project_data, "f").localFilePath; } set localFilePath(newPath) { __classPrivateFieldGet(this, _Project_data, "f").localFilePath = newPath; } get items() { return __classPrivateFieldGet(this, _Project_items, "f"); } get gitHubReferences() { if (__classPrivateFieldGet(this, _Project_data, "f").gitHubReferences === undefined) { __classPrivateFieldGet(this, _Project_data, "f").gitHubReferences = []; } return __classPrivateFieldGet(this, _Project_data, "f").gitHubReferences; } async getBehaviorPackScriptsFolder() { const bpFolder = await this.ensureDefaultBehaviorPackFolder(); return bpFolder.folders["scripts"]; } async ensureBehaviorPackScriptsFolder() { const bpFolder = await this.ensureDefaultBehaviorPackFolder(); return bpFolder.ensureFolder("scripts"); } async getMainScriptsFolder() { await this.loadFolderStructure(); if (__classPrivateFieldGet(this, _Project_projectFolder, "f") === undefined || __classPrivateFieldGet(this, _Project_projectFolder, "f") === null) { throw new Error("Unexpectedly could not create project folder"); } return __classPrivateFieldGet(this, _Project_projectFolder, "f").folders["scripts"]; } async ensureMainScriptsFolder() { await this.loadFolderStructure(); if (__classPrivateFieldGet(this, _Project_projectFolder, "f") === undefined || __classPrivateFieldGet(this, _Project_projectFolder, "f") === null) { throw new Error("Unexpectedly could not create project folder"); } return __classPrivateFieldGet(this, _Project_projectFolder, "f").ensureFolder("scripts"); } get preferredScriptLanguage() { if (__classPrivateFieldGet(this, _Project_data, "f").preferredScriptLanguage === undefined || __classPrivateFieldGet(this, _Project_data, "f").preferredScriptLanguage === IProjectData_1.ProjectScriptLanguage.typeScript) { return IProjectData_1.ProjectScriptLanguage.typeScript; } return __classPrivateFieldGet(this, _Project_data, "f").preferredScriptLanguage; } set preferredScriptLanguage(newLanguage) { __classPrivateFieldGet(this, _Project_data, "f").preferredScriptLanguage = newLanguage; } get scriptVersion() { if (__classPrivateFieldGet(this, _Project_data, "f").scriptVersion === undefined) { return IProjectData_1.ProjectScriptVersion.latestBeta; } return __classPrivateFieldGet(this, _Project_data, "f").scriptVersion; } get messages() { return __classPrivateFieldGet(this, _Project_data, "f").messages; } set scriptVersion(newVersion) { __classPrivateFieldGet(this, _Project_data, "f").scriptVersion = newVersion; } get editPreference() { if (__classPrivateFieldGet(this, _Project_data, "f").editPreference === undefined) { return IProjectData_1.ProjectEditPreference.summarized; } return __classPrivateFieldGet(this, _Project_data, "f").editPreference; } set editPreference(newEditPreference) { __classPrivateFieldGet(this, _Project_data, "f").editPreference = newEditPreference; } get contentsModified() { let val = __classPrivateFieldGet(this, _Project_data, "f").contentsModified; if (val === null) { return null; } if (!(val instanceof Date)) { val = new Date(val); } return val; } getItemsCopy() { return __classPrivateFieldGet(this, _Project_items, "f").slice(); } initializeWorldSettings() { if (__classPrivateFieldGet(this, _Project_data, "f").worldSettings === undefined) { __classPrivateFieldGet(this, _Project_data, "f").worldSettings = { gameType: WorldLevelDat_1.GameType.creative, generator: WorldLevelDat_1.Generator.infinite, randomSeed: "2000", isEditor: false, backupType: IWorldSettings_1.BackupType.every5Minutes, useCustomSettings: false, }; this.ensureDefaultWorldName(); } } ensureDefaultWorldName() { if (this.worldSettings && this.worldSettings.name === undefined) { this.worldSettings.name = this.name + " " + Utilities_1.default.getDateStr(new Date()); this.save(); } } initializeEditorWorldSettings() { if (__classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings === undefined) { __classPrivateFieldGet(this, _Project_data, "f").editorWorldSettings = { gameType: WorldLevelDat_1.GameType.creative, generator: WorldLevelDat_1.Generator.infinite, randomSeed: "2000", isEditor: true, backupType: IWorldSettings_1.BackupType.every5Minutes, useCustomSettings: false, }; this.ensureDefaultEditorWorldName(); } } ensureDefaultEditorWorldName() { if (this.editorWorldSettings && this.editorWorldSettings.name === undefined) { this.editorWorldSettings.name = this.name + " " + Utilities_1.default.getDateStr(new Date()); this.save(); } } addMessage(message, context, operation, type, topic) { if (__classPrivateFieldGet(this, _Project_data, "f").messages === undefined) { __classPrivateFieldGet(this, _Project_data, "f").messages = []; } if (type === undefined) { type = Status_1.StatusType.message; } const messageCanon = message.trim().toLowerCase(); if (messageCanon.length > 1) { const status = { time: new Date(), message: message, context: context, operation: operation, topic: topic, type: type, }; __classPrivateFieldGet(this, _Project_data, "f").messages.push(status); } } appendErrors(errorable, operation) { if (!errorable.errorMessages) { return; } for (const err of errorable.errorMessages) { this.carto.notifyStatusUpdate(err.message, Status_1.StatusTopic.general); this.addMessage(err.message, err.context, operation, Status_1.StatusType.message); } } removeItem(item) { const newArr = []; for (let i = 0; i < this.items.length; i++) { if (this.items[i] !== item) { newArr.push(this.items[i]); } } __classPrivateFieldGet(this, _Project_itemsByProjectPath, "f")[ProjectUtilities_1.default.canonicalizeStoragePath(item.projectPath)] = undefined; __classPrivateFieldSet(this, _Project_items, newArr, "f"); const newDataArr = []; for (let i = 0; i < __classPrivateFieldGet(this, _Project_data, "f").items.length; i++) { if (__classPrivateFieldGet(this, _Project_data, "f").items[i].projectPath !== item.projectPath) { newDataArr.push(__classPrivateFieldGet(this, _Project_data, "f").items[i]); } } __classPrivateFieldGet(this, _Project_data, "f").items = newDataArr; __classPrivateFieldSet(this, _Project_infoSetNeedsUpdating, true, "f"); this._onItemRemoved.dispatch(this, item); } updateContentsModified() { __classPrivateFieldGet(this, _Project_data, "f").contentsModified = new Date(); } get modified() { if (__classPrivateFieldGet(this, _Project_preferencesFile, "f") != null && __classPrivateFieldGet(this, _Project_preferencesFile, "f").latestModified != null) { if (this.contentsModified != null && this.contentsModified > __classPrivateFieldGet(this, _Project_preferencesFile, "f").latestModified) { return this.contentsModified; } return __classPrivateFieldGet(this, _Project_preferencesFile, "f").latestModified; } else { return this.contentsModified; } } get showHiddenItems() { if (__classPrivateFieldGet(this, _Project_data, "f").showHiddenItems === true) { return true; } return false; } set showHiddenItems(showItems) { if (showItems !== this.showHiddenItems) { __classPrivateFieldGet(this, _Project_data, "f").showHiddenItems = showItems; this._onPropertyChanged.dispatch(this, "showHiddenItems"); } } get showFunctions() { if (__classPrivateFieldGet(this, _Project_data, "f").showFunctions === undefined) { return true; } return __classPrivateFieldGet(this, _Project_data, "f").showFunctions; } set showFunctions(showFunctions) { if (showFunctions !== this.showFunctions) { __classPrivateFieldGet(this, _Project_data, "f").showFunctions = showFunctions; this._onPropertyChanged.dispatch(this, "showFunctions"); } } get showAssets() { if (__classPrivateFieldGet(this, _Project_data, "f").showAssets === undefined) { return true; } return __classPrivateFieldGet(this, _Project_data, "f").showAssets; } set showAssets(showAssets) { if (showAssets !== this.showAssets) { __classPrivateFieldGet(this, _Project_data, "f").showAssets = showAssets; this._onPropertyChanged.dispatch(this, "showAssets"); } } get showTypes() { if (__classPrivateFieldGet(this, _Project_data, "f").showTypes === undefined) { return true; } return __classPrivateFieldGet(this, _Project_data, "f").showTypes; } set showTypes(showTypes) { if (showTypes !== this.showTypes) { __classPrivateFieldGet(this, _Project_data, "f").showTypes = showTypes; this._onPropertyChanged.dispatch(this, "showTypes"); } } get name() { return __classPrivateFieldGet(this, _Project_data, "f").name; } set name(newName) { __classPrivateFieldGet(this, _Project_data, "f").name = newName; } get lastMapDeployedHash() { return __classPrivateFieldGet(this, _Project_data, "f").lastMapDeployedHash; } get lastMapDeployedDate() { return __classPrivateFieldGet(this, _Project_data, "f").lastMapDeployedDate; } set lastMapDeployedHash(newValue) { __classPrivateFieldGet(this, _Project_data, "f").lastMapDeployedHash = newValue; } set lastMapDeployedDate(newValue) { __classPrivateFieldGet(this, _Project_data, "f").lastMapDeployedDate = newValue; } get effectiveCreator() { if (__classPrivateFieldGet(this, _Project_data, "f").creator && __classPrivateFieldGet(this, _Project_data, "f").creator.length > 0) { return __classPrivateFieldGet(this, _Project_data, "f").creator; } if (this.carto.creator && this.carto.creator.length > 0) { return this.carto.creator; } return "contoso"; } get effectiveShortName() { if (__classPrivateFieldGet(this, _Project_data, "f").shortName && __classPrivateFieldGet(this, _Project_data, "f").shortName.length > 0) { return __classPrivateFieldGet(this, _Project_data, "f").shortName; } if (this.effectiveCreator.length > 0 && __classPrivateFieldGet(this, _Project_data, "f").name && __classPrivateFieldGet(this, _Project_data, "f").name.length > 0) { return ProjectUtilities_1.default.getSuggestedProjectShortName(this.effectiveCreator, __classPrivateFieldGet(this, _Project_data, "f").name); } return "cont_game"; } get shortName() { return __classPrivateFieldGet(this, _Project_data, "f").shortName; } set shortName(newShortName) { if (__classPrivateFieldGet(this, _Project_data, "f").shortName !== newShortName) { __classPrivateFieldGet(this, _Project_data, "f").shortName = newShortName; this._onPropertyChanged.dispatch(this, "shortName"); } } get creator() { return __classPrivateFieldGet(this, _Project_data, "f").creator; } set creator(newCreator) { if (__classPrivateFieldGet(this, _Project_data, "f").creator !== newCreator) { __classPrivateFieldGet(this, _Project_data, "f").creator = newCreator; this._onPropertyChanged.dispatch(this, "creator"); } } get title() { if (__classPrivateFieldGet(this, _Project_data, "f").title) { return __classPrivateFieldGet(this, _Project_data, "f").title; } return this.name; } set title(newTitle) { if (__classPrivateFieldGet(this, _Project_data, "f").title !== newTitle) { __classPrivateFieldGet(this, _Project_data, "f").title = newTitle; this._onPropertyChanged.dispatch(this, "title"); } } get track() { return __classPrivateFieldGet(this, _Project_data, "f").track; } set track(newTrack) { if (newTrack !== __classPrivateFieldGet(this, _Project_data, "f").track) { __classPrivateFieldGet(this, _Project_data, "f").track = newTrack; this._onPropertyChanged.dispatch(this, "track"); } } get effectiveTrack() { if (__classPrivateFieldGet(this, _Project_data, "f").track !== undefined) { return __classPrivateFieldGet(this, _Project_data, "f").track; } return __classPrivateFieldGet(this, _Project_carto, "f").effectiveTrack; } set originalFullPath(newOriginalPath) { if (__classPrivateFieldGet(this, _Project_data, "f").originalFullPath !== newOriginalPath) { __classPrivateFieldGet(this, _Project_data, "f").originalFullPath = newOriginalPath; this._onPropertyChanged.dispatch(this, "originalFullPath"); } } get originalFullPath() { return __classPrivateFieldGet(this, _Project_data, "f").originalFullPath; } set originalFileList(newFileList) { if (__classPrivateFieldGet(this, _Project_data, "f").originalFileList !== newFileList) { __classPrivateFieldGet(this, _Project_data, "f").originalFileList = newFileList; this._onPropertyChanged.dispatch(this, "originalFileList"); } } get originalFileList() { return __classPrivateFieldGet(this, _Project_data, "f").originalFileList; } set originalGitHubOwner(newGitHubOwner) { if (__classPrivateFieldGet(this, _Project_data, "f").originalGitHubOwner !== newGitHubOwner) { __classPrivateFieldGet(this, _Project_data, "f").originalGitHubOwner = newGitHubOwner; this._onPropertyChanged.dispatch(this, "originalGitHubOwner"); } } set originalGalleryId(newGalleryId) { if (__classPrivateFieldGet(this, _Project_data, "f").originalGalleryId !== newGalleryId) { __classPrivateFieldGet(this, _Project_data, "f").originalGalleryId = newGalleryId; this._onPropertyChanged.dispatch(this, "originalGalleryId"); } } get originalGalleryId() { return __classPrivateFieldGet(this, _Project_data, "f").originalGalleryId; } set originalSampleId(newSampleId) { if (__classPrivateFieldGet(this, _Project_data, "f").originalSampleId !== newSampleId) { __classPrivateFieldGet(this, _Project_data, "f").originalSampleId = newSampleId; this._onPropertyChanged.dispatch(this, "originalSampleId"); } } get originalSampleId() { return __classPrivateFieldGet(this, _Project_data, "f").originalSampleId; } get originalGitHubOwner() { return __classPrivateFieldGet(this, _Project_data, "f").originalGitHubOwner; } set originalGitHubFolder(newGitHubFolder) { if (__classPrivateFieldGet(this, _Project_data, "f").originalGitHubFolder !== newGitHubFolder) { __classPrivateFieldGet(this, _Project_data, "f").originalGitHubFolder = newGitHubFolder; this._onPropertyChanged.dispatch(this, "originalGitHubFolder"); } } get originalGitHubFolder() { return __classPrivateFieldGet(this, _Project_data, "f").originalGitHubFolder; } set originalGitHubRepoName(newGitHubRepoName) { if (__classPrivateFieldGet(this, _Project_data, "f").originalGitHubRepoName !== newGitHubRepoName) { __classPrivateFieldGet(this, _Project_data, "f").originalGitHubRepoName = newGitHubRepoName; this._onPropertyChanged.dispatch(this, "originalGitHubRepoName"); } } get originalGitHubRepoName() { return __classPrivateFieldGet(this, _Project_data, "f").originalGitHubRepoName; } set originalGitHubBranch(newGitHubBranch) { if (__classPrivateFieldGet(this, _Project_data, "f").originalGitHubBranch !== newGitHubBranch) { __classPrivateFieldGet(this, _Project_data, "f").originalGitHubBranch = newGitHubBranch; this._onPropertyChanged.dispatch(this, "originalGitHubBranch"); } } get originalGitHubBranch() { return __classPrivateFieldGet(this, _Project_data, "f").originalGitHubBranch; } set gitHubOwner(newGitHubOwner) { if (__classPrivateFieldGet(this, _Project_data, "f").gitHubOwner !== newGitHubOwner) { __classPrivateFieldGet(this, _Project_data, "f").gitHubOwner = newGitHubOwner; this._onPropertyChanged.dispatch(this, "gitHubOwner"); } } get gitHubOwner() { return __classPrivateFieldGet(this, _Project_data, "f").gitHubOwner; } set gitHubFolder(newGitHubFolder) { if (__classPrivateFieldGet(this, _Project_data, "f").gitHubFolder !== newGitHubFolder) { __classPrivateFieldGet(this, _Project_data, "f").gitHubFolder = newGitHubFolder; this._onPropertyChanged.dispatch(this, "gitHubFolder"); } } get gitHubFolder() { return __classPrivateFieldGet(this, _Project_data, "f").gitHubFolder; } set gitHubRepoName(newGitHubRepoName) { if (__classPrivateFieldGet(this, _Project_data, "f").gitHubRepoName !== newGitHubRepoName) { __classPrivateFieldGet(this, _Project_data, "f").gitHubRepoName = newGitHubRepoName; this._onPropertyChanged.dispatch(this, "gitHubRepoName"); } } get gitHubRepoName() { return __classPrivateFieldGet(this, _Project_data, "f").gitHubRepoName; } set gitHubBranch(newGitHubBranch) { if (__classPrivateFieldGet(this, _Project_data, "f").gitHubBranch !== newGitHubBranch) { __classPrivateFieldGet(this, _Project_data, "f").gitHubBranch = newGitHubBranch; this._onPropertyChanged.dispatch(this, "gitHubBranch"); } } get gitHubBranch() { return __classPrivateFieldGet(this, _Project_data, "f").gitHubBranch; } get description() { return __classPrivateFieldGet(this, _Project_data, "f").description; } set description(newDescription) { if (__classPrivateFieldGet(this, _Project_data, "f").description !== newDescription) { __classPrivateFieldGet(this, _Project_data, "f").description = newDescription; this._onPropertyChanged.dispatch(this, "description"); } } async applyDescription(newTitle) { this.title = newTitle; if (this.editPreference === IProjectData_1.ProjectEditPreference.summarized && this.defaultBehaviorPackUniqueId) { for (const projectItem of this.items) { if (projectItem.file && projectItem.itemType === IProjectItemData_1.ProjectItemType.behaviorPackManifestJson) { const manifestJson = await BehaviorManifestDefinition_1.default.ensureOnFile(projectItem.file); if (manifestJson && manifestJson.definition && Utilities_1.default.uuidEqual(manifestJson.definition.header.uuid, this.defaultBehaviorPackUniqueId)) { const header = manifestJson.ensureHeader(this.title, this.description); header.name = newTitle; manifestJson.save(); } } } } } get autoDeploymentMode() { if (__classPrivateFieldGet(this, _Project_data, "f").autoDeploymentMode === undefined) { return 0; } return __classPrivateFieldGet(this, _Project_data, "f").autoDeploymentMode; } set autoDeploymentMode(newMode) { if (__classPrivateFieldGet(this, _Project_data, "f").autoDeploymentMode !== newMode) { __classPrivateFieldGet(this, _Project_data, "f").autoDeploymentMode = newMode; this._onPropertyChanged.dispatch(this, "autoDeploymentMode"); } } get version() { let vmj = __classPrivateFieldGet(this, _Project_data, "f").versionMajor; if (vmj === undefined) { vmj = 0; } let vmi = __classPrivateFieldGet(this, _Project_data, "f").versionMinor; if (vmi === undefined) { vmi = 0; } let vmp = __classPrivateFieldGet(this, _Project_data, "f").versionPatch; if (vmp === undefined) { vmp = 0; } return [vmj, vmi, vmp]; } get versionMajor() { return __classPrivateFieldGet(this, _Project_data, "f").versionMajor; } set versionMajor(newVersion) { if (__classPrivateFieldGet(this, _Project_data, "f").versionMajor !== newVersion) { __classPrivateFieldGet(this, _Project_data, "f").versionMajor = newVersion; this._onPropertyChanged.dispatch(this, "versionMajor"); } } get versionMinor() { return __classPrivateFieldGet(this, _Project_data, "f").versionMinor; } set versionMinor(newVersion) { if (__classPrivateFieldGet(this, _Project_data, "f").versionMinor !== newVersion) { __classPrivateFieldGet(this, _Project_data, "f").versionMinor = newVersion; this._onPropertyChanged.dispatch(this, "versionMinor"); } } get versionPatch() { return __classPrivateFieldGet(this, _Project_data, "f").versionPatch; } set versionPatch(newVersion) { if (__classPrivateFieldGet(this, _Project_data, "f").versionPatch !== newVersion) { __classPrivateFieldGet(this, _Project_data, "f").versionPatch = newVersion; this._onPropertyChanged.dispatch(this, "versionPatch"); } } get defaultResourcePackUniqueId() { return __classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackUniqueId; } set defaultResourcePackUniqueId(newId) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackUniqueId !== newId) { __classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackUniqueId = newId; this._onPropertyChanged.dispatch(this, "defaultResourcePackUniqueId"); } } async setDefaultResourcePackUniqueIdAndUpdateDependencies(newId) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackUniqueId !== newId) { const oldId = __classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackUniqueId; __classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackUniqueId = newId; if (oldId && oldId.length > 4) { await ResourceManifestDefinition_1.default.setNewResourcePackId(this, newId, oldId); } this._onPropertyChanged.dispatch(this, "defaultResourcePackUniqueId"); } } get defaultResourcePackVersion() { if (__classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackVersion === undefined) { const vMajor = this.versionMajor ? this.versionMajor : 0; const vMinor = this.versionMinor ? this.versionMinor : 0; const vPatch = this.versionPatch ? this.versionPatch : 1; return [vMajor, vMinor, vPatch]; } return __classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackVersion; } set defaultResourcePackVersion(newVersion) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackVersion !== newVersion) { __classPrivateFieldGet(this, _Project_data, "f").defaultResourcePackVersion = newVersion; this._onPropertyChanged.dispatch(this, "defaultResourcePackVersion"); } } get defaultBehaviorPackUniqueId() { return __classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackUniqueId; } set defaultBehaviorPackUniqueId(newId) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackUniqueId !== newId) { __classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackUniqueId = newId; this._onPropertyChanged.dispatch(this, "defaultBehaviorPackUniqueId"); } } async setDefaultBehaviorPackUniqueIdAndUpdateDependencies(newId) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackUniqueId !== newId) { const oldId = __classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackUniqueId; __classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackUniqueId = newId; if (oldId && oldId.length > 4) { await BehaviorManifestDefinition_1.default.setNewBehaviorPackId(this, newId, oldId); } this._onPropertyChanged.dispatch(this, "defaultBehaviorPackUniqueId"); } } get defaultBehaviorPackVersion() { if (__classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackVersion === undefined) { const vMajor = this.versionMajor ? this.versionMajor : 0; const vMinor = this.versionMinor ? this.versionMinor : 0; const vPatch = this.versionPatch ? this.versionPatch : 1; return [vMajor, vMinor, vPatch]; } return __classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackVersion; } set defaultBehaviorPackVersion(newVersion) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackVersion !== newVersion) { __classPrivateFieldGet(this, _Project_data, "f").defaultBehaviorPackVersion = newVersion; this._onPropertyChanged.dispatch(this, "defaultBehaviorPackVersion"); } } get defaultDataUniqueId() { return __classPrivateFieldGet(this, _Project_data, "f").defaultDataUniqueId; } set defaultDataUniqueId(newId) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultDataUniqueId !== newId) { __classPrivateFieldGet(this, _Project_data, "f").defaultDataUniqueId = newId; this._onPropertyChanged.dispatch(this, "defaultDataUniqueId"); } } async ensureInfoSetGenerated() { const infoSet = this.infoSet; if (infoSet.completedGeneration) { return infoSet; } await infoSet.generateForProject(__classPrivateFieldGet(this, _Project_infoSetNeedsUpdating, "f")); __classPrivateFieldSet(this, _Project_infoSetNeedsUpdating, false, "f"); return infoSet; } async ensureScriptInDestination() { const bpScriptsFolder = await this.ensureBehaviorPackScriptsFolder(); if (bpScriptsFolder === undefined) { return; } const coreScriptsFolderPath = StorageUtilities_1.default.canonicalizePath(bpScriptsFolder.storageRelativePath); for (const pi of __classPrivateFieldGet(this, _Project_items, "f")) { if ((pi.itemType === IProjectItemData_1.ProjectItemType.testJs || pi.itemType === IProjectItemData_1.ProjectItemType.js) && pi.projectPath) { let spath = StorageUtilities_1.default.canonicalizePath(pi.projectPath); if (!spath.startsWith(coreScriptsFolderPath)) { const scriptsTokenIndex = spath.indexOf("/scripts/"); if (scriptsTokenIndex >= 0) { spath = spath.substring(scriptsTokenIndex + 8); } await pi.load(); if (pi.file && pi.file.content) { const item = this.ensureItemByProjectPath(StorageUtilities_1.default.ensureEndsWithDelimiter(coreScriptsFolderPath) + StorageUtilities_1.default.ensureNotStartsWithDelimiter(spath), IProjectItemData_1.ProjectItemStorageType.singleFile, StorageUtilities_1.default.getLeafName(spath), IProjectItemData_1.ProjectItemType.buildProcessedJs, undefined, IProjectItemData_1.ProjectItemCreationType.normal); const file = await item.ensureFileStorage(); if (file) { file.setContent(pi.file.content); } } } } } } async hasScript() { for (const pi of __classPrivateFieldGet(this, _Project_items, "f")) { if (pi.itemType === IProjectItemData_1.ProjectItemType.actionSet || pi.itemType === IProjectItemData_1.ProjectItemType.testJs || pi.itemType === IProjectItemData_1.ProjectItemType.js || pi.itemType === IProjectItemData_1.ProjectItemType.buildProcessedJs || pi.itemType === IProjectItemData_1.ProjectItemType.ts) { return true; } } const scriptsFolder = await this.getBehaviorPackScriptsFolder(); if (!scriptsFolder) { return false; } await scriptsFolder.load(); if (scriptsFolder.fileCount > 0 || scriptsFolder.folderCount > 0) { return true; } return false; } get projectCabinetFile() { return __classPrivateFieldGet(this, _Project_projectCabinetFile, "f"); } get defaultScriptModuleUniqueId() { return __classPrivateFieldGet(this, _Project_data, "f").defaultScriptModuleUniqueId; } set defaultScriptModuleUniqueId(newId) { if (__classPrivateFieldGet(this, _Project_data, "f").defaultScriptModuleUniqueId !== newId) { __classPrivateFieldGet(this, _Project_data, "f").defaultScriptModuleUniqueId = newId; this._onPropertyChanged.dispatch(this, "defaultScriptModuleUniqueId"); } } get focus() { return