"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.create = create; exports.initialize = initialize; const tslib_1 = require("tslib"); const token_1 = require("./token"); const extraFile_1 = require("./extraFile"); const application_1 = require("./application"); const config_1 = require("./config"); const template_1 = require("./template"); const wechatSdk_1 = require("./wechatSdk"); const wechatMenu_1 = require("./wechatMenu"); const wechatPublicTag_1 = require("./wechatPublicTag"); const userWechatPublicTag_1 = require("./userWechatPublicTag"); const theme_1 = tslib_1.__importDefault(require("./theme")); const appVersion_1 = require("../utils/appVersion"); function create(basicFeatures) { const application = new application_1.Application(basicFeatures.cache, basicFeatures.localStorage, (0, appVersion_1.oakGetPackageJsonVersion)()); const token = new token_1.Token(basicFeatures.cache, basicFeatures.localStorage, basicFeatures.environment, application); const wechatMenu = new wechatMenu_1.WechatMenu(basicFeatures.cache, basicFeatures.localStorage); const wechatPublicTag = new wechatPublicTag_1.WechatPublicTag(basicFeatures.cache, basicFeatures.localStorage); const userWechatPublicTag = new userWechatPublicTag_1.UserWechatPublicTag(basicFeatures.cache, basicFeatures.localStorage); const extraFile = new extraFile_1.ExtraFile(basicFeatures.cache, application); const config = new config_1.Config(basicFeatures.cache); const template = new template_1.Template(basicFeatures.cache); const wechatSdk = new wechatSdk_1.WechatSdk(basicFeatures.cache, basicFeatures.localStorage, basicFeatures.environment); const theme = new theme_1.default(basicFeatures.localStorage); return { token, extraFile, application, config, template, wechatSdk, theme, wechatMenu, wechatPublicTag, userWechatPublicTag, }; } const selectionRewriter_1 = require("../utils/selectionRewriter"); async function initialize(features, access, config, clazzes) { features.cache.registerSelectionRewriter(selectionRewriter_1.rewriteSelection); features.cache.registerOperationRewriter(selectionRewriter_1.rewriteOperation); await features.application.initialize((0, appVersion_1.oakGetPackageJsonVersion)(), access.http.hostname, undefined, config?.applicationExtraProjection); if (process.env.OAK_PLATFORM === 'web') { features.wechatSdk.setLandingUrl(window.location.href); } if (clazzes) { features.extraFile.registerCos(clazzes); } // 小程序自动登录 if (process.env.OAK_PLATFORM === 'wechatMp' && !config?.dontAutoLoginInWechatmp) { if (!features.token.getTokenValue()) { await features.token.loginWechatMp(); } } }