cabloy 5.1.144 → 5.1.146

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 (31) hide show
  1. package/.cabloy-version +1 -1
  2. package/.github/workflows/playwright-e2e.yml +2 -2
  3. package/CHANGELOG.md +21 -0
  4. package/cabloy-docs/backend/markdown-guide.md +3 -2
  5. package/cabloy-docs/frontend/markdown-guide.md +1 -1
  6. package/e2e/specs/a-commerce.spec.ts +0 -496
  7. package/e2e/specs/markdown.spec.ts +575 -0
  8. package/package.json +3 -3
  9. package/vona/pnpm-lock.yaml +114 -33
  10. package/vona/pnpm-workspace.yaml +1 -1
  11. package/vona/src/suite-vendor/a-cabloy/modules/a-markdown/package.json +2 -1
  12. package/vona/src/suite-vendor/a-cabloy/modules/a-markdown/src/bean/bean.markdown.ts +47 -2
  13. package/vona/src/suite-vendor/a-cabloy/package.json +2 -2
  14. package/zova/packages-utils/zova-jsx/package.json +2 -2
  15. package/zova/packages-zova/zova/package.json +3 -3
  16. package/zova/packages-zova/zova-core/package.json +1 -1
  17. package/zova/packages-zova/zova-core/src/core/component/locale.ts +2 -0
  18. package/zova/pnpm-lock.yaml +52 -52
  19. package/zova/src/suite/a-home/modules/home-base/src/.metadata/index.ts +2 -17
  20. package/zova/src/suite/a-home/modules/home-base/src/service/routerGuards.ts +0 -6
  21. package/zova/src/suite/a-home/modules/home-layoutadmin/src/component/layoutAdmin/controller.tsx +1 -4
  22. package/zova/src/suite/a-home/modules/home-layoutadmin/src/component/layoutAdmin/render.locale.tsx +1 -1
  23. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +1 -4
  24. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.locale.tsx +1 -1
  25. package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +1 -1
  26. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/monkey.ts +1 -0
  27. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
  28. package/zova/src/suite-vendor/a-zova/package.json +3 -3
  29. package/zova/src/suite/a-home/modules/home-base/src/service/locale.ts +0 -11
  30. /package/e2e/specs/{account.spec.ts → home-user-account.spec.ts} +0 -0
  31. /package/vona/patches/{zova-core@5.1.87.patch → zova-core@5.1.88.patch} +0 -0
@@ -16,7 +16,7 @@ overrides:
16
16
  zod: npm:@cabloy/zod@4.3.8
17
17
 
18
18
  patchedDependencies:
19
- zova-core@5.1.87: 144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97
19
+ zova-core@5.1.88: 144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97
20
20
 
21
21
  importers:
22
22
 
@@ -564,11 +564,11 @@ importers:
564
564
  specifier: npm:@cabloy/zod@4.3.8
565
565
  version: '@cabloy/zod@4.3.8'
566
566
  zova:
567
- specifier: ^5.1.152
568
- version: 5.1.152(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
567
+ specifier: ^5.1.153
568
+ version: 5.1.153(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
569
569
  zova-jsx:
570
- specifier: ^1.1.87
571
- version: 1.1.87(typescript@5.9.3)
570
+ specifier: ^1.1.88
571
+ version: 1.1.88(typescript@5.9.3)
572
572
  zova-module-a-api:
573
573
  specifier: ^5.1.22
574
574
  version: 5.1.22
@@ -606,8 +606,8 @@ importers:
606
606
  specifier: ^5.1.34
607
607
  version: 5.1.34
608
608
  zova-module-a-ssr:
609
- specifier: ^5.1.37
610
- version: 5.1.37
609
+ specifier: ^5.1.38
610
+ version: 5.1.38
611
611
  zova-module-a-style:
612
612
  specifier: ^5.1.35
613
613
  version: 5.1.35
@@ -642,11 +642,11 @@ importers:
642
642
  specifier: npm:@cabloy/zod@4.3.8
643
643
  version: '@cabloy/zod@4.3.8'
644
644
  zova:
645
- specifier: ^5.1.152
646
- version: 5.1.152(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
645
+ specifier: ^5.1.153
646
+ version: 5.1.153(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
647
647
  zova-jsx:
648
- specifier: ^1.1.87
649
- version: 1.1.87(typescript@5.9.3)
648
+ specifier: ^1.1.88
649
+ version: 1.1.88(typescript@5.9.3)
650
650
  zova-module-a-api:
651
651
  specifier: ^5.1.22
652
652
  version: 5.1.22
@@ -684,8 +684,8 @@ importers:
684
684
  specifier: ^5.1.34
685
685
  version: 5.1.34
686
686
  zova-module-a-ssr:
687
- specifier: ^5.1.37
688
- version: 5.1.37
687
+ specifier: ^5.1.38
688
+ version: 5.1.38
689
689
  zova-module-a-style:
690
690
  specifier: ^5.1.35
691
691
  version: 5.1.35
@@ -1616,7 +1616,7 @@ importers:
1616
1616
  specifier: workspace:^
1617
1617
  version: link:modules/a-cabloy
1618
1618
  vona-module-a-markdown:
1619
- specifier: ^5.0.2
1619
+ specifier: ^5.0.3
1620
1620
  version: link:modules/a-markdown
1621
1621
  vona-module-a-rbac:
1622
1622
  specifier: ^5.0.1
@@ -1687,6 +1687,9 @@ importers:
1687
1687
  '@tiptap/static-renderer':
1688
1688
  specifier: ^3.30.0
1689
1689
  version: 3.30.0(@tiptap/core@3.30.0(@tiptap/pm@3.30.0))(@tiptap/pm@3.30.0)(react-dom@19.2.8(react@19.2.7))(react@19.2.7)
1690
+ lowlight:
1691
+ specifier: ^3.3.0
1692
+ version: 3.3.0
1690
1693
  sanitize-html:
1691
1694
  specifier: ^2.17.6
1692
1695
  version: 2.17.6
@@ -1983,7 +1986,7 @@ importers:
1983
1986
  specifier: ^5.0.9
1984
1987
  version: link:modules/test-file
1985
1988
  vona-module-test-markdown:
1986
- specifier: ^5.0.2
1989
+ specifier: ^5.0.3
1987
1990
  version: link:modules/test-markdown
1988
1991
  vona-module-test-pay:
1989
1992
  specifier: ^5.0.7
@@ -2037,7 +2040,7 @@ importers:
2037
2040
  src/suite-vendor/a-test/modules/test-markdown:
2038
2041
  dependencies:
2039
2042
  vona-module-a-markdown:
2040
- specifier: ^5.0.2
2043
+ specifier: ^5.0.3
2041
2044
  version: link:../../../a-cabloy/modules/a-markdown
2042
2045
  devDependencies:
2043
2046
  clean-package:
@@ -5143,6 +5146,9 @@ packages:
5143
5146
  '@types/fs-extra@11.0.4':
5144
5147
  resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
5145
5148
 
5149
+ '@types/hast@3.0.5':
5150
+ resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==}
5151
+
5146
5152
  '@types/http-assert@1.5.6':
5147
5153
  resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==}
5148
5154
 
@@ -6607,6 +6613,10 @@ packages:
6607
6613
  header-case@2.0.4:
6608
6614
  resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
6609
6615
 
6616
+ highlight.js@11.11.2:
6617
+ resolution: {integrity: sha512-oaXMACAU0kzOMXBjWpNcX+vlwSBCIAiZ9BHa7gA15NOTtT2L/l8OSZDuqS2XppOhZBPJ7hm4o8ep2kyuip2uEQ==}
6618
+ engines: {node: '>=12.0.0'}
6619
+
6610
6620
  hono@4.12.32:
6611
6621
  resolution: {integrity: sha512-XcuyW9qE2kJn07PkecMOBd5Vq/hMy7mmGw+idz1yblbg9N17ijJODrvPkn7/dwL3Kulj8LcRJ69DLOWf91dRUg==}
6612
6622
  engines: {node: '>=16.9.0'}
@@ -7167,6 +7177,9 @@ packages:
7167
7177
  lower-case@2.0.2:
7168
7178
  resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
7169
7179
 
7180
+ lowlight@3.3.0:
7181
+ resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==}
7182
+
7170
7183
  lru-cache@10.4.3:
7171
7184
  resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
7172
7185
 
@@ -8949,12 +8962,18 @@ packages:
8949
8962
  zova-core@5.1.87:
8950
8963
  resolution: {integrity: sha512-CANgp5A86nKkpx0YpGg5sQLnm93ZWLS8Sq3eMN/Pmf505EgSs7oJ8PSyKYa4eHknRbJwDAGHzqrKNQyARrLbKA==}
8951
8964
 
8965
+ zova-core@5.1.88:
8966
+ resolution: {integrity: sha512-YZ8z1GHE5iAo/khgP8/gnrRN8bUkv80cVvxDzmGSG5p/CEqQpHhcrC8lUH48fbuc4BgeGMTRlZoB+uNopYnALQ==}
8967
+
8952
8968
  zova-jsx@1.1.86:
8953
8969
  resolution: {integrity: sha512-cGGv9tsu8MuPjHM055n8On3MhuTnhdpk00VDpMN3eiljnMCQiiiW3McIDMxMkuXXJFgCJvshkDhQ9VR7EZhcsg==}
8954
8970
 
8955
8971
  zova-jsx@1.1.87:
8956
8972
  resolution: {integrity: sha512-sUq/v9cn1gPdVvE4VI1xZbsI/G36dBCIZcCB5LW3s75tg7ntZ8y6n8rjJVa6VZK0WHE0ZU8dfYd0AGtEHEyCrw==}
8957
8973
 
8974
+ zova-jsx@1.1.88:
8975
+ resolution: {integrity: sha512-DusZAiEor+lrYwsbxrWFhTBjYTArg6ldxuo323ly1GJ39jmNeF+vRDc8liDQF1czstp0fnJtuMNxQCEBaCasxg==}
8976
+
8958
8977
  zova-module-a-api@5.1.22:
8959
8978
  resolution: {integrity: sha512-6KHDm/Kw7dwu3/3R+eM8WR0UBv4b73ksAd9yL44cS7d5KS9o97PD0RDkwep+ziMdod1DvRMHu5QJbvp7DmKIVA==}
8960
8979
 
@@ -9021,6 +9040,9 @@ packages:
9021
9040
  zova-module-a-ssr@5.1.37:
9022
9041
  resolution: {integrity: sha512-af4o+vw+RT73BW1X68FkmJu6hzafzzaNBHi9V9Le42G6i1skVC3Zco1hE+0Vk1GkPT2S2c73NTYZNVyO39EJmQ==}
9023
9042
 
9043
+ zova-module-a-ssr@5.1.38:
9044
+ resolution: {integrity: sha512-mkp5T1fwDIyhwCFdzyCD7WtOhuT4dbS1MmDggtDhvI9bA07pVq/Z0SZIHaCZn4yb7W0ZJBj+aSy5g+cP8MngcA==}
9045
+
9024
9046
  zova-module-a-ssrhmr@5.1.23:
9025
9047
  resolution: {integrity: sha512-BiwI/lodmJgWU5whwI4iEd3ZTbWCFIxG/V0YOejHaPqk85viFAVn9xlURNdpo3A9yFKRZDZja4IA8WuO6i0QAA==}
9026
9048
 
@@ -9039,8 +9061,8 @@ packages:
9039
9061
  zova-module-a-zova@5.1.101:
9040
9062
  resolution: {integrity: sha512-htiX0YX6kytmTiiiVuTH5lVcM5doff/AYIbiIxcoOU955q6vxrKNT4TQSGZiaAGY9cb45kr4n75nLunGxxaOPQ==}
9041
9063
 
9042
- zova-module-a-zova@5.1.102:
9043
- resolution: {integrity: sha512-OsxYHgrM0t7W/UDC5VDp4pXxUddxA6ngX+fn0F+oVvG0Y1gnTkOhdRDHdndmpMA+MROygXaCNu42kqQtnL9SCA==}
9064
+ zova-module-a-zova@5.1.103:
9065
+ resolution: {integrity: sha512-rtGMHo5NRlXkFlAz07jEgd/J7C/2zzZ9A9UXW8tJBhpSQTY4YBec+1wwCfOEjUcpDjUjNjn6UHGAV7fg1maS/g==}
9044
9066
 
9045
9067
  zova-module-pay-mock@5.0.4:
9046
9068
  resolution: {integrity: sha512-olXNzUK7wuNThHiE8ND/8wu9eFhMODI7l/Tcdh7/fFe5EWRhPL37HCj8gjYy1gHcuFQdN3+gim3Zqmp7JG5nFw==}
@@ -9057,14 +9079,14 @@ packages:
9057
9079
  zova-suite-a-zova@5.1.150:
9058
9080
  resolution: {integrity: sha512-UZ/yRFWylL/MFKDvxlFYBZ6vb+WEW6NsOZSXztSfmOc8jevuZCy0I1lwgIZppR7wNWiBMdIt/jq7CqTHYhvMjw==}
9059
9081
 
9060
- zova-suite-a-zova@5.1.151:
9061
- resolution: {integrity: sha512-ClXZjdEFwR++fg+yy4gFYDZNEWCg13r/xeqImVorR2mckCSSUdGrflf2Y5z4BmZQ7OmKwQ/ZJk+UETYEHtSDYQ==}
9082
+ zova-suite-a-zova@5.1.152:
9083
+ resolution: {integrity: sha512-P/dcMb2fcMpnmDMlrgvpddWUbupnvohD1Jp60VYWoqI0JcWMlYTJvWQWrwszDqiMvMiOTH5mmQBTws0KzbsXpA==}
9062
9084
 
9063
9085
  zova@5.1.151:
9064
9086
  resolution: {integrity: sha512-ORpFNcMYRmoWtIGIGGswPpeLgrYiax9prStB3Em0umUFGxVLPg9Yt0R1/psFlFgcC9WionitSz4WBhjvcra8Xw==}
9065
9087
 
9066
- zova@5.1.152:
9067
- resolution: {integrity: sha512-k6d+LRLin+DNFeKtC2NkfMp45nyEGmHFTwuh+XOAE/zxG7v0K5OODQ+EuHLgr+anNsJBC5H0He6jiGXIsNHB+g==}
9088
+ zova@5.1.153:
9089
+ resolution: {integrity: sha512-2c+4lhgZgIzM6a066eRU/Ru6CvrSTwRsq1SgsSj+NuLOxUXoj+JPvwUezuRRmBCTukpRMd2nfw8u6vWHzVArTA==}
9068
9090
 
9069
9091
  zwitch@1.0.5:
9070
9092
  resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
@@ -10967,6 +10989,10 @@ snapshots:
10967
10989
  '@types/jsonfile': 6.1.4
10968
10990
  '@types/node': 22.20.0
10969
10991
 
10992
+ '@types/hast@3.0.5':
10993
+ dependencies:
10994
+ '@types/unist': 3.0.3
10995
+
10970
10996
  '@types/http-assert@1.5.6': {}
10971
10997
 
10972
10998
  '@types/http-errors@2.0.5': {}
@@ -12562,6 +12588,8 @@ snapshots:
12562
12588
  capital-case: 1.0.4
12563
12589
  tslib: 2.8.1
12564
12590
 
12591
+ highlight.js@11.11.2: {}
12592
+
12565
12593
  hono@4.12.32: {}
12566
12594
 
12567
12595
  hookified@1.15.1: {}
@@ -13103,6 +13131,12 @@ snapshots:
13103
13131
  dependencies:
13104
13132
  tslib: 2.8.1
13105
13133
 
13134
+ lowlight@3.3.0:
13135
+ dependencies:
13136
+ '@types/hast': 3.0.5
13137
+ devlop: 1.1.0
13138
+ highlight.js: 11.11.2
13139
+
13106
13140
  lru-cache@10.4.3: {}
13107
13141
 
13108
13142
  lru-cache@11.5.1: {}
@@ -15358,7 +15392,38 @@ snapshots:
15358
15392
  transitivePeerDependencies:
15359
15393
  - typescript
15360
15394
 
15361
- zova-core@5.1.87(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3):
15395
+ zova-core@5.1.87(typescript@5.9.3):
15396
+ dependencies:
15397
+ '@cabloy/compose': link:packages-utils/compose
15398
+ '@cabloy/extend': link:packages-utils/extend
15399
+ '@cabloy/json5': link:packages-utils/json5
15400
+ '@cabloy/localeutil': link:packages-utils/localeutil
15401
+ '@cabloy/logger': 1.1.25
15402
+ '@cabloy/module-info': 2.0.3
15403
+ '@cabloy/utils': link:packages-utils/utils
15404
+ '@cabloy/vue-compiler-sfc': 3.5.14
15405
+ '@cabloy/vue-reactivity': 3.5.16
15406
+ '@cabloy/vue-router': 4.4.16(vue@3.5.39(typescript@5.9.3))
15407
+ '@cabloy/vue-runtime-core': 3.5.57
15408
+ '@cabloy/vue-runtime-dom': 3.5.13
15409
+ '@cabloy/vue-server-renderer': 3.5.18(vue@3.5.39(typescript@5.9.3))
15410
+ '@cabloy/word-utils': 2.1.14
15411
+ '@cabloy/zod-errors-custom': link:packages-utils/zod-errors-custom
15412
+ '@cabloy/zod-openapi': link:packages-utils/zod-openapi
15413
+ '@cabloy/zod-query': link:packages-utils/zod-query
15414
+ '@types/js-cookie': 3.0.6
15415
+ '@types/ms': 2.1.0
15416
+ '@vue/shared': 3.5.36
15417
+ deep-equal: 2.2.3
15418
+ ms: 2.1.3
15419
+ reflect-metadata: 0.2.2
15420
+ vue: 3.5.39(typescript@5.9.3)
15421
+ vue-plugin-render-freeze: 2.0.4(vue@3.5.39(typescript@5.9.3))
15422
+ zod: '@cabloy/zod@4.3.8'
15423
+ transitivePeerDependencies:
15424
+ - typescript
15425
+
15426
+ zova-core@5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3):
15362
15427
  dependencies:
15363
15428
  '@cabloy/compose': link:packages-utils/compose
15364
15429
  '@cabloy/extend': link:packages-utils/extend
@@ -15407,7 +15472,18 @@ snapshots:
15407
15472
  '@cabloy/word-utils': 2.1.14
15408
15473
  typestyle: 2.4.0
15409
15474
  vue: 3.5.39(typescript@5.9.3)
15410
- zova-core: 5.1.87(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
15475
+ zova-core: 5.1.87(typescript@5.9.3)
15476
+ transitivePeerDependencies:
15477
+ - typescript
15478
+
15479
+ zova-jsx@1.1.88(typescript@5.9.3):
15480
+ dependencies:
15481
+ '@cabloy/compose': link:packages-utils/compose
15482
+ '@cabloy/utils': link:packages-utils/utils
15483
+ '@cabloy/word-utils': 2.1.14
15484
+ typestyle: 2.4.0
15485
+ vue: 3.5.39(typescript@5.9.3)
15486
+ zova-core: 5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
15411
15487
  transitivePeerDependencies:
15412
15488
  - typescript
15413
15489
 
@@ -15493,6 +15569,11 @@ snapshots:
15493
15569
  devalue: 5.8.1
15494
15570
  ms: 2.1.3
15495
15571
 
15572
+ zova-module-a-ssr@5.1.38:
15573
+ dependencies:
15574
+ devalue: 5.8.1
15575
+ ms: 2.1.3
15576
+
15496
15577
  zova-module-a-ssrhmr@5.1.23:
15497
15578
  dependencies:
15498
15579
  '@cabloy/socket': link:packages-utils/socket
@@ -15532,12 +15613,12 @@ snapshots:
15532
15613
  '@cabloy/word-utils': 2.1.14
15533
15614
  defu: 6.1.7
15534
15615
  luxon: 3.7.2
15535
- zova-jsx: 1.1.86(typescript@5.9.3)
15616
+ zova-jsx: 1.1.87(typescript@5.9.3)
15536
15617
  transitivePeerDependencies:
15537
15618
  - typescript
15538
15619
  - vue
15539
15620
 
15540
- zova-module-a-zova@5.1.102(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
15621
+ zova-module-a-zova@5.1.103(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
15541
15622
  dependencies:
15542
15623
  '@cabloy/compose': link:packages-utils/compose
15543
15624
  '@cabloy/deps': link:packages-utils/deps
@@ -15548,7 +15629,7 @@ snapshots:
15548
15629
  '@cabloy/word-utils': 2.1.14
15549
15630
  defu: 6.1.7
15550
15631
  luxon: 3.7.2
15551
- zova-jsx: 1.1.87(typescript@5.9.3)
15632
+ zova-jsx: 1.1.88(typescript@5.9.3)
15552
15633
  transitivePeerDependencies:
15553
15634
  - typescript
15554
15635
  - vue
@@ -15595,7 +15676,7 @@ snapshots:
15595
15676
  - typescript
15596
15677
  - vue
15597
15678
 
15598
- zova-suite-a-zova@5.1.151(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
15679
+ zova-suite-a-zova@5.1.152(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
15599
15680
  dependencies:
15600
15681
  zova-module-a-api: 5.1.22
15601
15682
  zova-module-a-app: 5.1.26
@@ -15615,13 +15696,13 @@ snapshots:
15615
15696
  zova-module-a-router: 5.1.34
15616
15697
  zova-module-a-routerstack: 5.1.27
15617
15698
  zova-module-a-routertabs: 5.1.34
15618
- zova-module-a-ssr: 5.1.37
15699
+ zova-module-a-ssr: 5.1.38
15619
15700
  zova-module-a-ssrhmr: 5.1.23
15620
15701
  zova-module-a-ssrserver: 5.1.26
15621
15702
  zova-module-a-style: 5.1.35
15622
15703
  zova-module-a-table: 5.1.38(vue@3.5.39(typescript@5.9.3))
15623
15704
  zova-module-a-zod: 5.1.37
15624
- zova-module-a-zova: 5.1.102(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
15705
+ zova-module-a-zova: 5.1.103(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
15625
15706
  transitivePeerDependencies:
15626
15707
  - '@vue/composition-api'
15627
15708
  - debug
@@ -15640,10 +15721,10 @@ snapshots:
15640
15721
  - typescript
15641
15722
  - vue
15642
15723
 
15643
- zova@5.1.152(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
15724
+ zova@5.1.153(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3)):
15644
15725
  dependencies:
15645
- zova-core: 5.1.87(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
15646
- zova-suite-a-zova: 5.1.151(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
15726
+ zova-core: 5.1.88(patch_hash=144450bd7a567a6067e5857c0cf4c780981b7e90bc48745c09e1696a9b6f1b97)(typescript@5.9.3)
15727
+ zova-suite-a-zova: 5.1.152(typescript@5.9.3)(vue@3.5.39(typescript@5.9.3))
15647
15728
  transitivePeerDependencies:
15648
15729
  - '@vue/composition-api'
15649
15730
  - debug
@@ -53,4 +53,4 @@ allowBuilds:
53
53
  vue-demi: true
54
54
 
55
55
  patchedDependencies:
56
- zova-core@5.1.87: patches/zova-core@5.1.87.patch
56
+ zova-core@5.1.88: patches/zova-core@5.1.88.patch
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-a-markdown",
3
- "version": "5.0.2",
3
+ "version": "5.0.3",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "Vona Module"
@@ -40,6 +40,7 @@
40
40
  "@tiptap/markdown": "^3.30.0",
41
41
  "@tiptap/starter-kit": "^3.30.0",
42
42
  "@tiptap/static-renderer": "^3.30.0",
43
+ "lowlight": "^3.3.0",
43
44
  "sanitize-html": "^2.17.6"
44
45
  },
45
46
  "devDependencies": {
@@ -7,11 +7,14 @@ import { TableKit } from '@tiptap/extension-table';
7
7
  import Youtube from '@tiptap/extension-youtube';
8
8
  import { Markdown, MarkdownManager } from '@tiptap/markdown';
9
9
  import StarterKit from '@tiptap/starter-kit';
10
- import { renderToHTMLString } from '@tiptap/static-renderer';
10
+ import { escapeHTML, escapeHTMLAttribute, renderToHTMLString } from '@tiptap/static-renderer';
11
+ import { common, createLowlight } from 'lowlight';
11
12
  import sanitizeHtml from 'sanitize-html';
12
13
  import { BeanBase } from 'vona';
13
14
  import { Bean } from 'vona-module-a-bean';
14
15
 
16
+ const lowlight = createLowlight(common);
17
+
15
18
  const extensions: AnyExtension[] = [
16
19
  Markdown,
17
20
  StarterKit,
@@ -32,6 +35,33 @@ const markdownManager = new MarkdownManager({
32
35
  indentation: { style: 'space', size: 2 },
33
36
  });
34
37
 
38
+ function renderHighlightedCode(code: string, language?: string | null): string {
39
+ const highlighted =
40
+ language && lowlight.registered(language)
41
+ ? lowlight.highlight(language, code)
42
+ : lowlight.highlightAuto(code);
43
+ return highlighted.children.map(renderHighlightedNode).join('');
44
+ }
45
+
46
+ interface HighlightedNode {
47
+ children?: HighlightedNode[];
48
+ properties?: { className?: string[] };
49
+ tagName?: string;
50
+ type: string;
51
+ value?: string;
52
+ }
53
+
54
+ function renderHighlightedNode(node: HighlightedNode): string {
55
+ if (node.type === 'text') return escapeHTML(node.value ?? '');
56
+ const children = node.children?.map(renderHighlightedNode).join('') ?? '';
57
+ if (node.tagName !== 'span') return children;
58
+ const classNames = node.properties?.className;
59
+ const classAttribute = classNames?.length
60
+ ? ` class="${classNames.map(escapeHTMLAttribute).join(' ')}"`
61
+ : '';
62
+ return `<span${classAttribute}>${children}</span>`;
63
+ }
64
+
35
65
  const sanitizeOptions: sanitizeHtml.IOptions = {
36
66
  allowedTags: [
37
67
  'a',
@@ -53,6 +83,7 @@ const sanitizeOptions: sanitizeHtml.IOptions = {
53
83
  'input',
54
84
  'label',
55
85
  'li',
86
+ 'mark',
56
87
  'ol',
57
88
  'p',
58
89
  'pre',
@@ -131,7 +162,21 @@ export class BeanMarkdown extends BeanBase {
131
162
  renderHtml(markdown?: string): string {
132
163
  if (!markdown?.trim()) return '';
133
164
  const json = markdownManager.parse(markdown);
134
- const html = renderToHTMLString({ content: json, extensions });
165
+ const html = renderToHTMLString({
166
+ content: json,
167
+ extensions,
168
+ options: {
169
+ nodeMapping: {
170
+ codeBlock: ({ node }) => {
171
+ const language = node.attrs.language;
172
+ const classAttribute = language
173
+ ? ` class="language-${escapeHTMLAttribute(language)}"`
174
+ : '';
175
+ return `<pre><code${classAttribute}>${renderHighlightedCode(node.textContent, language)}</code></pre>`;
176
+ },
177
+ },
178
+ },
179
+ });
135
180
  return sanitizeHtml(html, sanitizeOptions);
136
181
  }
137
182
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-suite-a-cabloy",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "gitHead": "a79189b882c17af5911573896a781bbb0046d37d",
5
5
  "description": "",
6
6
  "author": "",
@@ -8,7 +8,7 @@
8
8
  "type": "module",
9
9
  "dependencies": {
10
10
  "vona-module-a-cabloy": "workspace:^",
11
- "vona-module-a-markdown": "^5.0.2",
11
+ "vona-module-a-markdown": "^5.0.3",
12
12
  "vona-module-a-rbac": "^5.0.1",
13
13
  "vona-module-a-socket": "workspace:^",
14
14
  "vona-module-a-ssr": "workspace:^",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-jsx",
3
- "version": "1.1.87",
3
+ "version": "1.1.88",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "Zova JSX",
6
6
  "keywords": [
@@ -50,7 +50,7 @@
50
50
  "@cabloy/word-utils": "^2.1.14",
51
51
  "typestyle": "^2.4.0",
52
52
  "vue": "^3.5.38",
53
- "zova-core": "^5.1.87"
53
+ "zova-core": "^5.1.88"
54
54
  },
55
55
  "devDependencies": {
56
56
  "clean-package": "^2.2.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova",
3
- "version": "5.1.152",
3
+ "version": "5.1.153",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "A vue3 framework with ioc",
6
6
  "keywords": [
@@ -45,8 +45,8 @@
45
45
  "postpack": "clean-package restore"
46
46
  },
47
47
  "dependencies": {
48
- "zova-core": "^5.1.87",
49
- "zova-suite-a-zova": "^5.1.151"
48
+ "zova-core": "^5.1.88",
49
+ "zova-suite-a-zova": "^5.1.152"
50
50
  },
51
51
  "devDependencies": {
52
52
  "clean-package": "^2.2.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-core",
3
- "version": "5.1.87",
3
+ "version": "5.1.88",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "A vue3 framework with ioc",
6
6
  "keywords": [
@@ -70,6 +70,7 @@ export class AppLocale extends BeanSimple {
70
70
 
71
71
  /** @internal */
72
72
  public createLocaleText(moduleScope?: string): IModuleLocaleText {
73
+ // eslint-disable-next-line
73
74
  const self = this;
74
75
  const getText = function (text: string, ...args: any[]): string {
75
76
  return self.getText(false, moduleScope, undefined, text, ...args);
@@ -86,6 +87,7 @@ export class AppLocale extends BeanSimple {
86
87
 
87
88
  /** @internal */
88
89
  public createScopeLocaleText(moduleScope: string, text: string): IModuleLocale {
90
+ // eslint-disable-next-line
89
91
  const self = this;
90
92
  const getText = function (...args: any[]): string {
91
93
  return self.getText(false, moduleScope, undefined, text, ...args);