openxiangda 1.0.127 → 1.0.129

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.
Files changed (29) hide show
  1. package/README.md +1 -1
  2. package/lib/cli.js +376 -34
  3. package/package.json +1 -1
  4. package/packages/sdk/dist/{ProcessPreview-Kexdosgu.d.mts → ProcessPreview-B2-umzSY.d.mts} +12 -6
  5. package/packages/sdk/dist/{ProcessPreview-Kexdosgu.d.ts → ProcessPreview-B2-umzSY.d.ts} +12 -6
  6. package/packages/sdk/dist/components/index.cjs +95 -16
  7. package/packages/sdk/dist/components/index.cjs.map +1 -1
  8. package/packages/sdk/dist/components/index.d.mts +4 -3
  9. package/packages/sdk/dist/components/index.d.ts +4 -3
  10. package/packages/sdk/dist/components/index.mjs +95 -16
  11. package/packages/sdk/dist/components/index.mjs.map +1 -1
  12. package/packages/sdk/dist/runtime/index.cjs +131 -16
  13. package/packages/sdk/dist/runtime/index.cjs.map +1 -1
  14. package/packages/sdk/dist/runtime/index.d.mts +2 -2
  15. package/packages/sdk/dist/runtime/index.d.ts +2 -2
  16. package/packages/sdk/dist/runtime/index.mjs +131 -16
  17. package/packages/sdk/dist/runtime/index.mjs.map +1 -1
  18. package/packages/sdk/dist/runtime/react.cjs +34 -0
  19. package/packages/sdk/dist/runtime/react.cjs.map +1 -1
  20. package/packages/sdk/dist/runtime/react.d.mts +63 -2
  21. package/packages/sdk/dist/runtime/react.d.ts +63 -2
  22. package/packages/sdk/dist/runtime/react.mjs +34 -0
  23. package/packages/sdk/dist/runtime/react.mjs.map +1 -1
  24. package/templates/openxiangda-react-spa/src/app/navigation.ts +8 -1
  25. package/templates/openxiangda-react-spa/src/app/router.tsx +6 -0
  26. package/templates/openxiangda-react-spa/src/pages/admin/LoginLogPage.tsx +425 -0
  27. package/templates/openxiangda-react-spa/src/resources/menus/menus.json +9 -0
  28. package/templates/openxiangda-react-spa/src/resources/permissions/page-groups/app-admin.json +3 -3
  29. package/templates/openxiangda-react-spa/src/resources/roles/roles.json +6 -0
@@ -1705,6 +1705,39 @@ var createPageSdk = (context) => {
1705
1705
  }
1706
1706
  })
1707
1707
  };
1708
+ const loginLog = {
1709
+ list: (params = {}) => request({
1710
+ path: "/login-log",
1711
+ method: "get",
1712
+ query: {
1713
+ ...params,
1714
+ appType: resolveAppType(context, params.appType)
1715
+ }
1716
+ }),
1717
+ get: (id, params = {}) => {
1718
+ const logId = String(id || "").trim();
1719
+ if (!logId) {
1720
+ throw new Error("\u767B\u5F55\u65E5\u5FD7 id \u4E0D\u80FD\u4E3A\u7A7A");
1721
+ }
1722
+ return request({
1723
+ path: `/login-log/${encodePathSegment(logId)}`,
1724
+ method: "get",
1725
+ query: {
1726
+ appType: resolveAppType(context, params.appType),
1727
+ includeSensitive: params.includeSensitive
1728
+ }
1729
+ });
1730
+ },
1731
+ stats: (params = {}) => request({
1732
+ path: "/login-log/stats",
1733
+ method: "get",
1734
+ query: {
1735
+ appType: resolveAppType(context, params.appType),
1736
+ startAt: params.startAt,
1737
+ endAt: params.endAt
1738
+ }
1739
+ })
1740
+ };
1708
1741
  const sdk = {
1709
1742
  context,
1710
1743
  request,
@@ -1723,6 +1756,7 @@ var createPageSdk = (context) => {
1723
1756
  process: process2,
1724
1757
  notification,
1725
1758
  workCenter,
1759
+ loginLog,
1726
1760
  dataView,
1727
1761
  function: appFunction,
1728
1762
  dataSource: {
@@ -6907,6 +6941,8 @@ var normalizeUploadData = (data, file, bucketName, baseUrl = "") => {
6907
6941
  thumbUrl: normalizeRuntimeFileUrl(baseUrl, item?.thumbUrl) || variants?.thumb?.url,
6908
6942
  visibility: item?.visibility,
6909
6943
  provider: item?.provider,
6944
+ uploadProvider: item?.uploadProvider,
6945
+ storageScope: item?.storageScope,
6910
6946
  storageCode: item?.storageCode,
6911
6947
  appType: item?.appType,
6912
6948
  status: "done",
@@ -6998,6 +7034,8 @@ var uploadWithSignedUrl = (file, uploadInfo, bucketName, onProgress) => new Prom
6998
7034
  {
6999
7035
  ...uploadInfo,
7000
7036
  provider: uploadInfo.provider || "oss",
7037
+ uploadProvider: uploadInfo.uploadProvider,
7038
+ storageScope: uploadInfo.storageScope,
7001
7039
  storageCode: uploadInfo.storageCode
7002
7040
  },
7003
7041
  file,
@@ -7028,6 +7066,23 @@ async function uploadOssFile(request, file, bucketName, onProgress, options) {
7028
7066
  });
7029
7067
  return uploadWithSignedUrl(file, response.data || response.result, bucketName, onProgress);
7030
7068
  }
7069
+ async function uploadBuiltinOssFile(request, file, bucketName, onProgress, options) {
7070
+ if (!options.appType) throw new Error("\u5E73\u53F0\u5185\u7F6E OSS \u4E0A\u4F20\u7F3A\u5C11 appType");
7071
+ const response = await request({
7072
+ url: `/openxiangda-api/v1/apps/${encodeURIComponent(
7073
+ options.appType
7074
+ )}/storage/builtin/uploads/initiate`,
7075
+ method: "post",
7076
+ data: {
7077
+ fileName: file.name,
7078
+ fileSize: file.size,
7079
+ contentType: file.type || void 0,
7080
+ bucketName,
7081
+ purpose: options.uploadPurpose
7082
+ }
7083
+ });
7084
+ return uploadWithSignedUrl(file, response.data || response.result, bucketName, onProgress);
7085
+ }
7031
7086
  async function uploadChunkedFile(request, file, bucketName, baseUrl, onProgress, options = {}) {
7032
7087
  const initiate = await request({
7033
7088
  url: "/file/multipart/initiate",
@@ -7098,6 +7153,9 @@ var createSegmentProgress = (onProgress, start, end) => (percent) => {
7098
7153
  var getAttachmentUrl = (item) => item.publicUrl || item.previewUrl || item.downloadUrl || item.url || "";
7099
7154
  async function uploadSingleRuntimeFile(request, baseUrl, file, bucketName, onProgress, options) {
7100
7155
  const singleOptions = stripImageCompressionOptions(options);
7156
+ if (singleOptions.uploadProvider === "builtin-oss") {
7157
+ return uploadBuiltinOssFile(request, file, bucketName, onProgress, singleOptions);
7158
+ }
7101
7159
  if (singleOptions.uploadProvider === "oss" || singleOptions.storageCode) {
7102
7160
  return uploadOssFile(request, file, bucketName, onProgress, singleOptions);
7103
7161
  }
@@ -7184,6 +7242,17 @@ function createFormRuntimeApi(config) {
7184
7242
  });
7185
7243
  },
7186
7244
  deleteFile: async (objectName, bucketName = "files", options = {}) => {
7245
+ if (options.uploadProvider === "builtin-oss" || options.storageScope === "platform") {
7246
+ if (!options.appType) throw new Error("\u5E73\u53F0\u5185\u7F6E OSS \u5220\u9664\u7F3A\u5C11 appType");
7247
+ await request({
7248
+ url: `/openxiangda-api/v1/apps/${encodeURIComponent(
7249
+ options.appType
7250
+ )}/storage/builtin/objects/delete`,
7251
+ method: "post",
7252
+ data: { bucketName, objectName }
7253
+ });
7254
+ return { success: true };
7255
+ }
7187
7256
  if (options.uploadProvider === "oss" || options.storageCode) {
7188
7257
  if (!options.appType) throw new Error("OSS \u5220\u9664\u7F3A\u5C11 appType");
7189
7258
  if (!options.storageCode) throw new Error("OSS \u5220\u9664\u7F3A\u5C11 storageCode");
@@ -10320,19 +10389,29 @@ function AttachmentFieldPC({
10320
10389
  );
10321
10390
  const valueRef = import_react36.default.useRef(value);
10322
10391
  const disabled = behavior === "DISABLED";
10323
- const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : "platform");
10324
- const fieldUploadOptions = fieldUploadProvider === "oss" ? {
10392
+ const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : config.defaultUploadProvider || "platform");
10393
+ const fieldUploadOptions = fieldUploadProvider === "builtin-oss" ? {
10394
+ uploadProvider: "builtin-oss",
10395
+ storageScope: "platform",
10396
+ appType: config.appType,
10397
+ uploadPurpose: "attachment",
10398
+ ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
10399
+ } : fieldUploadProvider === "oss" ? {
10325
10400
  uploadProvider: "oss",
10326
10401
  storageCode,
10327
10402
  appType: config.appType,
10328
10403
  ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
10329
10404
  } : imageCompression && imageCompression.enabled !== false ? { imageCompression } : void 0;
10330
- const getItemUploadOptions = (item) => item.provider === "oss" || item.storageCode ? {
10405
+ const getItemUploadOptions = (item) => item.storageScope === "platform" || item.uploadProvider === "builtin-oss" ? {
10406
+ uploadProvider: "builtin-oss",
10407
+ storageScope: "platform",
10408
+ appType: item.appType || config.appType
10409
+ } : item.provider === "oss" || item.storageCode ? {
10331
10410
  uploadProvider: "oss",
10332
10411
  storageCode: item.storageCode || storageCode,
10333
10412
  appType: item.appType || config.appType
10334
10413
  } : void 0;
10335
- const isDirectStorageItem3 = (item) => item.provider === "oss" || Boolean(item.storageCode);
10414
+ const isDirectStorageItem3 = (item) => item.provider === "oss" || item.uploadProvider === "builtin-oss" || Boolean(item.storageCode);
10336
10415
  import_react36.default.useEffect(() => {
10337
10416
  valueRef.current = value;
10338
10417
  }, [value]);
@@ -10677,19 +10756,29 @@ function AttachmentFieldMobile({
10677
10756
  const valueRef = import_react37.default.useRef(value);
10678
10757
  const inputRef = import_react37.default.useRef(null);
10679
10758
  const disabled = behavior === "DISABLED";
10680
- const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : "platform");
10681
- const fieldUploadOptions = fieldUploadProvider === "oss" ? {
10759
+ const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : config.defaultUploadProvider || "platform");
10760
+ const fieldUploadOptions = fieldUploadProvider === "builtin-oss" ? {
10761
+ uploadProvider: "builtin-oss",
10762
+ storageScope: "platform",
10763
+ appType: config.appType,
10764
+ uploadPurpose: "attachment",
10765
+ ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
10766
+ } : fieldUploadProvider === "oss" ? {
10682
10767
  uploadProvider: "oss",
10683
10768
  storageCode,
10684
10769
  appType: config.appType,
10685
10770
  ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
10686
10771
  } : imageCompression && imageCompression.enabled !== false ? { imageCompression } : void 0;
10687
- const getItemUploadOptions = (item) => item.provider === "oss" || item.storageCode ? {
10772
+ const getItemUploadOptions = (item) => item.storageScope === "platform" || item.uploadProvider === "builtin-oss" ? {
10773
+ uploadProvider: "builtin-oss",
10774
+ storageScope: "platform",
10775
+ appType: item.appType || config.appType
10776
+ } : item.provider === "oss" || item.storageCode ? {
10688
10777
  uploadProvider: "oss",
10689
10778
  storageCode: item.storageCode || storageCode,
10690
10779
  appType: item.appType || config.appType
10691
10780
  } : void 0;
10692
- const isDirectStorageItem3 = (item) => item.provider === "oss" || Boolean(item.storageCode);
10781
+ const isDirectStorageItem3 = (item) => item.provider === "oss" || item.uploadProvider === "builtin-oss" || Boolean(item.storageCode);
10693
10782
  import_react37.default.useEffect(() => {
10694
10783
  valueRef.current = value;
10695
10784
  }, [value]);
@@ -11169,19 +11258,31 @@ function ImageFieldPC({
11169
11258
  );
11170
11259
  const valueRef = import_react39.default.useRef(value);
11171
11260
  const disabled = behavior === "DISABLED";
11172
- const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : "platform");
11173
- const fieldUploadOptions = fieldUploadProvider === "oss" ? {
11261
+ const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : config.defaultUploadProvider || "platform");
11262
+ const fieldUploadOptions = fieldUploadProvider === "builtin-oss" ? {
11263
+ uploadProvider: "builtin-oss",
11264
+ storageScope: "platform",
11265
+ appType: config.appType,
11266
+ uploadPurpose: "image",
11267
+ ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
11268
+ } : fieldUploadProvider === "oss" ? {
11174
11269
  uploadProvider: "oss",
11175
11270
  storageCode,
11176
11271
  appType: config.appType,
11177
11272
  ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
11178
11273
  } : imageCompression && imageCompression.enabled !== false ? { imageCompression } : void 0;
11179
- const getItemUploadOptions = (item) => item.provider === "oss" || item.storageCode ? {
11274
+ const getItemUploadOptions = (item) => item.storageScope === "platform" || item.uploadProvider === "builtin-oss" ? {
11275
+ uploadProvider: "builtin-oss",
11276
+ storageScope: "platform",
11277
+ appType: item.appType || config.appType
11278
+ } : item.provider === "oss" || item.storageCode ? {
11180
11279
  uploadProvider: "oss",
11181
11280
  storageCode: item.storageCode || storageCode,
11182
11281
  appType: item.appType || config.appType
11183
11282
  } : void 0;
11184
- const isDirectStorageItem3 = (item) => Boolean(item && (item.provider === "oss" || item.storageCode));
11283
+ const isDirectStorageItem3 = (item) => Boolean(
11284
+ item && (item.provider === "oss" || item.uploadProvider === "builtin-oss" || item.storageCode)
11285
+ );
11185
11286
  import_react39.default.useEffect(() => {
11186
11287
  valueRef.current = value;
11187
11288
  }, [value]);
@@ -11530,19 +11631,29 @@ function ImageFieldMobile({
11530
11631
  const valueRef = import_react40.default.useRef(value);
11531
11632
  const inputRef = import_react40.default.useRef(null);
11532
11633
  const disabled = behavior === "DISABLED";
11533
- const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : "platform");
11534
- const fieldUploadOptions = fieldUploadProvider === "oss" ? {
11634
+ const fieldUploadProvider = uploadProvider || (storageCode ? "oss" : config.defaultUploadProvider || "platform");
11635
+ const fieldUploadOptions = fieldUploadProvider === "builtin-oss" ? {
11636
+ uploadProvider: "builtin-oss",
11637
+ storageScope: "platform",
11638
+ appType: config.appType,
11639
+ uploadPurpose: "image",
11640
+ ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
11641
+ } : fieldUploadProvider === "oss" ? {
11535
11642
  uploadProvider: "oss",
11536
11643
  storageCode,
11537
11644
  appType: config.appType,
11538
11645
  ...imageCompression && imageCompression.enabled !== false ? { imageCompression } : {}
11539
11646
  } : imageCompression && imageCompression.enabled !== false ? { imageCompression } : void 0;
11540
- const getItemUploadOptions = (item) => item.provider === "oss" || item.storageCode ? {
11647
+ const getItemUploadOptions = (item) => item.storageScope === "platform" || item.uploadProvider === "builtin-oss" ? {
11648
+ uploadProvider: "builtin-oss",
11649
+ storageScope: "platform",
11650
+ appType: item.appType || config.appType
11651
+ } : item.provider === "oss" || item.storageCode ? {
11541
11652
  uploadProvider: "oss",
11542
11653
  storageCode: item.storageCode || storageCode,
11543
11654
  appType: item.appType || config.appType
11544
11655
  } : void 0;
11545
- const isDirectStorageItem3 = (item) => item.provider === "oss" || Boolean(item.storageCode);
11656
+ const isDirectStorageItem3 = (item) => item.provider === "oss" || item.uploadProvider === "builtin-oss" || Boolean(item.storageCode);
11546
11657
  import_react40.default.useEffect(() => {
11547
11658
  valueRef.current = value;
11548
11659
  }, [value]);
@@ -20789,6 +20900,7 @@ var StandardFormPage = ({
20789
20900
  formUuid,
20790
20901
  appType,
20791
20902
  formInstanceId,
20903
+ defaultUploadProvider,
20792
20904
  submitBehavior,
20793
20905
  onSubmit,
20794
20906
  onSubmitSuccess,
@@ -20860,6 +20972,7 @@ var StandardFormPage = ({
20860
20972
  formUuid: resolvedFormUuid,
20861
20973
  appType: resolvedAppType,
20862
20974
  formInstanceId,
20975
+ defaultUploadProvider,
20863
20976
  submitBehavior,
20864
20977
  permissions,
20865
20978
  api
@@ -23614,6 +23727,7 @@ function BuiltinRouteRenderer({
23614
23727
  () => route ? resolveRouteConfig(route, config) : {},
23615
23728
  [config, route]
23616
23729
  );
23730
+ const runtimeStorage = route?.runtime?.storage;
23617
23731
  const permissionDenied = isRuntimePermissionDenied(route);
23618
23732
  const reload = (0, import_react83.useCallback)(() => setReloadKey((value) => value + 1), []);
23619
23733
  (0, import_react83.useEffect)(() => {
@@ -23720,6 +23834,7 @@ function BuiltinRouteRenderer({
23720
23834
  appType,
23721
23835
  formUuid,
23722
23836
  formInstanceId: formInstId,
23837
+ defaultUploadProvider: runtimeStorage?.defaultUploadProvider === "builtin-oss" ? "builtin-oss" : void 0,
23723
23838
  api
23724
23839
  }
23725
23840
  );