@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
1,008 lines • 182 kB
JavaScript
"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