@cloudbase/framework-plugin-low-code 0.7.6 → 0.7.8-beta.1

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;AAkBnD,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,qBAAiB,EAC9B,SAAS;iBACM,OAAO;eACT,GAAG;aAIf,EACD,MAAM,EAAE,MAAM,iBA6Gf;AACD,wBAAsB,mBAAmB,CACvC,YAAY,oBAAa,EACzB,WAAW,EAAE,MAAM,EACnB,MAAM,KAAA,iBASP"}
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;AAkBnD,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,qBAAiB,EAC9B,SAAS;iBACM,OAAO;eACT,GAAG;aAIf,EACD,MAAM,EAAE,MAAM,iBA8Gf;AACD,wBAAsB,mBAAmB,CACvC,YAAY,oBAAa,EACzB,WAAW,EAAE,MAAM,EACnB,MAAM,KAAA,iBASP"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,UAAU,EAEV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAUzB,wBAAsB,YAAY,CAAC,EACjC,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,GACd,EAAE;IACD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAwSvC;AAqLD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,aAAa,iBAgCnB;AAYD,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,MAAM,EACN,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;;;EA0CA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,UAAU,EAEV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAQzB,wBAAsB,YAAY,CAAC,EACjC,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,GACd,EAAE;IACD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAgSvC;AAuLD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,aAAa,iBAkCnB;AAYD,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,MAAM,EACN,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;;;EA0CA"}
@@ -55,17 +55,15 @@ const types_1 = require("../../types");
55
55
  const common_1 = require("../types/common");
56
56
  const lodash_1 = require("lodash");
57
57
  const junk = __importStar(require("../util/junk"));
58
- const path_2 = __importDefault(require("path"));
59
58
  const net_1 = require("../util/net");
60
- const templateDir = config_1.appTemplateDir + '/mp/';
59
+ const templateDir = `${config_1.appTemplateDir}/mp/`;
61
60
  const em = chalk_1.default.blue.bold;
62
- const error = chalk_1.default.redBright;
63
61
  function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isProduction, deployMode, extraData, isMixMode, options, buildTypeList, }) {
64
62
  var _a;
65
63
  return __awaiter(this, void 0, void 0, function* () {
66
64
  const operationLabel = em('Wexin MiniProgram Generated');
67
65
  console.time(operationLabel);
68
- console.log('Generating ' + em('Wexin MiniProgram') + ' to ' + projDir);
66
+ console.log(`Generating ${em('Wexin MiniProgram')} to ${projDir}`);
69
67
  console.log(em('domain') + domain);
70
68
  let mainAppData = weapps[0];
71
69
  const buildContext = {
@@ -91,7 +89,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
91
89
  const projectFileData = {
92
90
  'project.config.json': { content: projConfig },
93
91
  };
94
- console.log('Generating ' + em('project') + ' files');
92
+ console.log(`Generating ${em('project')} files`);
95
93
  yield (0, generateFiles_1.default)(projectFileData, templateDir, projDir, buildContext);
96
94
  }
97
95
  yield generatePkg(mainAppData, path_1.default.join(projDir, '/'), Object.assign(Object.assign({}, buildContext), { rootPath: mainAppData.rootPath }), pageConfigs[0]);
@@ -126,17 +124,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
126
124
  yield (0, generateFiles_1.writeFile)(projectConfigJsonPath, JSON.stringify(projectConfigJson, undefined, 2));
127
125
  let appJsonPath = path_1.default.join(miniprogramRoot, 'app.json');
128
126
  let appJson = yield fs.readJson(appJsonPath);
129
- let subpackages = appJson.subpackages || [];
130
- for (let item of appConfig.subpackages || []) {
131
- let find = subpackages.find((config) => config.root === item.root);
132
- if (find) {
133
- find.pages = Array.from(new Set([].concat(find.pages || []).concat(item.pages || [])));
134
- }
135
- else {
136
- subpackages.push(item);
137
- }
138
- }
139
- appJson.subpackages = subpackages;
127
+ appJson.subpackages = (0, mp_config_1.mergeSubPackages)(appJson.subpackages, appConfig.subpackages);
140
128
  yield (0, generateFiles_1.writeFile)(appJsonPath, JSON.stringify(appJson, undefined, 2));
141
129
  }
142
130
  else {
@@ -263,10 +251,12 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
263
251
  pageSource: page.data.src || '',
264
252
  eventHanlders: (0, util_2.createEventHanlders)(page.componentInstances, '$page', ctx),
265
253
  dataBinds: (0, util_2.createDataBinds)(page.componentInstances, ctx),
266
- pageAttributes: Object.assign({}, (((_a = page.data) === null || _a === void 0 ? void 0 : _a.appShareMessage) ? { 'appShareMessage': page.data.appShareMessage.value } : {})),
254
+ pageAttributes: Object.assign({}, (((_a = page.data) === null || _a === void 0 ? void 0 : _a.appShareMessage)
255
+ ? { appShareMessage: page.data.appShareMessage.value }
256
+ : {})),
267
257
  debug: !ctx.isProduction,
268
258
  stringifyObj: util_1.inspect,
269
- subLevelPath: rootPath ? path_2.default.relative(rootPath, '') + '/' : '',
259
+ subLevelPath: rootPath ? path_1.default.relative(rootPath, '') + '/' : '',
270
260
  },
271
261
  [`index.json|${pageFileName}.json`]: {
272
262
  usingComponents,
@@ -277,7 +267,7 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
277
267
  },
278
268
  [`index.wxss|${pageFileName}.wxss`]: {
279
269
  subWxss: rootPath && !((_b = ctx.mainAppData) === null || _b === void 0 ? void 0 : _b.mpPkgUrl)
280
- ? `@import "${path_2.default.relative(`/${rootPath}/pages/${page.id}`, '/lowcode')}/style.wxss";`
270
+ ? `@import "${path_1.default.relative(`/${rootPath}/pages/${page.id}`, '/lowcode')}/style.wxss";`
281
271
  : '',
282
272
  content: (0, weapps_core_1.toCssText)((0, weapps_core_1.toCssStyle)(page.commonStyle, {
283
273
  toRem: false,
@@ -287,7 +277,7 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
287
277
  },
288
278
  'api.js': {},
289
279
  };
290
- yield (0, generateFiles_1.default)(pageFileData, templateDir + '/page', path_1.default.join(appRoot, 'pages', page.id), ctx);
280
+ yield (0, generateFiles_1.default)(pageFileData, `${templateDir}/page`, path_1.default.join(appRoot, 'pages', page.id), ctx);
291
281
  })));
292
282
  yield writeLowCodeFiles(weapp, appRoot, ctx);
293
283
  }
@@ -357,18 +347,19 @@ function generateFramework(appData, outDir, ctx) {
357
347
  }
358
348
  function writeLowCodeFiles(appData, outDir, ctx) {
359
349
  return __awaiter(this, void 0, void 0, function* () {
360
- console.log('Writing ' + em('lowcode') + ' files:');
350
+ console.log(`Writing ${em('lowcode')} files:`);
361
351
  const lowcodeRootDir = path_1.default.join(outDir, 'lowcode');
362
352
  const themeStyle = (0, style_1.generateDefaultTheme)(appData);
363
353
  if (!(ctx.isMixMode && appData.rootPath)) {
364
354
  yield Promise.all(appData.lowCodes
365
355
  .filter((mod) => mod.name !== '____index____')
356
+ .filter((mod) => mod.type !== 'renderer')
366
357
  .map((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { appDir: outDir }, themeStyle.code)));
367
358
  }
368
359
  yield Promise.all((0, weapps_core_1.loopDealWithFn)(appData.pageInstanceList, (page) => __awaiter(this, void 0, void 0, function* () {
369
360
  var _a;
370
361
  (0, style_1.generateDefaultStyle)(page);
371
- yield ((_a = page === null || page === void 0 ? void 0 : page.lowCodes) === null || _a === void 0 ? void 0 : _a.filter((mod) => mod.name !== '____index____').forEach((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { pageId: page.id, appDir: outDir }, themeStyle.code, ctx)));
362
+ yield ((_a = page === null || page === void 0 ? void 0 : page.lowCodes) === null || _a === void 0 ? void 0 : _a.filter((mod) => mod.name !== '____index____').filter((mod) => mod.type !== 'renderer').forEach((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { pageId: page.id, appDir: outDir }, themeStyle.code, ctx)));
372
363
  })));
373
364
  });
374
365
  }
@@ -1,12 +1,18 @@
1
1
  import { IWeAppData } from '../../weapps-core';
2
2
  import { IBuildContext } from './BuildContext';
3
3
  export declare function generateMpConfig(weapps: IWeAppData[], ctx: IBuildContext): {
4
- appConfig: {
5
- useExtendedLib: {
6
- weui: boolean;
7
- };
8
- };
4
+ appConfig: any;
9
5
  projConfig: any;
10
6
  pageConfigs: {}[];
11
7
  };
8
+ interface ISubpackage {
9
+ root: string;
10
+ pages?: string[];
11
+ plugins?: Record<string, {
12
+ version?: string;
13
+ provider?: string;
14
+ }>;
15
+ }
16
+ export declare function mergeSubPackages(base?: ISubpackage[], extra?: ISubpackage[]): ISubpackage[];
17
+ export {};
12
18
  //# sourceMappingURL=mp_config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mp_config.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/mp_config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAY/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa;;;;;;;;EA+FxE"}
1
+ {"version":3,"file":"mp_config.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/mp_config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa;;;;EAoGxE;AAyFD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,WAAW,EAAO,EACxB,KAAK,GAAE,WAAW,EAAO,iBAoB1B"}
@@ -33,7 +33,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
33
  return (mod && mod.__esModule) ? mod : { "default": mod };
34
34
  };
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.generateMpConfig = void 0;
36
+ exports.mergeSubPackages = exports.generateMpConfig = void 0;
37
37
  const path = __importStar(require("path"));
38
38
  const lodash_1 = require("lodash");
39
39
  const mp_1 = require("../config/mp");
@@ -48,7 +48,7 @@ function generateMpConfig(weapps, ctx) {
48
48
  };
49
49
  const { miniprogramPlugins = [] } = ctx;
50
50
  const projConfig = (0, lodash_1.merge)({}, mp_1.defaultProjConfig, {
51
- projectname: 'WeDa-' + ctx.appId,
51
+ projectname: `WeDa-${ctx.appId}`,
52
52
  });
53
53
  const pageConfigs = weapps.map((app) => {
54
54
  var _a;
@@ -78,7 +78,9 @@ function generateMpConfig(weapps, ctx) {
78
78
  (0, lodash_1.merge)(appConfig, appJson);
79
79
  }
80
80
  const _b = weapps[0].appConfig || {}, { tradingCapability } = _b, mainAppConfig = __rest(_b, ["tradingCapability"]);
81
- (0, lodash_1.merge)(appConfig, mainAppConfig, extractPages(weapps, pageConfigs));
81
+ const _c = extractPages(weapps, pageConfigs), { subpackages } = _c, extra = __rest(_c, ["subpackages"]);
82
+ (0, lodash_1.merge)(appConfig, mainAppConfig, extra);
83
+ appConfig.subpackages = mergeSubPackages(appConfig.subpackages, subpackages);
82
84
  if (tradingCapability) {
83
85
  const tradePluginKey = `weda-mini-shop-plugin`;
84
86
  const pluginMeta = {
@@ -155,7 +157,7 @@ function transformDynamicData(originData) {
155
157
  const temp = {};
156
158
  for (const key in originData) {
157
159
  const target = originData[key];
158
- if (target && target.value) {
160
+ if (target === null || target === void 0 ? void 0 : target.value) {
159
161
  temp[key] = target.value;
160
162
  }
161
163
  }
@@ -183,3 +185,22 @@ function parseTabConfig(tabBar, projDir) {
183
185
  return iconPath;
184
186
  }
185
187
  }
188
+ function mergeSubPackages(base = [], extra = []) {
189
+ const baseMap = base.reduce((map, item) => {
190
+ map[item.root] = item;
191
+ return map;
192
+ }, {});
193
+ for (const subpackage of extra) {
194
+ if (!baseMap[subpackage.root]) {
195
+ base.push(subpackage);
196
+ continue;
197
+ }
198
+ const current = baseMap[subpackage.root];
199
+ current.pages = Array.from(new Set([...(current.pages || []), ...(subpackage.pages || [])]));
200
+ if (current.plugins || subpackage.plugins) {
201
+ current.plugins = (0, lodash_1.merge)(current.pplugins, subpackage.plugins);
202
+ }
203
+ }
204
+ return base;
205
+ }
206
+ exports.mergeSubPackages = mergeSubPackages;
@@ -1 +1 @@
1
- {"version":3,"file":"wxml.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/wxml.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,MAAM,EAAE,MAAM,EACd,cAAc,KAAA,EACd,GAAG,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACxC,eAAe,KAAA,EACf,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAA,KAAK,IAAI,UA+V7D;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,eAAoB,UAS/B;AAuBD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,QAAQ,GAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO;;EAYlD"}
1
+ {"version":3,"file":"wxml.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/wxml.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,MAAM,EAAE,MAAM,EACd,cAAc,KAAA,EACd,GAAG,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACxC,eAAe,KAAA,EACf,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAA,KAAK,IAAI,UAiW7D;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,eAAoB,UAS/B;AAuBD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,QAAQ,GAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO;;EAYlD"}
@@ -216,7 +216,7 @@ function generateWxml(widgets, docTag, wxmlDataPrefix, ctx, usingComponents, nod
216
216
  componentKey === 'gsd-h5-react:Swiper') {
217
217
  node.elements = node.elements.map((item, index) => {
218
218
  var _a, _b;
219
- let _c = item.attributes || {}, { ['wx:for']: wxFor, ['wx:for-index']: wxForIndex, ['wx:key']: wxKey } = _c, itemRestKey = __rest(_c, ['wx:for', 'wx:for-index', 'wx:key']);
219
+ let _c = item.attributes || {}, { ['wx:for']: wxFor, ['wx:for-index']: wxForIndex, ['wx:key']: wxKey, ['wx:if']: wxIf } = _c, itemRestKey = __rest(_c, ['wx:for', 'wx:for-index', 'wx:key', 'wx:if']);
220
220
  if (item.name !== 'swiper-item') {
221
221
  let SwiperItem = {
222
222
  type: 'element',
@@ -226,6 +226,7 @@ function generateWxml(widgets, docTag, wxmlDataPrefix, ctx, usingComponents, nod
226
226
  'wx:for': wxFor,
227
227
  'wx:for-index': wxForIndex,
228
228
  'wx:key': wxKey,
229
+ 'wx:if': wxIf,
229
230
  },
230
231
  elements: [],
231
232
  _order: index || 0,
package/lib/generate.js CHANGED
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.handleMpPlugins = void 0;
16
16
  const path_1 = __importDefault(require("path"));
17
17
  const fs_extra_1 = __importDefault(require("fs-extra"));
18
- const lodash_1 = require("lodash");
19
18
  const webpack_1 = require("./builder/service/builder/webpack");
19
+ const mp_config_1 = require("./builder/mp/mp_config");
20
20
  function handleMpPlugins(plugins = [], appBuildDir) {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
22
  const appBuildMpDir = path_1.default.resolve(appBuildDir, 'dist/mp');
@@ -29,7 +29,7 @@ function handleMpPlugins(plugins = [], appBuildDir) {
29
29
  .forEach((plugin) => {
30
30
  const mpBuildAppJsonPath = path_1.default.resolve(appBuildMpDir, 'app.json');
31
31
  const pluginAppJsonPath = path_1.default.resolve(appBuildNodeModulesDir, plugin.module, 'app.json');
32
- mergeSubPackages(mpBuildAppJsonPath, pluginAppJsonPath);
32
+ mergeSubPackagesApp(mpBuildAppJsonPath, pluginAppJsonPath);
33
33
  buildPkgJson.dependencies[plugin.module] =
34
34
  sourcePkgJson.dependencies[plugin.module];
35
35
  });
@@ -39,28 +39,12 @@ function handleMpPlugins(plugins = [], appBuildDir) {
39
39
  });
40
40
  }
41
41
  exports.handleMpPlugins = handleMpPlugins;
42
- function mergeSubPackages(baseAppJsonPath, mergeAppJsonPath) {
42
+ function mergeSubPackagesApp(baseAppJsonPath, mergeAppJsonPath) {
43
43
  const baseJson = fs_extra_1.default.readJSONSync(baseAppJsonPath);
44
44
  const mergeJson = fs_extra_1.default.readJSONSync(mergeAppJsonPath);
45
45
  if (!mergeJson.subpackages)
46
46
  return;
47
47
  const newJson = Object.assign({}, baseJson);
48
- if (!baseJson.subpackages) {
49
- newJson.subpackages = mergeJson.subpackages;
50
- }
51
- else {
52
- mergeJson.subpackages.forEach((mergeItem) => {
53
- const targetItemIdx = newJson.subpackages.findIndex((item) => {
54
- return item.root === mergeItem.root;
55
- });
56
- if (newJson.subpackages[targetItemIdx]) {
57
- const pages = (0, lodash_1.uniq)([].concat(newJson.subpackages[targetItemIdx].pages, mergeItem.pages));
58
- newJson.subpackages[targetItemIdx].pages = pages;
59
- }
60
- else {
61
- newJson.subpackages.push(mergeItem);
62
- }
63
- });
64
- }
48
+ newJson.subpackages = (0, mp_config_1.mergeSubPackages)(baseJson.subpackages, mergeJson.subpackages);
65
49
  fs_extra_1.default.writeJSONSync(baseAppJsonPath, newJson, { spaces: 2 });
66
50
  }
@@ -1,4 +1,4 @@
1
- export declare type CodeType = 'rematch' | 'rematch-action' | 'computed' | 'general-func' | 'general' | 'lifecycle' | 'config' | 'state' | 'handler-fn' | 'normal-module' | 'app-style' | 'style' | 'theme' | 'lib' | 'index' | 'json' | 'app-config' | 'page-config' | 'page';
1
+ export declare type CodeType = 'rematch' | 'rematch-action' | 'computed' | 'general-func' | 'general' | 'lifecycle' | 'config' | 'state' | 'handler-fn' | 'normal-module' | 'app-style' | 'style' | 'theme' | 'lib' | 'index' | 'renderer' | 'json' | 'app-config' | 'page-config' | 'page';
2
2
  export declare type RematchModule<State> = (args: {
3
3
  sdk: any;
4
4
  history: any;
@@ -1 +1 @@
1
- {"version":3,"file":"code_types.d.ts","sourceRoot":"","sources":["../../../src/weapps-core/types/code_types.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ,GAChB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,eAAe,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GAGP,MAAM,GACN,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,oBAAY,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,GAAG,MAAC;IACJ,OAAO,MAAC;CACT,KAAK;IACJ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAA,KAAK,KAAK,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,QAAQ,KAAA,KAAK,iBAAiB,CAAC;AAE5D,oBAAY,eAAe,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvD,oBAAY,aAAa,GAAG,GAAG,CAAC;AAEhC,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,IAAI,MAAC;IACL,eAAe,MAAC;IAChB,OAAO,MAAC;IACR,WAAW,MAAC;CACb,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"code_types.d.ts","sourceRoot":"","sources":["../../../src/weapps-core/types/code_types.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ,GAChB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,eAAe,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,UAAU,GAGV,MAAM,GACN,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,oBAAY,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,GAAG,MAAC;IACJ,OAAO,MAAC;CACT,KAAK;IACJ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAA,KAAK,KAAK,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,QAAQ,KAAA,KAAK,iBAAiB,CAAC;AAE5D,oBAAY,eAAe,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvD,oBAAY,aAAa,GAAG,GAAG,CAAC;AAEhC,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,IAAI,MAAC;IACL,eAAe,MAAC;IAChB,OAAO,MAAC;IACR,WAAW,MAAC;CACb,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC"}
@@ -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.6",
3
+ "version": "0.7.8-beta.1",
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",
@@ -218,29 +218,44 @@ export async function checkAnonymous() {
218
218
  return isAnonymous;
219
219
  }
220
220
 
221
+ let loginConfig;
222
+ export async function getLoginConfig() {
223
+ if (loginConfig !== undefined) {
224
+ return loginConfig;
225
+ }
226
+ const { staticResourceDomain, id } = app.__internal__.getConfig();
227
+ const url = `https://${staticResourceDomain}/${id}/login.config.json?t=${Date.now()}`;
228
+ try {
229
+ let response = await fetch(url);
230
+ loginConfig = await response.json();
231
+ } catch (e) {
232
+ loginConfig = {};
233
+ console.error(`加载登录配置${url}失败`, e);
234
+ }
235
+ return loginConfig;
236
+ }
237
+
221
238
  /**
222
239
  * 检查页面权限
223
240
  **/
224
241
  export async function checkAuth(app, appId, $page) {
225
242
  <% if (isAdminPortal || isXPage) { %>return true;<% } %>
226
- const loginPage = findLoginPage(app);
227
- if (loginPage?.id === $page.id) {
228
- return true
229
- }
230
- app.showNavigationBarLoading();
243
+ app.showNavigationBarLoading();
244
+ const loginConfig = await getLoginConfig();
231
245
  const requestList = [getAccessPermission(app, appId, $page.id)];
232
- // 暂时先认为有登录页则自定义登录功能开启且生效
233
- if (loginPage) {
246
+ // 登录配置内有web登录项则认为开启web登录
247
+ if (loginConfig.web?.length > 0) {
234
248
  requestList.push(getAuthConfig(app));
235
249
  requestList.push(checkAnonymous());
250
+ requestList.push(getLoginConfig()); // 提前并行加载
236
251
  }
237
252
  const [isAccess, authConfig, isAnonymous] = await Promise.all(requestList);
238
253
  app.hideNavigationBarLoading();
239
254
 
240
- if (loginPage && isAnonymous) {
255
+ if (loginConfig.web?.length > 0 && isAnonymous) {
241
256
  if (authConfig.NeedLogin || (!isAccess && authConfig.RejectStrategy === 'to_login')) {
242
257
  redirectToLogin($page);
243
- return isAccess;
258
+ return false;
244
259
  }
245
260
  }
246
261
 
@@ -253,25 +268,22 @@ export async function checkAuth(app, appId, $page) {
253
268
  return isAccess;
254
269
  }
255
270
 
256
- export function redirectToLogin(currentPage) {
271
+ export async function redirectToLogin(currentPage) {
257
272
  // 去登录则清空权限缓存。
258
273
  _AUTH_CACHE_MAP = {};
259
274
  const app = window.app;
260
- const loginPage = findLoginPage(app);
261
- if (!currentPage) {
262
- currentPage = app.utils.getCurrentPage() || {};
263
- }
264
- if (loginPage?.id === currentPage.id) {
265
- return true
266
- }
267
- if (loginPage) {
275
+
276
+ const loginConfig = await getLoginConfig();
277
+ if (loginConfig.web?.length > 0) {
278
+ const { staticResourceDomain, envId, id, clientId } = app.__internal__.getConfig();
279
+ const url = `${location.origin}/__auth/?redirect_uri=${encodeURIComponent(
280
+ location.href,
281
+ )}&app_id=${id}&env_id=${envId}&client_id=${clientId}`;
268
282
  app.redirectTo({
269
- pageId: loginPage.id,
270
- params: {
271
- sourcePageId: currentPage.id,
272
- sourcePageParams: currentPage.dataset.params
273
- }
274
- })
283
+ mode: 'web',
284
+ params: {},
285
+ url,
286
+ });
275
287
  } else {
276
288
  app.showToast({
277
289
  title: '用户未登录',
@@ -12,7 +12,7 @@ import attachFastClick from 'fastclick'
12
12
  import { initWebConfig } from 'handlers/lifecycle'
13
13
  const AppConfig = require('../webpack/miniprogram.config')
14
14
  import { app } from './app/global-api'
15
- import { redirectToLogin, findLoginPage, getAuthConfig, checkAnonymous } from './handlers/utils'
15
+ import { redirectToLogin, getAuthConfig, checkAnonymous, getLoginConfig } from './handlers/utils'
16
16
  // app 中注册配置页面以及app的全局配置miniprogram.config,h5里分app以及web页分别处理,使用process.env.isApp 区分判断
17
17
  if (process.env.isApp) {
18
18
  initWebConfig(app, AppConfig);
@@ -26,8 +26,7 @@ setConfig({
26
26
  },
27
27
  beforeCallFunction: async (params) => {
28
28
  try{
29
- const loginPage = findLoginPage();
30
-
29
+ const loginConfig = await getLoginConfig();
31
30
  let skip = false;
32
31
  switch (params?.data?.methodName) {
33
32
  case 'callWedaApi': {
@@ -39,7 +38,7 @@ setConfig({
39
38
  }
40
39
 
41
40
  // 后续做过滤处理
42
- if (!loginPage || (params?.data?.mode === 'c' && skip)) {
41
+ if (!(loginConfig.web?.length > 0) || (params?.data?.mode === 'c' && skip)) {
43
42
  return params;
44
43
  }
45
44
  const { accessToken } = await getAccessToken();
@@ -60,8 +59,8 @@ setConfig({
60
59
  },
61
60
  async afterCallFunction(params, error, res) {
62
61
  if(params?.data?.params?.action != 'DescribeRuntimeResourceStrategy' && ['InnerError.AuthFailure','InvalidAccessToken'].includes(res?.result?.code)) {
63
- const loginPage = findLoginPage();
64
- if (loginPage) {
62
+ const loginConfig = await getLoginConfig();
63
+ if (loginConfig.web?.length > 0) {
65
64
  const authConfig = await getAuthConfig();
66
65
  const isAnonymous = await checkAnonymous();
67
66
  if (isAnonymous && authConfig.RejectStrategy == 'to_login') {
@@ -157,33 +157,38 @@ export default function App() {
157
157
  __html: `<%= pageStyleText %>`,
158
158
  }}
159
159
  />
160
- {weDaHasLogin && !isPure && (
161
- <AppRender pageListenerInstances={pageListenerInstances}
162
- virtualFields={virtualFields}
163
- componentSchema={componentSchema}
164
- context={dataContextRef.current}
165
- /**
166
- * 更新数据容器的上下文的方法
167
- * 会传递到事件emit的地方,将从组件获取到的数据data赋值给上下文
168
- * 当组件卸载时,传过来的data为undefined即可
169
- * {
170
- * id1: [{...}],
171
- * id2: {...},
172
- * id3: undefined,
173
- * id4: null,
174
- * ...
175
- * }
176
- * @param id
177
- * @param data
178
- */
179
- updateContext={(id, data) => {
180
- if (id) {
181
- dataContextRef.current[id] = { data };
182
- // console.log('111', context[id])
183
- }
184
- }}
185
- />
186
- )}
160
+ {weDaHasLogin &&
161
+ !isPure &&
162
+ (PageLifeCycle.onPageRender ? (
163
+ PageLifeCycle.onPageRender()
164
+ ) : (
165
+ <AppRender
166
+ pageListenerInstances={pageListenerInstances}
167
+ virtualFields={virtualFields}
168
+ componentSchema={componentSchema}
169
+ context={dataContextRef.current}
170
+ /**
171
+ * 更新数据容器的上下文的方法
172
+ * 会传递到事件emit的地方,将从组件获取到的数据data赋值给上下文
173
+ * 当组件卸载时,传过来的data为undefined即可
174
+ * {
175
+ * id1: [{...}],
176
+ * id2: {...},
177
+ * id3: undefined,
178
+ * id4: null,
179
+ * ...
180
+ * }
181
+ * @param id
182
+ * @param data
183
+ */
184
+ updateContext={(id, data) => {
185
+ if (id) {
186
+ dataContextRef.current[id] = { data };
187
+ // console.log('111', context[id])
188
+ }
189
+ }}
190
+ />
191
+ ))}
187
192
  </div>
188
193
  );
189
194
  }