@cloudbase/framework-plugin-low-code 0.7.11 → 0.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/builder/core/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAe5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgBnD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAC3B,cAAc,kCAA2B,EACzC,YAAY,6BAAsB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,OAAO,qBAAwB,EAC/B,aAAa,qBAAQ,EACrB,SAAS;iBACM,OAAO;eACT,GAAG;aAIf,EACD,MAAM,EAAE,MAAM,iBAsEf;AACD,wBAAsB,mBAAmB,CAAC,YAAY,oBAAa,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAA,iBAM/F"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/builder/core/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAe5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgBnD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAC3B,cAAc,kCAA2B,EACzC,YAAY,6BAAsB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,OAAO,qBAAwB,EAC/B,aAAa,qBAAQ,EACrB,SAAS;iBACM,OAAO;eACT,GAAG;aAIf,EACD,MAAM,EAAE,MAAM,iBAuEf;AACD,wBAAsB,mBAAmB,CAAC,YAAY,oBAAa,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAA,iBAM/F"}
@@ -53,6 +53,7 @@ function runGenerateCore(appBuildDir, appData, subAppDataList = [], dependencies
53
53
  }
54
54
  });
55
55
  yield Promise.all(allAppDataList.map((data) => __awaiter(this, void 0, void 0, function* () {
56
+ var _a;
56
57
  const { pageInstanceList, rootPath = '' } = data;
57
58
  const appName = rootPath ? `Sub app ${rootPath}` : 'Main app';
58
59
  console.log(chalk_1.default.blue.bold(`Generating files for ${appName}`));
@@ -68,6 +69,7 @@ function runGenerateCore(appBuildDir, appData, subAppDataList = [], dependencies
68
69
  appConfig: (0, util_1.JsonToStringWithVariableName)({
69
70
  id: appKey,
70
71
  envId: appData.envId,
72
+ clientId: (_a = appData.extra) === null || _a === void 0 ? void 0 : _a.clientId,
71
73
  staticResourceDomain: domain || '',
72
74
  envVersion: deployMode === types_1.DEPLOY_MODE.UPLOAD ? 'production' : 'preview',
73
75
  pages: pageInstanceList
@@ -214,14 +214,7 @@ function translateStyleByHandler(style = {}, handler) {
214
214
  setStyleValue(result, key, value);
215
215
  }
216
216
  else if (value !== undefined && value !== null) {
217
- try {
218
-
219
217
  setStyleValue(result, key, handler(value));
220
- }catch(e){
221
- console.log(style,key,value)
222
- console.log(e)
223
- throw e
224
- }
225
218
  }
226
219
  return result;
227
220
  }, {});
@@ -264,7 +257,6 @@ function toREM(cssLen) {
264
257
  return calPxToREM(cssLen);
265
258
  }
266
259
  else {
267
- console.log(cssLen)
268
260
  throw new Error('cssLen type error');
269
261
  }
270
262
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/framework-plugin-low-code",
3
- "version": "0.7.11",
3
+ "version": "0.7.14",
4
4
  "description": "云开发 Tencent CloudBase Framework Low Code Plugin,将低码配置生成完整项目并一键部署云开发资源。",
5
5
  "author": "yhsunshining@gmail.com",
6
6
  "homepage": "https://github.com/TencentCloudBase/cloudbase-framework#readme",
@@ -439,7 +439,7 @@
439
439
  src="https://qbase.cdn-go.cn/lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-cloud-sdk@1.0.10/dist/h5.browser.js"
440
440
  ></script>
441
441
  <script>
442
- // zxing polifill
442
+ // zxing polifill
443
443
  if (!this.globalThis) {
444
444
  this.globalThis = this;
445
445
  }
@@ -450,7 +450,7 @@
450
450
  ></script>
451
451
  <script
452
452
  crossorigin="anonymous"
453
- src="https://qbase.cdn-go.cn//lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-client@0.2.8/dist/web.browser.js"
453
+ src="https://qbase.cdn-go.cn//lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-client@0.2.10/dist/web.browser.js"
454
454
  ></script>
455
455
  </body>
456
456
  </html>
@@ -3,7 +3,7 @@
3
3
  "version": "1.0.0",
4
4
  "scripts": {},
5
5
  "dependencies": {
6
- "@cloudbase/weda-client": "0.2.8",
6
+ "@cloudbase/weda-client": "0.2.10",
7
7
  "@cloudbase/oauth": "0.1.1-alpha.5",
8
8
  "mobx": "^5.15.4",
9
9
  "lodash.get": "^4.4.2",
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "dependencies": {
8
8
  "@cloudbase/js-sdk": "2.4.0-alpha.0",
9
- "@cloudbase/weda-client": "0.2.8",
9
+ "@cloudbase/weda-client": "0.2.10",
10
10
  "@tcwd/weapps-core": "2.2.6",
11
11
  "@tcwd/weapps-sdk": "1.2.9",
12
12
  "@zxing/library": "^0.18.6",
@@ -214,29 +214,44 @@ export async function checkAnonymous() {
214
214
  return isAnonymous;
215
215
  }
216
216
 
217
+ let loginConfig;
218
+ export async function getLoginConfig() {
219
+ if (loginConfig !== undefined) {
220
+ return loginConfig;
221
+ }
222
+ const { staticResourceDomain, id } = app.__internal__.getConfig();
223
+ const url = `https://${staticResourceDomain}/${id}/login.config.json?t=${Date.now()}`;
224
+ try {
225
+ let response = await fetch(url);
226
+ loginConfig = await response.json();
227
+ } catch (e) {
228
+ loginConfig = {};
229
+ console.error(`加载登录配置${url}失败`, e);
230
+ }
231
+ return loginConfig;
232
+ }
233
+
217
234
  /**
218
235
  * 检查页面权限
219
236
  **/
220
237
  export async function checkAuth(app, appId, $page) {
221
238
  <% if (isAdminPortal || isXPage) { %>return true;<% } %>
222
- const loginPage = findLoginPage(app);
223
- if (loginPage?.id === $page.id) {
224
- return true
225
- }
226
- app.showNavigationBarLoading();
239
+ app.showNavigationBarLoading();
240
+ const loginConfig = await getLoginConfig();
227
241
  const requestList = [getAccessPermission(app, appId, $page.id)];
228
- // 暂时先认为有登录页则自定义登录功能开启且生效
229
- if (loginPage) {
242
+ // 登录配置内有web登录项则认为开启web登录
243
+ if (loginConfig.web?.length > 0) {
230
244
  requestList.push(getAuthConfig(app));
231
245
  requestList.push(checkAnonymous());
246
+ requestList.push(getLoginConfig()); // 提前并行加载
232
247
  }
233
248
  const [isAccess, authConfig, isAnonymous] = await Promise.all(requestList);
234
249
  app.hideNavigationBarLoading();
235
250
 
236
- if (loginPage && isAnonymous) {
251
+ if (loginConfig.web?.length > 0 && isAnonymous) {
237
252
  if (authConfig.NeedLogin || (!isAccess && authConfig.RejectStrategy === 'to_login')) {
238
253
  redirectToLogin($page);
239
- return isAccess;
254
+ return false;
240
255
  }
241
256
  }
242
257
 
@@ -249,25 +264,22 @@ export async function checkAuth(app, appId, $page) {
249
264
  return isAccess;
250
265
  }
251
266
 
252
- export function redirectToLogin(currentPage) {
267
+ export async function redirectToLogin(currentPage) {
253
268
  // 去登录则清空权限缓存。
254
269
  _AUTH_CACHE_MAP = {};
255
270
  const app = window.app;
256
- const loginPage = findLoginPage(app);
257
- if (!currentPage) {
258
- currentPage = app.utils.getCurrentPage() || {};
259
- }
260
- if (loginPage?.id === currentPage.id) {
261
- return true
262
- }
263
- if (loginPage) {
271
+
272
+ const loginConfig = await getLoginConfig();
273
+ if (loginConfig.web?.length > 0) {
274
+ const { staticResourceDomain, envId, id, clientId } = app.__internal__.getConfig();
275
+ const url = `${location.origin}/__auth/?redirect_uri=${encodeURIComponent(
276
+ location.href,
277
+ )}&app_id=${id}&env_id=${envId}&client_id=${clientId}`;
264
278
  app.redirectTo({
265
- pageId: loginPage.id,
266
- params: {
267
- sourcePageId: currentPage.id,
268
- sourcePageParams: currentPage.dataset.params
269
- }
270
- })
279
+ mode: 'web',
280
+ params: {},
281
+ url,
282
+ });
271
283
  } else {
272
284
  app.showToast({
273
285
  title: '用户未登录',
@@ -11,7 +11,7 @@ import '@babel/polyfill/noConflict'
11
11
  import { initWebConfig } from 'handlers/lifecycle'
12
12
  const AppConfig = require('../webpack/miniprogram.config')
13
13
  import { app } from './app/global-api'
14
- import { redirectToLogin, findLoginPage, getAuthConfig, checkAnonymous } from './handlers/utils'
14
+ import { redirectToLogin, getAuthConfig, checkAnonymous, getLoginConfig } from './handlers/utils'
15
15
  // app 中注册配置页面以及app的全局配置miniprogram.config,h5里分app以及web页分别处理,使用process.env.isApp 区分判断
16
16
  if (process.env.isApp) {
17
17
  initWebConfig(app, AppConfig);
@@ -25,8 +25,7 @@ WEDA_CLOUD_SDK.setConfig({
25
25
  },
26
26
  beforeCallFunction: async (params) => {
27
27
  try{
28
- const loginPage = findLoginPage();
29
-
28
+ const loginConfig = await getLoginConfig();
30
29
  let skip = false;
31
30
  switch (params?.data?.methodName) {
32
31
  case 'callWedaApi': {
@@ -38,7 +37,7 @@ WEDA_CLOUD_SDK.setConfig({
38
37
  }
39
38
 
40
39
  // 后续做过滤处理
41
- if (!loginPage || (params?.data?.mode === 'c' && skip)) {
40
+ if (!(loginConfig.web?.length > 0) || (params?.data?.mode === 'c' && skip)) {
42
41
  return params;
43
42
  }
44
43
  const { accessToken } = await auth.getAccessToken();
@@ -59,8 +58,8 @@ WEDA_CLOUD_SDK.setConfig({
59
58
  },
60
59
  async afterCallFunction(params, error, res) {
61
60
  if(params?.data?.params?.action != 'DescribeRuntimeResourceStrategy' && ['InnerError.AuthFailure','InvalidAccessToken'].includes(res?.result?.code)) {
62
- const loginPage = findLoginPage();
63
- if (loginPage) {
61
+ const loginConfig = await getLoginConfig();
62
+ if (loginConfig.web?.length > 0) {
64
63
  const authConfig = await getAuthConfig();
65
64
  const isAnonymous = await checkAnonymous();
66
65
  if (isAnonymous && authConfig.RejectStrategy == 'to_login') {