UNPKG

kitten-cloud-function

Version:

用于编程猫源码云功能(云变量、云列表等)的客户端工具

98 lines (97 loc) 4.54 kB
"use strict"; 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;