kitten-cloud-function
Version:
用于编程猫源码云功能(云变量、云列表等)的客户端工具
98 lines (97 loc) • 4.54 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodemaoUser = void 0;
const codemao_environment_1 = require("../codemao-environment");
const codemao_user_info_1 = require("./codemao-user-info");
/**
* 编程猫用户。
*/
class CodemaoUser {
/**
* 设置身份,仅在 Node 中可用。
*/
static async setAuthorization(authorization) {
const path = await Promise.resolve().then(() => __importStar(require("path")));
const { mkdir, writeFile } = (await Promise.resolve().then(() => __importStar(require("fs")))).promises;
const appDirs = (await Promise.resolve().then(() => __importStar(require("appdirsjs")))).default;
const configPath = appDirs({ appName: "SLIGHTNING/Codemao-Community" }).config;
await mkdir(configPath, { recursive: true });
await writeFile(path.resolve(configPath, "authorization.txt"), authorization);
}
/**
* 请求用户登录编程猫账号,仅在浏览器中可用。
*/
static async userLogInInBrowser() {
if (codemao_environment_1.isCodemaoWindow) {
location.replace("https://shequ.codemao.cn/mobile/login");
}
return new Promise((resolve, reject) => {
(async () => {
const codemaoWindow = await (0, codemao_environment_1.getCodemaoWindow)();
const codemaoIFrameElement = (0, codemao_environment_1.getCodemaoIFrameElement)();
if (codemaoIFrameElement != null) {
codemaoIFrameElement.style.width = "100%";
codemaoIFrameElement.style.height = "100%";
codemaoIFrameElement.style.display = "block";
codemaoIFrameElement.style.position = "fixed";
codemaoIFrameElement.style.left = "0px";
codemaoIFrameElement.style.top = "0px";
codemaoIFrameElement.style.right = "0px";
codemaoIFrameElement.style.bottom = "0px";
codemaoIFrameElement.style.border = "none";
codemaoIFrameElement.style.backgroundColor = "white";
codemaoIFrameElement.style.cursor = "pointer";
codemaoIFrameElement.style.zIndex = "10000";
}
codemaoWindow.postMessage({
type: "CODEMAO_ENVIRONMENT_LOGIN"
}, "https://coco.codemao.cn");
function listener(event) {
const { data } = event;
if (data == null || typeof data != "object") {
return;
}
if (/^https?:\/\/coco\.codemao\.cn$/.test(event.origin) &&
data.type == "COCO_CODEMAO_API_ENVIRONMENT_SERVER_INIT") {
window.removeEventListener("message", listener);
if (codemaoIFrameElement != null) {
codemaoIFrameElement.style.display = "none";
}
resolve(true);
}
}
window.addEventListener("message", listener);
})().catch(reject);
});
}
/**
* @param info 已知用户信息,如果什么信息都不提供,则表示表示当前登录的用户。
*/
constructor(info = {}) {
this.info = new codemao_user_info_1.CodemaoUserInfo(info);
}
}
exports.CodemaoUser = CodemaoUser;
;