UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

212 lines (210 loc) 7.6 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.NpmPackageSettingAllowList = exports.OverridesDefault = exports.DependenciesDefault = exports.ScriptsDefault = exports.DevDependenciesDefault = void 0; const ste_events_1 = require("ste-events"); const StorageUtilities_1 = require("../storage/StorageUtilities"); const Log_1 = require("../core/Log"); exports.DevDependenciesDefault = { "@minecraft/core-build-tasks": "^1.1.3", "eslint-plugin-minecraft-linting": "^1.2.2", "source-map": "^0.7.4", "ts-node": "^10.9.1", typescript: "^5.5.4", }; exports.ScriptsDefault = { lint: "just-scripts lint", build: "just-scripts build", clean: "just-scripts clean", "local-deploy": "just-scripts local-deploy", mcaddon: "just-scripts mcaddon", enablemcloopback: "CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436", enablemcpreviewloopback: "CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-424268864-5579737-879501358-346833251-474568803-887069379-4040235476", buildsnippets: "just-scripts buildSnippets", }; exports.DependenciesDefault = { "@minecraft/math": "^1.4.0", "@minecraft/server": "^1.13.0", "@minecraft/server-editor": "^0.1.0-beta.1.21.30-preview.24", "@minecraft/server-ui": "^1.2.0", "@minecraft/vanilla-data": "^1.21.20", }; exports.OverridesDefault = { "@minecraft/math": { "@minecraft/server": "$@minecraft/server", }, "@minecraft/server-gametest": { "@minecraft/server": "$@minecraft/server", }, "@minecraft/server-ui": { "@minecraft/server": "$@minecraft/server", }, }; exports.NpmPackageSettingAllowList = [ "name", "author", "dependencies", "devDependencies", "contributors", "license", "overrides", "version", "productName", "description", "private", "scripts", ]; class NpmPackageDefinition { constructor() { this._isLoaded = false; this._onLoaded = new ste_events_1.EventDispatcher(); } get isLoaded() { return this._isLoaded; } get file() { return this._file; } set file(newFile) { this._file = newFile; } get onLoaded() { return this._onLoaded.asEvent(); } get description() { if (!this.definition) { return undefined; } return this.definition.description; } get name() { if (this.definition) { return this.definition.name; } return undefined; } get id() { return this._id; } set id(newId) { this._id = newId; } static async ensureOnFile(file, loadHandler) { let dt; if (file.manager === undefined) { dt = new NpmPackageDefinition(); dt.file = file; file.manager = dt; } if (file.manager !== undefined && file.manager instanceof NpmPackageDefinition) { dt = file.manager; if (!dt.isLoaded && loadHandler) { dt.onLoaded.subscribe(loadHandler); } await dt.load(); return dt; } return dt; } async persist() { if (this._file === undefined) { return; } const pjString = JSON.stringify(this.definition, null, 2); this._file.setContent(pjString); } async save() { if (this._file === undefined) { return; } this.persist(); await this._file.saveContent(false); } async ensureStandardContent() { await this.load(); if (!this.definition) { return; } if (this.definition.devDependencies) { let isValidDevDependencies = true; for (const devDepend in this.definition.devDependencies) { if (exports.DevDependenciesDefault[devDepend] === undefined) { Log_1.default.debugAlert("Unexpected dev dependency '" + devDepend + "' found."); isValidDevDependencies = false; } } if (!isValidDevDependencies) { this.definition.devDependencies = exports.DevDependenciesDefault; } } if (this.definition.dependencies) { let isValidDependencies = true; for (const dependencyName in this.definition.dependencies) { if (exports.DependenciesDefault[dependencyName] === undefined) { Log_1.default.debugAlert("Unexpected dependency '" + dependencyName + "' found."); isValidDependencies = false; } } if (!isValidDependencies) { this.definition.dependencies = exports.DependenciesDefault; } } if (this.definition.overrides) { const overrides = this.definition.overrides; let isOverrideValid = true; for (const overrideName in overrides) { if (exports.OverridesDefault[overrideName] === undefined) { Log_1.default.debugAlert("Unexpected override '" + overrideName + "' found."); isOverrideValid = false; } else if (JSON.stringify(exports.OverridesDefault[overrideName]) !== JSON.stringify(overrides[overrideName])) { Log_1.default.debugAlert("Unexpected override '" + overrideName + "' is not in exepected form: " + JSON.stringify(overrides[overrideName])); isOverrideValid = false; } } if (!isOverrideValid) { this.definition.overrides = exports.OverridesDefault; } } if (this.definition.scripts) { let isValidScripts = true; for (const scriptName in this.definition.scripts) { if (exports.ScriptsDefault[scriptName] === undefined) { Log_1.default.debugAlert("Unexpected script '" + scriptName + "' found."); isValidScripts = false; } else if (this.definition.scripts[scriptName] !== exports.ScriptsDefault[scriptName]) { Log_1.default.debugAlert("Script '" + scriptName + "' is in unexpected form: " + this.definition.scripts[scriptName]); isValidScripts = false; } } if (!isValidScripts) { this.definition.scripts = exports.ScriptsDefault; } } for (const key in this.definition) { if (!exports.NpmPackageSettingAllowList.includes(key)) { this.definition[key] = undefined; Log_1.default.debugAlert("Unexpected setting '" + key + "' found in package.json."); } } } async load() { if (this._file === undefined || this._isLoaded) { return; } await this._file.loadContent(); if (this._file.content === null || this._file.content instanceof Uint8Array) { return; } this.id = this._file.name; this.definition = StorageUtilities_1.default.getJsonObject(this._file); this._isLoaded = true; } } exports.default = NpmPackageDefinition; //# sourceMappingURL=../maps/devproject/NpmPackageDefinition.js.map