openxiangda 1.0.136 → 1.0.138

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 (28) hide show
  1. package/lib/cli.js +687 -5
  2. package/lib/design-gates.js +16 -3
  3. package/openxiangda-skills/references/best-practices.md +18 -7
  4. package/openxiangda-skills/references/component-guide.md +7 -1
  5. package/openxiangda-skills/references/permission-design-patterns.md +95 -5
  6. package/openxiangda-skills/references/permissions-settings.md +165 -0
  7. package/openxiangda-skills/references/resource-manifest-cheatsheet.md +87 -0
  8. package/package.json +1 -1
  9. package/packages/sdk/dist/{ProcessPreview-Ci8_UsbN.d.mts → ProcessPreview-CZJP8n3e.d.mts} +6 -0
  10. package/packages/sdk/dist/{ProcessPreview-Ci8_UsbN.d.ts → ProcessPreview-CZJP8n3e.d.ts} +6 -0
  11. package/packages/sdk/dist/components/index.cjs +143 -16
  12. package/packages/sdk/dist/components/index.cjs.map +1 -1
  13. package/packages/sdk/dist/components/index.d.mts +8 -2
  14. package/packages/sdk/dist/components/index.d.ts +8 -2
  15. package/packages/sdk/dist/components/index.mjs +143 -16
  16. package/packages/sdk/dist/components/index.mjs.map +1 -1
  17. package/packages/sdk/dist/runtime/index.cjs +169 -25
  18. package/packages/sdk/dist/runtime/index.cjs.map +1 -1
  19. package/packages/sdk/dist/runtime/index.d.mts +1 -1
  20. package/packages/sdk/dist/runtime/index.d.ts +1 -1
  21. package/packages/sdk/dist/runtime/index.mjs +169 -25
  22. package/packages/sdk/dist/runtime/index.mjs.map +1 -1
  23. package/packages/sdk/dist/runtime/react.cjs +26 -9
  24. package/packages/sdk/dist/runtime/react.cjs.map +1 -1
  25. package/packages/sdk/dist/runtime/react.d.mts +13 -3
  26. package/packages/sdk/dist/runtime/react.d.ts +13 -3
  27. package/packages/sdk/dist/runtime/react.mjs +26 -9
  28. package/packages/sdk/dist/runtime/react.mjs.map +1 -1
@@ -2563,7 +2563,27 @@ var useDataSource = (name, options = {}) => {
2563
2563
  var import_react6 = require("react");
2564
2564
  var EMPTY_SUMMARY = {
2565
2565
  fieldPermissions: {},
2566
- operations: []
2566
+ operations: [],
2567
+ actions: []
2568
+ };
2569
+ var normalizeSummary = (summary) => {
2570
+ const actions = Array.from(
2571
+ /* @__PURE__ */ new Set([...summary?.actions || [], ...summary?.operations || []])
2572
+ );
2573
+ const can = actions.reduce(
2574
+ (result, operation) => {
2575
+ result[operation] = Boolean(summary?.can?.[operation] ?? true);
2576
+ return result;
2577
+ },
2578
+ {}
2579
+ );
2580
+ return {
2581
+ ...summary,
2582
+ fieldPermissions: summary?.fieldPermissions || {},
2583
+ operations: actions,
2584
+ actions,
2585
+ can
2586
+ };
2567
2587
  };
2568
2588
  var toError = (error) => {
2569
2589
  if (error instanceof Error) {
@@ -2597,10 +2617,7 @@ var useFormViewPermissions = (formUuid, options = {}) => {
2597
2617
  });
2598
2618
  const nextSummary = nextResponse.result || EMPTY_SUMMARY;
2599
2619
  setResponse(nextResponse);
2600
- setSummary({
2601
- fieldPermissions: nextSummary.fieldPermissions || {},
2602
- operations: nextSummary.operations || []
2603
- });
2620
+ setSummary(normalizeSummary(nextSummary));
2604
2621
  return nextResponse;
2605
2622
  } catch (requestError) {
2606
2623
  const nextError = toError(requestError);
@@ -2619,12 +2636,12 @@ var useFormViewPermissions = (formUuid, options = {}) => {
2619
2636
  void refresh();
2620
2637
  }, [immediate, refresh]);
2621
2638
  const operationSet = (0, import_react6.useMemo)(
2622
- () => new Set(summary.operations),
2623
- [summary.operations]
2639
+ () => new Set(summary.actions || summary.operations),
2640
+ [summary.actions, summary.operations]
2624
2641
  );
2625
2642
  const can = (0, import_react6.useCallback)(
2626
- (operation) => operationSet.has(operation),
2627
- [operationSet]
2643
+ (operation) => Boolean(summary.can?.[operation] ?? operationSet.has(operation)),
2644
+ [operationSet, summary.can]
2628
2645
  );
2629
2646
  const getFieldPermission = (0, import_react6.useCallback)(
2630
2647
  (fieldName) => summary.fieldPermissions[fieldName] || null,